Formit - вывести таблицу сохраненных форм
У Formit есть возможность сохранять данные в базу с помощью хука FormitSaveForm, это супер. Но может кто просветит, как можно вывести данные сохраненных форм?
В доках этого не нашел… Заранее спасибо.
В доках этого не нашел… Заранее спасибо.
Комментарии: 9
Думаю, стандартными средствами сделать нельзя. В админке, предположу, что выводится это дело посредством API MODx, а точнее процессора GetList. Надо изучать модель базы компонента и писать свой сниппет.
Может быть, поможет стандартная страница Приложения -> FormIt?
Судя по описанию, там можно «Просмотреть все заполненные формы».
Судя по описанию, там можно «Просмотреть все заполненные формы».
Да я и не имел ввиду стандартные средства. Пока вот решил таким топорным методом. Сделал снипет, и вывожу его в ресурсе.
<?php
$result = $modx->getCollection('FormItForm');
$key='';
foreach($result as $key=>$row){
$items[] = (json_decode($row->get('values')));
};
print "<table>";
print "<tr><td>ФИО</td><td>Телефон</td><td>Почта</td></tr>";
foreach($items as $item){
print "<tr>";
print "<td>".$item->ФИО."</td>";
print "<td>".$item->Телефон."</td>";
print "<td>".$item->mail."</td>";
print "</tr>";
}
print "</table>";
Не разобрался только как вывести переменные в плэйсхолдеры tpl, чтобы было по фэншую MODXa.
О… спасибо, сам не нашел… Буду изучать…
Здравствуйте. Удалось найти решение?
Ох давно это было… Сейчас поищу…
Ох давно это было… Сейчас поищу…
Сам сниппет (test) :)
Где живет страничка кину в личку… У вас отключены сообщения :(
Сам сниппет (test) :)
<?php
$form = $modx->getOption('form',$scriptProperties,false);;
$tpl = 'list.tpl';
$tplOuter = 'outerlist.tpl';
$outputSeparator = PHP_EOL;
$output = array();
$where = array(
'form' => $form
);
$result = $modx->getCollection('FormItForm',$where);
foreach($result as $row){
$items[] = (json_decode($row->get('values')));
};
$allCount = count($items);
foreach($items as $i){
$output[] = $modx->getChunk($tpl,(array)$i);
$pr_5 += ($i->five =='Да') ? '1' : '';
$pr_12 += ($i->twelv =='Да') ? '1' : '';
$pr_19 += ($i->ninethin =='Да') ? '1' : '';
}
$wrapper = implode($outputSeparator, $output);
$modx->toPlaceholder('all',$allCount,'');
$modx->toPlaceholder('pr_5',$pr_5,'');
$modx->toPlaceholder('pr_12',$pr_12,'');
$modx->toPlaceholder('pr_19',$pr_19,'');
return $modx->getChunk($tplOuter, array('wrapper' => $wrapper));
Вызов сниппета:[[!test?
&form=`Заявки на новый год`
]]
Чанк list.tpl:<tr>
<td>[[+name]]</td>
<td>[[+phone]]</td>
<td>[[+email]]</td>
<td>[[+five]]</td>
<td>[[+twelv]]</td>
<td>[[+ninethin]]</td>
</tr>
Чанк outerlist.tpl:<table>
<tr><td>ФИО</td><td>Телефон</td><td>Почта</td><td>5.12</td><td>12.12</td><td>19.12</td></tr>
[[+wrapper]]
<tr style="border-top:2px solid #999;">
<td colspan="3">Всего записалось - [[+all]]</td>
<td class="text-center">[[+pr_5]]</td>
<td class="text-center">[[+pr_12]]</td>
<td class="text-center">[[+pr_19]]</td>
</tr>
</table>
Вызов Formit:[[!Formit?
&hooks=`spam, email, formitsaveform`
&formName=`Заявки на новый год`
&formFields=`name,phone,email,five,twelv,ninethin`
&formEncrypt=`0`
&validate=`name:required`
&emailTo=`you_pochta@yandex.ru`
&emailTpl=`newYears.tpl`
]]
Чанк newYears.tpl:Зарегистрировался:
ФИО - [[+name]]
Телефон - [[+phone]]
Почта - [[+email]]
5 - [[+five]]
12 - [[+twelv]]
19 - [[+ninethin]]
Комментировать побоюсь, но смысл был в записи желающих собраться на новый год попить пива с вариантами выбора даты сбора…Где живет страничка кину в личку… У вас отключены сообщения :(
о, круто!!! спасибо большое!!! открыл сообщения
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.