Из приведенного курса не очевидно, куда нужно копировать файлы. Изучение исходников привело к правильному решению.
Итак, за поиск html-шаблона отвечает метод Bitrix\Sale\PaySystem\BaseServiceHandler->searchTemplate()
Код |
---|
private function searchTemplate($template)
{
$documentRoot = Application::getDocumentRoot();
$siteTemplate = \CSite::GetCurTemplate();
$template = Manager::sanitize($template);
$handlerName = $this->getName();
$folders = array();
$folders[] = '/local/templates/'.$siteTemplate.'/payment/'.$handlerName.'/template';
if ($siteTemplate !== '.default')
$folders[] = '/local/templates/.default/payment/'.$handlerName.'/template';
$folders[] = '/bitrix/templates/'.$siteTemplate.'/payment/'.$handlerName.'/template';
if ($siteTemplate !== '.default')
$folders[] = '/bitrix/templates/.default/payment/'.$handlerName.'/template';
$baseFolders = Manager::getHandlerDirectories();
$folders[] = $baseFolders[$this->handlerType].$handlerName.'/template';
foreach ($folders as $folder)
{
$templatePath = $documentRoot.$folder.'/'.$template.'.php';
if (IO\File::isFileExists($templatePath))
return $templatePath;
}
return '';
}
|
Таким образом, шаблон из папки /bitrix/modules/sale/handlers/paysystem/
имя_платежной_системы нужно скопировать в
папку_шаблона_сайта/payment/
имя_платежной_системы, сохранив вложенную папку template. Всё работает корректно и прекрасно кастомизируется.
Очень жаль, что эту информацию невозможно найти в документации.