Шпоры по 1c-bitrix

← Назад в записки веб-программиста

Шпоры по 1c-bitrix

1c-bitrixapi bitrixпрограммирование битриксCIBlockElement::GetListCUserAddHeadStringSetPropertyValuesExSetPagePropertySetTitleheaderfooterprologCModule::IncludeModuleIsAuthorizedагенты битрикспагинация битриксфильтры битрикс

Мой набор функций, трюков и хитростей, собранных за период программирования на битриксе. Собрал их в одной заметке с целью копирования, когда лень набирать код руками. Больше о битриксе можете найти в разделе 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."%")
	);