Выдана 108931 лицензия

Внедрение формы в макет страницы

Отдельная публикация формы в макете сайта осуществляется с использованием метода показа show() контроллера показа формы Form_Controller_Show.

Контроллер принимает экземпляр класса Form_Model в качестве параметра и настройки показа через свои методы:

  • xsl() — принимает XSL-шаблон через модель Xsl_Model.
<?php
if (Core::moduleIsActive('form'))
{
	$Form_Controller_Show = new Form_Controller_Show(
		Core_Entity::factory('Form', 1)
	);
	$Form_Controller_Show
		->xsl(
			Core_Entity::factory('Xsl')->getByName('ОтобразитьФорму')
		)
		->show();
}
?>

Клонируем текущий XSL-шаблон показа формы и вносим небольшое изменение.

Вместо:

<form name="form{@id}" id="form{@id}" 
	class="validate" action="./" 
	method="post" enctype="multipart/form-data">

Указываем явно путь к странице, на которой расположена форма с обработчиком, например /feedback/.

<form name="form{@id}" id="form{@id}" 
	class="validate" action="/feedback/" 
	method="post" enctype="multipart/form-data">

Комментарии

  • Внедрение формы в макет страницы. Форма не отсылает письма

    добрый день. делаю все как описано в руководстве. форма отображается, но письма не отправляются. после нажатия кнопки "отправить" страница обновляется, но сообщение об отправке или ошибках не выводит, просто снова форма обратной связи отображается http://gorodnn.com/faq/

    05.07.2013 16:35:54 надежда
    WebCraftStudio

    Без темы

    Адрес в параметре "action" формы должен вести на страницу с её обработчиком. В данном примере обработчик не рассматривается, но предусматривается что он есть и доступен по данному адресу.

    Пример такого обработчика можно глянуть в типовой динамической странице "Отображение формы". А проще всего сразу использовать эту страницу для вывода формы.

    18.07.2013 16:43:58 WebCraftStudio