Для вывода свойства DETAIL_TEXT по условию в 1C-Bitrix, вам потребуется использовать шаблонизатор компонента "Элемент" (bitrix:news.detail) и добавить код для проверки условия.
Шаг 1: Настройка компонента "Элемент"
Создайте шаблон компонента "Элемент" в папке /local/templates/your_template/components/bitrix/news.detail/
Если шаблон уже создан, пропустите этот шаг. Если у вас еще нет своего шаблона, рекомендуется скопировать базовый шаблон компонента из папки /bitrix/templates/. В файле шаблона найдите и отредактируйте следующие строки:
<?php if($arResult["DETAIL_TEXT"]):?> <div class="detail_text"> <?=$arResult["DETAIL_TEXT"]?> </div> <?php endif;?>
Шаг 2: Добавление условия на вывод свойства DETAIL_TEXT
В файле /bitrix/components/bitrix/news.detail/component.php найдите и отредактируйте следующий код:
if ($arParams["CHECK_CONDITION"]) { // Проверяем условие if ($arResult["PROPERTIES"]["YOUR_CONDITION_PROPERTY"]["VALUE"]) { $this->abortResultCache(); // Выводим свойство DETAIL_TEXT, если условие выполняется $arResult["DETAIL_TEXT"] = $arResult["PROPERTIES"]["DETAIL_TEXT"]["VALUE"]["TEXT"]; } else { // Выводим другой текст, если условие не выполняется $arResult["DETAIL_TEXT"] = "Условие не выполнено"; } }
В данном коде мы добавляем проверку условия с помощью переменной $arParams["CHECK_CONDITION"]
. Если условие выполняется, мы переопределяем значение $arParams["CHECK_CONDITION"]
, чтобы кэш компонента не использовался, и присваиваем переменной $arResult["DETAIL_TEXT"]
значение свойства DETAIL_TEXT. Если условие не выполняется, мы можем сделать вывод другого текста.
Шаг 3: Добавление параметра в компонент
В файле /bitrix/components/bitrix/news.detail/.parameters.php найдите и отредактируйте следующие строки:
$arComponentParameters = array( ... "PARAMETERS" => array( ... "CHECK_CONDITION" => array( "PARENT" => "BASE", "NAME" => GetMessage("CHECK_CONDITION"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", // Значение по умолчанию ), ... ), );
В данной секции мы добавляем новый параметр CHECK_CONDITION в описание компонента. Этот параметр будет отображаться в настройках компонента, и вы сможете задать его значение для проверки условия.
Шаг 4: Использование компонента
Теперь, когда мы настроили компонент "Элемент", мы можем использовать его на странице инфоблока и передать значение параметра CHECK_CONDITION:
$APPLICATION->IncludeComponent( "bitrix:news.detail", "", Array( ... "CHECK_CONDITION" => "Y", // Значение параметра CHECK_CONDITION ... ) );
В данном примере мы передаем значение "Y" в параметр CHECK_CONDITION, что означает, что условие будет выполняться, и свойство DETAIL_TEXT будет выведено на страницу.
Замечание: Проверка условия основывается на значении свойства YOUR_CONDITION_PROPERTY объекта. Замените YOUR_CONDITION_PROPERTY на код вашего свойства, которое содержит условие для вывода свойства DETAIL_TEXT.