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

Понадобилось сделать поле для раздела инфоблока, в котором администратор мог бы добавлять ссылки (тег </a> с названием). У элементов есть хотя бы тип "строка с описанием", у UF_ полей можно воспользоваться только типом html, но при этом велик шанс, что в поле добавят еще какой-то код.
Ошибка bitrix-env-7.5-0.el7.noarch has missing requires of php-pecl-xdebug
Как-то многовато ошибок после обновления BitrixEnv. Эта возникла при попытке обновить сервер. Решение простое, удалить php-pecl-xdebug3 и установить php-pecl-xdebug

Полностью ошибка звучит так: "Ошибка регистрации нового пользователя: Не введено значение обязательного поля" и далее название поля.

Это продолжение статьи о обмене 1С-Битрикс с 1С, на этот раз речь пойдет о файлах обмена, их видах и структуре xml.

С 01.04.2021 будет ограничена поддержка продуктов 1С-Битрикс на PHP версии ниже 7.3.0. Совсем недавно вышла версия BitrixEnv 7.5.0 с поддержкой перехода на PHP 7.3/7.4, PHP 8.0. Значит пора обновляться.

Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Всего планируется несколько частей, т.к. объем материала достаточно большой.
Как настроить редирект со страниц с использованием заглавных букв на страницы со строчными буквами
Прилетела задача от seo отдела - сделать редирект со страниц с разным регистром /catalog/BRANDS/all/ на страницы в нижнем регистре /catalog/brands/all/. Решение на php.

Такой простой функционал оказалось не так просто реализовать. Нельзя просто взять и зайти в options менеджера объектов и поменять картинку методом options.set()

В php 7.2 ini-настройка mbstring.func_overload объявлена устаревшей. К тому же битрикс решил её выключить в последних обновлениях.

Полезное видео, дает представление о том, что нас ждет дальше, как меняется фреймворк. Я лично, посмотрел видео и устарел :)

В базе данных у пользователей есть поле CHECKWORD, но оно не равно той строке, что отправляется пользователю на почту для восстановления пароля. Для проверки нужно провести небольшие манипуляции.

Решение достаточно простое: берем ширину родителя и ширину блоков, делим одно на другое и получаем кол-во блоков, которое может поместиться в одной строке. Возможно есть более правильное решение, не знаю.

Если нужно заменить одну из картинок с сохранением порядка, можно сделать это напрямую, работая с \Bitrix\Iblock\ElementPropertyTable
Главный модуль, история изменений
Сохранил список изменений главного модуля на всякий случай, вдруг кому пригодится.
Стилизация scrollbar в css
Простая стилизация скроллбара в webkit браузерах и firefox. Т.е. работает во всех современных браузерах.
Как узнать выводится ли свойства в smart filter
Свойства хранятся в одной таблице, а их параметр "Выводить в умном фильтре" в другой. Написал пример запроса свойств, которые выводятся в умный фильтр.
Создание пользователя ssh
Если к площадке есть только root доступы, то для работы с сайтом необходимо создать нового пользователя . Под root работать нельзя.
BitrixEnv смена порта ssh
Сам порт поменять не сложно, главное не забыть настроить iptables, а то к серверу потом уже не подключитесь.
Ручное продление сертификатов LetsEncrypt BitrixEnv
Для продления сертификатов выполните команду /home/bitrix/dehydrated/dehydrated -c --force

Устанавливал npm, столкнулся с ошибкой etckeeper: pre transaction commit etckeeper returned -1

Если не работает почта после установки чистого веб-окружения битрикс. Устанавливаем postfix
Микроразметка блога
Зачем-то сделал себе мироразметку блога, видимо что б было. Разметил как сами посты, так и комментарии к ним. Покажу пример для всей страницы сайта.

Актуальная документация по исходникам ядра битрикс, со всеми обновлениями на текущий день.

Так, чтобы сильно не кастомить ядро? Модуль "Документооборот" есть не во всех редакциях. Снимать активность статьи и кастомить компонент news.detail тоже не вариант.
Не работает карта кликов с включенной защитой от фреймов
В битрикс окружении по умолчанию заголовок X-Frame-Options устанавливается в SAMEORIGIN. Это значение разрешает загрузку только если и фрейм, и страница, его загружающая, находятся на одном домене. Поэтому Яндексу не удаётся показать карту кликов, т.к. загрузка сайта во фрейм для него недоступна.
.gitignore для bitrix
Готовый файл .gitignore для сайтов на cms битрикс.

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

Google обновил свой инструмент Lighthouse до 6 версии, в котом были добавлены новые метрики.
Показатели блога упали до 97 в мобильной версии и 95 в десктопной.
Добавление профиля покупателя
В компоненте bitrix:sale.personal.profile.detail есть только редактирование, чтобы научить его добавлять новые профили, нужно немного кастомного кода.

Пригодится для сео, для вывода ссылок в шаблоне фильтра.