Шпоры по 1c-bitrix
← Назад в записки веб-программиста
Шпоры по 1c-bitrix
Мой набор функций, трюков и хитростей, собранных за период программирования на битриксе. Собрал их в одной заметке с целью копирования, когда лень набирать код руками. Больше о битриксе можете найти в разделе BITRIX в заметках веб-программиста. Пользуйтесь, изучайте и делитесь.
Стандартный гетлист(CIBlockElement::GetList), который я обычно копирую с документации апи битрикс, на выходе массив с выбранными элементами:
$arSelect = Array("ID", "NAME"); $arFilter = Array("IBLOCK_ID"=>IntVal($idIblock), "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect); while($ob = $res->GetNextElement()) { $arFields = $ob->GetFields(); $arElements[] = $arFields; //массив элементов }
Получаем список активных пользователей:
$cUser = new CUser; $sort_by = "ID"; $sort_ord = "ASC"; $arFilter = array("ACTIVE" => 'Y'); $dbUsers = $cUser->GetList($sort_by, $sort_ord, $arFilter); while ($arUser = $dbUsers->Fetch()) { $users[]=$arUser; }
Высылаем уведомление на почту (id пользователя, id сайта(константа), текст письма):
CUser::SendUserInfo($idUser, SITE_ID, "Текст сообщения");
Подключаем файлы(css,js,...) в head, работает благодаря отложенным функциям битрикса:
$APPLICATION->AddHeadString('<link href="'.SITE_TEMPLATE_PATH.'/css/script.css"; type="text/css" rel="stylesheet" />',true); $APPLICATION->AddHeadString('<script type="text/javascript" src="'.SITE_TEMPLATE_PATH.'/js/script.js">',true);
Очищаем свойство без потери значений других свойств:
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $iblock_id, array("Код свойства" => array('del'=>'Y')));
Записываем свойство без потери значений других свойств:
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $iblock_id, array( 'Код свойства' => 'значение свойства(строка, массив нескольких значений(множественных свойств))' ));
Прописываем титл, ключи, описание, заголовок, работает благодаря отложенным функциям битрикса:
$APPLICATION->SetPageProperty("title", "Заголовок"); $APPLICATION->SetPageProperty("keywords", "Заголовок"); $APPLICATION->SetPageProperty("description", "Заголовок"); $APPLICATION->SetTitle("Заголовок");
Подключаем хидер шаблона:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
Подключаем футер шаблона:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
Подключаем пролог(набор функций, классов, модулей и других функциональных частей битрикса):
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
Подключаем модули битрикса, в данном случае модуль инфоблоков:
if(!CModule::IncludeModule('iblock')) die('error');
Авторизован ли пользователь:
if ($USER->IsAuthorized())
Пример вызова агента, не забудьте создать агент в админке, вставляйте код в init.php:
function functionAgent() { //Здесь код агента, который будет срабатывать при запуске агента return "functionAgent();"; }
Вызвав гетлист, методом GetPageNavStringEx помещаем в $pag хтмл код пагинации, в данном случае шаблон - modern:
$res = CIBlockElement::GetList($arOrder, $arFilter, false, Array("nPageSize"=>20), $arSelect); $pag = $res->GetPageNavStringEx($navComponentObject, "", 'modern');
Фильтр для выборки элементов, которые содержат в своем имени строку $mask:
$arFilter = array( "IBLOCK_ID"=>10, "ACTIVE"=>"Y", "NAME" => array("%".$mask."%") );