Написать систему голосования для фотоконкурса.

Сергей15 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
05.04.2010

Имеется сайт, построенный на Danneo CMS 0.5.3 и форум phpbb 3.0.7 PL1

Необходимо на движке форума, либо на движке CMS написать мод фотоконкурса с системой голования в виде опроса.

Либо, если можно это сделать, доработать имеющиюся опросники.

Как я себе это представляю.

Пользователь, желающий участвовать в конкурсе, выходит на страницу подачи заявки, загружает 3 фотографии, заполняет небольшую анкету из нескольких пунктов и отправляет заявку на участие. Пользователю автоматически присваивается трёхзначный порядковый номер (например 001). На каждую фотографию автоматом, в виде водяного знака, наносится его порядковый номер, название и адрес сайта. Автоматически создаётся страница участника, на которой видны только его порядковый номер и фотографии, вернее превьюшки размером 150 px по большей стороне. При клике на превьюшку, через плагин Highslide выводится большая фотография. Анкета, на этой же странице, видна ТОЛЬКО администратору. Также администратор может принять или отклонить заявку, указав причину, после чего на мыло (или в личку) участника отправляется письмо с уведомлением об отказе, либо о принятии заявки на участие в конкурсе.

Набираем, к примеру 12 участников (чтобы проще считать, в реальном конкурсе их будет гараздо больше), запускаем отборочный тур.

Проходит он следующим образом:

В зависимости от времени регистрации участника (т.е. от id записи в таблице базы данных) делим их на группы по 4 человека, получаем 3 страницы опроса: (1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12). Страницы выводим рандомно, к примеру: 2-ая, 1-ая и 3-я.

Условно на странице голосования выводится таблица 4х4. В каждой строке отдельный участник, в первом столбце первая фотография каждого участника, во втором вторая и в третьем третья, а в четвёртом столбце выставляем галочку голоса. Т.е. на странице опроса выводятся ТОЛЬКО фотографии с номерами участников и то, куда ставим галочки. Голосующий должен выбрать один вариант из 4, предложенных на странице, и так на каждой странице. Тем самым прибавляются голоса участникам. Через какое-то время будут вырисовываться лидеры, т.е. у кого-то будет больше голосов, у кого-то меньше.

Далее система работает следующим образом:

выстраиваем всех участников по порядку от набравшего больше голосов и далее на уменьшение. Разбиваем их на новые четвёрки, сильные с сильными (те, кто набрал больше голосов), средние со средними, слабые со слабыми (тре, кто набрал меньше голосов). И последующие голосующие уже выбирают одного из новых четвёрок. И так далее, т.е. при изменении лидеров формируются новые четвёрки и последующие голосующие выбирают из новых четвёрок. При совпадении количества голосов участники выводятся в первоначальном режиме, т.е. по времени регистрации (по id записи в таблице базы данных).

Все голоса от голосующего принимаются только после того как он проголосует на всех страницах.

Ещё нужно сделать, чтобы по завершению отборочного тура админ выделял тех у кого больше всех голосов (количество этих участников в каждом туре может быть разным) и они становились финалистами (ну как-нибудь отмечались), чтобы потом принять участие в финале конкурса. Т.е. из этих участников нужно будет проводить ещё одно голосование с такими же четвёрками на страницах.

Также необходима опция чтобы с одного IP можно было голосовать всего один раз, с возможностью включения и отключения данной опции. И с возможностью выборочного отключения данной опции на определённый диапазон IP адресов, что-то типа черных и белых списков адресов.

Нужна возможность смены названий полей анкеты. Т.е. в одном конкурсе будет "Имя", "Фамилия", "Телефон", а в другом там что-то переименовать, что-то новое дописать, что-то убрать.

Если есть вопросы, то милости прошу в личку, либо в аську: 360014

Принимаются любые предложения и идеи по изменению системы в лучшую сторону.

Заявки фрилансеров