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

Собрал все посты в одном для получения максимального балла в Google PageSpeed Insights.

На маркетплейсе 1С-Битрикс 995 готовых сайтов. Такое количество выдаёт api партнёрского раздела. Я проверил их все с помощью инструмента Google PageSpeed Insight и вот какие результаты у меня получились:
больше половины сайтов находятся в красной зоне, треть в жёлтой и всего 5% сайтов в зелёной. У остальных онлайн-демо либо не работает, либо его нет совсем.

Картинки в формате WebP "весят" значительно меньше, а сам формат уже поддерживается многими браузерами. К тому использовать его достаточно просто.
Покупка в 1 клик, минимальный код
Частая задача для интернет-магазина на 1С-Битрикс. В примере показаны все этапы минимально необходимые для оформления заказа.

Перенес блог на отдельную площадку c NVMe диском ради эксперимента. Google Page Speed почти 100 баллов показывает.

Нужно загрузить большое количество страниц с чужого сайта, но при этом обычными серверными запросами (curl и т.п.) сделать это не удаётся? На помощь приходит PhantomJS, браузер из консоли с управлением на JS.

Простой способ пройти еще одну проверку от Google Pagespeed, разгрузить посетителей и место на хостинге (если используете композит)

Практически на каждом этапе подключения у меня возникал резонный вопрос: "Как это сделает технически неподкованный человек". А никак :) Поэтому и существуют платные услуги по интеграции облачных касс, по покупке/настройке онлайн-касс, выпуску КЭП и т.д., где все сделают за вас.

Зачем платить сервису по рассылке смс, если почти в каждом тарифе мобильной связи включены пакеты смс, которые практически не используются? Подумал я и запилил себе модуль, который рассылает оповещение о новом заказе, о оплате и передачи заказа в доставку через смартфон.
Настройка прав доступа
Покажу как настроить права с доступом в админку и редактированием определенных инфоблоков.
Браво битрикс
- Система обновления заблокирована, т.к. версия php меньше 7ой версии
- Ок, включаю 7-ю версию
- Сайт падает, т.к. нужны обновления в которых есть правки для 7-ой версии.
Как убрать js и css файлы ядра
Часть можно убрать отключив галочки в настройках модуля, часть только вырезав при завершении буферизации страницы.

В процессе оптимизации сайта заметил, что время загрузки до взаимодействия слишком высокое на мобильных устройствах. Начал искать проблему и нашел, в композитном кеше.
Отключение скриптов аналитики для Google PageSpeed
Исправляем правила эффективного использования кеша для metrika и analytics.js при проверке Google PageSpeed Insights
Получение get, post параметров на D7
Со входящими параметрами можно работать с помощью класса \Bitrix\Main\Contex
Слетели стили после обновления
Недавно обнаружил баг, при объединении css файлов, если в них используется @import, ядро битрикс неверно обрабатывает строку, из-за чего сам импорт не срабатывает.
Загрузка jq плагинов по необходимости
Небольшой пример, как убрать из загрузки fancybox если на странице он не используется.
Правила эффективного использования кеша для статических объектов
Решение проблемы "Задайте правила эффективного использования кеша для статических объектов" на сервере с битрикс окружением.
Канонический адрес для страниц с неизвестными параметрами
Готовый код. Устанавливает канонический адрес если есть хоть какие-нибудь GET параметры.
Нативный lazyload в браузере Google Chrome
Достаточно добавить параметр loading="lazy" картинкам и все будет работать, проверял на этом блоге.

Варианта 3: простой, с помощью готового модуля или через композит.
Срабатывает редирект на порт 443
Если при локальном редиректе в адресе сайта появляется 443 порт, то возможно причина в настройках httpd. Нужно добавить протокол https:// в параметр ServerName
Показ всего текста во время загрузки веб-шрифтов из google fonts
С недавних пор ресурс fonts.googleapis.com стал поддерживать свойство "font-display". С помощью него можно пройти еще одну рекомендацию Google PageSpeed
Как побороть спам на 1С-Битрикс?
Процесс спама уже настолько эволюционировал, что и e-mail адреса у спамеров реальные и каптча стандартная для них не проблема.

Немного "плохого" кода для выбора параметра товара в корзине. Например когда Вы не хотите использовать торговые предложения, но Вам нужно знать какой именно товар нужен покупателю (например какого цвета или размера)
Создание рекламы в Yandex Direct через API Битрикс
В Битриксе есть занимательная штука - автоконтекст. Это когда рекламное объявление показывается в зависимости от наличия товара. Но создавать вручную объявление на каждый товар занятие так себе. Поэтому написал скриптик, который делает это за меня.
Получаем состав набора
Получение состава комплекта или набора через апи битрикс
Считаем профит покупателей
Для персонализированный рассылки понадобилось узнать кто из покупателей давно не делал заказ, а кто делает регулярно. Написал небольшой скрипт, который можно запустить на любом сайте под управлением 1С-Битрикс (редакция с модулем Интернет-магазин)
Уведомление о недостатке свободного места на хостинге
Повесим на крон проверку с уведомлением, что б не пропустить момент.