Как создать викторину в modx

Я новичок в modx, и мне нужно создать многостраничную викторину на моем сайте. Любое предложение будет полезным.

1 ответ

Хотя для этого есть несколько способов, комбинация дополнений FormIt и FormItRetriever может быть именно тем, что вам нужно. FormIt управляет обработкой ваших форм викторины, которая включает в себя сохранение данных в кеше или в базе данных в виде объекта JSON. И, как следует из названия, FormItRetriever позволяет вам извлекать ранее сохраненные данные формы на следующей странице.

Вот быстрый пример, адаптированный из документации FormIt:

Страница 1

[[!FormIt?
 &submitVar=`go`
 &hooks=`spam,redirect`
 &store=`1`
 &redirectTo=`id-of-next-page`
]]
<form action="[[~[[*id]]]]" method="post">
    <input type="hidden" name="nospam" value="" />
    <label for="qzq1">Quiz question 1: [[!+fi.error.qzq1]]</label>
    <input type="text" name="qzq1:required" id="qzq1" value="[[!+fi.qzq1]]" />
    <label for="qzq2">Quiz question 2: [[!+fi.error.qzq2]]</label>
    <input type="text" name="qzq2:required" id="qzq2" value="[[!+fi.qzq2]]" />
    <label for="qzq3">Quiz question 3: [[!+fi.error.qzq3]]</label>
    <textarea name="qzq3:stripTags" id="qzq3" cols="55" rows="7">[[!+fi.qzq3]]</textarea>
    <br />
    <input type="submit" name="go" value="Next" />
</form>

Свойство & store указывает FormIt хранить данные в кэше для извлечения с использованием фрагмента FormItRetriever.

Свойство & redirectTo - это идентификатор вашей следующей страницы. FormIt будет использовать хук перенаправления, указанный в свойстве & hooks, для перенаправления пользователя при отправке этой формы.

Страница 2:

[[!FormItRetriever]]

[[!FormIt?
 &submitVar=`go`
 &hooks=`spam,redirect`
 &store=`1`
 &redirectTo=`id-of-third-page`
]]

/* Page 2 quiz form goes here */

Фрагмент FormItRetriever позволит вам отобразить ранее сохраненные данные формы с заполнителями, относящимися к именам полей формы => [!+ Fi.qzq1]]

Для хранения данных формы теста в базе данных вы можете использовать FormItSaveForm. Это позволяет позже просматривать данные на странице Custom Manager Page (CMP) и экспортировать их, если это необходимо.

Обратитесь к официальным документам для большего количества примеров использования: https://docs.modx.com/extras/revo/formit

Другие вопросы по тегам