Izhver |
|
---|---|
Бился бился, так и не смог подключить форму. Чувствую, что просто но никак не врубаюсь. |
Macik |
|
---|---|
Если коротко, то не возможно. Т.к. (в обычном случае) не «шаблон управляет кодом», а «код формирует страницу на основе шаблона».Т.е. просто дополнив шаблон не возникнит код, который будет его обрабатывать. Иными словами, в любом случае придется писать дополнительный код. [Далее теория применительно к формам и их использованию, просто чтобы понимать всю механику работы…] Как работают формы? У нас есть клиентская часть (html-форма), которую может частично или полностью генерить сервер и серверная (плагин или модуль), код который будет обрабатывать данные из формы.
Задача распадается на две составляющие: расширение html кода формы (клиентской части) и расширение серверной части по обработке данных. Для начала надо определить, что именно будем расширять и какой плагин или модуль использовать.
Расширение кода форм Откуда берется код формы? Тут несколько вариантов:
Как расширить? Первый вариант не рассматриваю, т.к. это «oldschool» и «bad practice» для Котонти. Еще более предпочтительный метод расширения форм (но работает только для части плагинов третьего пункта) — это использование экстра-полей плагина. Это облегчает работу, т.к. надо только добавить тег экстраполя в шаблон, а движок сам возьмет на себя заботу о том, чтобы создать дополнительное поле в форме, а потом созранить данные в базе данных. Но надо с этими данными еще что-то делать. Тут мы переходим ко второй части… Расширение серверного кода [Теория] Плагины в рамках Котонти используют различные подходы к проектированию:
Как расширить функционал? Глобально есть 2 метода расширения плохой и хороший: В Котонти основным методом расширения являются хуки (hooks). И расширить функции системы проблем нет — выбираем подходящую точку входа (хук) и пишем код. А вот расширить функционал конкретного плагина сложнее, т.к. авторы плагинов не всегда думают о возможности расширения, и не делают хуков. (Хорошим исключением являются штатные модули системы, где авторы предусмотрели возможность расширения как с точки зрения экстраполей, так и хуков).
...................................................... Теперь, когда общая схема ясна, посмотрим предметно на задачу «форма обратной связи + регистрация». Это плагины `contact` и модуль `users`. И тот и другой модуль позволяют создать экстраполя это хорошо. Но не дают в полной мере использовать свой код из другого плагина. В модуле есть хуки, но в плагине их совсем нет. Т.е. нет «простого варианта», создать свой модуль и просто вызвать две функции («регистрация пользвоателя» и «отправка обратной связи»). Тем не менее Котонти гибок и всегда есть варианты (описываю кратко суть):
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Izhver |
|
---|---|
Величайший респект. Поболше бы таких развернутых пояснений. Скажите,а такого рода подходы не вызывают затруднений при верстке сайтов? Это ж довольно затруднительные пути. Может есть общий мануал для верстальщика? |
Macik |
|
---|---|
Тут надо понимать какие задачи поставлены перед верстальщиком (какие цели он преследует), и что входит в его компетенцию. Т.к. разработка/создание сайта процесс комплексный. У меня цикл разработки примерно такой (если мы говорим о создании сайта целиком от и до):
Упрощая — идем от задач сайта через программирование модели к финальному результату. От программной части к оформительской. И только так.
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |