Bitrix, как передать переменную в другой компонент или отложенные функции

Дата: 23 февраля /

Встала задача передать значения из одного компонента в другой. Также этот способ может использоваться чтобы передать значение выше по коду.

<?
//Выводим значение
$APPLICATION->AddBufferContent("getSlogan");
?>

<?
//Сохраняем значение из переменной $dataId
$dataId = "test";
$APPLICATION->SetPageProperty("sectionId",$dataId);
?>

<?
//Добавляем функцию-обработчик в init.php
function GetSlogan()
{
    CModule::IncludeModule('iblock');
    global $APPLICATION;
    # вот тут нам будет доступно наше значение,
    # можно делать условие или передавать в компонент и т.д.
    
    # Вызываем отложенное свойство
    $getSectionId = $APPLICATION->GetPageProperty("sectpos");

    # Проверяем текущий раздел и получаем его свойства
    if($getSectionId != "")
    {
        $rsResult = CIBlockSection::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => "3", "ID" => $getSectionId), false, $arSelect = array("UF_*"));
        while ($arResult = $rsResult -> GetNext())
        {
            $sloganId = $arResult["UF_SLOGAN"];
        }
        
        # Проверяем ид слогана и получаем его свойства
        if($sloganId != "")
        {
            $resSlogan = CIBlockElement::GetByID($sloganId);
            $arSlogan = $resSlogan->GetNext();
        }
    }
    
    # Если получили картинку для вывода, то выводим слоган
    if($arSlogan["DETAIL_PICTURE"] != "")
    {
      $imgPath = CFile::GetPath($arSlogan["DETAIL_PICTURE"]);
      $fullSlogan = '<div id="block-slogan" style="background: url(\''.$imgPath.'\');">
      '.$arSlogan["DETAIL_TEXT"].'
      </div>';
    }

    # Слоган не найден, выводим слогин с наименьшим ид
    else
    {   
        $arOrder = Array("SORT"=>"ASC");
        $arSelect = Array("NAME", "DATE_ACTIVE_FROM","PREVIEW_TEXT","DETAIL_TEXT","DETAIL_PICTURE");
        $arFilter = Array("IBLOCK_ID"=>5, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
    
        $res = CIBlockElement::GetList($arOrder, $arFilter, false, Array("nPageSize"=>1), $arSelect);
    
        while($ob = $res->GetNextElement())
        { 
          $arFields = $ob->GetFields();
        }
           
        $imgPath = CFile::GetPath($arFields["DETAIL_PICTURE"]);
        $fullSlogan = '<div id="block-slogan" style="background: url(\''.$imgPath.'\');">
        '.$arFields["DETAIL_TEXT"].'
        </div>';
    }


    $contentTime = $fullSlogan;
    
    
   
    
    return $contentTime;


}
?>

Статьи по теме:

  1. Bitrix, как работать с пользовательскими полями секций?
  2. Bitrix, как добавить имя новости в навигационную цепочку, breadcrumb?
  3. Bitrix, список основных шаблонов в компонентах news
  4. Bitrix, как вывести с помощью функции GetIBlockElementListEx неактивные элементы?
  5. Битрикс, как скопировать инфоблок?

Метки: ,

Рубрика: Bitrix

Оставить комментарий