Valeras
Постоялец
- Регистрация
- 23 Апр 2007
- Сообщения
- 112
- Реакции
- 40
- Автор темы
- #1
Возникла необходимость добавления дополнительной формы (заказа), чтобы она выглядела и работала как форма обратной связи, т.е. по аналогии, но с дополнительными полями.
Очень частый вопрос на форумах по DLE. Модули форм, которые предлагаются на просторах Интернета - что бесплатные и платные не очень подходят. Так как нужно, иногда одна форма, а не пакет, которую раз настроил и забыл.
Дополнительная форма делалась под версию DLE 9.5, но думаю, что этот метод подойдет и для последующих версий DLE.
В крайнем случае можно использовать как еще одну форму обратной связи, бывает и такая потребность. здесь описывается как можно создать дубликат формы обратной связи.
Пример использования:
(Попросили - сделал, чем занимается заказчик меня мало интересует, только как исключение - чтобы не оружием, наркотиками и детской порнографией
Итак, форма заказа под названием order или модуль order.
1. Нам нужен шаблон по аналогии с feedback.tpl, это order.tpl в общей папке Вашего шаблона. Туда его добавляем.
2. Нам нужно исполнение нового модуля прописываем в файле.
/engine/engine.php
Найти:
После вставить:
3. После того как указали обработчик копируем с переименованием файл engine/modules/feedback.php в engine/modules/order.php
4. Производим корректировку файла engine/modules/order.php в зависимости от ваших полей, которые необходимы в форме. У меня удалена проверка капчи по сравнению с модулем engine/modules/feedback.php.
Как вариант ответ на вопрос: "Как избавиться от капчи в форме обратной связи?".
Изменения можно увидеть в сравнив оба файла engine/modules/feedback.php и engine/modules/order.php (исходники предоставлены внизу поста).
5. Но это еще не все, наша форма заказа работает как обычная форма с перезагрузкой страницы, но это уже не "наш метод". Применяем технологию AJAX как она была использована в модуле обратной связи по умолчанию.
Для этого нам необходим AJAX обработчик который находится engine/ajax/order.php. Берем обработчик engine/ajax/feedback.php с переименованием файл engine/ajax/order.php. Производим корректировку engine/ajax/order.php в большей части это копирование и вставка из обработчика engine/modules/order.php.
Изменения можно увидеть, сравнив оба файла engine/ajax/feedback.php и engine/ajax/order.php (исходники предоставлены внизу поста).
В итоге получаем дополнительный модуль, сделанный по аналогии и не как не соприкасающийся с формой обратной связи.
Соответственно, путь к вашей форме будет:
Для просмотра ссылки Войдиили Зарегистрируйся
Исходники:
Очень частый вопрос на форумах по DLE. Модули форм, которые предлагаются на просторах Интернета - что бесплатные и платные не очень подходят. Так как нужно, иногда одна форма, а не пакет, которую раз настроил и забыл.
Дополнительная форма делалась под версию DLE 9.5, но думаю, что этот метод подойдет и для последующих версий DLE.
В крайнем случае можно использовать как еще одну форму обратной связи, бывает и такая потребность. здесь описывается как можно создать дубликат формы обратной связи.
Пример использования:
Скрытое содержимое доступно для зарегистрированных пользователей!
(Попросили - сделал, чем занимается заказчик меня мало интересует, только как исключение - чтобы не оружием, наркотиками и детской порнографией
Итак, форма заказа под названием order или модуль order.
1. Нам нужен шаблон по аналогии с feedback.tpl, это order.tpl в общей папке Вашего шаблона. Туда его добавляем.
2. Нам нужно исполнение нового модуля прописываем в файле.
/engine/engine.php
Найти:
PHP:
case "alltags" :
include_once ENGINE_DIR . '/modules/tagscloud.php';
break;
После вставить:
PHP:
case "order" :
include_once ENGINE_DIR . '/modules/order.php';
break;
3. После того как указали обработчик копируем с переименованием файл engine/modules/feedback.php в engine/modules/order.php
4. Производим корректировку файла engine/modules/order.php в зависимости от ваших полей, которые необходимы в форме. У меня удалена проверка капчи по сравнению с модулем engine/modules/feedback.php.
Как вариант ответ на вопрос: "Как избавиться от капчи в форме обратной связи?".
Изменения можно увидеть в сравнив оба файла engine/modules/feedback.php и engine/modules/order.php (исходники предоставлены внизу поста).
5. Но это еще не все, наша форма заказа работает как обычная форма с перезагрузкой страницы, но это уже не "наш метод". Применяем технологию AJAX как она была использована в модуле обратной связи по умолчанию.
Для этого нам необходим AJAX обработчик который находится engine/ajax/order.php. Берем обработчик engine/ajax/feedback.php с переименованием файл engine/ajax/order.php. Производим корректировку engine/ajax/order.php в большей части это копирование и вставка из обработчика engine/modules/order.php.
Изменения можно увидеть, сравнив оба файла engine/ajax/feedback.php и engine/ajax/order.php (исходники предоставлены внизу поста).
В итоге получаем дополнительный модуль, сделанный по аналогии и не как не соприкасающийся с формой обратной связи.
Соответственно, путь к вашей форме будет:
Для просмотра ссылки Войди
Исходники:
Скрытое содержимое доступно для зарегистрированных пользователей!