Formit - вывести таблицу сохраненных форм

У Formit есть возможность сохранять данные в базу с помощью хука FormitSaveForm, это супер. Но может кто просветит, как можно вывести данные сохраненных форм?
В доках этого не нашел… Заранее спасибо.
Евгений
22 ноября 2015, 13:25
modx.pro
3
3 616
0

Комментарии: 9

Сергей Фещуков
23 ноября 2015, 05:06
0
Думаю, стандартными средствами сделать нельзя. В админке, предположу, что выводится это дело посредством API MODx, а точнее процессора GetList. Надо изучать модель базы компонента и писать свой сниппет.
    Денис Райх
    23 ноября 2015, 05:45
    0
    Может быть, поможет стандартная страница Приложения -> FormIt?
    Судя по описанию, там можно «Просмотреть все заполненные формы».
      Евгений
      23 ноября 2015, 11:13
      1
      0
      Да я и не имел ввиду стандартные средства. Пока вот решил таким топорным методом. Сделал снипет, и вывожу его в ресурсе.
      <?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.
          Евгений
          23 ноября 2015, 15:10
          0
          О… спасибо, сам не нашел… Буду изучать…
            Дмитрий
            16 марта 2019, 14:05
            0
            Здравствуйте. Удалось найти решение?
              Евгений
              16 марта 2019, 14:10
              0
              Ох давно это было… Сейчас поищу…
                Евгений
                16 марта 2019, 14:23
                1
                0
                Ох давно это было… Сейчас поищу…
                Сам сниппет (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]]
                Комментировать побоюсь, но смысл был в записи желающих собраться на новый год попить пива с вариантами выбора даты сбора…
                Где живет страничка кину в личку… У вас отключены сообщения :(
                  Дмитрий
                  16 марта 2019, 16:51
                  0
                  о, круто!!! спасибо большое!!! открыл сообщения
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9