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

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

Сервис предоставляет API по детальному прогнозу погоды с арготехнической информацией. В целом, их API хорошо документирован и нужно лишь потратить немного времени на то, чтобы понять как всё устроено.
Сохранение URL страницы входа посетителя на сайт
В сессию, используя методы Битрикс. Сохраняется информация "полный URL первого входа на сайт", можно использовать, например для формы обратной связи. Пример кода:

Раньше на js проверял ширину экрана через window.innerWidth || screen.width, а оказывается есть аналог медиа запросов: window.matchMedia
Какое ядро Битрикс быстрее? Новое или старое?
Решил углубиться в дебри bitrix orm и переписать привычный запрос со старого ядра на orm. Ну и замерить время выполнения конечно.

Когда нужно заполнить, например, таблицу и при этом лень делать справочник, то можно сделать суперкостылище) Хранить данные в поле DESCRIPTION.

Посмотрел документацию по стандартным тегам и впал в ступор. Как сделать запрос популярных тегов у определённого инфоблока?

Пример из компонента поиска местоположения в заказе.

При загрузке пишет "Проблема с #URL#" или "A problem repeatdly occured on #URL#" и загрузку останавливает.

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

Чаще это свойство используют для "шапок" сайта, но если вы укажете position: sticky; top: 0; блоку, который больше высоты экрана, то часть его контента не будет доступна, пока вы не доскроллите до конца родительского блока.

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

Была информация что в модуле нашли уязвимость (исправили в версии 21.0.100)
Кеширование запросов в orm Битрикс
Удобная и полезная штука, можно быстро включить кеширование без каких-либо настроек.
jQuery события touch left и right
Задача: у древнего jQuery слайдера добавить поддержку свайп жестов, без доп. плагинов.

Когда документации нет или её мало, а ide не даёт подсказок, выручает функция get_class_methods().

Вместо "1.7", мне сервер выдал "1.7000000000000002". Проблема не только с json_encode, но и другими "serialize" функциями.
html символы
Таблица самых часто используемых html символов и отдельная страница со списком всех символов.

Периодически в консоли появляется данное сообщение, о том что есть новые письма для пользователя bitrix.
Сохранение файла в свойство заказа типа FILE
Тут как обычно, берется массив описывающий файл, сохраняется в БД и в свойство передаётся его ID или массив ID`шников, если свойство множественное.
Массив PARAMS в меню
Ненавижу меню в битрикс, но что есть, с тем надо работать. Для того, чтобы сделать пункты меню разными, можно использовать массив PARAMS.
Bitrix d7 фильтр по дате
Выбираем заказы в определённом статусе за последний месяц. Пример кода.

Например с /?PAGEN_1=3 на /page-3/. Казалось бы добавил правило в urlrewrite, поменял компонент system.pagenavigation и готово, но нет.
Как узнать что включен режим правки?
В коде. Есть метод $APPLICATION->GetShowIncludeAreas(), возвращает true если режим правки включен.
Ошибка: Работа с сокетами (check_socket): Fail Connection to ssl
Если у вас настроено битрикс окружение и сертификат LetEncrypt, то при проверке сайта может возникнуть ошибка "Работа с сокетами". Решается обновлением корневых сертификатов.

Код запроса в БД для получения STATUS_ID и их название на нужном языке
Проверяем наличие товара на складе
Хоть в битрикс склады и используются только для вывода информации, многие их переделывают под реальные задачи. Например для вывода доступности в регионах (несколько складов под каждый регион). Ядро позволяет очень гибко проверить наличие на складах, покажу на примерах.
Как вывести элементы инфоблока без учета активности
Для вывода как активных, так и неактивных элементов, нужно в фильтр передать ACTIVE = ''
Микроразметка картинок с ленивой загрузкой
Возник вопрос, если путь картинке находится в data-src, то как добавить микроразметку изображения?