В свое время Антон Долганин создал на форуме соответствующую тему -
Т.е. задачка простая - какие могут быть варианты вывода компонента по условию.
[spoiler]
Я предложил сделать отложенную функцию, где бы вызывался компонент включаемой области, а уже в файлике, который будет подключаться - вызов нужного компонента. Основной аргумент - возможность настройки вызываемого компонента в визуальном редакторе, да и вообще нормальная работа с ним (копирование шаблона, сброс кеша и прочее).
Пришлось проверить идею на практике - потребовалось в компоненте получать имя текущей страницы, так что только через отложенные функции:
В общем, работает. Даже как надо. Но выяснились следующие моменты (сообразить можно было сразу). Отложенные функции к моменту вызова уже отработали, значит, не будет работать:
Т.е. задачка простая - какие могут быть варианты вывода компонента по условию.
[spoiler]
Я предложил сделать отложенную функцию, где бы вызывался компонент включаемой области, а уже в файлике, который будет подключаться - вызов нужного компонента. Основной аргумент - возможность настройки вызываемого компонента в визуальном редакторе, да и вообще нормальная работа с ним (копирование шаблона, сброс кеша и прочее).
Пришлось проверить идею на практике - потребовалось в компоненте получать имя текущей страницы, так что только через отложенные функции:
function GetSocialButtons()
{
global $APPLICATION;
$strResult = '';
$strShow = $APPLICATION->GetProperty('not_show_social_shared','');
if ('Y' != $strShow)
{
ob_start();
?><?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "file",
"PATH" => "/social-buttons.php",
"EDIT_TEMPLATE" => ""
),
false
);?><?
$strResult = ob_get_contents();
ob_clean();
ob_end_clean();
}
return $strResult;
}
function ShowSocialButtons()
{
global $APPLICATION;
$APPLICATION->AddBufferContent("GetSocialButtons");
}
|
В общем, работает. Даже как надо. Но выяснились следующие моменты (сообразить можно было сразу). Отложенные функции к моменту вызова уже отработали, значит, не будет работать:
- Подключение стилей шаблона компонента (подключение скриптов шаблона работает)
- Установка названия, мета-тэгов, свойств страниц и разделов
?