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

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

Контроллер принимает экземпляр класса Form_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">

Пример внедрения формы в макет вместе с обработкой отправки формы:

<?php

$oForm = Core_Entity::factory('Form', 1);

$Form_Controller_Show = new Form_Controller_Show($oForm);

if (!is_null(Core_Array::getPost($oForm->button_name)))
{
	$Form_Controller_Show
		->values($_POST + $_FILES)
		// 0 - html, 1- plain text
		->mailType(0)
		->mailXsl(
			Core_Entity::factory('Xsl')->getByName('ПисьмоКураторуФормы')
		)
		->mailFromFieldName('email')
		->process();
}

$Form_Controller_Show
	->xsl(
		Core_Entity::factory('Xsl')->getByName('ОтобразитьФорму')
	)
	->show();

?>

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.

Комментарии

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

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

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

    Без темы

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

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

    18.07.2013 16:43:58
    WebCraftStudio
    WebCraftStudio