Создать форму в теле статьи

Главные вкладки

Аватар пользователя Kusto7 Kusto7 9 ноября 2016 в 18:36

Хотелось бы создать форму (Имя, телефон. С отправкой данных на почту) внутри статьи (Body), не очень знаком с друпал. Как я понимаю вставлять элементы можно только по регионам, а в тело статьи например, нельзя. Правильно? Соответственно задача не решаема?
Извините если бросался не правильными терминами.

Комментарии

Аватар пользователя bumble bumble 9 ноября 2016 в 20:14

В Друпале все "решаемо", но скорее всего - могут понадобится навыки программирования.

Если таковых нет - ищите информацию по ключам "Token", "Webform", "Token block", "Webform block" - все в контексте Drupal.
В частности, можете посмотреть следующие модули:

Аватар пользователя bumble bumble 10 ноября 2016 в 10:55

1. Логика в шаблонах - зло.
2. В шаблонах поля уже выводятся, а не обрабатываются/дополняются. Как максимум - использовать препроцессор поля, как минимум - делать текстовый фильтр для этого.
3. Т.к. форма должна быть в теле статьи (в текстовом поле body, например) - вызовом формы в шаблоне не ограничится, а придется еще и всю оставшуюся часть тянут - проверка ноды (нужная или нет), парсинг поля (для определения куда вставлять), замена и вывод значения на последней стадии, что повлечет кучу ненужного процессорного времени.
4. Совсем не Drupal-way и самая что ни на есть - Bad practice!

Аватар пользователя xakd xakd 10 ноября 2016 в 17:51

Какой то вы чистоплюй, право-слово. Неоднократно такие проблемы решал именно подобным способом, и считаю что это самый ни на что drupal-way.
Предложите лучше

Аватар пользователя bumble bumble 10 ноября 2016 в 18:03

Да - токены.
Пишется пост, например, вставляется токен "[mytoken:my-form-id]" в нужное место, и формат подставляет форму на выходе (при просмотре).

Аватар пользователя xakd xakd 10 ноября 2016 в 20:56

Ну да. Когда в одном месте нужно вставить что-то - нужно токены юзать. Они ж не для множественного использования придуманы - а для единичных случаев. И так легко определяются - всего то модуль написать нужно

Аватар пользователя Alamir Alamir 10 ноября 2016 в 21:03

Ну да, чистотой я не блещу:)

Посути мы и выводим форму, ну давайте где ни будь, хоть в собственном модуле сделаем переменную, которая будет хранить drupal_get_form() и будем ее в шаблоне выводить:)

Ну а так можно сделать webform, вывести его как блок и например с помощью js .before или after вывести этот блок, послед любого нужного нам элемента.