xaker13 Опубликовано 5 Мая 2007 Жалоба Поделиться Опубликовано 5 Мая 2007 Как сделать чтобы не только админ мог видеть правильный ответ? Ссылка на комментарий Поделиться на других сайтах Прочее
Zahar632 Опубликовано 5 Мая 2007 Жалоба Поделиться Опубликовано 5 Мая 2007 А нельзя ли зделать чтоб викторина была похожа вот на эту: http://www.viktorina.net/ .Тут и баллы по времини ответа на вопрос зачисляются и статистика ведется. Да и впринципе початится можно. Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 6 Мая 2007 Автор Жалоба Поделиться Опубликовано 6 Мая 2007 Дело в том что там и стоит 1 ужеТогда вам прийдётся колоться какие у вас кодировки форума/базы. Либо обратиться к ФАКу ибо проблемы не с модом а с софтом форума А нельзя ли зделать чтоб викторина была похожа вот на эту...Можно. Только за $ и не прям сейчас.Будут и очки и победившие и лучшие и сколько угодно отдельных викторин и статистика получше и т.д. Но как я уже сказал, попозже... Ссылка на комментарий Поделиться на других сайтах Прочее
Lera Опубликовано 7 Мая 2007 Жалоба Поделиться Опубликовано 7 Мая 2007 if(strtolower($this->ipsclass->input['the_answer']) == strtolower($pqrow['answer']))странно, но эта конструкция не работает. Я насколько понял, переводится в нижний регистр ответ из базы и ответ пользователя и сравниваются, но на самом деле ответ пользователя почему - то не переводится в нижний регистр. То есть по сути строчка КОРТ и корт не равны при сравнении таким образомТоже не работает, заменила, как указано. Не срабатывает. Букву ё не видит, с большой буквы не написать Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 7 Мая 2007 Автор Жалоба Поделиться Опубликовано 7 Мая 2007 Не видит ё? Насколько мне известно, это связано с тем что не выбрана русская локаль в PHP. Попробуйте перед этой строчкой добавить (если Linux/Unix etc.):set_locale(LC_ALL,'RU_ru');Если суппорт у хостера быстрый, они быстрее меня подскажут решение Ссылка на комментарий Поделиться на других сайтах Прочее
Lera Опубликовано 7 Мая 2007 Жалоба Поделиться Опубликовано 7 Мая 2007 Sannis, спасибо за твою отзывчивость и быструю реакцию на всё, приятно обращаться к тебе Я не знаю где добавлять, извиняюсь. Просто написала пользователям, чтоб про ё и заглавные буквы забыли Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 7 Мая 2007 Автор Жалоба Поделиться Опубликовано 7 Мая 2007 Я не знаю где добавлять, извиняюсь.Передstrtolower($this->ipsclass->input['the_answer']) == strtolower($pqrow['answer']))добавьтеset_locale(LC_ALL,'RU_ru'); Ссылка на комментарий Поделиться на других сайтах Прочее
Lera Опубликовано 7 Мая 2007 Жалоба Поделиться Опубликовано 7 Мая 2007 (изменено) Спасибо. Сейчас добавлю strtolower это у меня не пашет почему-то, всё равно только с маленькой буквы приходится писать. Правильный ответ: владиВы ответили: ВладиВаш ответ неверный В коде поставила так, верно? set_locale(LC_ALL,'RU_ru'); if(strtolower($this->ipsclass->input['the_answer']) == strtolower($pqrow['answer'])) Изменено 7 Мая 2007 пользователем Lera Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 8 Мая 2007 Автор Жалоба Поделиться Опубликовано 8 Мая 2007 В люборм случае может получиться, что пользователю попадётся вопрос на который он отвечал, ибо он выбирается рандомно. Если бы это было система с отдельными викторинами в которых есть вопросы и засчитывалось бы прохождение викторины - имело бы смысл так делать. Разве имеет смысл делать?ты ничего не понял, стоит мне ответить на 1 вопрос и я могу накрутить себе статистику хоть до миллионаИсправлено. Инструкция в архиве отдельным файлом. Ссылка на комментарий Поделиться на других сайтах Прочее
Lazy23 Опубликовано 11 Мая 2007 Жалоба Поделиться Опубликовано 11 Мая 2007 (изменено) В файле trivia.php строка 407 ошибка:$this->ipsclass->DB->query("UPDATE ".SQL_PREFIX."trivia_sessions SET trivia_incorrect=trivia_incorrect+1, session_activity='".time()."', currentcorrect='0' WHERE tsid='{$meminfo['tsid']}';"); $this->ipsclass->DB->query("INSERT INTO ".SQL_PREFIX."trivia_sessions SET trivia_incorrect=trivia_incorrect+1, session_activity='".time()."', currentcorrect='0' WHERE tsid='{$meminfo['tsid']}';");[/b]Похоже, что запрос с INSERT INTO нужно убрать. P.S. В lang файле 'outoftime' нужно исправить, правильно так: "не был дан вовремя" - "не", в данном случае, пишется раздельно. Изменено 11 Мая 2007 пользователем Lazy23 Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 11 Мая 2007 Автор Жалоба Поделиться Опубликовано 11 Мая 2007 Спасибо P.S. Больше нужно присматриваться к чужому коду... Ссылка на комментарий Поделиться на других сайтах Прочее
eozee Опубликовано 15 Мая 2007 Жалоба Поделиться Опубликовано 15 Мая 2007 Похоже, что запрос с INSERT INTO нужно убрать. А как убрать? Приведите, пожалуйста, кусок кода целиком. Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 15 Мая 2007 Автор Жалоба Поделиться Опубликовано 15 Мая 2007 А как убрать? Приведите, пожалуйста, кусок кода целиком.$this->ipsclass->DB->query("UPDATE ".SQL_PREFIX."trivia_sessions SET trivia_incorrect=trivia_incorrect+1, session_activity='".time()."', currentcorrect='0' WHERE tsid='{$meminfo['tsid']}';"); $this->ipsclass->DB->query("INSERT INTO ".SQL_PREFIX."trivia_sessions SET trivia_incorrect=trivia_incorrect+1, session_activity='".time()."', currentcorrect='0' WHERE tsid='{$meminfo['tsid']}';");заменить на $this->ipsclass->DB->query("UPDATE ".SQL_PREFIX."trivia_sessions SET trivia_incorrect=trivia_incorrect+1, session_activity='".time()."', currentcorrect='0' WHERE tsid='{$meminfo['tsid']}';"); Ссылка на комментарий Поделиться на других сайтах Прочее
Del_Piero_7 Опубликовано 15 Мая 2007 Жалоба Поделиться Опубликовано 15 Мая 2007 Можно ли сделать в викторине чтобы показывало количество букв в ответе? Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 15 Мая 2007 Автор Жалоба Поделиться Опубликовано 15 Мая 2007 (изменено) Естессно. В ./sources/component_public/trivia.php в функциях start_session() и cont_session() перед$this->output .= $this->ipsclass->compiled_templates['skin_trivia']->question_block($qrow);добавить$qrow['len'] = strlen($qrow['answer']);и в шаблоне skin_trivia -> question_block в нужном вам месте добавить{$ques['len']} Изменено 16 Мая 2007 пользователем Sannis Ссылка на комментарий Поделиться на других сайтах Прочее
Del_Piero_7 Опубликовано 16 Мая 2007 Жалоба Поделиться Опубликовано 16 Мая 2007 Все сделал как описано не появилось кол-во букв...( $qrow['len'] = strlen($qrow['question']); добавлял 2 раза. {$ques['len']} вставлял в скине во все возможные места не помогло...( Ссылка на комментарий Поделиться на других сайтах Прочее
Kraft Опубликовано 18 Мая 2007 Жалоба Поделиться Опубликовано 18 Мая 2007 После установки Викторины...Нажав на "Компоненты" пустая страничка выходит... Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 18 Мая 2007 Автор Жалоба Поделиться Опубликовано 18 Мая 2007 Фикс. Перекачайте архив и замените файлы. Установку проводить заново не надо. Kraft, ваша проблема скорее всего этим решится. Ссылка на комментарий Поделиться на других сайтах Прочее
alextan Опубликовано 19 Мая 2007 Жалоба Поделиться Опубликовано 19 Мая 2007 хм... после обновления до версии 2.1.2 начала вылезать ошибка:Fatal error: Call to undefined method skin_trivia_2::button_add_question() in /usr/home/httpdocs/forum/sources/components_public/trivia.php on line 183 переустановка шаблонов все решило! к сожалению версия 2.1.2 также не решила вопрос с накруткой счетчика, отвечаешь единожды правильно и после этого жмешь хоть до посинения F5 Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 19 Мая 2007 Жалоба Поделиться Опубликовано 19 Мая 2007 защита от дурака отсутствует в самом модуле)))афтар не учел, афтар не достоин быть в разработчиках IPBпозор bfarber... $pquestion = $this->ipsclass->DB->query("SELECT * FROM ".SQL_PREFIX."trivia WHERE open='1' AND id='".intval($this->ipsclass->input['id'])."' LIMIT 1"); $pqrow = $this->ipsclass->DB->fetch_row($pquestion); $correct = (strtolower(trim($this->ipsclass->input['the_answer'])) == strtolower($pqrow['answer']))?1:0;вот тут значит идет проверка...стало быть, надо делать такпри правильном ответе писать ид вопроса с правильным ответом в таблицу сессийпотом при проверке правильности также смотреть, а не совпадают ли ид последнего отвеченного с intval($this->ipsclass->input['id']) вот наверное и все модифицируецо одним ALTER TABLE и небольшим изменением в$this->ipsclass->DB->query("UPDATE ".SQL_PREFIX."trivia_sessions SET trivia_correct=trivia_correct+1, session_activity='".time()."', currentcorrect=currentcorrect+1 {$toqry} WHERE tsid='{$meminfo['tsid']}'");и$correct = (strtolower(trim($this->ipsclass->input['the_answer'])) == strtolower($pqrow['answer']))?1:0; значицо буду писать мод 1.ALTER TABLE ibf_trivia_sessions ADD last_right_id int(10) NOT NULL default '0' ./sources/components_public/trivia.php2. найти$correct = (strtolower(trim($this->ipsclass->input['the_answer'])) == strtolower($pqrow['answer']))?1:0;заменить на$correct = ((strtolower(trim($this->ipsclass->input['the_answer'])) == strtolower($pqrow['answer'])) and (intval($this->ipsclass->input['id']) != $meminfo['last_right_id']))?1:0; 3. найти$this->ipsclass->DB->query("UPDATE ".SQL_PREFIX."trivia_sessions SET trivia_correct=trivia_correct+1, session_activity='".time()."', currentcorrect=currentcorrect+1 {$toqry} WHERE tsid='{$meminfo['tsid']}'");заменить на$this->ipsclass->DB->query("UPDATE ".SQL_PREFIX."trivia_sessions SET trivia_correct=trivia_correct+1, session_activity='".time()."', currentcorrect=currentcorrect+1, last_right_id=".intval($this->ipsclass->input['id'])." {$toqry} WHERE tsid='{$meminfo['tsid']}'"); нужно опробовать... Ссылка на комментарий Поделиться на других сайтах Прочее
alextan Опубликовано 19 Мая 2007 Жалоба Поделиться Опубликовано 19 Мая 2007 ай маладца, уже прикинул решение, сегодня опробую... Arhar, все работает отлично, в случае данных махинаций, счетчик не накручивается, появляеться ошибка что ответ неверный единственное плохо, что в случае накрутки по F5, новые вопросы продолжают идти с каждым нажатием F5, но это уже мелочи и проблема того, кто занимается накрутками.Спасибо за решение! Ты один из лучших! Del_Piero_7 вместо этого <b>{$ques['question']}</b><br /><br />вставь это:<b>{$ques['question']}<br />Количество букв в ответе: {$ques['len']}</b><br /><br /> теперь осталось только добавить счетчик с обратным отсчетом... Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 19 Мая 2007 Автор Жалоба Поделиться Опубликовано 19 Мая 2007 защита от дурака отсутствует в самом модуле)))Вот чёрт. Код у него староватый же был, 2 летней давности для ИПБ 2.0.х) Не заметил проверку не вставил в этот запрос, учту. Ссылка на комментарий Поделиться на других сайтах Прочее
Kraft Опубликовано 21 Мая 2007 Жалоба Поделиться Опубликовано 21 Мая 2007 Фикс. Перекачайте архив и замените файлы. Установку проводить заново не надо. Kraft, ваша проблема скорее всего этим решится. Файлы обновил. Проблема не решилась... Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 21 Мая 2007 Автор Жалоба Поделиться Опубликовано 21 Мая 2007 Хм. Туплю я что-то. При заходе на вкладку? А раньше открывалась? Посмотрите на вкладке ПРОЧЕЕ в Управлении компонентами есть Викторина? P.S. Напишите в ICQ если что... Ссылка на комментарий Поделиться на других сайтах Прочее
Wandragor Опубликовано 23 Мая 2007 Жалоба Поделиться Опубликовано 23 Мая 2007 А нельзя ли сделать так, чтобы можно было создать вопросы с вариантами ответов, то есть допустим из 5 вариантов выбрать 1 верный, как в тесте? Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения