О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
Bitrix main
us.content
https://source.unsplash.com/random/800x600 <?php echo '<pre>' . PHP_EOL . print_r($_SERVER['DOCUMENT_ROOT'], true) . PHP_EOL . '</pre>'; // Главная страница if ($APPLICATION->GetCurPage() == '/') {} if ($APPLICATION->GetCurPage() == SITE_DIR) {} if ($APPLICATION->GetCurDir() !== '/') {} // Текущая страница echo $APPLICATION->GetCurPage(false); // CMain::GetCurPage(false) // false - не показывает index.php // Если нужно применить для каталога и всех внутренних подкаталогов, можно воспользоваться if(CSite::InDir(){} или для директории GetCurDir // Если страница ошибки if (ERROR_404 == 'Y') {} // Получить картинку из id thumb $img = CFile::GetPath($arResult['PREVIEW_PICTURE']); // Ресайз картинки по id $img = CFile::ResizeImageGet($res['PICTURE'], ['width' => 200, 'height' => 200])['src'] ?? CFile::GetPath($res['PICTURE']); // result_modifier template component_epilog // Документация D7 // https://dev.1c-bitrix.ru/api_d7/ // https://doc.budagov.ru/ Шпаргалка https://webdevhelp.ru/solutions/ https://costamedia.ru/blog/shpargalka-1s-bitrix/ // Обрезать строку до 200 символов $strPrew = TruncateText($arResult['DETAIL_TEXT'], 200); // Редирект LocalRedirect('/'); // Чтобы показать строку в Html echo htmlspecialcharsBack($arResult['DETAIL_TEXT']); // html_entity_decode() замена на PHP // Глобальные переменные доступные во всех компонентах global $value; $value = 'value'; // Или так $GLOBALS['value'] = 'value'; //COption::SetOptionString('main', 'tel', '222'); // Сохранить строку tel со значением 222 в БД echo COption::GetOptionString('main', 'tel'); // Получить строку tel из БД // Отправить письмо $fields = [ // Передать поля для почтового шаблона 'EMAIL' => 'test1@email.ru, test2@email.ru', ]; // SIMPLE - название почтового события, в котором может быть несколько шаблонов CEvent::Send('SIMPLE', SITE_ID, $fields); // D7 \Bitrix\Main\Mail\Event::send([ 'EVENT_NAME' => 'SIMPLE', 'LID' => SITE_ID, 'C_FIELDS' => $fields, ]); $rsSites = CSite::GetByID(SITE_ID); $GLOBALS['site'] = $rsSites->Fetch(); // Разместить в header и использовать по всему сайту $GLOBALS['site'] $_SERVER['SITE_NAME']; // SITE_SERVER_NAME URL сайта $_SERVER['DOCUMENT_ROOT']; // Корень сайта $APPLICATION->GetDirProperty('TITLE'); // Получить title $_REQUEST; // Работа в $_GET и $_POST $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest(); $get = $request->getQueryList()->toArray(); // Это тоже $_GET $get = $request->getQuery('PAGEN_1'); /* // Или так use Bitrix\Main\Application; $request = Application::getInstance()->getContext()->getRequest(); $request = $context->getRequest(); // Объект Request $flag = $request->isPost(); $flag = $request->isAjaxRequest(); $value = $request->getPost('param'); // Получение POST-параметра $value = $request->getQuery('param'); // Получение Get-параметра $server = $context->getServer(); // Объект Server $siteId = $context->getSite(); // ID текущего сайта ("s1") $langId = $context->getLanguage(); // ID текущего языка ("ru") https://mrcappuccino.ru/blog/post/d7-application-and-context-objects https://dev.1c-bitrix.ru/api_d7/bitrix/main/request/index.php // Отправить Post запрос с помощью Битрикс $httpClient = new \Bitrix\Main\Web\HttpClient; $res = $httpClient->post( 'https://site.ru', [ 'param' => 'value', ] ); // Get запрос $httpClient = new \Bitrix\Main\Web\HttpClient; $httpClient->disableSslVerification(); // Если ssl сертификат не важен $res = $httpClient->get('https://site.ru'); */ CUser::IsAuthorized(); // Если авторизирован CUser::IsAdmin(); // Если админ // Можно использовать так в коде global $USER; if ($USER->IsAdmin()) { // code... } if (in_array('5',$USER->GetUserGroupArray())) {} // Относится ли пользователь к группе 5 $user = CUser::GetByID($USER->GetID()); $user = $user->Fetch(); // Выборка данных о пользователе \Bitrix\Main\Service\GeoIp\Manager::getRealIp(); // IP пользователя // Для авторизация константа define('NEED_AUTH', true); // Все константы // https://dev.1c-bitrix.ru/api_help/main/general/constants.php // Брать следующий элемент цикла while ($item = $res->GetNext()) { dump($item); } while ($ob = $res->GetNextElement()) { $v = $ob->GetFields; // GetProperty } // Если один элемент ->fetch(); // parameters.php // Добавление параметров // result_modifier.php // Расширение логики // component_epilog.php // Позволяет выполнить операции, которые не будут кэшироваться // Настройки в новом ядре выполняются в /bitrix/.settings.php, в старом ядре /bitrix/php_interface/dbconn.php, настройки в обоих файлах. // Ошибки /bitrix/modules/error.log // Переводные фразы use \Bitrix\Main\Localization\Loc; Loc::loadLanguageFile(__FILE__); echo Loc::getMessage('SOMETHING_LANGUAGE_CONSTANT'); if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); // Проверка сверху страницы // В /error.php содержит, вывод сообщения об ошибке. (500 Internal Server Error) SITE_TEMPLATE_PATH; // Путь от папки шаблона IBLOCK_ID_CATALOG; // ID инфоблока каталога $APPLICATION->ShowHead(); // Панель битрикс $APPLICATION->ShowTitle(); // Показать заголовок окна браузера $APPLICATION->ShowTitle(false); // Показать заголовок страницы $APPLICATION->ShowMeta('description'); // Показать Description $APPLICATION->ShowMeta('keywords'); // Ключевики $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . '/css/file-name.css'); // Подключение стилей // Записать метатеги $APPLICATION->SetPageProperty('robots', 'noindex,nofollow'); // Запрет индексации страницы поисковиками $APPLICATION->SetPageProperty('description', 'Contacts'); // Для страницы description $APPLICATION->SetDirProperty('description', 'Contacts'); // Для раздела description use Bitrix\Main\Page\Asset; Asset::getInstance()->addString("<link rel='shortcut icon' href='/local/images/favicon.ico'>"); // Подключение мета тегов или сторонних файлов $asset = \Bitrix\Main\Page\Asset::getInstance(); // Или таким способом $asset->addCss(SITE_TEMPLATE_PATH . '/css/file-name.css'); // Подключение стилей $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH . '/js/file-name.js'); // Подключение скриптов $asset->addJs(SITE_TEMPLATE_PATH . '/js/file-name.js'); // Подключение скриптов data-skip-moving="true" // Чтобы скрипт не переносился вниз страницы в тег скрипт добавить этот атрибут script CUtil::GetAdditionalFileURL(SITE_TEMPLATE_PATH . '/js/js-name.js'); // Подключение скриптов для Internet Explorer // Если нужно подключить стили и скрипты, внутри шаблонов компонентов $this->getTemplate()->addExternalCss("/local/addcss.css"); $this->getTemplate()->addExternalJs("/local/addcss.css"); require_once $_SERVER['DOCUMENT_ROOT'] . '/local/footer.php'; // Подключение footer echo $this->GetEditAreaId($arItem['id']); // Для возможности редактировать конкретную новость или товар // Получить куку куки $APPLICATION->get_cookie('Name'); // Добавить куку $APPLICATION->set_cookie('Name', 'Value'); // Если запрос через Ajax, то добавить этот код $context = \Bitrix\Main\Application::getInstance()->getContext() $context->getResponse()->flush(''); // Получить настройку главного модуля, например префикс для кук $cookiePrefix = COption::GetOptionString('main', 'cookie_name'); // Вывод контента по метки для компонентов, буферизация $APPLICATION->ShowViewContent('MyBlock'); // Метка вывода $this->SetViewTarget('MyBlock'); // Всё что между выведется выше в метке echo 'MyBlock'; $this->EndViewTarget(); // При использовании в шаблоне $APPLICATION->AddViewContent('MyBlock', 'Контент для вывода'); // Если в композите голосует против, то поместить в эту конструкцию $dynamicArea = new \Bitrix\Main\Page\FrameStatic('every_id'); $dynamicArea->setAnimation(true); $dynamicArea->startDynamicArea(); // Динамический контент вне компонента или компонент, голосующий против // ... $dynamicArea->finishDynamicArea(); $email = COption::GetOptionString('main', 'email_from'); // Получаем email из главного модуля или site_name COption::SetOptionString('main', 'myParametr', 'test'); // Задать значение myParametr в главном модуле $myParametr = COption::GetOptionString('main', 'myParametr'); // Получаем myParametr из главного модуля // Передать данные в component_epilog $arResult['tag'] = 'tagName'; $this->__component->SetResultCacheKeys([ 'tag', ]); /* Обработчик события в component_epilog.php. Для того чтобы это сделать мы воспользуемся файлом init.php. В нем мы будем использовать событие OnEpilog, которое вызывается в конце визуальной части эпилога сайта и будет вызываться при каждом обновлении страницы. - Добавление номера страницы в содердимое тега title; */ AddEventHandler('main', 'OnEpilog', 'OnEpilogHandler'); function OnEpilogHandler(){ global $APPLICATION; if (!defined('ERROR_404') && intval($_GET['PAGEN_1']) > 0) { $APPLICATION->SetPageProperty('title', $APPLICATION->GetPageProperty('title') . " – " . intval($_GET['PAGEN_1']) . ' страница'); } } // Изменить доставку в заказе $shipment->setFields([ 'DELIVERY_ID' => '9', 'BASE_PRICE_DELIVERY' => '0', ]); // Получить доставку $order->getFields() $deliveryId = $order->getField('DELIVERY_ID'); $deliveryPrice = $order->getField('PRICE_DELIVERY'); // Если нужно, то подключить \Bitrix\Main\Loader::includeModule('sale'); \Bitrix\Main\Loader::includeModule('catalog'); // Заказ $order = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), \Bitrix\Main\Context::getCurrent()->getSite()); foreach ($order->getBasket() as $product) { // $order->getBasket()->toArray() или так чтобы получить массив dump($product->getField('NAME')); } /* Чтобы увидить из-за какой ошибки не работает добавление в корзину: */ $productId = 4094; if (CModule::IncludeModule('catalog')) { $res = Add2BasketByProductID( $productId, 1, false ); } if (!$res) { if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString(); dump(sprintf('Ошибка %s', $productId, $strError)); } } else { dump(sprintf('Успешно %s', $productId)); } // Цена в нужном формате $prive = CurrencyFormat(7000, 'RUB'); // Закэшировать данные $cache = new CPHPCache(); $data = []; if ($cache->InitCache(36000000, 'cache_id')) { $data = $cache->GetVars(); } elseif ($cache->StartDataCache(36000000, 'cache_id')) { $data = [1, 2, 3]; $cache->EndDataCache($data); // Добавляем данные в кэш } /** * @return void * Отдать 404 ошибку и показать страницу 404. */ function getErrorPage404() { CHTTP::SetStatus('404 Not Found'); @define('ERROR_404', 'Y'); include ROOT . '/404.php'; die; } // Запуск Битрикс из консоли: // Меняем настройки PHP set_time_limit(0); ini_set('memory_limit', '1024M'); if (empty($_SERVER['DOCUMENT_ROOT'])) { $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'] = dirname(__DIR__); } // Переопределяем константы define('NO_KEEP_STATISTIC', true); define('NO_AGENT_CHECK', true); // Подключаем ядро Битрикс и главный модуль require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); // Скинуть буферизацию while (ob_get_level()) { ob_end_flush(); } // Выполняемый код echo 777 . "\n"; // Подключаем эпилог require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php'); die; Если ошибка: [ErrorException] E_COMPILE_ERROR Cannot declare class Bitrix\Iblock\ElementTable, because the name is already in use Удалите /bitrix/modules/iblock/lib/element.php
Список