Внимание! Перед началом работ создайте резервную копию сайта – на случай, если что-то пойдет не так.
Для правильной работы скрипта потребуется установленный модуль «Веб-формы».
Необходимо доставить формы, чтобы не создавать их вручную, и адаптировать скрипты, которые находятся в установочных файлах модуля. Рассмотрим настройку на примере решения Аспро: Максимум.
1. Скопируйте папку /bitrix/modules/aspro.max/install/wizards/aspro/max/site/services/form в корень сайта. Назовите ее, например, /form_test/.
2. Выделенные на картинке ниже файлы необходимо модифицировать.
3. Для начала рассмотрим файл feedback.php.
В модуле необходимо вручную переписать константы, а также подключить языковые файлы.
require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php"); if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); CModule::IncludeModule('form'); define("WIZARD_TEMPLATE_ID", "aspro_max"); //ID шаблона. Вместо выделенного синим цветом кода пропишите символьный код вашего решения. define("WIZARD_SITE_ID", "kp"); //ID сайта. Вместо выделенного синим цветом кода пропишите id вашего сайта. Посмотреть его можно в админке, если перейти по пути: Настройки → Настройки продукта → Сайты → Список сайтов. define("WIZARD_SITE_PATH",$_SERVER["DOCUMENT_ROOT"]."/"); //корень сайта. Если сайт установлен в подпапку, то вместо знака "/" нужно указать путь до него. Например: /en/. $bitrixTemplateDir = $_SERVER["DOCUMENT_ROOT"]."/bitrix/templates/".WIZARD_TEMPLATE_ID; //путь к шаблону require_once( __DIR__."/lang/ru/forms.php"); // подключаем языковые файлы вместо WizardServices::IncludeServiceLang("forms.php", $lang);
Комментируйте все, что связано с CWizardUtil. Для этого в начало строки с этим кодом пропишите двойной слеш — "//".
//CWizardUtil::ReplaceMacros($bitrixTemplateDir."/header.php", array("FEEDBACK_FORM_ID" => $form_id)); //CWizardUtil::ReplaceMacrosRecursive(WIZARD_SITE_PATH, array("FORM_FEEDBACK_ID" => $form_id));
Также в конце можно вывести ID формы, чтобы удостовериться, что скрипт все создал корректно.
echo $form_id;
4. Запустите /form_test/feedback.php. Для этого в адресную строку вбейте путь адрес_сайта/form_test/feedback.php и перейдите по нему. Если все сработало корректно, отобразится ID формы. Точно также запустите другие файлы PHP.
5. Удалите папку /form_test/.