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

Понадобилось вне компонента оформления заказа показать какие способы оплаты доступны для той или иной службы доставки. Пришлось лезть в код админки, смотреть как это устроено.

Если в заказах из 1С есть что-то, чего нет в битриксе, то добавить это можно во время импорта, расширив класс CSaleOrderLoader.
Работа с гитом через php
Проблема: временно нет доступов к ssh, но нужно поставить гит и сделать первый коммит для работы с проектом на тестовой площадке. Решение: exec().

Такая ошибка может возникнуть при установке 1С-Битрикс на новом хостинге. На текущий момент требуется версия mysql 5.6.0, но по факту устанавливается и на меньшей версии, нужно только чуть подправить код проверки.

В Битрикс проверки на строковую "Y" очень популярны, т.к. сами разработчики ядра используют их повсеместно. Проблема в том, что проверка идет с преобразованием типов. И если "Y" сравнивать с "0", то результат будет true.

Для битрикс окружения, нужно в файле /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 или обратитесь в службу технической поддержки."

Продолжаю чистить ядро от ненужного мне кода, на этот раз под нож попали стандартные компоненты

Bitrix D7 это просто, просто нужно покопаться в исходниках :) На самом деле, если понять как работает, то дальше работать с ядром будет легче. Пример для инфоблоков.

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

Готовый код. Свойство можно использовать, например, в умном фильтре или для добавления в индекс поиска.
Трансформирование бургера в крестик на css
Пример кода для кнопки открытия меню.
Анимация при скроллинге
Простенький jQuery скрипт для добавления анимации блоков, при их появлении на экране. Можно использовать, но!, в интернете полно готовых плагинов, используйте их, не пишите/не используйте "велосипеды".

Пример вызова нативного меню мобильного устройства для "расшаривания" страницы сайта.

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

Пример для добавления товара в корзину на API Bitrix D7: актуальный, правильный, быстрый.
Обновил документацию по D7 до 20.0
Загрузил все стабильные обновления (редакция Бизнес, версия 20.0.0) и "сгенерировал" документацию с помощью doxygen. Документация доступна по ссылке https://doc.budagov.ru/

Уже завтра
С наступающем 2020 вас!
Алексей,
30 дек 2019
ajax страница bitrix
Готовый год для ajax страницы с подключением ядра и отключением проверки агентов, статистики и прочего.
Событие оплаты заказа
У одного заказа может быть несколько счетов, т.ч. событие оплаты есть только у них. Нам нужно OnSalePaymentEntitySaved.

Названия хранятся в таблице 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
Теперь можно указать какая ссылка на сайте является рекламной, а какая оставлена пользователями, например, в комментариях.