Записки веб-разработчика
Добро пожаловать
Приветствую. Хочу сразу предупредить. Я разработчик, а не писатель, поэтому пишу как умею и, в основном, для себя. Буду благодарен за "фидбек", можно написать в комментариях к любому посту без регистрации.
Ошибка mysql Duplicate entry '4294967295'
Ошибка вызвана тем, что значение auto_increment таблицы свойств достигло максимального значения. Лечится изменением типа поля с int на bigint
Уязвимость в модуле Сайты 24 landing
Модуль либо обновить, либо, если обновления недоступны или вы не перешли на php8, то удалить. Поправили в версии 23.850.0
Смена кодировки сайта с windows-1251 на utf-8
Пошаговая инструкция для конвертации сайта в utf-8 на 1С-Битрикс
Генерация sitemap для картинок инфоблока
Пример скрипта отрабатывающего на кроне. Простенький скрипт, который достаёт данные о детальной картинке и доп. картинках из свойства типа файл. Сохраняет все это в xml файл, ссылка на который сохраняется в "индексный" xml.
Битрикс24 отключение отображения страниц в боковом слайдере
После недавнего обновления все ссылки/страницы стали отображаться во всплывающем окне/слайдере и стандартным способом это не изменить.
Скрыть факт использования CMS 1C-Bitrix
Последнее время было несколько случаев взлома 1С-Битрикс, прячемся)
Переключаем bitrixvm на php-fpm
Простой способ переключиться на php-fpm на стандартном битрикс окружении
Модуль переключения веток git из админки
Бесплатный модуль для битрикс, позволяющий переключать ветку git прямо из админки. Для установки не через маркетплейс (если лицензия неактивна) можно воспользоваться скриптом.
Ошибка Ansible could not initialize the preferred locale: unsupported locale setting
Возникает после установки битрикс окружения 9-й версии. Решается коммандой: export LC_ALL=C.UTF-8
Транслит для ЧПУ URL
Простая форма для генерации символьного кода из текста
Редактирование из публичной части
Как добавить возможность редактирования (из публичной части) элемента инфоблока вне компонента?
Стилизация input[type="checkbox"] на css
Простенькая стилизация инпутов, используется только тег label и псевдоэлементы :beforе и :after
Нормализация номера телефона в битриксе
Для хранение телефонов в едином виде, можно обработать их одним методом UserPhoneAuthTable::normalizePhoneNumber()
Автоматический расчет цены комплекта в Битрикс
Готовый скрипт для расчета цены комплекта по его составу, работает на cron.
Какие скидки были применены к товарам в заказе
Нужен всего один метод OrderEdit::getOrderedDiscounts, его нет в документации, т.к. используется только в админке битрикс.
Не удаляется старый кеш
Если в папке с кешем битрикс у вас много "просроченного" кеша с ~ (тильдой) в названии, проверьте выполняется ли агент delayedDelete
Анимация печати текста на js
Простой скриптик для имитации набора текста в строке
Пропали цены в каталоге после обновления ядра
Связано с обновлением 23.300.0, в котором параметр COMPATIBLE_MODE стал по-умолчанию считаться выключенным. Нужно пройтись по настройкам компонентов catalog.* и включить режим совместимости
Не работает авторизация в админку
Может быть несколько причин: не удалили mbstring.func_overload, некорректно настроено хранение сессий, задублировалась кука PHPSESSID, настроена политика безопасности группы администраторов.
Проверить отправлен ли запрос ajax`ом
Одной строкой: Application::getInstance()->getContext()->getRequest()->isAjaxRequest()
Удалить модуль если админка не работает
Если вдруг какой модуль выдал ошибку и нет возможности зайти в админку, модуль можно удалить выполнив небольшой скрипт.
Пример aspect-ratio, улучшаем показатель CLS
Пример, помогающий понять как работает aspect-ratio в css
bitrix ERR_SSL_PROTOCOL_ERROR
Если после обновления окружения отвалился ssl, проверьте файл /etc/nginx/bx/conf/ssl_options.conf, у меня там не хватало строки ssl on;
Сдвиг страницы из-за flex order
Попался интересный случай. На сайте шапку переместили ближе к футеру, чтоб контент страницы был выше в исходниках. А после, в css поменяли порядок блоков свойством order.
Восстановление привязки товаров к разделам
Необычная ситуация попалась, привязка к основному разделу у товара заполнена, а множественная к разделам - нет.
Оптимизация запросов файлов
Если использовать стандартные компоненты и примеры кода, то запросы будут идти в цикле, что не оптимально. Покажу как сделать все одним запросом.
Наследование пользовательских свойств в подразделах
Чтобы не заполнять все поля у каждого раздела, часть можно "наследовать", сделав пару доп. запросов в компоненте.
Выполнение php из консоли возвращает исходники
Связано это с параметром php short_open_tag, но почему из браузера скрипт выполняется как обычно?
Создание pdf документа из компонента битрикс
Пример почти готового кода создания pdf документа с помощью библиотеки dompdf