Шпаргалка 1С Битрикс
This content is not available in your language yet.
Пользователь
global $USER; // объект пользователя
if ( $USER->IsAdmin() ) {} // проверка является ли пользователь администратором
if ( $USER->IsAuthorized() ) {} // проверка авторизован ли
if ( in_array(2, $USER->GetUserGroupArray() ) {} // проверка пользователь в группе 2
if ( CSite::InGroup( array(4, 5) ) ) {} // пользователь в группе 4 или 5 (или в обеих)
$rsUser = CUser::GetByID(123); // получения информации о пользователе по ID
$arUser = $rsUser->Fetch();
echo $arUser["ADMIN_NOTES"];
Объекты Context, Request в Битрикс D7
// Подключениеuse Bitrix\Main\Application, Bitrix\Main\Context, Bitrix\Main\Request, Bitrix\Main\Server;
$application = Application::getInstance(); // Объект приложения$docRoot = Application::getDocumentRoot(); // root$connection = Application::getConnection(); // соединение с БД
$context = Context::getCurrent(); // контекст текущего хита$request = $context->getRequest(); // объект Request$server = $context->getServer(); // объект Server$siteId = $context->getSite(); // ID текущего сайта ("s1")$langId = $context->getLanguage(); // ID текущего языка ("ru")
$request = Context::getCurrent()->getRequest(); // Объект запроса$request = $context->getRequest(); // альтернатива
$value = $request->get("param"); // получение параметра$value = $request["param"]; // получение параметра$values = $request->getQueryList(); // список параметров$value = $request->getQuery("param"); // получение GET-параметра$value = $request->getPost("param"); // получение POST-параметра$values = $request->getPostList(); // получение списка POST-параметров$value = $request->getFile("param"); // получение загруженного файла$values = $request->getFileList(); // получение списка загруженных файлов$value = $request->getCookie("param"); // получение значения куки$values = $request->getCookieList(); // получение списка$method = $request->getRequestMethod(); // получение метода запроса$flag = $request->isGet(); // true - GET-запрос, иначе false$flag = $request->isPost(); // true - POST-запрос, иначе false$flag = $request->isAjaxRequest(); // true - AJAX-запрос, иначе false$flag = $request->isHttps(); // true - HTTPS-запрос, иначе false$flag = $request->isAdminSection(); // true - находимся в админке, иначе false$requestUri = $request->getRequestUri(); // Запрошенный адрес (напр. "/catalog/category/?param=value")$requestPage = $request->getRequestedPage(); // Запрошенная страница (напр. "/catalog/category/index.php")$rDir = $request->getRequestedPageDirectory(); // Директория запрошенной страницы (напр. "/catalog/category")
$server = Context::getCurrent()->getServer(); // сервер$server->getDocumentRoot(); // DOCUMENT_ROOT$server->getHttpHost(); // HTTP_HOST$server->getServerName(); // SERVER_NAME$server->getServerAddr(); // SERVER_ADDR$server->getServerPort(); // SERVER_PORT$server->getRequestUri(); // REQUEST_URI$server->getRequestMethod(); // REQUEST_METHOD$server->getPhpSelf(); // PHP_SELF$server->getScriptName(); // SCRIPT_NAME$server->get('HTTP_ACCEPT'); // Любое значение из $_SERVER
Дата в D7
// подключениеuse Bitrix\Main\Type\DateTime;$objDateTime = DateTime::createFromPhp(new \DateTime('2020-07-10'));$objDateTime = DateTime::createFromTimestamp(1594383132);// или$objDateTime = new DateTime();$objDateTime = new DateTime("25.12.2012 12:30:00"); // из строки в формате сайта$objDateTime = new DateTime("2007-05-14 12:10:00", "Y-m-d H:i:s"); // из строки указав формат
$objDateTime->getTimestamp(); // timestamp$objDateTime->toString(); // формат текущего сайта$objDateTime->format("Y-m-d H:i:s"); // произвольный формат$objDateTime->add("1 day"); // плюс 1 день$objDateTime->add("-1 day"); // минус 1 день$objDateTime->add("2 months - 10 days + 15 minutes");
Обрезать фото
$resizedImage = CFile::ResizeImageGet(123, array('width'=>200, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, false );
if ($resizedImage) {
echo '<img src="'.$resizedImage["src"].'" />';
}
Настройки сайта
$APPLICATION->GetCurPage(true); // страницаSITE_ID // ID сайта (например, s1)LANGUAGE_ID // языкSITE_TEMPLATE_PATH // путь к шаблонуSITE_SERVER_NAME // адрес сайта (без http://)
$rsSites = CSite::GetByID(SITE_ID);$arSite = $rsSites->Fetch();
Информация о заказе
use Bitrix\Sale;\Bitrix\Main\Loader::includeModule('sale');$order = Sale\Order::loadByAccountNumber('N44EM3'); // получаем заказ по коду$order = Sale\Order::load(7); // получаем заказ по номеру
// публичную ссылку на заказ можно получить так:if (Sale\Helpers\Order::isAllowGuestView($order))$publicLink = Sale\Helpers\Order::getPublicLink($order);
// данные заказа$order->getId(); // ID заказа$order->getSiteId(); // ID сайта$order->getDateInsert(); // дата, объект Bitrix\Main\Type\DateTime$order->getPersonTypeId(); // ID типа покупателя$order->getUserId(); // ID пользователя// состояние$order->isPaid(); // оплачен$order->isAllowDelivery(); // разрешена доставка$order->isShipped(); // отправлен$order->isCanceled(); // отменен// суммы$order->getPrice(); // Сумма заказа$order->getDiscountPrice(); // Размер скидки$order->getDeliveryPrice(); // Стоимость доставки$order->getSumPaid(); // Оплаченная сумма$order->getCurrency(); // Валюта заказа
// массив доступных полей$ar = $order->getAvailableFields();$order->getField("ORDER_WEIGHT"); // Вес заказа$order->getField('PRICE'); // Сумма заказа$order->getField('USER_DESCRIPTION'); // Комментарий к заказу
// сохранение заказа$order->setField('STATUS_ID', 'N');$order->save();
Подключение JS/CSS
// Подключение css, js и jquery<?$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/style.css");?><?$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH . "/js/script.js");?><?$APPLICATION->SetHeadString('<meta name="viewport" content="width=device-width, initial-scale=1">');<?CJSCore::Init(array("jquery"));?>
// Подключение файлов CSS и JS в D7<?
use Bitrix\Main\Page\Asset;Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . '/css/style.css');Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . '/js/script.js');Asset::getInstance()->addString('<meta name="viewport" content="width=device-width, initial-scale=1">');
// Подключение js и css в шаблоне компонента$this->addExternalJS('/local/js/script.js');$this->addExternalCss('/local/css/style.css');
?>
Шаблон
<? $APPLICATION->ShowTitle(); ?> // мета-заголовок<? $APPLICATION->ShowTitle(false); ?> // заголовок H1<? $APPLICATION->ShowHead(); ?> // вывод основных тегов (Content-Type, robots, keywords, description; стили CSS; скрипты javascript)<? $APPLICATION->ShowPanel(); ?> // выводит панель управления<?=SITE_TEMPLATE_PATH;?> // путь к шаблону<?=SITE_SERVER_NAME;?> // сайт<?=LANG_CHARSET;?> // Кодировка сайта
// Мета-теги по отдельности<? $APPLICATION->ShowMeta("description") ?><? $APPLICATION->ShowMeta("keywords") ?><? $APPLICATION->ShowCSS(); ?> // template_styles.css и styles.css<? $APPLICATION->ShowHeadStrings() ?> // специальные стили, JavaScript<? $APPLICATION->ShowHeadScripts() ?> // служебные скрипты
Пример простой страницы
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");$APPLICATION->SetTitle("Заголовок страницы"); ?><? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>
Пример простой страницы без дизайна
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php");
Редирект
<?php/* LocalRedirect( string url, bool skip_security_check=false, string status="302 Found"); */// Простой 302 редиректLocalRedirect('/some_page/');// 301 редирект с проверкой модуля безопасности на фишингLocalRedirect('/some_page/', false, "301 Moved permanently");// 301 редирект БЕЗ проверкой модуля безопасности на фишингLocalRedirect('/some_page/', true, "301 Moved permanently");
Определение принадлежности к странице или разделу
<?phpif (!CSite::InDir('/index.php')) : // все страницы кроме главнойendif;
if (CSite::InDir('/catalog/')) : // все страницы и подразделы раздела каталогendif;
if (CSite::InDir('/catalog/index.php')) : // только основная страница раздела каталогendif;
Подключение файлов
<?php// С возможностью правки из пользовательской части$APPLICATION->IncludeFile(SITE_TEMPLATE_PATH . '/include/popupForms.php');
// Без возможности правки из пользовательской части$APPLICATION->IncludeFile(SITE_TEMPLATE_PATH . '/include/popupForms.php', false, ['SHOW_BORDER' => false]);
// С указанием типа правки php, html, text$APPLICATION->IncludeFile(SITE_TEMPLATE_PATH . '/include/popupForms.php', false, ["MODE" => "php"]);
// С указанием передачей переменных в файл (в файле будет доступна переменная $name)$APPLICATION->IncludeFile(SITE_TEMPLATE_PATH . '/include/popupForms.php', ['name' => $arResult['NAME']], ['SHOW_BORDER' => false]);