Как создать викторину в 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