Бесплатный компонент ВИКТОРИНА для любой версии

3258
Случайно нашел на винчестере ужасно старый скрипт викторины.
На авторство и оригинальность ни в коем случае не претендую, я просто решил примастырить этот скриптец к InstantCMS.
Код правил только для того, чтобы получился рабочий компонент.

Установка компонента стандартная.
- Закачиваем файлы на сервер,
- В админке выбираем "Установить компоненты" -> Компонент "Викторина" для InstantCMS.

ДЕМО

На демо-сайте можно зайти под логинами:
test1, test2, test3
Пароль: 123456

Скрытый текст виден только зарегистрированным пользователям
Компонент "Эксперты" для версии 1.10.1
Комментарии (49)
nedoriko 25 февраля 2013 в 16:19 +2
спасибо. может пригодится. только вот мне кажется что он с этой викториной будет конфликтовать
Александр I 25 февраля 2013 в 16:22 0
Конфликт будет только из-за одинакового названия компонента.
Можно поправить название (в файлах тоже) и все будет работать.
nedoriko 26 февраля 2013 в 02:56 0
залез сейчас переименовывать в viktorina и обнаружил что в многих местах уже итак прописано viktorina а не viсtorina
вошем вот файл временное место для зипа но почемуто он у меня не отображается. гдето чтото сделал не так
nedoriko 26 февраля 2013 в 18:10 0
все. сам разобрался. оказывается выводил не правильно.
letsgo 25 февраля 2013 в 17:26 0
Зачем скрываете викторину от незарегистрированных?
Александр I 25 февраля 2013 в 17:46 0
Можно много чего дописать в коде, и админку, и редактирование вопросов, и добавление вопросов пользователями, и добавление картинок к вопросам, и показывать викторину незарегистрированным, и...
Код правил только для того, чтобы получился рабочий компонент.
Майкл 25 февраля 2013 в 20:12 +1
Отличный компонент!
Ещё бы реализовать это всё

-"Можно много чего дописать в коде, и админку, и редактирование вопросов, и добавление вопросов пользователями, и добавление картинок к вопросам, и показывать викторину незарегистрированным, и..."-

и было бы вообще не превзойденная вещь!!!
WALTERZ 2 марта 2013 в 13:23 +2
Напишите какие доработки хотите видеть?
Александр Корн 3 марта 2013 в 10:34 0
Мне кажется самое необходимое - редактирование вопросов из админки и массовое добавление вопросов из файла через админку
WALTERZ 3 марта 2013 в 12:36 +1
Это уже есть.
Также сделал разделение на категории вопрсов и просмотр результатов пройденных вопросов.

Но обновиться с этой версии не получится, компонент переписан почти полностью.
Александр Корн 3 марта 2013 в 14:42 0
Шикарно. Есть еще одна идея. Насколько я помню рейтинг существует. Так вот, если меня кто нибудь опережает в рейтинге, то мне приходит сообщение типа "пользователь ххх обогнал вас в рейтинге викторины". Или что-то подобное.
И теперь самое главное, когда и на каких условиях будет доступна ваша версия этого компонента?
WALTERZ 3 марта 2013 в 17:50 +1
Бесплатно. Когда закончу пока не знаю, работаю над ним в свободное время.
На данный момент:
-создание вопросов
-просмотр вопросов (+фильтрация, возможность удаления, скрытия и редактировать)
-создание категорий
-просмотр категорий (+фильтрация, возможность удаления, скрытия и редактирования)
-просмотр категорий (+фильтрация, возможность удаления, скрытия и редактирования)
-страница с вопросами (+пагинация)
-небольшие настройки
-модуль вывода результатов (рейтинг)
-небольшие доработки самой системы голосования

Если есть идеи - буду рад.
WALTERZ 3 марта 2013 в 17:55 +1
P.S.
я подумываю саму систему голосов новую написать, на одной странице все вопросы + возможность подсказки (задается в админке). Это позволит пользователю перейти на другой вопрос чтобы не терять времени. Ах да, и время на тестирование ограничить. А то и сам код скрипта мне не нравиться. Если будет достаточно большой функционал, то будет ЕЩЁ платная версия.
Александр Корн 3 марта 2013 в 19:16 +2
Супер. Еще привязать это к рейтингу (или биллингу в платной версии). В любом случае уже сейчас судя по описанию достоцный продукт. С нетерпением жду первой версии
Александр Корн 25 февраля 2013 в 18:10 +1
отлично... еще бы номер вопроса добавить... и вопрос - время влияет на что-нибудь?
Александр I 25 февраля 2013 в 18:23 0
еще бы номер вопроса добавить...
см. мой коммент выше.

вопрос - время влияет на что-нибудь?
Время потраченное на ответы влияет на общее количество баллов. Чем больше времени тратишь на ответы, тем меньше баллов получаешь.
Например, Федор ответил правильно на 14 вопросов и Василий ответил правильно на 14 вопросов.
Федор затратил 100 сек., а Василий 99 сек.
Василий получит больше баллов.
Александр Корн 25 февраля 2013 в 18:41 +1
Спасибо за такой подробный ответ ))) На второй вопрос ответ я бы понял и после первого предложения. )))
Но в любом случае, спасибо за ответ и огромное спасибо за Вашу работу!
Def 25 февраля 2013 в 18:18 0
а в адинке можно задавать викторину и в викторине задавать вопросы?

или это единая БД вопросов статичных?
Александр I 25 февраля 2013 в 18:27 0
Админки нет.
Всего в базе 1857 вопросов, которые редактировать, добавлять и удалять можно только напрямую в БД.
Dost 25 февраля 2013 в 21:23 0
Все просто. Выглядит симпатично.+
Александр 26 февраля 2013 в 12:58 0
Автору + здорово
lezginka.ru 26 февраля 2013 в 13:30 +1
+
доделать, добавление/редактирование вопросов явно не лишнее :)
EVV 26 февраля 2013 в 17:20 0
А кто-нибудь знает, как в таблице результатов сделать никнейм ссылкой на профиль?
Александр I 27 февраля 2013 в 07:48 0
EVV, поменяйте строку 17
Код PHP:
  1. $user = $_SESSION['user']['nickname'];
на
Код PHP:
  1. $user = "<a href='users/".$_SESSION['user']['login']."' target='_blank'>".$_SESSION['user']['nickname']."</a>";
EVV 27 февраля 2013 в 12:01 +1
Спасибо, всё работает) +
irbis 27 февраля 2013 в 14:30 0
Проблема выскочила!
При изменении этих строк в викторину пускают неавторизованных пользователей!
В результате таблица результатов с пустым именем!
Как исправить?
irbis 27 февраля 2013 в 16:06 0
в общем сделал так:
Код PHP:
  1. $user = $_SESSION['user']['nickname'];
оставил как есть, а перед:
Код PHP:
  1. $sql=<<<END
  2. INSERT INTO cms_viktorina_users (num, user, email, ip, ball, date_a, date_b, vopros, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, o11, o12, o13, o14, o15, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14, y15, yes, no, session)
  3. VALUES (
  4. "", "$user", "$email", "$ip", 0, "$date_a", "$date_b", 0, $sql_a 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "$session"
  5. );
  6. END;
добавил строку:
Код PHP:
  1. $userdb = "<a href='/users/".$_SESSION['user']['login']."' target='_blank'>".$user."</a>";
и в выше указанном запросе изменил "$user" на "$userdb"
Александр I 27 февраля 2013 в 16:48 0
Замените строку 17 (исходного файла) на
Код PHP:
  1. if ($_SESSION['user']['login']){
  2. $user = "<a href='users/".$_SESSION['user']['login']."' target='_blank'>".$_SESSION['user']['nickname']."</a>";
  3. } else {
  4. $user = "Гость";
  5. }
Александр I 27 февраля 2013 в 16:52 0
В моем случае не будет вопросов типа
letsgo:
Зачем скрываете викторину от незарегистрированных?
викторина не будет закрыта для незарегистрированных пользователей и они тоже смогут принять участие.
Александр I 27 февраля 2013 в 07:55 +2
Александр Корн:
отлично... еще бы номер вопроса добавить...
Найдите
Код PHP:
  1. if($page=="end") {
после добавьте
Код PHP:
  1. unset($_SESSION['count']);
найдите
Код PHP:
  1. } else if(isset($_POST["name"]) AND isset($_POST["email"]) AND $_POST["session"]) {
после добавьте
Код PHP:
  1. $_SESSION['count'] = 1;
найдите
Код PHP:
  1. if(isset($v[1])) {
после добавьте
Код PHP:
  1. $s_count = $_SESSION['count'] ++;
найдите
Код PHP:
  1. <tr><td><h3>$row[vopros]</h3></td></tr>
перед добавьте
Код PHP:
  1. <tr><td><h3>Вопрос $s_count из 15</h3></td></tr>
МитяЙ 5 марта 2013 в 16:32 0
А как очистить рейтинг?
WALTERZ 5 марта 2013 в 17:55 +2
очистка всех результатов:
Код PHP:
  1. truncate table cms_viktorina_users
на префикс обращайте внимание
МитяЙ 6 марта 2013 в 11:14 0
А где это прописывать?
WALTERZ 6 марта 2013 в 11:48 +1
сделать нужно такой запрос. в phpmyadmin например
Александр 19 марта 2013 в 06:27 0
замечательный, отличный компонент супер получился и мне очень очень понравился огромное вам человеческое спасибо за него))) +++++
Константин Г. 7 апреля 2013 в 11:07 0
1)ненашл где настраивать?
2)где добвить новые вопросы?
Константин Г. 7 апреля 2013 в 11:35 0
3)не появился в установленных компонентах
Константин Г. 7 апреля 2013 в 11:38 0
В компонентах появился, но: 1)ненашл где настраивать?
2)где добвить новые вопросы?
Александр I 7 апреля 2013 в 11:43 0
Комментарии почитать религия не позволяет?

1.
Админки нет.
Значит и настраивать негде и нечего.

2.
Всего в базе 1857 вопросов, которые редактировать, добавлять и удалять можно только напрямую в БД.
Константин Г. 7 апреля 2013 в 11:59 0
Зачем так грубо? Нужно писать сразу в блог это, а не в коменты. Вам религия не позволяет в лог написать сразу?
lesterkey 18 августа 2013 в 09:41 0
Скрытый текст виден только зарегистрированным пользователям
Евгений 6 января 2014 в 21:29 0
На 1.10.2 выводится ошибка
Код PHP:
  1. База пуста 14 SELECT * from cms_viktorina_users WHERE vopros=1 ORDER BY ball DESC LIMIT 50
xxuuu 6 января 2014 в 22:15 0
frontend.php замените префикс базы на свой
Евгений 7 января 2014 в 16:23 0
Префикс cms_ совпадает в базе и frontend.php, поэтому менять нечего. Не пойму в чем причина ошибки. На другом сайте (версия движка 1.9) действительно потребовалась замена префикса, после которой викторина заработала, а на 1.10.2 не работает
lezginka.ru 7 января 2014 в 13:21 +2
Скачать для версии 1.10 и выше
а под 1.10.3 поедет ?
Евгений 8 января 2014 в 16:38 0
По прежнему актуально: на 1.10.2 работает?
Евгений 13 января 2014 в 22:49 0
При использовании викторины заметил, что некоторые вопросы появляются очень часто, другие - совсем редко. Можно ли сделать, чтобы для каждого участника вопросы не повторялись, пока не будут сыграны все?
Евгений 13 января 2014 в 22:57 0
И еще желательно, чтобы в таблицу результатов записывался только лучший результат каждого участника. То есть, если участник прошел викторину с результатом хуже прежнего, он не записывается, если лучше - записывается.
Александр 9 апреля 2014 в 13:21 +1
а что на счет 1.10.3 & поддерживаю lezginka.ru +1