Доброго времени суток дорогой читатель моего блога. Сегодня, как обычно перед реализации чего либо, для нашего движка из цикла "Создать блог с нуля", мы поговорим с Вами о логике создания опроса. Модуль опроса будет выводится в сайтбаре нашего блога. Управление им будет производится из админ панели. Защита от накрутки голосов будет простейшая. Мы будет сохранять у пользователя в браузере куку приблизительно с годом жизни, что не даст повторно проголосовать.
Давайте теперь я подробнее распишу метод реализации пользовательской и админсткой части нашего модуля опроса
Пользовательская часть делится на два вида
У пользователя будет возможность ответить на опрос выбрав вариант ответа и нажав на кнопку "Голосовать", или же просмотреть результаты нажав на кнопку "Результат". В случае нажатия на кнопку "Результат" пользователю откроется окошко с результатами:
Что бы вернуться к форме голосования пользователю необходимо будет нажать на кнопку "К опросу".
Из данной схемы можно выделить следующее, скрипт загружает сразу оба окошка. Окно с результатом скрыто от пользователя. Если пользователь нажмет на кнопку "Результат" сработает javascript, который скроет форму (установит для формы css элемент display:none) и покажет результат. Обратное действие запускается кнопкой "К опросу"
Первый вид будет актуален в случае если куки, уведомляющий о том что пользователь уже голосовал, нет. Если же данная кука присутствует то загрузится второй вид.
Задача модуля: Определить есть ли кука у пользователя...
При голосование пользователя занести результат в базу данных и наградить его (пользователя) браузер кукой.
Админ модуль представляет собой список всех опросов, что есть в базе данных. Данный список позволит отредактировать опросы, добавить новый, активировать и удалить опрос.
Я приведу Вам схему, на которой расположу небольшие сноски о функциональности каждой части модуля.
Из схемы должно быть ясно как работает модуль, поэтому излишние комментарии тут ни к чему. Единственно что хочу отметить, это то, что варианты ответов будут вписываться по такой схеме
Каждый день|Когда публикуется новая заметка|В первый и последний раз!
В данном примере имеется три варианта ответа, каждый из вариантов отделен от другого чертой "|". Данный вариант создания вопросов может показаться не удобным, но зато избавляет нас от лишних алгоритмов которые позволяли бы динамично добавлять поля под вопросы.
Ну что же, прочитав данную заметку у Вас должно сложится хотя бы небольшая картина того, что мы собираемся писать, и это хорошо =) На этом я заканчиваю теорию. Если у Вас есть какие либо вопросы, пользуйтесь формой ниже.
Если Вы собираетесь стать читателем моего блога (если конечно Вы еще не являетесь им), то подпишитесь на RSS ленту блога через ридер, или же по почте
Всего Вам наилучшего! У меня все!
________
P.S.: Уже который год я занимаюсь программирование и версткой, но до сих пор не знаю как правильно подобрать doctype для html документа. Данная заметка на ktonanovenkogo.ru помогла мне, возможно поможет и Вам =)