Пришлось самому написать тест используя php для своего блога (
www.IAim.ru) на движке WordPress, хотя сам скрипт подойдет и для других CMS.
Оставлю в стороне вопрос:
Зачем нужен тест на блоге? Но вот почему самому пришлось изобретать велосипед, ведь есть такие плагины для этих целей, как: TESTME, Quiz Plugins, и еще парочку, запамятовал…
Не понравились плагины по многим причинам:
ссылки на сайт разработчика – замудренно спрятана, создаются лишние базы данных, осуществляются перелистывания - переходы...Хотелось, чтоб весь тест был на одной страницы – без всяких перелистываний и другой не нужной чепухи… С гибкой системой подсчетов баллов. И вообще очень гибким во всех отношениях.
Итак, чтоб написать свой тест на php для ВП нам понадобятся:- Сам тест в txt (doc) формате: вопросы и варианты ответов
- Начальные знания php. Вообще, я даю готовый шаблон, но в 90% случаях нужно знать, где потерялась либо точка с запятой, либо кавычка. Часто по невнимательности затираю – а потом ищу…
- Плагин для ВП (для других смс – ищите свой плагин): Inline PHP , перебирал другие плагины для вставки непосредственно в статью кода скприпта – не работали корректно, зависит от настройки хостинга
- Блокнот, мой выбор: Notepad++
- Дополнительно, но не обязательно. Локальный хост (Денвер или XAMPP), хотя он мне нужен был только в первое время – теперь сразу заношу в новую запись через админку
1. HTML теста. (Весь тест оформляем через форму в виде
радио кнопок, хотя это не принципиально, можно и выподающие списки, вводы значений....)
<h3>Выберите один из вариантов:</h3>
<form method="POST">
<strong>1. Ель и ее среда обитания: </strong> <!-- Вопрос №1 и так далее, name="q1" - соответвсвенно это номер вопроса --><p>
<input name="q1" value="3" checked="" type="radio">a) Лес <!-- Вариант ответа, value - балы за ответ --><input name="q1" value="2" type="radio">б) Поляна
<input name="q1" value="1" type="radio">c) Болото
</p>
<strong>2. Листья имеют форму: </strong>
<p>
<input name="q2" value="2" checked="" type="radio">a) Шишек
<input name="q2" value="3" type="radio">б) Иголок
<input name="q2" value="1" type="radio">c) Листья, как листья
</p>
<strong>3. Практическое применение Ели в народном хозяйстве: </strong>
<p>
<input name="q3" value="1" checked="" type="radio">a) На Новый Год
<input name="q3" value="2" type="radio">б) Для растопки печки
<input name="q3" value="3" type="radio">d) Буратино был точно не из Ели
</p>
<strong>4. Что вы думаете о Елке: </strong>
<p>
<input name="q4" value="3" checked="" type="radio"> a) Полезное дерево
<input name="q4" value="-5" type="radio"> б) Ненавижу НГ
<input name="q4" value="2" type="radio"> c) Да, ничего не думаю
</p>
<strong>5. Продолжите песенку, «в лесу родилась елочка…»:</strong>, ,
<p>
<input name="q5" value="2" checked="" type="radio">a) … в лесу она росла
<input name="q5" value="1" type="radio"> б) … и кто ее родил
<input name="q5" value="3" type="radio"> c) Что за детский сад
</p>
<input name="test" value=" Получить результат " type="submit">
</form>Все теги средсвами ШТМЛ - для визуального оформления, к самой логике теста ни имеют отношения,
Где,
name="q5" - номер вопроса,
value="3" - баллы за вопрос,
c) Что за детский сад - ответ на вопрос
Это все разметка текста средствами html, дальше уже будет сам скрипт. Но прежде...
2. Ставим плагин Inline PHP для WP
Vachsite.ru /wp-admin/ -> Плагины -> Добавить новый -> Поиск: Inline PHP (ставим и активируем)
Особенности данного плагина:
Обычно, скрипты на php когда внедряют их в html, выглядят так:
<!--?php
... ... // Здесь тело, код, скрипта
?-->
НО, с WP в создаваемых записях такое не пройдет, для этого и нужен плагин Inline PHP
<exec>
... ... // Здесь тело, код, скрипта непосредсвенно в записях блога
</exec>3. Итак, сам скрипт теста на ПШП для ВП, мне лень тестить на локальном ПК (я уверен в себе), я сразу постю (предварительно составив его в блокноте) в новую запись, вот что получается:<exec>// Тест на Елки палки и вашу ботаническую составляющюю
// Проверяем нажата ли кнопка формы
if (@$_POST['test']){ // Если кнопка нажата, выполняем скрипт echo "<strong>Результат теста:</strong>"; // Вывод надписи
echo "<div id="test_rezult">"; // Визуальное офомление // Выуживаем переменные с POST (это метод самой формы)
//С урл берется переменная и присваивается, q – Номера вопросов
@$q1 = $_POST['q1'];
@$q2 = $_POST['q2'];
@$q3 = $_POST['q3'];
@$q4 = $_POST['q4'];
@$q5 = $_POST['q5'];
// Слаживаем в данном случае, но вариантов масса, но нужны уже начальные навыки в PhP
$rez_test=$q1+$q2+$q3+$q4+$q5;
// Условие, выводим как результат теста в зависимости от набранных баллов
if($rez_test < 8 ){ echo " Ваши познания в Елях вызывает шок "; }
if($rez_test > 7 && $rez_test < 14 ){ echo " Вы ничего не смыслите в Елках-Палках "; }
if($rez_test > 13 ){ echo "Ботан!.."; }
echo "</div>"; // Закрываем контейнер <div id="test_rezult"> для визуального оформления
}
</exec>Результат теста выведет после нажатия кнопки и в том месте где этот скрипт поставлен, т.е. либо в начеле тестовых вопросов или в конце.
Если задача - протестить на локальном ПК то вместо
<exec>... ...</exec> заключаем в
<?php ... ... ?>Посмотреть
на это чудо на работу готового теста и скрипта можно
тут., в разделе Тесты блога - размещены более серьезные тесты на подобном скрипте.
Скачать штпмл и пшп скрипт - смотрите в прикрепленных файлах ниже (помнинет о
<exec>... ...</exec> и
<?php ... ... ?>, первый вариант для ВП, второй для локал сервера ... )
Важно! Вообще, ВордПрессу не нравится, когда непосредсвенно в записи добавляют скрипты. Срабатывает своего рода защита. По этому плигины для вставки програмного кода в саму запись либо не работают, либо работают коряво.
Выход, для
Inline PHP:
1. Работать, редактировать только в отображении - вкладка HTML.
2. Если нужно поправить запись - захожу на другую, переключаю Визуально на HTML, и только потом ищу сам тест.
При поддержке:
SeoPult - система автоматизированного продвижения сайтов и управления контекстной рекламой.
Обсудить на форуме.
[img]http://www.masterwebs.ru/sp/seopult.gif[/img]