По непонятной причине в документации api битрикса нет функции:
CIBlockSection::getSectionCodePath($ID) |
которая генерирует относительный путь из символьных кодов раздела такого вида:
main_section/sub_section_1/sub_section_2/this_section |
Обращаю внимание, что в начале и в конце не будет слешов!
Получаем 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']; |
Если кто не знает, то все свойства элемента ввиде массива можно получить так:
$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'); |
Часто нужно в коде шаблона элемента новости или товара получить его дополнительные свойства.
Проще всего это сделать так:
Прочитать больше
Проверять на Битрикс текущего авторизованного пользователя администратор он или нет очень просто:
global $USER; if ($USER->IsAdmin()) { echo "Вы администратор!"; } else { echo "Вы НЕ администратор"; } |
Предположим, у вас есть ссылки вида: 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']; |
Очень часто не хочется писать громоздкую конструкцию типа: if(условие) {правда} else {ложь}
Пример:
($a >= $b) ? $a=0 : a=1 |
Расшифровка. Если переменная $a больше или равна $b, то $a равна 0, иначе $a равна 1
Код
$APPLICATION->GetCurPage(); |
выведет: /path/page
эквивалентно:
$_SERVER['REQUEST_URI']; |
Преобразует дату вида: 01-02-2017 12:10:35 в 02.01
Прочитать больше