Для создания шорткода нам понадобится модуль "Шорткоды" он должен быть установлен в системе, также наличие редакции HostCMS содержащей модуль "Формы".
1. Создаем шорткод с тегом "form" и с таким кодом:
<?php
function ShortCode_Handler_form($attr, $text)
{
if (!Core::moduleIsActive('form')) {
return ShortCode_Model::showmessage('Модуль "Формы" не установлен');
}
if (!is_array($attr)) {
return ShortCode_Model::showmessage('Параметры шорткода не выставлены');
}
$oXsl = ShortCode_Model::checkXSL($attr);
if (!($oXsl instanceof Xsl_Model)) {
return $oXsl;
}
if (isset($attr['id'])) {
$form_id = $attr['id'];
} else {
$form_id = $text;
}
$form_id = intval($form_id);
if (intval($form_id) > 0) {
$formID = intval($form_id);
$oForm = Core_Entity::factory('Form', $formID);
if (is_null($oForm->name)) {
return ShortCode_Model::showmessage('Указанной формы не существует');
}
$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(1)
->mailXsl(Core_Entity::factory('Xsl')
->getByName('ПисьмоКураторуФормы'))
->mailFromFieldName('email')
->process();
}
ob_start();
$Form_Controller_Show->xsl($oXsl)
->show();
$content = ob_get_clean();
return $content;
} else {
return ShortCode_Model::showmessage('Идентификатор формы указан неверно');
}
}
2. В любом месте вставляем шорткод, где id - идентификатор формы и xsl - название шаблона