Занялся тут вопросом: а какие есть средства для wordpress, чтобы сделать тест? Пользователь должен ответить на несколько вопросов и в итоге получить какой-то результат. Немного пошарив на просторах интернета нашёл два решения, плагины wbquiz и TESTME.

Начнём обзор с первого. Скачиваем плагин и устанавливаем следующим образом:

  • 1) копируем файлы из папки plugins в вашу папку /wp-content/plugins,
  • 2) активируем плагин в панели управления на странице плагинов,
  • 3) создаём шаблон страницы, в котором не забываем использовать стандартный цикл и строчку в нём (пример можно посмотреть в архиве example\wb_quiz_template.php) и закидываем его в папку с используемой темой,
  • 4) создаём страницу через админку, используем для неё наш шаблон,
  • 5) добавляем произвольное поле с именем question_file, а в значение подставляем путь до файла опроса, это может быть абсолютный путь со строны сервера, например Z:\home\myblog\www\wp-content\plugins\wb_quiz_questions.php, или относительный путь от папки /wp-content/plugins, т.е. если ваш файл лежит в этой же папке, то пишем просто wb_quiz_questions.php, если же уровнем выше, то ../wb_quiz_questions.php,
  • 6) собственно создаём сам опрос, используя для примера файл plugins\wb_quiz_questions.php.

Используя стандартные файлы получим такую картину: сам опрос и результат.

Опрос

Результаты опроса

Отсюда сразу очевидные минусы плагина: используется только на страницах, хотя ничто не мешает поставить плагин для выполнения php скриптов в постах и вставить код в нужный пост, так же минус – необходимо самому php файл опроса, конечно в этом есть своя гибкость, но ей в полной мере могу воспользоваться лишь те, кто умеет разбираться в php коде.

Второй же плагин рассчитан на более широкую аудиторию и может похвастаться более широким функционалом. Судите сами:

  • 1) умеет создавать два типа тестов: тесты, где результат зависит от суммы баллов, и тТесты, где каждому ответу присваивается цифра или буква, а результат зависит от того, каких цифр или букв посетитель больше набрал,
  • 2) показывать статистику прохождения тестов (покажет самые популярные тесты, посчитает, сколько человек в день проходит тот или иной тест, а также наглядно продемонстрирует (с графиками), сколько каких ответов получили посетители для каждого теста),
  • 3) позволяет выбрать, кто может проходить тесты: все или только зарегистрированные пользователи,
  • 4) удобный редактор, такой же, как и в обычных постах, так что в описание вы сможете вставить не только текст, но и картинки и оформить так, как вам хочется. Жаль только что для вопросов редактор не используется, так что, если вы хотите вставить изображение или ссылку в вопрос, то придётся прописывать полностью теги в ручную (<img src=””> и <a href=””></a>).

Устанавливается он гораздо легче, просто скопируйте плагин в папку /wp-content/plugins, активируем в админке, и он готов для работы. Заполняем наш тест и вставляем код этого теста в нужную нам запись(например [TESTME 1]).

Редактор

Настройки

Статистика

Поставив на локал и протестив, я остался доволен, но радость долго не длилась. Установил на сайт, заполнил тест, но после прохождения теста результаты не выдавались, а просто выводился белый экран, тобишь страница не работала. Сразу возникло подозрение, что конфликтует с некоторыми плагинами, после выключения некоторых из них выяснилось, что виновником оказался HeadSpace2 (данный плагин меняет title, description, keywords). Плагин ключевой, так что ищем другой путь решения – идём рыться в коде плагина TESTME.

Место вычислено, им оказался файл testme_show.php в месте:

function Num_and_Padezh ($number, $array)
{
$last1 = substr($number, -1, 1);
if (strlen($number) &gt; 1) $last2 = substr($number, -2, 1);
 
$let = array (5,6,7,8,9,0);
 
if (in_array ($last1 ,$let) ) $line = $array[0];
elseif ($last2 AND $last2 == 1) $line = $array[0];
elseif ($last1 == 1) $line = $array[1];
else $line = $array[2];
 
return $line;
}
 
//Собственно, надпись
$testme_array_ball = array ('баллов', 'балл','балла');
$testme_array_otvet = array ('ответов', 'ответ','ответа');
$testme_array_vopros = array ('вопросов', 'вопрос','вопроса');
 
$testme_your_score_notice = get_option("testme_notice_got_points");
$testme_your_score_notice = str_replace("%got%", $testme_score, $testme_your_score_notice);
$testme_your_score_notice = str_replace("%total%", $testme_max_score, $testme_your_score_notice);
$testme_your_score_notice = str_replace("%балл%", Num_and_Padezh($testme_score, $testme_array_ball), $testme_your_score_notice);
$testme_your_score_notice = str_replace("%ответ%", Num_and_Padezh($testme_score, $testme_array_orvet), $testme_your_score_notice);
$testme_your_score_notice = str_replace("%вопрос%", Num_and_Padezh($testme_score, $testme_array_vopros), $testme_your_score_notice);
$testme_your_score_notice = '
<div class="testme_your_score">'.$testme_your_score_notice.'</div>
';

Не хочет работать функция Num_and_Padezh (функция родительного падежа и числительного). Чтож, не смертельно нужная функция, так что можем спокойно убить её :) . Меняем весь этот код на:

$testme_your_score_notice = get_option("testme_notice_got_points");
$testme_your_score_notice = str_replace("%got%", $testme_score, $testme_your_score_notice);
$testme_your_score_notice = str_replace("%total%", $testme_max_score, $testme_your_score_notice);
$testme_your_score_notice = str_replace("%балл%", 'балла(ов)', $testme_your_score_notice);
$testme_your_score_notice = str_replace("%ответ%", 'ответа(ов)', $testme_your_score_notice);
$testme_your_score_notice = str_replace("%вопрос%", 'вопроса(ов)', $testme_your_score_notice);
$testme_your_score_notice = '
<div class="testme_your_score">'.$testme_your_score_notice.'</div>
';

и теперь всё замечательно работает.

Кто любит похимичить попробуйте wbquiz, ну а для всех я рекомендую TESTME.

6 комментария(ев)

  1. lightg


    Хотела подписаться на RSS – выдает ошибку :-(
    Материалов пока совсем мало, но в будущем надеюсь на что-то интересненькое, т.к. пока сама только-только осваиваю вордпресс.


  2. Profer


    Всё подправил, просто времени не было, заработался)


  3. Ника


    Установила 2-ой плагин-все здорово работает,но вариант ответа в тесте может быть только один(( Искала в Инете не нашла-чтобы был плагин и несколько вариантов ответа.. Может вы подскажете?


  4. Profer


    Эту возможность предоставляет первый плагин, но для это необходимо разбираться в php коде, т.к. весь тест прописывается именно в php файле.


  5. Ника


    т.е. правильно ли я понимаю-получается для каждого теста нужно будет прописывать отдельную php- страницу?


  6. Profer


    Для каждого теста нужно будет писать свой php файл, а уж в страницу будет вставляться ссылка на этот файл.


Оставить комментарий