Форма вопрос-ответ в админке.Как реализовать,MigX?
Добрый день! перехожу от простого в освоении modx к сложному. Необходимо реализовать форму в админке по типу вопрос-ответ. Т.е. на сайте есть форма, где пользователи заполняют и отсылают некие данные о себе(задают вопрос). Эти данные необходимо занести в бд и вывести в виде таблицы в админке, где уже менеджер сайта отвечает пользователю и отсылает ответ на эл.почту и на сайт. Я предполагала, что это будут такие поля в таблице:
статус(новое/ответили/не ответили), имя, email, вопрос, ответ и chekbox (если отмечен, то отослать ответ) и кнопка — ОТПРАВИТЬ
Вопрос: а как это вообще сделать? Я не представляю даже с какой стороны подойти к этому, думала реализовать через MigX, но кроме как вывести табличку в админке с единственной кнопкой «Добавить элемент» у меня ничего не получается, т.е. я даже не знаю как создать кнопку и повесить на неё отправку ответа(если вообще такая возможность, т.к. информации в Инете по этому очень мало)?
Подскажите как это реализуется? Как передать выбранные(отмеченные)данные из таблицы в сниппет, чтобы уже там написать отправку ответа на почту и реализовать вывод на сайте?
Возможно я вообще мыслю не в том направлении и подобные вещи делаются по другому? Помогите, пожалуйста кто чем может.
статус(новое/ответили/не ответили), имя, email, вопрос, ответ и chekbox (если отмечен, то отослать ответ) и кнопка — ОТПРАВИТЬ
Вопрос: а как это вообще сделать? Я не представляю даже с какой стороны подойти к этому, думала реализовать через MigX, но кроме как вывести табличку в админке с единственной кнопкой «Добавить элемент» у меня ничего не получается, т.е. я даже не знаю как создать кнопку и повесить на неё отправку ответа(если вообще такая возможность, т.к. информации в Инете по этому очень мало)?
Подскажите как это реализуется? Как передать выбранные(отмеченные)данные из таблицы в сниппет, чтобы уже там написать отправку ответа на почту и реализовать вывод на сайте?
Возможно я вообще мыслю не в том направлении и подобные вещи делаются по другому? Помогите, пожалуйста кто чем может.
Комментарии: 19
По поводу таблицы в админке — попробуйте установить customExtra, в настройках указать, сколько и каких полей вам надо, а так же — какие из чекбоксов вам нужны.
Потом все названия полей, чекбоксов, кнопок и др. можно поменять в Управлении словарями.
Отправку вопросов доработать — здесь есть пример, как сделать добавление строк в эту таблицу.
По поводу отправки писем — проще всего, наверное, написать скрипт, который будет находить все новые вопросы с ответами, отправлять уведомления и убирать галочку Новый, чтобы повторов не было. Ну и этот скрипт вызывать по cron
Потом все названия полей, чекбоксов, кнопок и др. можно поменять в Управлении словарями.
Отправку вопросов доработать — здесь есть пример, как сделать добавление строк в эту таблицу.
По поводу отправки писем — проще всего, наверное, написать скрипт, который будет находить все новые вопросы с ответами, отправлять уведомления и убирать галочку Новый, чтобы повторов не было. Ну и этот скрипт вызывать по cron
О! спасибо, хоть что то… попробую сделать так. А вот эта фраза мне совсем не понятна:
скрипт вызывать по cronчто это такое? Всё таки modx оказался куда сложнее, чем думалось.
cron — это просто способ вызывать какой-то скрипт периодически, например, раз в полчаса.
Правильнее было бы, конечно, создать плагин, который срабатывал при редактировании вопроса. Но в компоненте никаких событий не вызывается… Хотя надо бы вызывать) Может, и сделаю как-нибудь, а пока только так…
Правильнее было бы, конечно, создать плагин, который срабатывал при редактировании вопроса. Но в компоненте никаких событий не вызывается… Хотя надо бы вызывать) Может, и сделаю как-нибудь, а пока только так…
т.е. отправить письмо/ответ по нажатию на кнопку простыми средствами не сделать? Вообще я так поняла в админке нельзя сделать некий компонент кнопку(как ТВ-поле) по нажатию которой вызывать событие/сниппет и делать что хочется?
Вот, кстати, очень интересная идея! Это тоже нужный функционал. Поставлю себе заметку
Просто удивительно почему никому не нужна была до сих пор «кнопка?:)
при установке customExtra выпала ошибка:
при установке 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 стоит на локалке
Думаю, то что вам нужно modstore.pro/packages/utilities/easycomm
А насколько этот компонент расширяем, мне нужен он не для магазина с отзывами о товарах, поэтому необходимо, чтобы была возможность:
— в форме пользователя на сайте было больше полей (а не только имя, почта, тема, вопрос...). Можно добавлять ещё?
— В админке совсем не нужна кнопка (добавить). Я как бы не понимаю её назначения, добавить самому себе вопрос/отзыв?
С остальными особенностями, в принципе, можно смириться.
— в форме пользователя на сайте было больше полей (а не только имя, почта, тема, вопрос...). Можно добавлять ещё?
— В админке совсем не нужна кнопка (добавить). Я как бы не понимаю её назначения, добавить самому себе вопрос/отзыв?
С остальными особенностями, в принципе, можно смириться.
В нем 10 строковых полей (varchar), 10 числовых (int) и 5 текстовых (text). Вот, в пределах этих чисел вы можете «расширять» его.
А, кстати, еще доступны 6 чекбоксов, в которых можно хранить значения true/false.
А кнопка… ну она же есть не просит) пусть висит. Вдруг, кто-то захочет добавить вопрос самому себе через админку)
А, кстати, еще доступны 6 чекбоксов, в которых можно хранить значения true/false.
А кнопка… ну она же есть не просит) пусть висит. Вдруг, кто-то захочет добавить вопрос самому себе через админку)
А вообще, почитайте вот, курс bezumkin.ru/training/course1/ — вдруг в вашей ситуации проще будет свой компонент написать
Нет, это не критично. Просто в заготовке был кортроллер для office, но вам он, в общем, не нужен
А в чем проблема на статусы вешать отправку email? Ну или просто отправлять email по нажатию на отправить? Я что-то неправильно понял?
«отправлять email по нажатию на отправить» дак я просто не понимаю как сделать кнопку в принципе? В MigX,customExtra,easycomm… есть только одна кнопка (+Добавить) элемент в таблице.
на статусы вешать отправку emailа это вариант кстати, спасибо! Но вот с кнопкой было бы удобнее.
Да, я не понял немного сути, вы хотите это делать на MIGx. Я думал речь идет про написание собственного компонента, в этом случае не возникает таких вопросов.
Можно повесить отправку email на плагин. При сохранении документа проверять наличие определенных статусов в полях migx и рассылать email, например.
спасибо, попробую. Написание плагинов — это очень сложно для тех, кто недавно с modx познакомился.
а есть какое то событие которое срабатывало бы при определенном изменении поля migx. Т.е. не надо было нажимать кнопку Сохранить? А изменили статус на «отправлено» и письмо ушло? Я просто не очень представляю какое это может быть событие… как его отследить? Но OnDocFormSave не очень подходит.
Неа, такого нет.
Если будете делать серез customExtra, можно дописать функционал отправки письма в файл /core/components/customextra/processors/mgr/item/update.class.php
Именно он отвечает за редактирование строчки из админки.
Если будете делать серез customExtra, можно дописать функционал отправки письма в файл /core/components/customextra/processors/mgr/item/update.class.php
Именно он отвечает за редактирование строчки из админки.
customExtra оставлю для более уник.функционала, а тут у меня будет таких форм на сайте несколько, пока пробую MIGX|MIGXdb Но вот вешать отправку на кнопку «Сохранить» совсем нелогично. Это ж я никакому менеджеру не смогу объяснить что надо на неё жать, если ты отправить письмо хочешь. Логичнее, отметил галочкой в таблице в поле «отправить» и письмо ушло. А вот на что повесить это не могу представить. Как то мудрёно всё в этом modx_е :)
Именно он отвечает за редактирование строчки из админки.может и в MIGX такое имеется?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.