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

10 октября на конференции Битрикс24.Идея представили новый функционал - готовые шаблоны сайтов для Б24. Немного информации о новинке.
Ключевые слова в поиске битрикс маркетплейса
Пригодится тем, кто разрабатывает модули для маркетплейса. За 2 года я собрал почти 30 тысяч запросов и узнал как часто они были в поисковой выдаче и сколько результатов находятся по каждому их них. Все аккуратненько сложил в xls таблицу с возможность сортировки и фильтра.

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

Приобрел себе принтер термоэтикеток, забавная штука. Зачем? Мы клеим информацию о заказанных товарах (состав, срок годности и тп).
Я сделал полуавтоматическую печать при поступлении нового заказа, в статье расскажу как.

Скидка, еще одна, плюс бесплатная доставка, а не переборщили ли мы и насколько выгодный получился заказ? Выводим в списке заказа информацию о прибыли (стоимость заказа минус закупочная цена всех товаров).
Рекурсивный поиск подстроки в php файлах через консоль
В битриксе много файлов, очень много файлов, иногда можно потратить десятки минут на поиск нужного кода. Если есть доступ к консоли, можно ускорить поиск простенькой командой.
Автоматическое выполнение js в браузере при посещении сайта
Есть сайты, которыми мы часто пользуемся, например по работе, но на них не хватает какого-либо интерфейсного функционала, или данные выводятся не очень читаемо. Есть идея, мы ж программисты, можем сами запилить нужный функционал на чужом сайте.
Backurl на js
Сохраняем данные фильтра, сортировки, номер страницы - при переходе на детальную страницу и возвращаем пользователя обратно ничего не растеряв.
inputmask криво работает на телефоне
Например на маске даты рождения (99.99.9999), при вводе с телефона каретка при переходе через точку прыгает на шаг назад и сбивает ввод. Решение простое. Необходимо указать у input`а type="tel".
Как защитить оригинальные изображения, если у Вас битрикс
Даже если нет прямой ссылки и налету добавляется водяной знак часто можно скачать оригинал изображения. Для примера сайт мебели Mr. Doors
Как добавить отчество в компонент регистрации system.auth.registration
Стандартно это сделать невозможно, т.к. компонент системный и его параметрами мы управлять не можем. Так что будем "костылить".

Стандартные варианты не очень хороши, так как присутствуют символы отличные от цифр (0-9), а без шаблона каждый будет знать кол-во заказов в магазине. Я решил немного персонализировать номер заказа, используя только цифры.
Отсортировать div с помощью jquery
Задача: сортировка группы элементов DOM с помощью js/jquery по полю сортировки
Добавляем № страницы к мета параметрам страницы
Раньше почти на каждом проекте это делали, щас почему-то забыли. А вообще полезный функционал, избавляет от необходимости закрывать от индексации 2-е и последующие страницы.

Чтобы вернуть виз. редактор необходимо поставить галочку в настройках модуля "Информационные блоки" /bitrix/admin/settings.php?lang=ru&mid=iblock&mid_menu=1
Анимация загрузки. Прелоадер ajax запроса Битрикс.
В некоторых интернет-магазинах есть операции которые выполняются достаточно долго. И для того, чтобы пользователь не заскучал, ему можно скормить красивую анимацию.
Свойство привязанного элемента в SEO шаблоне
Например для формирования названия отзыва: "Отзыв о товаре {Короткое название товара} от {Производитель}
Файл не является графическим
При загрузке картинок через API, в битрикс, может возникнуть неинформативная ошибка "Файл не является графическим", хотя загружается точно картинка.
Перерасчет заказа на API
Одним методом не обойтись, тут надо комплексно заново применять все скидки и считать сумму. Пример есть в файле /bitrix/modules/sale/admin/order_edit.php:176
Отложенная отправка писем
Письмо о заказе можно отправлять немного позже, когда уже пришла информация о оплате и когда менеджер проверил заказ.
Не работает исключение в gitignore
Если добавить всю папку /bitrix/* в файл .gitignore, то !/bitrix/modules/name-module/ уже не сработает, но можно сделать иначе
Отправка почты через gmail
Не нравится yandex? Можно отправлять через google. Мне такой вариант подошел больше, т.к. google упорно отправлял письма с yandex в спам.
Настраиваем почту
Принимать будем на Яндексе, отправлять с сервера и с Яндекса
Делаю ИМ, часть 2. Верстка
Верстка магазина стандартная, но есть один многофункциональный блок который всегда рядом и о котором я хочу рассказать.
Проверяем логи, битрикс окружение
bitrix, nginx, apache, php, mysql, sendmail, cron
SEO редирект на PHP
Одним редиректом с http на https, с www на без www, с index.php на /
Формирование цены от закупочной
Автоматический расчет розничной цены из закупочной. Например наценка 20% c округлением.

Загрузил все стабильные обновления (редакция Бизнес, версия 17.0.0) и "сгенерировал" документацию с помощью doxygen. Как и раньше, документация доступна по ссылке https://doc.budagov.ru/
Асинхронная загрузка изображений без js
На некоторых страницах сайта количество изображений переваливает за 100. И пока они все не загрузятся - браузер не покажет контент. Решением будет загрузка изображений после загрузки страницы.