Украинская Система Виртуальных Голосований БлицОпрос теперь предотавляет Вам уникальную
возможность встраивать форму опроса, а также текущие результаты опроса непосредственно в код Вашей странички.
Теперь не надо вызывать отдельную страницу с результатами голосования. Соответствующая картинка сама появится
на Вашей страничке вместо формы голосования, если пользователь уже проголосовал по этому вопросу.
Если Вам не очень интересны технические подробности и вы просто хотите узнать как вставить
это в свою страничку -- жмите сюда.
Как это происходит? Очень просто -- вызов http://www.poll.com.ua/PollDataJS.phtml?PollID=ID_опроса
генерирует кусок Javascript кода с иyформацией об опросе и о результатах голосования.
Результат работы скрипта выглядит приблизительно так:
// -------------------------
qpVersion = "1.04";
qpPollID = 1;
// показывает проголосовал ли уже пользователь по этому вопросу
qpHasVoted = 1;
// количество проголосовавших по данному вопросу
qpTotalVotes = 101;
// максимальное количество ответов на один из вопросов
// (для нормализации данных)
qpMaxVotes = 46;
// ширина максимальной полоски (можно переопределить потом)
qpBarWidth = 300;
// заголовок опроса...
qpPollTitle = "How do you like our \"QuickPoll\" system?";
// количесво предложенных вариантов ответов
qpNumOptions = 4;
// разрешены ли комментарии
qpAllowComments = 1;
// массив строк -- предлагаемые варианты ответов
var qpOption = new Array();
qpOption[0] = "It's cool!";
qpOption[1] = "Hmm... not bad.";
qpOption[2] = "Needs improvement.";
qpOption[3] = "It sucks!";
// показвает, который из вариантов выделен по умолчанию
// (в данной версии может быть выделен только один)
var qpOptionChecked = new Array();
qpOptionChecked[0] = 1;
qpOptionChecked[1] = 0;
qpOptionChecked[2] = 0;
qpOptionChecked[3] = 0;
// массив цифр с собственно результами голосования.
var qpVotesData = new Array();
qpVotesData[0] = 46;
qpVotesData[1] = 25;
qpVotesData[2] = 14;
qpVotesData[3] = 6;
// код ошибки. Если это значение не равно нулю, это значит,
// что в результате вызова произошла ошибка
qpReturnCode = 0;
// содержит описание ошибки...
qpErrorText = "No errors...";
// -------------------------
Теперь эти данные можно использовать в своих Javascript'ах для
отображения либо формы для опроса либо его результатов в зависимости от
значения qpHasVoted.
Мы предлагаем Вам воспользоваться уже готовой библитекой
qpFunctions.js (в зип архиве
её можно загрузить здесь http://www.poll.com.ua/qpFunctions.js.zip)
Эта библиотека содержит функцию PrintPollAuto();
которая генерирует
HTML код формы для опроса или результатов опроса в зависимости от того проголосовал
пользователь уже, или нет. Также там есть функции PrintPollForm();
и PrintPollResult();
,
которые генерируют код формы и результатов голосования соответственно.
Вы можете выложить эту быблиотеку у себя на страничке, а можете подлинковать её прямо нашего сервера. Можно также
подредактировать библиотеку, чтобы подогнать результат вывода к дизайну Вашей странички...
В странчику это можно вставить приблизительно так:
<script language="javascript" src="http://www.poll.com.ua/qpFunctions.js"
type="text/javascript"></script>
<script language="javascript"
src="http://www.poll.com.ua/PollDataJS.phtml?PollID=ID_опроса"
type="text/javascript"></script>
<script language="javascript" >
<! --//
// устанавливаем макс. ширину полоски
qpBarWidth = 200;
PrintPollAuto();
// -->
</script>
Пример работы такого скрипта можно увидеть здесь (попробуйте здесь проголосовать)...
Внимание, баг! Микрософт Интернет Експлорер имеет баг при обработке яваскриптов. Или как они всегда говорят it's not a bug -- it's a feature:(
Дело в том, что при включении яваскрипта из отдельного URL'а все переменные полученные из этого
скрипта будут выводиться на экран в default кодировке. Это может привести к неправильному отображению вашего
опроса на нерусифицированных платформах, если опрос содержит кирилличный текст.
Чтобы обойти этот баг необходимо переопределить переменую qpPollTitle
с заголовком опроса
и массив qpOption[ ]
с вариантами ответов непсредственно в коде вашей странички перед
вызовом функции PrintPollAuto();
Например вот так:
<script language="JavaScript">
<!--
qpPollTitle = "Как Вам понравилась наша система виртуальных голосований?";
qpOption[0] = "это круто!";
qpOption[1] = "ничего, сойдёт...";
qpOption[2] = "надо бы улучшить...";
qpOption[3] = "It sucks!";
PrintPollAuto();
// -->
</script>