Стал ваять...
1. Сделал модули под каждую форму. Задал CSS_префикс, назначил классу этого модуля display:none. Теперь обе формы выводятся невидимыми на каждой странице.
2. Сделал кнопки с видимых модулей, которые делают формы видимыми. Но… в случае ошибки заполнения формы, сообщения, которые идут по тэгу
div class="sess_messages" и далее по дереву почему-то находятся не внутри модуля...
Ну ладно… в template.php допустим я переставлю sess_messages в нужный мне контейнер. Но в случае ошибки снова перегружается страница и снова форма будет невидима...
Сейчас попробую сделать форму в виде отдельной статьи со своей страницей и шаблоном, чтобы сразу выглядела как модальная...
Блин, и как вот ошибки подставить в вывод формы...
Есть идеи как это все сделать не меняя архитектуру Инстанта???
Есть идеи как это все сделать не меняя архитектуру Инстанта???
Не доводить до крайности и прямо в модуле подключаемой формы сделать свою, грубо говоря "предварительную проверку" полей, благо JavaScript с этим справляется легко… ну где-то так.
1. грузить код формы по ajax через отдельный файл, т.е. чтобы было универсально, передавать этому файлу например id нужной вам формы.
2. добавить свой фильтр или подделать существующий, чтобы вместо формы показывал ссылку на форму, которая бы грузилась в модалке по ajax.
3. подправить компонент forms примерно так pastebin.com/yP44vB5r
4. в js проверять ответ соответственно, при аякс запросе система будет отдавать ответы в json формате.
P.s. добавить в ядро пару методов
private static function detectContext(){ $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { self::$is_ajax = true; } else { self::$is_ajax = false; } } public static function isAjax(){ return self::$is_ajax; }
self::detectContext();
Сделал отдельный шаблон для статьи. Сделал пару отдельных статей в которые вставлены формы. В шаблон прописал несколько DIVов. Яваскриптом выдергиваю сообщения об ошибках и цепляю к нужному ДИВу...
Следующие грабли теперь — в случае успешного отправления сообщения снова выдается эта форма, когда она уже не нужна (имхо не продумано разработчиками)...
Сделать что ли проверку на наличие "успешного" сообщения и в случае наличия скрывать форму и перебрасывать потом на -2 странички из history...
Кстати, а где находится код, который отвечает за генерацию форм из Конструктора???
я вам дал рабочий код из 1.10.3, при желании подробнее можно посмотреть в тракеРазбираться и отлаживать косяки, которые будут потом, некогда и желания нет.
form.class.phpгде находится код, который отвечает за генерацию форм из Конструктора
Я обязательно буду разбираться, но потом. Сейчас время, которое я могу уделить этому проекту, сильно ограничено.
я вам дал рабочий код из 1.10.3, при желании подробнее можно посмотреть в тракеРазбираться и отлаживать косяки, которые будут потом, некогда и желания нет.
Спасибо. Супер.
form.class.phpгде находится код, который отвечает за генерацию форм из Конструктора
upd: Есть небольшое пожелание к разработчикам, чтобы можно было в Конструкторе выбирать альтернативные шаблоны форм. Сейчас он жестко в классе прописан…