Записки веб-разработчика, 7 страница
Решение ошибки "Вы используете версию MariaDB 5.5.63-MariaDB, продукту для работы требуется версия не ниже 10.0.5. Пожалуйста, обновите MariaDB или обратитесь в службу технической поддержки."
Продолжаю чистить ядро от ненужного мне кода, на этот раз под нож попали стандартные компоненты
Bitrix D7 это просто, просто нужно покопаться в исходниках :) На самом деле, если понять как работает, то дальше работать с ядром будет легче. Пример для инфоблоков.
Если у Вас одна из старших редакций 1С-Битрикс, неизбежно будут модули и компоненты которые Вы не используете, но которые занимают место на хостинге, периодически обновляются и добавляются в бекапы, увеличивая время создания и вес архива.
Как деактивировать авторизацию пользователя на API
Даже если Вы заблокируете пользователя за спам, сняв галочку активность, то это не помешает пользователю оставлять комментарии пока активна его сессия. Помимо блокировки нужно снимать авторизацию, так сказать сделать "выход на всех устройствах".
Собрал все посты в одном для получения максимального балла в Google PageSpeed Insights.
На маркетплейсе 1С-Битрикс 995 готовых сайтов. Такое количество выдаёт api партнёрского раздела. Я проверил их все с помощью инструмента Google PageSpeed Insight и вот какие результаты у меня получились:
больше половины сайтов находятся в красной зоне, треть в жёлтой и всего 5% сайтов в зелёной. У остальных онлайн-демо либо не работает, либо его нет совсем.
Картинки в формате WebP "весят" значительно меньше, а сам формат уже поддерживается многими браузерами. К тому использовать его достаточно просто.
Покупка в 1 клик, минимальный код
Частая задача для интернет-магазина на 1С-Битрикс. В примере показаны все этапы минимально необходимые для оформления заказа.
Перенес блог на отдельную площадку c NVMe диском ради эксперимента. Google Page Speed почти 100 баллов показывает.
Названия хранятся в таблице b_user_field_lang, но отдельного метода для работы с ней я не нашел, пришлось "костылить"
Хорошо когда при ajax показывается лоадер, еще лучше когда он стандартный, использовать его не сложно. Пример для jQuery
Скрываем ссылки на внешний сайты c помощью js
Простой jQuery скрипт для замены span[data-link] на a[href].
Загрузка погоды из Яндекса
//pogoda.yandex.ru/static/cities.xml больше нет, официальное API очень ограничено, виджеты некрасивые, но решение есть - костыли :) В статье пример кода как достать погоду с яндекса используя всего пару запросов.
304 Not Modified найден!
Придумал еще один способ отдать заголовок 304 Not Modified на запрос If-Modified-Since, правда пришлось извернуться, чтобы достать время модификации страницы из ядра битрикс.
Новые seo аттрибуты для ссылок от Google
Теперь можно указать какая ссылка на сайте является рекламной, а какая оставлена пользователями, например, в комментариях.
Настройка прав доступа
Покажу как настроить права с доступом в админку и редактированием определенных инфоблоков.
Браво битрикс
- Система обновления заблокирована, т.к. версия 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