Битрикс с некоторых пор позволяет наследовать компоненты. Но при этом не совсем очевидно как сделать наследование шаблона родительского компонента. Помогает такой вот костыль:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); CBitrixComponent::includeComponentClass('vendor:cool.parent'); class MyComponent extends CoolParentComponent { protected function getParentTemplatePath() { $parent = new CBitrixComponent; $parent->initComponent('vendor:cool.parent'); $path = $parent->__path . '/templates/' . $this->__template->__name; return $path; } public function executeComponent() { parent::executeComponent(); $this->IncludeComponentTemplate('', $this->getParentTemplatePath()); } } |
При таком способе подключается только файл template.php. Остальные файлы шаблона не подключены (стили, js, result_modifier.php). Как комплексно подключить весь шаблон?