Форма вопрос-ответ в админке.Как реализовать,MigX?

Добрый день! перехожу от простого в освоении modx к сложному. Необходимо реализовать форму в админке по типу вопрос-ответ. Т.е. на сайте есть форма, где пользователи заполняют и отсылают некие данные о себе(задают вопрос). Эти данные необходимо занести в бд и вывести в виде таблицы в админке, где уже менеджер сайта отвечает пользователю и отсылает ответ на эл.почту и на сайт. Я предполагала, что это будут такие поля в таблице:
статус(новое/ответили/не ответили), имя, email, вопрос, ответ и chekbox (если отмечен, то отослать ответ) и кнопка — ОТПРАВИТЬ

Вопрос: а как это вообще сделать? Я не представляю даже с какой стороны подойти к этому, думала реализовать через MigX, но кроме как вывести табличку в админке с единственной кнопкой «Добавить элемент» у меня ничего не получается, т.е. я даже не знаю как создать кнопку и повесить на неё отправку ответа(если вообще такая возможность, т.к. информации в Инете по этому очень мало)?
Подскажите как это реализуется? Как передать выбранные(отмеченные)данные из таблицы в сниппет, чтобы уже там написать отправку ответа на почту и реализовать вывод на сайте?

Возможно я вообще мыслю не в том направлении и подобные вещи делаются по другому? Помогите, пожалуйста кто чем может.
Tanya
20 декабря 2015, 14:32
modx.pro
2 187
0

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

Илья Уткин
20 декабря 2015, 18:58
1
0
По поводу таблицы в админке — попробуйте установить customExtra, в настройках указать, сколько и каких полей вам надо, а так же — какие из чекбоксов вам нужны.

Потом все названия полей, чекбоксов, кнопок и др. можно поменять в Управлении словарями.

Отправку вопросов доработать — здесь есть пример, как сделать добавление строк в эту таблицу.

По поводу отправки писем — проще всего, наверное, написать скрипт, который будет находить все новые вопросы с ответами, отправлять уведомления и убирать галочку Новый, чтобы повторов не было. Ну и этот скрипт вызывать по cron
    Tanya
    20 декабря 2015, 19:04
    0
    О! спасибо, хоть что то… попробую сделать так. А вот эта фраза мне совсем не понятна:
    скрипт вызывать по cron
    что это такое? Всё таки modx оказался куда сложнее, чем думалось.
      Илья Уткин
      20 декабря 2015, 19:18
      0
      cron — это просто способ вызывать какой-то скрипт периодически, например, раз в полчаса.

      Правильнее было бы, конечно, создать плагин, который срабатывал при редактировании вопроса. Но в компоненте никаких событий не вызывается… Хотя надо бы вызывать) Может, и сделаю как-нибудь, а пока только так…
        Tanya
        20 декабря 2015, 19:23
        0
        т.е. отправить письмо/ответ по нажатию на кнопку простыми средствами не сделать? Вообще я так поняла в админке нельзя сделать некий компонент кнопку(как ТВ-поле) по нажатию которой вызывать событие/сниппет и делать что хочется?
          Илья Уткин
          20 декабря 2015, 19:29
          +1
          Вот, кстати, очень интересная идея! Это тоже нужный функционал. Поставлю себе заметку
            Tanya
            20 декабря 2015, 19:31
            0
            Просто удивительно почему никому не нужна была до сих пор «кнопка?:)
            при установке customExtra выпала ошибка:
            Could not load class: Office from office.
            Problem getting service office, instance of class Office, from path ....OpenServer/domains/modx/core/components/office/model/office/
            [customExtra] Could not register paths for Office component!
            это критично? modx стоит на локалке
              Wassi Wassinen
              20 декабря 2015, 20:04
              0
              Думаю, то что вам нужно modstore.pro/packages/utilities/easycomm
                Tanya
                20 декабря 2015, 21:18
                0
                А насколько этот компонент расширяем, мне нужен он не для магазина с отзывами о товарах, поэтому необходимо, чтобы была возможность:
                — в форме пользователя на сайте было больше полей (а не только имя, почта, тема, вопрос...). Можно добавлять ещё?
                — В админке совсем не нужна кнопка (добавить). Я как бы не понимаю её назначения, добавить самому себе вопрос/отзыв?
                С остальными особенностями, в принципе, можно смириться.
                  Илья Уткин
                  20 декабря 2015, 21:46
                  0
                  В нем 10 строковых полей (varchar), 10 числовых (int) и 5 текстовых (text). Вот, в пределах этих чисел вы можете «расширять» его.

                  А, кстати, еще доступны 6 чекбоксов, в которых можно хранить значения true/false.

                  А кнопка… ну она же есть не просит) пусть висит. Вдруг, кто-то захочет добавить вопрос самому себе через админку)
                    Илья Уткин
                    20 декабря 2015, 21:50
                    0
                    А вообще, почитайте вот, курс bezumkin.ru/training/course1/ — вдруг в вашей ситуации проще будет свой компонент написать
                  Илья Уткин
                  20 декабря 2015, 20:21
                  0
                  Нет, это не критично. Просто в заготовке был кортроллер для office, но вам он, в общем, не нужен
        Лев Вербицкий
        20 декабря 2015, 22:21
        0
        А в чем проблема на статусы вешать отправку email? Ну или просто отправлять email по нажатию на отправить? Я что-то неправильно понял?
          Tanya
          20 декабря 2015, 22:28
          0
          «отправлять email по нажатию на отправить» дак я просто не понимаю как сделать кнопку в принципе? В MigX,customExtra,easycomm… есть только одна кнопка (+Добавить) элемент в таблице.
          на статусы вешать отправку email
          а это вариант кстати, спасибо! Но вот с кнопкой было бы удобнее.
            Лев Вербицкий
            21 декабря 2015, 00:40
            0
            Да, я не понял немного сути, вы хотите это делать на MIGx. Я думал речь идет про написание собственного компонента, в этом случае не возникает таких вопросов.
              Лев Вербицкий
              21 декабря 2015, 00:42
              1
              0
              Можно повесить отправку email на плагин. При сохранении документа проверять наличие определенных статусов в полях migx и рассылать email, например.
                Tanya
                21 декабря 2015, 11:01
                0
                спасибо, попробую. Написание плагинов — это очень сложно для тех, кто недавно с modx познакомился.
                  Tanya
                  21 декабря 2015, 20:18
                  0
                  а есть какое то событие которое срабатывало бы при определенном изменении поля migx. Т.е. не надо было нажимать кнопку Сохранить? А изменили статус на «отправлено» и письмо ушло? Я просто не очень представляю какое это может быть событие… как его отследить? Но OnDocFormSave не очень подходит.
                    Илья Уткин
                    21 декабря 2015, 21:20
                    0
                    Неа, такого нет.

                    Если будете делать серез customExtra, можно дописать функционал отправки письма в файл /core/components/customextra/processors/mgr/item/update.class.php

                    Именно он отвечает за редактирование строчки из админки.
                      Tanya
                      21 декабря 2015, 22:49
                      0
                      customExtra оставлю для более уник.функционала, а тут у меня будет таких форм на сайте несколько, пока пробую MIGX|MIGXdb Но вот вешать отправку на кнопку «Сохранить» совсем нелогично. Это ж я никакому менеджеру не смогу объяснить что надо на неё жать, если ты отправить письмо хочешь. Логичнее, отметил галочкой в таблице в поле «отправить» и письмо ушло. А вот на что повесить это не могу представить. Как то мудрёно всё в этом modx_е :)

                      Именно он отвечает за редактирование строчки из админки.
                      может и в MIGX такое имеется?
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              19