Перейти к контенту

[2.3.x](bfarber) Викторина (Trivia system)


Рекомендуемые сообщения

А нельзя ли сделать так, чтобы можно было создать вопросы с вариантами ответов, то есть допустим из 5 вариантов выбрать 1 верный, как в тесте?

+1 если можно, то я тоже хочу так :D

 

я так понял нельзя посмотреть кто ответил правильно и кто нет? т.е. допустим за последний час играли 5 человек у меня, и 10 ответов правильных и все кричат что именно они прально ответили на все 10 ответов, можно как-то узнать кто именно ответил?

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 322
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

+1 если можно, то я тоже хочу так

Ответ выше и в моей подписи.

 

я так понял нельзя посмотреть кто ответил правильно и кто нет?

Таблица ibf_trivia_answers.

Ссылка на комментарий
Поделиться на других сайтах

тупо, но сделал, чтоп часики тикали - сколько осталось времени

в ./sources/components_public/trivia.php

в функциях: start_session() и cont_session()

перед стракой

$this->output .= $this->ipsclass->compiled_templates['skin_trivia']->question_block($qrow);

добавляем:

$qrow['time']=$this->ipsclass->vars['t_time_restrict'];

 

 

затем в каждом скине, в шаблоне skin_trivia -> question_block

перед

<b>{$ques['question']}</b> ({$ques['len']} букв)<br /><br />

 

добавляем:

<form name="co"><input name="cntr" maxlength=58 size=58 style="background-color:transparent;border:0;">
<input name="zt" type="hidden" value={$ques['time']}>
<script LANGUAGE="JavaScript">
<!-- Begin
var down;var min1,sec1;var cmin2,csec2;
Down();

function Minutes(data) {
mm=data/60;
return(mm); 
}
function Seconds(data) {		
ss=data-60*data/60;  
return(ss); 
}

function Down() {	   
cmin2=1*Minutes(document.co.zt.value);		
csec2=0+Seconds(document.co.zt.value);		
DownRepeat(); 
}

function Display(min,sec) {	 
var disp;	   
if(min<=9) disp=" 0";   
else disp=" ";  
disp+=min+":";  
if(sec<=9) disp+="0"+sec;	   
else disp+=sec; 
document.co.cntr.value="Вам осталось: "+disp;}

function DownRepeat() { 
csec2--;		
if(csec2==-1) { 
csec2=59; cmin2--; }	   
Display(cmin2,csec2);   
if((cmin2==0)&&(csec2<=0)) 
document.co.cntr.value="Ваше время истекло";
else down=setTimeout("DownRepeat()",1000); 
}

// End -->
</SCRIPT>
</form><br>

 

и будут тикать часики...

Ссылка на комментарий
Поделиться на других сайтах

Когда начинаешь играть все без глюков, а как только переходиш к второму и последующим вопросам глюк:

 

Вам осталось: 0-1:33

Белеющий в тумане, одинокий? ( букв)

 

С временем и с кол-вом букв

 

приношу свои извенения все работает )

Ссылка на комментарий
Поделиться на других сайтах

После установки при переходе на раздел викторины:

 

IPB Предупреждение [2] load_language(): Unable to access /srv/www/htdocs/forum/cache/lang_cache/russian/lang_trivia.php (Строка: 1702 файла /sources/ipsclass.php)

IPB Предупреждение [2] load_language(/srv/www/htdocs/forum/cache/lang_cache/russian/lang_trivia.php): failed to open stream: No such file or directory (Строка: 1702 файла /sources/ipsclass.php)

 

Как исправить?

 

V.2.1.7 rus

Ссылка на комментарий
Поделиться на других сайтах

Скопировать lang_trivia.php из папки ./cache/lang_cache/ru/ в ./cache/lang_cache/russian/
Ссылка на комментарий
Поделиться на других сайтах

в статистике правельных ответов честнее писать: 10 из 30(например)

для этого

в файле: sources/components_public/trivia.php

блок:

		$q2 = $this->ipsclass->DB->query("SELECT SUM(trivia_correct) as thesum,mid,mname FROM ".SQL_PREFIX."trivia_sessions GROUP BY mid ORDER BY thesum DESC LIMIT 0,5;");
	$block2 = $this->ipsclass->compiled_templates['skin_trivia']->stat_block_start($this->ipsclass->lang['most_served'], $this->ipsclass->lang['stat_name'], $this->ipsclass->lang['stat_answers']);
	while($r2 = $this->ipsclass->DB->fetch_row($q2))
	{	
		$r2['data'] = $r2['thesum'];
		$r2['mname'] = $this->ipsclass->make_profile_link($r2['mname'], $r2['mid']);
		$block2 .= $this->ipsclass->compiled_templates['skin_trivia']->stat_block_row($r2);
	}
	$block2 .= $this->ipsclass->compiled_templates['skin_trivia']->stat_block_end();

 

заменить на блок:

		$q2 = $this->ipsclass->DB->query("SELECT SUM(trivia_correct) as thesum,SUM(trivia_incorrect) as insum,mid,mname FROM ".SQL_PREFIX."trivia_sessions GROUP BY mid ORDER BY thesum DESC LIMIT 0,5;");
	$block2 = $this->ipsclass->compiled_templates['skin_trivia']->stat_block_start($this->ipsclass->lang['most_served'], $this->ipsclass->lang['stat_name'], $this->ipsclass->lang['stat_answers']);
	while($r2 = $this->ipsclass->DB->fetch_row($q2))
	{	
		$r2['data'] = $r2['thesum']." из ".($r2['insum']+$r2['thesum']);
		$r2['mname'] = $this->ipsclass->make_profile_link($r2['mname'], $r2['mid']);
		$block2 .= $this->ipsclass->compiled_templates['skin_trivia']->stat_block_row($r2);
	}
	$block2 .= $this->ipsclass->compiled_templates['skin_trivia']->stat_block_end();

Ссылка на комментарий
Поделиться на других сайтах

чтоп убрать регистрозависимость тем у кого strtolower не пашет

и с сетлокалью не прокатывает - самый простой способ

все в том же sources/components_public/trivia.php

ПЕРЕД

				$correct = ((strtolower(trim($this->ipsclass->input['the_answer'])) == strtolower($pqrow['answer'])) and (intval($this->ipsclass->input['id']) != $meminfo['last_right_id']))?1:0;

ДОБАВЛЯЕМ

				$this->ipsclass->input['the_answer']=strtr($this->ipsclass->input['the_answer'], "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", "абвгдеёжзийклмнопрстуфхцчшщъыьэюя");
			$pqrow['answer']=strtr($pqrow['answer'], "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", "абвгдеёжзийклмнопрстуфхцчшщъыьэюя");

Ссылка на комментарий
Поделиться на других сайтах

DELETE * FROM `ibf_trivia`; DELETE * FROM `ibf_trivia_answers`;

Ссылка на комментарий
Поделиться на других сайтах

Del_Piero_7 вместо этого

<b>{$ques['question']}</b><br /><br />

вставь это:

<b>{$ques['question']}<br />Количество букв в ответе: {$ques['len']}</b><br /><br />

 

С этим викторина вообще не запускается.

 

Ни у кого нет пака с корректными вопросами-ответами?

Ссылка на комментарий
Поделиться на других сайтах

С этим викторина вообще не запускается.

а ты эту строку вставлял???

$qrow['len'] = $qrow['answer'];

 

Ни у кого нет пака с корректными вопросами-ответами?

у меня 52607 вопросов

Ссылка на комментарий
Поделиться на других сайтах

$qrow['len'] = $qrow['answer'];
:D

$qrow['len'] = strlen($qrow['answer']);

 

С этим викторина вообще не запускается.

Можно поподробнее?

Ссылка на комментарий
Поделиться на других сайтах

а ты эту строку вставлял???

$qrow['len'] = $qrow['answer'];

 

Блин. Нет, конечно. Никто же этого не указывал.

 

BooDi или Sannis, не мог ли бы вы написать человеческую инструкцию с добавлением возможности показывать количество букв в ответе и чётко указать куда добавлять

{$ques['len']}

у меня 52607 вопросов

 

Чтобы вопросы были корректные. То есть не было вопросов типа "Штат в Америке", которых 50 с фигом.

 

Можно поподробнее?

Белая страница.

Ссылка на комментарий
Поделиться на других сайтах

Хм. Повторюсь:

 

В ./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']}

 

Белую страницу тут вызвать нечему, по крайней мере не этими строчками.

Я бы сказал куда конкретно в шаблоне вставить, но я же не знаю где вы хотите увидеть эту цифру...

 

Можете переслать мне отредактированный вами файл, проверить его могу я. sattis[сбк] mail.ru

Ссылка на комментарий
Поделиться на других сайтах

Sannis, в на четвёртой странице в посте у Del_Piero_7 это не прошло и я сделал как указал alextan в его посте. Верить только вам?)

 

Вставить не суть важно, хоть сразу после вопроса.

Заранее спасибо :D

 

 

Arhar, плиз, подскажите как включить.

Ссылка на комментарий
Поделиться на других сайтах

Цитата(BooDi)

$qrow['len'] = $qrow['answer'];

 

$qrow['len'] = strlen($qrow['answer']);

 

:D

вырезал - лишнее отрезал ;)

 

Чтобы вопросы были корректные. То есть не было вопросов типа "Штат в Америке", которых 50 с фигом.

все чото никак не проверить.... но юзерам оставил кнопку Скрыть вопрос, если что они скрывают...

А модераторам Удалить/опубликовать с номером вопроса. Если надо чото поменять - говорят мне номер, я редактирую, пока не напишу форму для модераторов, где можно будет редактировать.

Так что уже 52954 вопроса :)

Ссылка на комментарий
Поделиться на других сайтах

а как можно сделать кнопки рядом

 

 

кнопки - Ответить -- Завершить игру ?

 

кнопка Предыдущий вопрос и Следущий вопрос

 

Иногда хочется не ответить на какой то вопрос. Но также не хочется ответить не правильно, чтоб перейти на другой вопрос. было бы отлично если могли бы сделать эти 2 кнопки.

 

например когда пользователь в игре при ответа на вопросиков было бы следушие кнопки:

 

Предыдущий вопрос -- Ответить -- Завершить игру-- Следущий вопрос

 

спасибо за внимание.

Ссылка на комментарий
Поделиться на других сайтах


×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.