Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Пишем php-скрипт для создания теста на Wordpress

#1 AlexF

AlexF
  • Пользователь
  • 6 сообщений
  • Репутация: 2
2

Отправлено 11 Ноябрь 2012 - 14:35

Пришлось самому написать тест используя 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 - система автоматизированного продвижения сайтов и управления контекстной рекламой. Обсудить на форуме.

Изображение

Прикрепленные файлы

  • Прикрепленный файл  4WP_PhP.rar   1,58К   Количество загрузок: 342

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Пишу скрипты под заказ на PHP ЛЮБОЙ СЛОЖНОСТИ
  2. Услуги программиста. Создание сайтов и скриптов. PHP. MySQL. JavaScript.Услуги
  3. Создание сайтов под ключ (joomla,WordPress, Shop-Script, Drupal, OpenCart)

#2 Dex

Dex
  • Пользователь
  • 1 сообщений
  • Репутация: 0

Отправлено 14 Сентябрь 2016 - 12:22

@AlexF, Автор, использовать ваш скрипт не получается, так как после нажатия клавиши появляется ошибка. Помогите разобраться.


  • 0

#3 sc2r2bey

sc2r2bey
  • Пользователь
  • 34 сообщений
  • Репутация: 0

Отправлено 17 Сентябрь 2016 - 04:19

а почему сразу плагин не сделать? и тогда wp будет доволен )

 

я не знаю, в чем вы уверенны, но вот это убило:

@$q1 = $_POST['q1'];
@$q2 = $_POST['q2'];
@$q3 = $_POST['q3'];
@$q4 = $_POST['q4'];
@$q5 = $_POST['q5'];


  • 0


Оформление форума – IPBSkins.ru