Записки веб-разработчика, 2 страница

Обновляемся до php 8
С сегодняшнего дня битрикс требует php 8 для установки дальнейших обновлений. Самое время обновить все.
Читать дальше » 2
Алексей,
b_user_session как почистить
При включении хранения сессий в БД, таблица быстро разрастается, если механизм очистки отключен в настройках php.
Читать дальше » 0
Алексей,
Bitrix framework 3.0
Запись вебинара о прототите нового фреймворка
Читать дальше » 0
Алексей,
Прервать выполнение ajax запроса
Например при переключении вкладок, часть контента подгружается ajax`ом. И если быстро тыкать по вкладкам, это создаст множество асинхронных запросов и, помимо долгой загрузки, результат может быть неожиданный.
Читать дальше » 0
Алексей,
Вывод размера файлов объединённых js/css
При оптимизации "больших" сайтов удобно смотреть что можно "выкинуть" в объединённых файлах стилей и скриптов. В конце выводится список подключённых файлов. Добавил туда вывод размера этих файлов.
Читать дальше » 0
Алексей,
Google pagespeed обновился
Теперь проверяет сайт по огромному количеству показателей: доступность для людей с ограниченными возможностями, древность библиотек, проверяет ошибки в консоли и многое другое.
Читать дальше » 0
Алексей,
Отладка обработчиков событий битрикс
Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в php коде, который срабатывал по событию.
Читать дальше » 0
Алексей,
Редирект с несуществующих страниц пагинации
Пример как быстро сделать редирект со страниц вида /?PAGEN_1=999 на последнюю страницу пагинации.
Читать дальше » 1
Алексей,
Поле для личной подписи, автографа
Сделано на canvas, работает как на десктопе, так и на "тач" устройствах. Итоговое изображение можно сохранить в jpg файл.
Читать дальше » 0
Алексей,
Отдельный URL у торговых предложений
Опишу вариант создания отдельного урла для торговых предложений битрикс (почти стандартный). На примере: /catalog/code-section-1/code-section-2/code-element/12345/
Читать дальше » 6
Алексей,
Кастомное пользовательское поле, тип: привязка к чему-либо
Достаточно простой способ расширить варианты привязок у пользовательских свойств. Покажу на примере "Привязка к свойствам инфоблока".
Читать дальше » 0
Алексей,
Поддержка тёмной темы на сайте
Всё очень просто, достаточно использовать медиа-запрос "prefers-color-scheme: dark". Он срабатывает, когда на устройстве пользователя включена тёмная тема.
Читать дальше » 0
Алексей,
В админке перестали подсвечиваться выбранные варианты выпадающего списка
Где-то в последних версиях сломали вёрстку админки, но это легко починить.
Читать дальше » 0
Алексей,
Кастомный шаблон URL элементов инфоблока
Возникла задача: сформировать URL элемента из его символьного кода и символьного кода связанного элемента другого инфоблока. Грубо говоря шаблон должен быть таким: #PROPERTY_BRAND.CODE#/#ELEMENT_CODE#/, где PROPERTY_BRAND.CODE и будет символьный код из свойства привязки. Сразу скажу, так сделать нельзя, только если кастомить методы ядра.
Читать дальше » 3
Алексей,
Как загрузить изменения в ветку, не переключаясь на неё
Из любой ветки можно загрузить новые коммиты из удалённого репозитория в другую ветку.
Читать дальше » 0
Алексей,
Улучшенный вариант ленивой загрузки js плагинов
Исключает повторную загрузку, загружает плагин только при отображении нужного элемента на экране, срабатывает после аякс запросов.
Читать дальше » 0
Алексей,
Передача параметров из cron в php скрипт
Когда скрипт очень большой, его нужно выполнять за несколько шагов. Это можно сделать с помощью передачи параметров при запуске скрипта из командной строки (или в планировщике cron).
Читать дальше » 0
Алексей,
Регулярка, изменить мл на литры
Пример готовой функции для замены "150мл" на "0.15л", например, в названиях товаров.
Читать дальше » 0
Алексей,
Микроразметка раздела товаров
Вывод данных по schema.org/Product, без доп. запросов.
Читать дальше » 0
Алексей,
base64 decode\encode online
Раньше висела форма конвертации в правом блоке, решил что там ей не место и закинул в статью.
Читать дальше » 0
Алексей,
Аттрибут loading="lazy" теперь стандарт?
validator.w3.org больше не ругается на "неизвестный" аттрибут, а caniuse пишет о поддержке 92%
Читать дальше » 0
Алексей,
Обновил документацию до 22.2
Актуальная документация по исходникам ядра битрикс v22.2, со всеми обновлениями на текущий день.
Читать дальше » 0
Алексей,
Ошибка Unknown field definition `ID` for \Bitrix\Main\Site
Данная ошибка может возникнуть во время обновления. Исправляется в будущем обновлении, но что бы починить админку нужно немного подправить ядро.
Читать дальше » 7
Алексей,
Как в result_modifier вызвать метод класса
Через метод объекта $this->getComponent() доступны все методы класса.
Читать дальше » 1
Алексей,
Ошибка ERR_SSL_PROTOCOL_ERROR после установки сертификата
Если после установки ssl сертификата вы получили ошибку ERR_SSL_PROTOCOL_ERROR, обновите nginx, похоже что он слишком старый.
Читать дальше » 0
Алексей,
Получить родительские разделы раздела
С помощью старого ядра, методом CIBlockSection::GetNavChain. По сути, там в цикле делаются запросы к БД, с каждым запросом достаётся родительский раздел.
Читать дальше » 0
Алексей,
Вывод габаритов товара
Код для вывода ШхГхВ, например в шаблонах компонента.
Читать дальше » 0
Алексей,
Улучшаем CLS показатель за счет шрифтов
После загрузки кастомного шрифта, браузер заново рендерит текст на странице и т.к. ширина символов может быть сильно разной, размеры блоков меняются и элементы на сайте "прыгают".
Читать дальше » 1
Алексей,
Ошибка при загрузке картинки
Если заглянуть в консоль, там будет ошибка с текстом "Mandatory directory has not been created", возникает при загрузке в админке битрикс.
Читать дальше » 0
Алексей,
Сужение вариантов в зависимости от другого свойства
Кастомное свойство привязки c небольшим костылём. Сделано для удобного заполнения свойства в админке.
Читать дальше » 0
Алексей,
Здесь можно узнать много полезного. Я пишу на темы: веб-разработка, CMS 1С-Битрикс (как с позиции разработчика, так и от лица пользователя), различные нестандартные приемы в верстке и прочие вещи связанные так или иначе с web`ом. Я не блогер и пишу как умею, посты постоянно обновляются, т.к. я стараюсь следить за актуальностью данных.