Записки веб-разработчика, 6 страница
Кастомизация импорта заказов из 1С
Если в заказах из 1С есть что-то, чего нет в битриксе, то добавить это можно во время импорта, расширив класс CSaleOrderLoader.
Работа с гитом через php
Проблема: временно нет доступов к ssh, но нужно поставить гит и сделать первый коммит для работы с проектом на тестовой площадке. Решение: exec().
Ваша версия MySql не удовлетворяет минимальным техническим требованиям продукта.
Такая ошибка может возникнуть при установке 1С-Битрикс на новом хостинге. На текущий момент требуется версия mysql 5.6.0, но по факту устанавливается и на меньшей версии, нужно только чуть подправить код проверки.
Будьте внимательны при проверках $var == 'Y'
В Битрикс проверки на строковую "Y" очень популярны, т.к. сами разработчики ядра используют их повсеместно. Проблема в том, что проверка идет с преобразованием типов. И если "Y" сравнивать с "0", то результат будет true.
Ошибка! innodb_strict_mode=ON, требуется OFF
Для битрикс окружения, нужно в файле /etc/mysql/conf.d/z_bx_custom.cnf добавить innodb_strict_mode = OFF
Проверить принадлежность пользователя к группе
Одним методом $USER->GetUserGroupArray() получаем группы пользователя, а с помощью GroupTable::getList() достаем ID группы по её символьному коду
Вы используете версию MariaDB 5.5.63-MariaDB, продукту для работы требуется версия не ниже 10.0.5.
Решение ошибки "Вы используете версию MariaDB 5.5.63-MariaDB, продукту для работы требуется версия не ниже 10.0.5. Пожалуйста, обновите MariaDB или обратитесь в службу технической поддержки."
Удаление ненужных компонентов Битрикс
Продолжаю чистить ядро от ненужного мне кода, на этот раз под нож попали стандартные компоненты
Bitrix D7 на примере инфоблоков
Bitrix D7 это просто, просто нужно покопаться в исходниках :) На самом деле, если понять как работает, то дальше работать с ядром будет легче. Пример для инфоблоков.
Битрикс, удаление ненужных модулей
Если у Вас одна из старших редакций 1С-Битрикс, неизбежно будут модули и компоненты которые Вы не используете, но которые занимают место на хостинге, периодически обновляются и добавляются в бекапы, увеличивая время создания и вес архива.
Как деактивировать авторизацию пользователя на API
Даже если Вы заблокируете пользователя за спам, сняв галочку активность, то это не помешает пользователю оставлять комментарии пока активна его сессия. Помимо блокировки нужно снимать авторизацию, так сказать сделать "выход на всех устройствах".
Кнопка "поделиться" на мобильных устройствах
Пример вызова нативного меню мобильного устройства для "расшаривания" страницы сайта.
Скошенные углы у блока
Нездоровая тендеция пошла у дизайнеров на такой вид блоков. А в css нет готового решения, приходиться костылить. Покажу как делаю это я.
JS, кол-во секунд пройденных с момента посещения сайта
Понадобилось для форм, которая показывается через несколько минут после входа посетителя на сайт. В гугле не смог найти готового решения. Сделал своё, через sessionStorage.
Добавление в корзину на D7
Пример для добавления товара в корзину на API Bitrix D7: актуальный, правильный, быстрый.
Обновил документацию по D7 до 20.0
Загрузил все стабильные обновления (редакция Бизнес, версия 20.0.0) и "сгенерировал" документацию с помощью doxygen. Документация доступна по ссылке https://doc.budagov.ru/
Уже завтра
С наступающем 2020 вас!
Алексей,
30 дек 2019
ajax страница bitrix
Готовый год для ajax страницы с подключением ядра и отключением проверки агентов, статистики и прочего.
Событие оплаты заказа
У одного заказа может быть несколько счетов, т.ч. событие оплаты есть только у них. Нам нужно OnSalePaymentEntitySaved.
Пользовательские поля UF_, как получить названия
Названия хранятся в таблице 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 файлы ядра
Часть можно убрать отключив галочки в настройках модуля, часть только вырезав при завершении буферизации страницы.
Сайт медленнее с композитным кешем, чем без него.
В процессе оптимизации сайта заметил, что время загрузки до взаимодействия слишком высокое на мобильных устройствах. Начал искать проблему и нашел, в композитном кеше.