Почта:vova@vbeg.ru
Скайп:vova-beglecov

Шпаргалка по API Битрикса

1. Как добавить элемент в навигационную цепочку (карта разделов, хлебные крошки, breadcrumb)?

$APPLICATION->AddChainItem("Элемент", "http://element_url.test.ru");


2. Изменение размеров картинки

$slide_picture = CFile::ResizeImageGet(
	$item['PREVIEW_PICTURE']['ID'],
	array(
		'width' => '300',
		'height' => '100'
	),
	BX_RESIZE_IMAGE_PROPORTIONAL
);

Описание функции CFile::ResizeImageGet (http://dev.1c-bitrix.ru/api_help/main/reference/cfile/resizeimageget.php)
Функция уменьшает картинку и размещает уменьшенную копию в папку /upload/resize_cache/путь. Один раз уменьшив изображение получаем физический файл, который позволяет при последующих обращениях не проводить операции по уменьшению изображения. При следующем вызове функция вернет путь к уменьшенному файлу.


3. Получить список разделов (секций)

$elementsResult = CIBlockSection::GetList( 
	array($arParams['SORT_BY1'] => $arParams['SORT_ORDER1']),
	array( 
 		'IBLOCK_ID' => $arParams['IBLOCK_ID'],
 		'ACTIVE' => 'Y',
 		'ACTIVE_DATE' => 'Y',
 		'UF_POPULAR_CATEGORY' => '1'
 	), 
 	false,
 	array(
 		"nPageSize" => $arParams['ELEMENTS_COUNT'],
 		"iNumPage" => 0,
 	) 
);
while($obItem = $elementsResult->GetNextElement())
{ 
	$item = $obItem->GetFields(); 
 	$arResult['ITEMS'][] = $item; 
}	

Подробнее http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblocksection/getlist.php


4. Меню разделов (секций)

$arCatalogSectionsMenu=$APPLICATION->IncludeComponent("santeh:menu.sections", "", Array( 
	"ID" => $_REQUEST["SECTION_ID"],
	"IBLOCK_TYPE" => "catalog_info",
	"IBLOCK_ID" => "13",
	"SECTION_URL" => "/catalog/#SECTION_CODE#/", 
	"DEPTH_LEVEL" => "2",
	"CACHE_TYPE" => "A",
	"CACHE_TIME" => "3600"
));

Компонент вернёт в переменную $arCatalogSectionsMenu массив пунктов меню.
Подробнее https://dev.1c-bitrix.ru/user_help/settings/settings/components_2/navigation/menu_section.php


5. Получить URL страницы с добавленными параметрами

$arResult['ADD_BOOKMARK_URL'] = $APPLICATION->GetCurPageParam($arParams['ACTION_VARIABLE'].'=ADD_BOOKMARK&id='.$arResult['ID'], array('action', 'id'));

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cmain/getcurpageparam.php


6. Добавить строку между тегами <head>…</head>

$APPLICATION->AddHeadString('<script type="text/javascript" src="/js/jquery.colorbox.js"></script>',true);

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cmain/addheadstring.php


7. Количество элементов в выборке

Описание функции
CDBResult::SelectedRowsCount()
Функция возвращает количество выбранных записей (выборка записей осуществляется с помощью SQL-команды "SELECT ...").

Образец вызова
$elements_count = $elementsResult->SelectedRowsCount();

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cdbresult/selectedrowscount.php


8. Список родительских разделов (секций) элемента

Описание функции
CIBlockResult CIBlockSection::GetNavChain(
	int IBLOCK_ID,
	int SECTION_ID
);
Функция возвращает путь по дереву от корня до раздела SECTION_ID.

Образец вызова
$resSection = CIBlockSection::GetNavChain(false, $item['IBLOCK_SECTION_ID']);
while($arSection = $resSection->GetNext())
{ 
	$array_sections[] = $arSection;
}

Подробнее http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblocksection/getnavchain.php


9. Конвертировать время из Unix-формата в формат сайта

Описание функции
string ConvertTimeStamp(
	int timestamp = false,
	string format_type = "SHORT",
	mixed site_id = false
);
Функция конвертирует время из Unix-формата в строку в формате сайта.

Образец вызова
$obResult = CIBlockElement::GetList(
	array(
 		"ID"=>"DESC", 
 	), array(
 		'IBLOCK_ID' => $arParams['IBLOCK_ID'],
 		'SECTION_ID' => $arParams['SECTION_ID'], 
 		'<=DATE_ACTIVE_FROM' => ConvertTimeStamp(time() – 86400, "FULL"),
));

Подробнее http://dev.1c-bitrix.ru/api_help/main/functions/date/converttimestamp.php


10. Получение списка элементов инфоблока

Описание функции
CIBlockResult
	CIBlockElement::GetList(
 	array arOrder = Array("SORT"=>"ASC"),
 	array arFilter = Array(),
 	mixed arGroupBy = false,
 	mixed arNavStartParams = false,
 	array arSelectFields = Array()
);
Функция возвращает список элементов по фильтру arFilter

Образец вызова
$elementsResult = CIBlockElement::GetList(
	array("DATE_ACTIVE_FROM"=>"DESC"),
 	array(
 		'IBLOCK_ID' => $arParams['IBLOCK_ID'],
 		'ACTIVE' => 'Y',
 		'ACTIVE_DATE' => 'Y',
 	),
 	false,
 	array(
 		"nPageSize" => $arParams['STRANATION_ELEMENTS_COUNT'],
 		"iNumPage" => $CURRENT_PAGE_NUMBER, 
)); 
while($obItem = $elementsResult->GetNextElement())
{ 
	$item = $obItem->GetFields();
 	$item['PROPERTIES'] = $obItem->GetProperties();

 	$arResult['ITEMS'][] = $item;
}

Подробнее http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getlist.php


11. Удаление элемента из инфоблока

Описание функции
bool CIBlockElement::Delete(
	int ID
);
Функция удаляет элемент информационного блока. Также удаляются значения свойств типа "Привязка к элементу" указывающие на удаляемый.

Образец вызова
while($arNews = $obResult->GetNext())
{
	if(!CIBlockElement::Delete($arNews['ID'])) $arResult['COUNT_ERROR_DELETE']++;
}

Подробнее http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/delete.php


12. Получить параметры элемента инфоблока по его ID

Описание функции
CIBlockResult CIBlockElement::GetByID(
	int ID 
);
Функция возвращает параметры элемента с кодом ID или false, если элемент не найден.

Образец вызова
$obKonkursResult =CIBlockElement::GetByID($element_id);
if($obKonkursResult!=false && $obKonkursItem = $obKonkursResult->GetNext())
{
	echo $obKonkursItem['DETAIL_PAGE_URL'];
}

Подробнее http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/getbyid.php


13. Получение символьного кода (транслитерация строки)

Описание функции
string Cutil::translit($str, $lang, $params = array());
Функция транслитерирует строку $str с языка $lang с параметрами $params.

Образец вызова
$translitParams = Array(
	"max_len" => "100", // обрезает символьный код до 100 символов
 	"change_case" => "L", // буквы преобразуются к нижнему регистру
 	"replace_space" => "-", // меняем пробелы на тире
 	"replace_other" => "-", // меняем прочие символы на тире
 	"delete_repeat_replace" => "true", // удаляем повторяющиеся пробелы
 	"use_google" => "false", // отключаем использование google 
); 
$arSectionFields = Array(
	"CODE" => CUtil::translit("Название элемента 123", "ru", $translitParams),
 	"ACTIVE" => 'Y',
 	"IBLOCK_ID" => $arParams['MATERIAL_IBLOCK_ID'],
 	"NAME" => $arResult['KONKURS']['NAME'],
);

Подробнее http://dev.1c-bitrix.ru/api_help/main/functions/other/index.php


14. Получение сведений о файле по его ID

Описание функции
mixed CFile::GetFileArray(
	int FILE_ID
);
Функция возвращает массив описывающий файл с заданным идентификатором или false, если файла с таким идентификатором не существует.

Образец вызова
if($item['PREVIEW_PICTURE']>0) $item['PREVIEW_PICTURE'] = CFile::GetFileArray($item['PREVIEW_PICTURE']); 
if($item['DETAIL_PICTURE']>0) $item['DETAIL_PICTURE'] = CFile::GetFileArray($item['DETAIL_PICTURE']);

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cfile/getfilearray.php


15. Подключение модуля

Описание функции
bool CModule::IncludeModule(string module_name);
Проверяет установлен ли модуль и если установлен, то подключает его. Возвращает «true», если модуль установлен, иначе – «false».

Образец подключения модулей
CModule::IncludeModule("iblock");
CModule::IncludeModule("catalog");
CModule::IncludeModule("sale");

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cmodule/includemodule.php


16. Вставка включаемой области или компонента

Описание функции
mixed IncludeComponent(
	string componentName,
 	string componentTemplate,
 	array arParams=array(),
 	object parentComponent=null,
 	array arFunctionParams=array()
);
Метод подключает компонент 2.0.

Образец вставки включаемой области
<? $APPLICATION->IncludeComponent("bitrix:main.include", "", array("AREA_FILE_SHOW" => "file", "PATH" => SITE_DIR."include_areas/telephones.php"), false); ?>

Образец вставки компонента
<? $APPLICATION->IncludeComponent("bitrix:breadcrumb","fitland",Array(
	"START_FROM" => "0",
	"PATH" => "",
	"SITE_ID" => ""
)
); ?>

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cmain/includecomponent.php


17. Выполнение прямых запросов к БД

Описание функции
mixed CDatabase::Query(
	string sql,
 	bool ignore_errors=false,
 	string error_position="",
 	array Options=array() 
)
Метод выполняет запрос к базе данных и если не произошло ошибки возвращает результат.
В случае успешного выполнения метод возвращает объект класса CDBResult.
Если произошла ошибка и параметр ignore_errors равен "true", то метод вернет "false".

Образец вызова
global $DB;

$sql_query="
	SELECT *
  	FROM `b_user`
";
//echo $sql_query;
$rs = $DB->Query($sql_query, true);
if($rs!=false)
{
	while($item = $rs->GetNext())
	{
		print_r($item);
	}
}

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cdatabase/query.php


18. Получение сведений о пользователе по его ID

Описание функции
CDBResult CUser::GetByID(
	int id
)
Возвращает пользователя по его коду id в виде объекта класса CDBResult.

Образец вызова
$rsUser = CUser::GetByID(999); //999 - ID пользователя
if($arUser = $rsUser->Fetch())
{
	print_r($arUser);
}

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cuser/getbyid.php


19. Проверка пользователя на админа

Описание функции
bool CUser::IsAdmin()
Проверяет принадлежность текущего авторизованного пользователя группе администраторов (как правило вызывается с объекта $USER).
Возращает "true" - если пользователь принадлежит группе администраторов, в противном случае вернет "false".

Образец вызова
global $USER;
if ($USER->IsAuthorized() && $USER->IsAdmin())
{
	echo 'Вы являетесь администратором';	
}
else echo 'Вы простой пользователь';

Подробнее http://dev.1c-bitrix.ru/api_help/main/reference/cuser/isadmin.php


20. Запрет индексации страницы поисковиками

Добавляет в раздел <head></head> мета-тег для запрета индексирования текущей страницы поисковиками:
<meta name="robots" content="noindex, nofollow" />

Образец вызова
$APPLICATION->SetPageProperty("robots", "noindex, nofollow");