Битрикс шпаргалка

Нет картинки Шпаргалка по часто встречающимся кускам кода для битрикса.

1. Получить ID текущего раздела (например, в шаблоне компонента каталога)

print_r($arResult["VARIABLES"]["SECTION_ID"]);

 

2. Проверка авторизован ли как Администратор

<?php
    global $USER;
    if ($USER->IsAdmin()) echo "<pre>"; print_r($arResult["VARIABLES"]["SECTION_ID"]); echo "</pre>";
 

3. Выводить список разделов каталога, отобранных по пользовательским полям. Не забыть array("UF_*"). Без компонента, например, catalog.section.list

<?php
                        //global $USER;
                        //if ($USER->IsAdmin()) print_r($arResult["VARIABLES"]["SECTION_ID"]);
                        //$SECTION_IDs = array(24,23);
                        $rsSections = CIBlockSection::GetList(
                            array("SORT" => "ASC"),
                            array("IBLOCK_ID" => 4, "ID" => $SECTION_IDs, "UF_QUICKLINKS" => 1, "UF_CONNECTTOSEC" => $arResult["VARIABLES"]["SECTION_ID"]),
                            false,
                            array("UF_*")
                        );?>
                       
                        <ul class="quicklinks">
                            <? while ($arSections = $rsSections->fetch()){?>
                                <li><a href="/<?= $arSections['CODE'] ?>">
                                    <?= $arSections['NAME'] ?>
                                </a></li>
                            <?}?>
                        </ul>

 

4. Фильтр у catalog.section.list (т.к. его нет по умолчанию). Выводим список разделов с помощью компонента catalog.section.list, в отличие от приведённого выше способа с CIBlockSection::GetList.

Пока пользуйтесь result_modifier.php, пример: выводить разделы на главной (перед этим создаете пользовательское свойство раздела и выбираете его в настройках компонента catalog.section.list):

<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

foreach ($arResult['SECTIONS'] as $key => $arSection)
{
   if ($arSection["UF_QUICKLINKS"])
      unset($arResult['SECTIONS'][$key]);
}

 

5. Вывести дополнительное поле

$ar_result=CIBlockSection::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>$arParams['IBLOCK_ID'], "ID"=>$arResult['SECTION']['ID']),false, Array("UF_H1"));
if($res=$ar_result->GetNext()){echo $res["UF_H1"];}

 

6. Получение SEO тегов элемента инфоблока

Для получения тегов элемента инфоблока:

//Следующий код выведет нам набор СЕО тегов элемента с указанным ID
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult['IBLOCK_ID'], $arResult['ID']);
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues();
var_dump($arResult['IPROPERTY_VALUES']);

Для получения тегов раздела инфоблока:

$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($arResult['IBLOCK_ID'], $arResult['IBLOCK_SECTION_ID']);
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues();
var_dump($arResult['IPROPERTY_VALUES']);

Для получения тегов инфоблока:

$ipropValues = new \Bitrix\Iblock\InheritedProperty\IblockValues($arResult['IBLOCK_ID']);
$arResult['IPROPERTY_VALUES'] = $ipropValues->getValues();
var_dump($arResult['IPROPERTY_VALUES']);

Обратите внимание, что во всех случаях задается ID инфоблока ($arResult['IBLOCK_ID']), а для выборки тегов раздела инфоблока или элемента инфоблока дополнительно указать ID раздела ($arResult['IBLOCK_SECTION_ID']) или ID элемента ( $arResult['ID']), соответственно. Отмечу, что код написан с использованием идеологии разработки D7, что привнесло,в том числе, единообразие в аналогичные методы для разных сущностей. (http://www.codeblog.pro/bitrix1c/poluchenie-seo-tegov-elementa-infobloka/)

 

7. Скрыть раздел от показа в меню (компонент catalog.section.list)

<ul class="<? echo $arCurView['LIST']; ?>">
<?
switch ($arParams['VIEW_MODE'])
{
case 'LINE':
foreach ($arResult['SECTIONS'] as &$arSection)
{
     if ($arSection['ID'] != 434) { /* скрываем раздел Готовая продукция из левого меню*/
...

 

 
Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.