Записки веб-разработчика

Добро пожаловать
Приветствую. Хочу сразу предупредить. Я разработчик, а не писатель, поэтому пишу как умею и, в основном, для себя. Буду благодарен за "фидбек", можно написать в комментариях к любому посту без регистрации.
Читать дальше » 1
Алексей,
Отдельный URL у торговых предложений
Опишу вариант создания отдельного урла для торговых предложений битрикс (почти стандартный). На примере: /catalog/code-section-1/code-section-2/code-element/12345/
Читать дальше » 0
Алексей,
Кастомное пользовательское поле, тип: привязка к чему-либо
Достаточно простой способ расширить варианты привязок у пользовательских свойств. Покажу на примере "Привязка к свойствам инфоблока".
Читать дальше » 0
Алексей,
Поддержка тёмной темы на сайте
Всё очень просто, достаточно использовать медиа-запрос "prefers-color-scheme: dark". Он срабатывает, когда на устройстве пользователя включена тёмная тема.
Читать дальше » 0
Алексей,
В админке перестали подсвечиваться выбранные варианты выпадающего списка
Где-то в последних версиях сломали вёрстку админки, но это легко починить.
Читать дальше » 0
Алексей,
Кастомный шаблон URL элементов инфоблока
Возникла задача: сформировать URL элемента из его символьного кода и символьного кода связанного элемента другого инфоблока. Грубо говоря шаблон должен быть таким: #PROPERTY_BRAND.CODE#/#ELEMENT_CODE#/, где PROPERTY_BRAND.CODE и будет символьный код из свойства привязки. Сразу скажу, так сделать нельзя, только если кастомить методы ядра.
Читать дальше » 3
Алексей,
bitrix d7 получить пользовательские поля раздела
Пример кода для получения пользовательских полей раздела. Пригодится когда нужно быстро получить немного данных, где-нибудь в некешируемой области.
Читать дальше » 0
Алексей,
Почему некоторые картинки в битрикс пустые
Всё дело в функционале контроля загрузки дубликатов файлов. Фичу эту, особо, не афишировали и многие о ней не знают.
Читать дальше » 0
Алексей,
Ошибка getaddrinfo failed: Name or service not known
Столкнулся с данной ошибкой при восстановлении сайта: php_network_getaddresses: getaddrinfo failed: Name or service not known
Читать дальше » 0
Алексей,
Генерация оглавления статьи на php
Есть 2 варианта: найти заголовки регулярками и распарсить dom. Я покажу второй вариант с использованием класса DOMDocument.
Читать дальше » 0
Алексей,
Интеграция с meteoblue.com
Сервис предоставляет API по детальному прогнозу погоды с арготехнической информацией. В целом, их API хорошо документирован и нужно лишь потратить немного времени на то, чтобы понять как всё устроено.
Читать дальше » 0
Алексей,
Сохранение URL страницы входа посетителя на сайт
В сессию, используя методы Битрикс. Сохраняется информация "полный URL первого входа на сайт", можно использовать, например для формы обратной связи. Пример кода:
Читать дальше » 0
Алексей,
@media запросы на js
Раньше на js проверял ширину экрана через window.innerWidth || screen.width, а оказывается есть аналог медиа запросов: window.matchMedia
Читать дальше » 0
Алексей,
Как в result_modifier вызвать метод класса
Через метод объекта $this->getComponent() доступны все методы класса.
Читать дальше » 0
Алексей,
Ошибка ERR_SSL_PROTOCOL_ERROR после установки сертификата
Если после установки ssl сертификата вы получили ошибку ERR_SSL_PROTOCOL_ERROR, обновите nginx, похоже что он слишком старый.
Читать дальше » 0
Алексей,
Получить родительские разделы раздела
С помощью старого ядра, методом CIBlockSection::GetNavChain. По сути, там в цикле делаются запросы к БД, с каждым запросом достаётся родительский раздел.
Читать дальше » 0
Алексей,
Вывод габаритов товара
Код для вывода ШхГхВ, например в шаблонах компонента.
Читать дальше » 0
Алексей,
Улучшаем CLS показатель за счет шрифтов
После загрузки кастомного шрифта, браузер заново рендерит текст на странице и т.к. ширина символов может быть сильно разной, размеры блоков меняются и элементы на сайте "прыгают".
Читать дальше » 0
Алексей,
Ошибка при загрузке картинки
Если заглянуть в консоль, там будет ошибка с текстом "Mandatory directory has not been created", возникает при загрузке в админке битрикс.
Читать дальше » 0
Алексей,
Сужение вариантов в зависимости от другого свойства
Кастомное свойство привязки c небольшим костылём. Сделано для удобного заполнения свойства в админке.
Читать дальше » 0
Алексей,
Код для отладки
Обычный дамп со сбросом буфера, ничего такого :)
Читать дальше » 0
Алексей,
Найти файл php класса
Если ваша IDE не может найти исходники класса или проект не проиндексирован, то на вопрос "где же этот чертов код?", поможет php функция.
Читать дальше » 0
Алексей,
Ошибка BLOCK_NOT_FOUND Block "1" is not exists
Возникает после создания RTB блока, в течении нескольких часов.
Читать дальше » 0
Алексей,
Перенести все файлы выше на один раздел
Пример простой консольной команды, но можно и с помощью exec() использовать.
Читать дальше » 0
Алексей,
Запрос свойств для массива элементов
Получение значений свойств элементов одного инфоблока для компонента. Строго рекомендуется как замена кода вида $obj->GetProperties().
Читать дальше » 0
Алексей,
Ограничение длины строки в свойстве типа html/текст
Максимум туда влезает, примерно, 60 тысяч символов и этого иногда недостаточно. Для решения нужно изменить тип поля с text на longtext.
Читать дальше » 0
Алексей,
\Bitrix\Main\Server
Этот класс нужен для того, чтобы не использовать напрямую глобальную переменную $_SERVER.
Читать дальше » 0
Алексей,
Как отключить модуль vote в bitrix
Была информация что в модуле нашли уязвимость (исправили в версии 21.0.100)
Читать дальше » 2
Алексей,
Кеширование запросов в orm Битрикс
Удобная и полезная штука, можно быстро включить кеширование без каких-либо настроек.
Читать дальше » 0
Алексей,
jQuery события touch left и right
Задача: у древнего jQuery слайдера добавить поддержку свайп жестов, без доп. плагинов.
Читать дальше » 0
Алексей,
Здесь можно узнать много полезного. Я пишу на темы: веб-разработка, CMS 1С-Битрикс (как с позиции разработчика, так и от лица пользователя), различные нестандартные приемы в верстке и прочие вещи связанные так или иначе с web`ом. Я не блогер и пишу как умею, посты постоянно обновляются, т.к. я стараюсь следить за актуальностью данных.