Путь из символьных кодов к разделу в Битрикс

Автор:Alex Posted Сен 24, 2018

Путь из символьных кодов к разделу в Битрикс

По непонятной причине в документации api битрикса нет функции:

CIBlockSection::getSectionCodePath($ID)

которая генерирует относительный путь из символьных кодов раздела такого вида:

main_section/sub_section_1/sub_section_2/this_section

Обращаю внимание, что в начале и в конце не будет слешов!

Автор:Alex Posted Сен 24, 2018

Получить SEO параметры раздела в Битрикс

Получаем SEO-параметры нужного нам раздела с помощью D7

$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($id_iblock,$id_section);
$arSection_seo["IPROPERTY_VALUES"] = $ipropValues->getValues();
$page_title = $arSection_seo['IPROPERTY_VALUES']['SECTION_PAGE_TITLE'];

где
$id_iblock — ID инфоблока
$id_section — ID раздела

Получим массив всех seo-свойств в $arSection_seo[«IPROPERTY_VALUES»], можете проверить в var_dump($arSection_seo[«IPROPERTY_VALUES»]). Их может быть много.

Получить конкретное свойство, например, title раздела:

$arSection_seo['IPROPERTY_VALUES']['SECTION_PAGE_TITLE'];
Автор:Alex Posted Сен 24, 2018

Получить свойства элемента в Битрикс

Если кто не знает, то все свойства элемента ввиде массива можно получить так:

$res = CIBlockElement::GetList(Array(), Array(«IBLOCK_ID»=>2, «ID»=>10));
if ($ob = $res->GetNextElement()){
$arFields = $ob->GetFields(); // поля элемента
$arProps = $ob->GetProperties(); // свойства элемента
}

Можно упростить жизнь и написать простую функцию, поместим её в init.php

function GetValueProp($id_tov, $iblock_id, $name_prop){
$arFilter = Array("IBLOCK_ID"=> $iblock_id , "ID"=>$id_tov);
$res = CIBlockElement::GetList(Array(), $arFilter2);
if ($ob = $res->GetNextElement()){
$arFields = $ob->GetFields(); // поля элемента
$arProps = $ob->GetProperties(); // свойства элемента
$prop_value = $arProps; // массив всех свойств
if(isset($name_prop)) $prop_value = $arProps[$name_prop]['VALUE'];
}
return $prop_value;}

где
$id_tov — ID элемента,
$iblock_id — ID инфоблока, 
$name_prop — символьный код свойства

Если указать, только  $id_tov и  $iblock_id, то получить массив со всеми свойствами элемента.

Если указать еще в  $name_prop, то получим только значение нужного свойства элемента.

Пример использования:

GetValueProp(2, 10, 'DLINA');

Автор:develop Posted Май 17, 2017

Получить любое свойство элемента Битрикс

Часто нужно в коде шаблона элемента новости или товара получить его дополнительные свойства.
Проще всего это сделать так:
Прочитать больше

Автор:develop Posted Май 17, 2017

Проверка на администратора Битрикс

Проверять на Битрикс текущего авторизованного пользователя администратор он или нет очень просто:

global $USER;
if ($USER->IsAdmin()) {
    echo "Вы администратор!";
} else {
    echo "Вы НЕ администратор";
}
Автор:develop Posted Май 17, 2017
In

Получаем ссылку без параметров PHP

Предположим, у вас есть ссылки вида: http://site.ru/index.php?par=1&paw=2
Как же нам избавиться от параметров из адресной строки: ?par=1&paw=2

Очень просто:

if(strpos($_SERVER['REQUEST_URI'], '?')>0){
	$this_url = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'));
} else $this_url = $_SERVER['REQUEST_URI'];
Автор:develop Posted Май 17, 2017
In

Условие PHP в строку вместо if

Очень часто не хочется писать громоздкую конструкцию типа: if(условие) {правда} else {ложь}

Пример:

($a >= $b) ? $a=0 : a=1

Расшифровка. Если переменная $a больше или равна $b, то $a равна 0, иначе $a равна 1

Автор:develop Posted Май 17, 2017

Текущая ссылка на страницу Битрикс

Код

$APPLICATION->GetCurPage();

выведет: /path/page

эквивалентно:

$_SERVER['REQUEST_URI'];
Автор:develop Posted Май 17, 2017

Преобразуем дату в нужный формат на Битрикс

Преобразует дату вида: 01-02-2017 12:10:35 в 02.01
Прочитать больше