Хотелось бы создать форму (Имя, телефон. С отправкой данных на почту) внутри статьи (Body), не очень знаком с друпал. Как я понимаю вставлять элементы можно только по регионам, а в тело статьи например, нельзя. Правильно? Соответственно задача не решаема?
Извините если бросался не правильными терминами.
Комментарии
В Друпале все "решаемо", но скорее всего - могут понадобится навыки программирования.
Если таковых нет - ищите информацию по ключам "Token", "Webform", "Token block", "Webform block" - все в контексте Drupal.
В частности, можете посмотреть следующие модули:
https://www.drupal.org/project/node_embed
Модуль webform + drupal_get_form() в tpl файле ноды.
Плохой вариант.
Чем же он плохой то?
1. Логика в шаблонах - зло.
2. В шаблонах поля уже выводятся, а не обрабатываются/дополняются. Как максимум - использовать препроцессор поля, как минимум - делать текстовый фильтр для этого.
3. Т.к. форма должна быть в теле статьи (в текстовом поле body, например) - вызовом формы в шаблоне не ограничится, а придется еще и всю оставшуюся часть тянут - проверка ноды (нужная или нет), парсинг поля (для определения куда вставлять), замена и вывод значения на последней стадии, что повлечет кучу ненужного процессорного времени.
4. Совсем не Drupal-way и самая что ни на есть - Bad practice!
Какой то вы чистоплюй, право-слово. Неоднократно такие проблемы решал именно подобным способом, и считаю что это самый ни на что drupal-way.
Предложите лучше
Я уже предложил - токены.
То есть для локальной задачи нужно токены вводить?
Да - токены.
Пишется пост, например, вставляется токен "[mytoken:my-form-id]" в нужное место, и формат подставляет форму на выходе (при просмотре).
Ну да. Когда в одном месте нужно вставить что-то - нужно токены юзать. Они ж не для множественного использования придуманы - а для единичных случаев. И так легко определяются - всего то модуль написать нужно
Ну да, чистотой я не блещу:)
Посути мы и выводим форму, ну давайте где ни будь, хоть в собственном модуле сделаем переменную, которая будет хранить drupal_get_form() и будем ее в шаблоне выводить:)
Ну а так можно сделать webform, вывести его как блок и например с помощью js .before или after вывести этот блок, послед любого нужного нам элемента.