Как вывести то, что ввели в форме через FormIt?

Сделала на сайте отправку сообщений через FormIt. Могу их просмотреть в заполненных формах через меню. Теперь вопрос: мне нужно всё, что отправлено теперь вывести обратно на сайт(как отзывы). Как это сделать? И ещё вопрос: есть ли необходимость сообщения которые мне вводятся через форму на сайте выводить, как документы в дереве (оттуда выводить на сайт, там же редактировать и удалять.)? Или это лишние манипуляция и пользователю достаточно просматривать их через меню FormIt?

P.S. Я очень-очень новичок в modx, но пожалуйста, не выгоняйте меня из сообщества, у меня слишком много вопросов, а где спросить не знаю.
Tanya
07 октября 2015, 08:37
modx.pro
2 098
0

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

Наумов Алексей
07 октября 2015, 11:53
0
Наверное не очень красиво лепить через Formit отзывы и делать редактирование документов.

Посмотрите в сторону Tickets, easyComm.
    Tanya
    07 октября 2015, 12:00
    0
    но редактирование не обязательно(скорее больше надо или вывести то, что ввели или удалить(если гадость ввели). Неужели Formit для этого совсем не подходит?
      Наумов Алексей
      07 октября 2015, 15:03
      0
      Formit это штука для обработки форм и не более.

      К ней пишут так называемые хуки (hooks), которые могут делать все что вам нужно с данными, переданными в форму. В принципе ваше право реализовать нужный вам функционал. Но, некоторые вещи уже реализовали на хорошем уровне сторонними приложениями.

      Одно время я на многих сайтах делал отзывы через Formit и MIGx ( см комментарии здесь modx.pro/help/3967/ ), потом мне это надоело и я написал компонент easyComm, который делал то, что мне нужно. Сейчас использую его + разместил в магазине.

      Tickets мощнее, но для меня его настройка сложна для большинства сайтов.

      Вывод — Formit можно, но если готовые дополнения уже реализуют то, что вам нужно, лучше их)
        Tanya
        07 октября 2015, 15:19
        1
        0
        Спасибо за хорошие разъяснения! easyComm посмотрю, интересный. Tickets тут не нужен, очень он сложен для моей простой задачи(просто вывести то, что ввели через форму и всё!)
        Пока сделала у себя так:
        [[!FormIt?
        &hooks=`...,SaveForm`
        а в сниппете SaveForm создаю документ с именем одного введенного параметра и контентом — другого.:
        <?php
        $doc = $modx->newObject('modResource');
        $doc->Set('parent',20); // в нужную мне папку
        $doc->Set('template',9); 
        $doc->Set('pagetitle',strip_tags($_POST['contact_name'])); 
        $doc->Set('content', strip_tags($_POST['contact_message'])); 
        $doc->Set('published','1'); 
        $doc->Save(); 
        return true;
        возможно так не делают, но работает. Если это чем то чревато, то скажите чем… делать так не буду, а сразу рассмотрю easyComm
          Наумов Алексей
          07 октября 2015, 15:23
          0
          Да не, можно так делать.

          Просто несколько замечаний:
          1. Создавать ресурсы лучше через процессоры. Но это чревато тем, что анонимный пользователь не имеет на это прав, в общем нужно еще как то его авторизовывать предварительно. Плюс в том, что если есть какие либо плагины — в вашем способе они не будут отрабатывать, а при вызове процессора — будут.
          2. После создания ресурса — хорошо бы чистить кеш сайта.
          3. Вместо $_POST['contact_name'] наверное красивее использовать $hook->get…
            Tanya
            07 октября 2015, 16:58
            +1
            спасибо!
            1. Очень много нового для новичка в modx, я пока пытаюсь найти способ как выполнить задачу запутываюсь в куче терминологии и способах. А уж понять что лучше пока совсем не могу. Как это " через процессоры" пока не знаю даже.
            2. Почитаю про это. Просто про многие вещи не найти толковых советов, как делать лучше, а как не надо. Это касается даже просто организации работы в modx (как лучше именовать шаблоны, чанки, снипеты..., что применять лучше, а что хуже, в какой последовательности организовать сборку сайта и и т.д.)
            3. Про $hook->get просто не знала :) сделала как первое что пришло в голову.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6