Записки веб-разработчика, 2 страница
Редирект с несуществующих страниц пагинации
Пример как быстро сделать редирект со страниц вида /?PAGEN_1=999 на последнюю страницу пагинации.

Сделано на canvas, работает как на десктопе, так и на "тач" устройствах. Итоговое изображение можно сохранить в jpg файл.

Опишу вариант создания отдельного урла для торговых предложений битрикс (почти стандартный). На примере: /catalog/code-section-1/code-section-2/code-element/12345/

Достаточно простой способ расширить варианты привязок у пользовательских свойств. Покажу на примере "Привязка к свойствам инфоблока".

Всё очень просто, достаточно использовать медиа-запрос "prefers-color-scheme: dark". Он срабатывает, когда на устройстве пользователя включена тёмная тема.

Где-то в последних версиях сломали вёрстку админки, но это легко починить.

Возникла задача: сформировать URL элемента из его символьного кода и символьного кода связанного элемента другого инфоблока. Грубо говоря шаблон должен быть таким: #PROPERTY_BRAND.CODE#/#ELEMENT_CODE#/, где PROPERTY_BRAND.CODE и будет символьный код из свойства привязки. Сразу скажу, так сделать нельзя, только если кастомить методы ядра.
bitrix d7 получить пользовательские поля раздела
Пример кода для получения пользовательских полей раздела. Пригодится когда нужно быстро получить немного данных, где-нибудь в некешируемой области.

Всё дело в функционале контроля загрузки дубликатов файлов. Фичу эту, особо, не афишировали и многие о ней не знают.

Столкнулся с данной ошибкой при восстановлении сайта: php_network_getaddresses: getaddrinfo failed: Name or service not known

Есть 2 варианта: найти заголовки регулярками и распарсить dom. Я покажу второй вариант с использованием класса DOMDocument.

Сервис предоставляет API по детальному прогнозу погоды с арготехнической информацией. В целом, их API хорошо документирован и нужно лишь потратить немного времени на то, чтобы понять как всё устроено.
base64 decode\encode online
Раньше висела форма конвертации в правом блоке, решил что там ей не место и закинул в статью.
Аттрибут loading="lazy" теперь стандарт?
validator.w3.org больше не ругается на "неизвестный" аттрибут, а caniuse пишет о поддержке 92%

Актуальная документация по исходникам ядра битрикс v22.2, со всеми обновлениями на текущий день.
Ошибка Unknown field definition `ID` for \Bitrix\Main\Site
Данная ошибка может возникнуть во время обновления. Исправляется в будущем обновлении, но что бы починить админку нужно немного подправить ядро.
Как в result_modifier вызвать метод класса
Через метод объекта $this->getComponent() доступны все методы класса.

Если после установки ssl сертификата вы получили ошибку ERR_SSL_PROTOCOL_ERROR, обновите nginx, похоже что он слишком старый.

С помощью старого ядра, методом CIBlockSection::GetNavChain. По сути, там в цикле делаются запросы к БД, с каждым запросом достаётся родительский раздел.

После загрузки кастомного шрифта, браузер заново рендерит текст на странице и т.к. ширина символов может быть сильно разной, размеры блоков меняются и элементы на сайте "прыгают".

Если заглянуть в консоль, там будет ошибка с текстом "Mandatory directory has not been created", возникает при загрузке в админке битрикс.

Кастомное свойство привязки c небольшим костылём. Сделано для удобного заполнения свойства в админке.
Код для отладки
Обычный дамп со сбросом буфера, ничего такого :)
Найти файл php класса
Если ваша IDE не может найти исходники класса или проект не проиндексирован, то на вопрос "где же этот чертов код?", поможет php функция.

Возникает после создания RTB блока, в течении нескольких часов.
Перенести все файлы выше на один раздел
Пример простой консольной команды, но можно и с помощью exec() использовать.
Запрос свойств для массива элементов
Получение значений свойств элементов одного инфоблока для компонента. Строго рекомендуется как замена кода вида $obj->GetProperties().

Максимум туда влезает, примерно, 60 тысяч символов и этого иногда недостаточно. Для решения нужно изменить тип поля с text на longtext.
\Bitrix\Main\Server
Этот класс нужен для того, чтобы не использовать напрямую глобальную переменную $_SERVER.