по апи через php?
Я покопался в апи, можно подключить компонент через апи так
$component = new CBitrixComponent;
$component->initComponent("bitrix:catalog.smart.filter");
Но он не подключает почему-то свой класс в компоненте (class.php) когда инициализируешь компонент и соответсвенно свои методы. Можно ли как-то инициализировать компонент с его классом и методами, чтобы уже напрямую обращаться к методам компонента?
Подключить класс компонента можно вот так \CBitrixComponent::includeComponentClass('vendor:component'); а потом можно использовать статические методы либо создать экземпляр.
Я пробовал. Но там статические методы не получится использовать, т.к. внутри методов есть $this-> А как связать $component = new CBitrixComponent; $component->initComponent("bitrix:catalog.smart.filter"); и \CBitrixComponent::includeComponentClass('vendor:component'); Чтобы использовать методы? Я пробовал \CBitrixComponent::includeComponentClass('bitrix:catalog.smart.filter'); $component = new CBitrixComponent; $component->initComponent("bitrix:catalog.smart.filter"); Но методы внутри $component все равно не видит, если например обращаться $component->fillItemValues($arLink, $value); (на примере компонента bitrix:catalog.smart.filter)
Так надо не $component = new CBitrixComponent; А $component = new YourComponentClass; Метод includeComponentClass подключает class.php указанного компонента. И ты можешь с этим классом работать дальше, как с любым другим.
Спасибо, попробую.
сразу напрямую с классом получилось сделать. спасибо.
Обсуждают сегодня