Yandex Metrika

Поиск по блогу

Найдите нужную статью о модулях 1С-Битрикс,
настройке и оптимизации

Теги: d7 ×

Найдено результатов: 50 по тегам d7

Новый highload-блок: запись блока и первого UF-поля через CUserTypeEntity

Создание строки описания блока через HighloadBlockTable::add и привязка пользовательских полей сущности вида HLBLOCK_ID; для строки задают подписи RU/EN через массивы меток формы без забывания обязательных ключей настроек.

Значения спискового свойства инфоблока в D7 через PropertyEnumerationTable

ORM-выборка вариантов списка по ID свойства и построение карт соответствия XML_ID ⇄ INTERNAL_ID для всех свойств типа список в инфоблоке — чтобы обмен и импорты не смешивали внешние коды со служебными числами.

Отладочный вывод в D7: Diag\Debug без var_dump по всему продакшену

Класс \Bitrix\Main\Diag\Debug для точечной диагностики: дамп переменной в буфер, строку без вывода в ответ или запись в лог; когда лучше писать в файл и почему путь задают относительно корня сайта.

Cookie в Bitrix D7: класс Cookie, префикс и ответ

Как выставить cookie через \Bitrix\Main\Web\Cookie и ответ приложения, когда нужен writeHeaders после AJAX без эпилога, и как прочитать значение через HttpRequest — с автоматическим префиксом главного модуля или «как есть» через getCookieRaw.

Региональные настройки в Bitrix D7: \Bitrix\Main\Context\Culture

Класс Culture в ядре main хранит форматы даты, времени и представления имени, кодировку, направление текста и день начала недели. Как получить объект культуры из текущего контекста, собрать свой экземпляр на время обработки, поднять запись из БД по ID и выбрать все культуры через CultureTable.

Контекст текущего запроса в Bitrix D7: \Bitrix\Main\Context, Request и локаль

Где в D7 брать объект запроса, ответ и параметры окружения без разбора $_GET и $_SERVER вручную: Context::getCurrent(), цепочки getRequest/getResponse/getServer, смена кода сайта и языка, работа с Culture для форматов дат.

Дата и время в Bitrix D7: Type\Date, Type\DateTime, культура сайта и часовые пояса

Классы \Bitrix\Main\Type\Date и \Bitrix\Main\Type\DateTime: разбор строк в формате сайта и с произвольным шаблоном, часовые пояса, региональные настройки и вывод для другого LID, UNIX-время, перевод из PHP-\DateTime, пользовательское время, арифметика add() и проверка isCorrect().

Доработка навигационного меню

Для модуля Заведение ПРО сайт ресторана. Различные готовые решения для доработки навигационного меню.

Перенести кнопку открытия мобильного меню влево - необходимо перенести код кнопки из шаблона компонента меню navbar в include/header/navbar.php до включаемой области с логотипом:

Типы цен и цены на товары

Работа с типами цен модуля "Торговый каталог" при помощи классов "\Bitrix\Catalog\GroupTable", "\Bitrix\Catalog\GroupLangTable", "\Bitrix\Catalog\GroupAccessTable", "\Bitrix\Catalog\PriceTable".

"\Bitrix\Catalog\GroupTable": Таблица типов цен
"\Bitrix\Catalog\GroupLangTable": Таблица языковых параметров типов цен
"\Bitrix\Catalog\GroupAccessTable": Таблица прав доступа к типам цен
"\Bitrix\Catalog\PriceTable": Таблица непосредственно цен на товары, но использовать вместо него нужно "\Bitrix\Catalog\

Подключение файлов CSS, JS, и др.

Подключение JS скриптов, файлов стилей CSS, программного кода для области <head> или помещаемого в конец страницы.

За то, в какое место страницы будет помещены коды подключения скриптов (либо они будут объединены или подключены в виде единого файла), отвечают настройки главного модуля:

Подключение CSS файла, находящегося в шаблоне текущего сайта в подпапке "css":

Логирование агентов Битрикс: BX_AGENTS_LOG_FUNCTION

Константа BX_AGENTS_LOG_FUNCTION указывает имя пользовательской функции: ядро вызывает её на старт и финиш каждого агента — удобно писать длительность и имя задачи в отдельный файл без профайлеров.

Фильтр списка заказов в админке через OnSaleAdminOrderList

Событие модуля sale позволяет подмешать условие в параметры выборки заказов перед отрисовкой таблицы: только свои статусы, диапазон ID, свойство заказа через runtime-связь или дополнительные сервисы отгрузки.

Где в коде объявлена функция PHP: ReflectionFunction в отладке Битрикс

Быстро найти файл и строку объявления любой пользовательской или ядерной функции — через ReflectionFunction; полезно, когда нужно понять переопределения и хуки вокруг типичных вызовов вроде bx_mail.

Ускорение Bitrix: catalog.section — урезать select в getElementList

Наследование catalog.section, переопределение getElementList: убрать DETAIL_TEXT, TAGS, служебные даты и авторов из выборки списка; замер через Debug::startTimeLabel; ссылка на заметку про тайм-лейблы.

Bitrix Sale: события OnSaleOrderSaved, OnSaleOrderBeforeSaved и OnSaleOrderEntitySaved

Отличие IS_NEW и отсутствия ID, возврат EventResult::ERROR для блокировки оформления, маркировка оплаты до сохранения, автозаполнение свойства из корзины, слежение за полем DEDUCTED и порядок относительно проверки полей.

Уведомления интернет-магазина Bitrix: письмо «новый заказ» вручную и штатные Notify

Класс с сбором полей SALE_NEW_ORDER, вызовом легаси-события EVENT_ON_ORDER_NEW_SEND_EMAIL, получение e-mail из свойств и пользователя; плюс Notify::sendOrderCancel и sendOrderPaid для отмены и оплаты.

Проверка административного раздела в Bitrix D7: HttpRequest::isAdminSection()

Как одной проверкой понять, что текущий HTTP-запрос обслуживает админку, а не публичную часть сайта: метод запроса в D7, что он учитывает про константы и пути, и чем заменить ручной разбор URI в своих модулях.

Работа с валютами в Bitrix: CurrencyManager, ORM и модуль Sale

Подключение модуля currency, человекочитаемый список валют, выборки через CurrencyTable и CurrencyRateTable, языковые названия, базовая валюта, валюта заказа и позиции корзины, сброс кеша — в духе D7 без лишнего наследия C-классов.

MobileDetect в Битрикс D7: мобильное устройство через модуль conversion

Как без сторонних библиотек узнать, что запрос пришёл с телефона или планшета: встроенный класс в модуле conversion, проверка подключения и компактное выражение для шаблона или обработчика.

Дополнительное поле в письме о заказе: OnBeforeAdd почтового события Sale

Как через обработчик \Bitrix\Main\Mail\Internal\Event::OnBeforeAdd подставить свой макрос в письмо SALE_ORDER_DELIVERY: прочитать заказ, склад отгрузки и пользовательское поле склада в C_FIELDS.

События почтовой подсистемы Битрикс: OnBeforeMailSend, запись события и OnBeforeEventAdd

Три точки вмешательства: правка готового письма перед SMTP, изменение полей при вставке строки почтового события в БД и устаревший, но универсальный OnBeforeEventAdd — с оговорками про CEvent::SendImmediate.

Сброс кеша инфоблока при изменении связанного highload-блока (D7)

Если справочник на highload влияет на вывод элементов инфоблока, компонентный кеш может остаться старым. Подписываемся на события сущности HL и вызываем ClearByTag по тегу инфоблока.

События при оплате заказа в Bitrix Sale D7: заказ и отдельный платёж

Два ортогональных места в ядре: флаг оплаты заказа через OnSaleOrderSaved и переход конкретного платежа в состояние «оплачен» через OnSalePaymentEntitySaved, если важны частичные оплаты и внутренняя платёжная система.

Подарки в интернет-магазине: Gift\Manager, коллекции и тип товара в D7

Как через Bitrix\Sale\Discount\Gift\Manager получить наборы подарков для текущей корзины и для выбранного товара, зачем оборачивать вызов в DiscountCompatibility и как по productId отличить SKU от оффера.

События OnBeforeSale*SetField в Bitrix: заказ, корзина, отгрузка, оплата

Как подписаться на смену полей сущностей модуля sale до и после записи, какие параметры приходят в Event и как вернуть ошибку, блокирующую изменение STATUS_ID, доставку и другие поля.

Элементы инфоблока через ORM в D7: API-код, объекты и свойства

Как включить класс Element…Table по символьному коду API, читать элемент через getByPrimary и getList, обходить множественные свойства и привязки к элементам, строить путь раздела из символьных кодов и посчитать строки одним запросом с ExpressionField.

Текущий пользователь в Bitrix D7: CurrentUser вместо устаревших вызовов $USER

Как в ядре D7 получить «объект текущего пользователя», проверить авторизацию, админство и группы, вывести ФИО и контакты, проверить операцию и добрать поля из UserTable — без привычных, но уходящих из моды методов глобального $USER.