[Mod] Дополнительная форма на базе формы обратной связи Webasyst -v3

Тема в разделе "WebAsyst", создана пользователем Valeras, 30 май 2013.

Модераторы: mdss
  1. Valeras

    Valeras Постоялец

    Регистр.:
    23 апр 2007
    Сообщения:
    107
    Симпатии:
    36
    Возникла необходимость добавления дополнительной формы, чтобы она выглядела и работала как форма обратной связи(модуль feedback), т.е. по аналогии, но с дополнительными полями. :tut:

    Пример использования:


    1. У нас есть статья с формой со всеми обязательными полями и капча.
    Обзовем модуль consultant по аналогии с feedback. Соответственно обработчик модуля будет по адресу:
    а) С ЧПУ - ваш_сайт/consultant/
    б) Без ЧПУ - ваш_сайт/index.php?ukey=consultant

    2. Добавляем шаблон модуля /published/SC/html/scripts/tamplates/fronted/consultant.tpl.html В шаблоне указываем поля именуем их.

    3. Добавляем файл обработчика модуля /published/SC/html/scripts/modules/consultant/class.consultant.php и файл регистрации модуля /published/SC/html/scripts/modules/consultant/connector.consultant.xml в новую папку модуля consultant (по аналогии с feedback)

    4. В файле регистрации модуля (/published/SC/html/scripts/modules/consultant/connector.consultant.xml) корректируем данные под модуль "сonsultant":
    PHP:
    <Connector>
        <Class>
            <
    Name>consultant</Name>
            <
    File>class.consultant.php</File>
            <
    Title>Регистрация консультанта</Title>
            <
    Description></Description>
            <
    SingleInstallation>true</SingleInstallation>
        </Class>
    </
    Connector>
    5. Корректируем класс модуля ( /published/SC/html/scripts/modules/consultant/class.consultant.php) согласно наших полей указанных в шаблоне:

    а) Приход и фильтрация данных.
    б) Валидация полученных данных.
    в) В случае неуспеха:
    - отправка сообщения об ошибке;
    г) В случае успеха:
    - отправка данных на ящик администратора;
    - оправка сообщения во фронт(пользователю).

    В итоге получаем еще один модуль по аналогии модуля feedback с нужным нам количеством полей.

    Исходники модуля "consultant":

     
  2. imperis

    imperis Создатель

    Регистр.:
    27 июн 2012
    Сообщения:
    24
    Симпатии:
    1
    Благодарю за модуль! Интересное решение. Я свой делал на для запроса на скидку к праздничному дню - из стандартной формы "запроса в службу поддержки".
     
  3. maksd

    maksd Создатель

    Регистр.:
    29 дек 2012
    Сообщения:
    10
    Симпатии:
    0
    я так понял можно прописывать любые значения?
     
  4. Valeras

    Valeras Постоялец

    Регистр.:
    23 апр 2007
    Сообщения:
    107
    Симпатии:
    36
    Можно прописать любые поля, потом делать проверку и отправлять на почту.
     
  5. maksd

    maksd Создатель

    Регистр.:
    29 дек 2012
    Сообщения:
    10
    Симпатии:
    0
    что то не работает( хотя странно все сделал как написано,
    пишет Извините, запрашиваемый документ не был найден на сервере: /consultant/
     
  6. Valeras

    Valeras Постоялец

    Регистр.:
    23 апр 2007
    Сообщения:
    107
    Симпатии:
    36
    Я писал давно этот пост, но на вскидку, по памяти, могу сказать, что здесь не достает одного пункта. Этот пункт связан с регистрацией модуля в базе данных webasyst.

    В таблице SC_modules:
    ModuleID
    35(свой ID)
    [​IMG]

    В таблице SC_module_configs:
    ModuleID
    35 (ModuleID табл. SC_modules)
    [​IMG]

    В таблице SC_interface_interfaces:
    xInterfaceCalled
    57_consultant (ModuleConfigID_name табл. SC_module_configs)
    [​IMG]

    В таблице SC_divisions
    xID
    254(свой ID)
    [​IMG]
    В таблице SC_division_interface:
    xDivisionID
    254 (xID табл. SC_divisions)
    xInterface
    57_consultant (табл. SC_module_configs)
    [​IMG]


    Похоже что все. Как я всегда утверждал и утверждаю "Webasyst - система написана человеком и для человека! Апpиоpи - всегда с человеческим лицом к pазpаботчику!". А по сeму - "Пилитe Шуpа, пилитe!".;)
     
    Последнее редактирование: 19 мар 2014
    maksd нравится это.