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

position: sticky; фиксация за низ блока
Чаще это свойство используют для "шапок" сайта, но если вы укажете position: sticky; top: 0; блоку, который больше высоты экрана, то часть его контента не будет доступна, пока вы не доскроллите до конца родительского блока.
Читать дальше » 0
Алексей,
CSS, JS inline в Битрикс
Добиваю Google Pagespeed, до идеального результата осталось несколько пунктов. На данный момент пришлось "заинлайнить" стили и js для того, чтобы не было лишних запросов к серверу.
Читать дальше » 3
Алексей,
Удалить пользователей которые никогда не авторизовывались
Если через форму регистрации наспамило много новых пользователей, то таблицу хорошо бы почистить. Неактивных можно удалить через админку. А вот тех что никогда не авторизовывались, только скриптом.
Читать дальше » 0
Алексей,
Ленивая загрузка виджетов Retail Rocket
Их виджеты с рекомендованными товарами блокируют страницу на 7 секунд. Google PageSpeed это очень не нравится. Да и зачем отрисовывать товары сразу, если они, обычно, находятся внизу страницы.
Читать дальше » 0
Алексей,
Как найти, откуда устанавливаются мета-теги
Мета-теги страницы обычно устанавливаются через метод SetPageProperty. Использовать его можно сколько угодно раз и в любом месте сайта. Поэтому найти откуда же в итоге установились теги, бывает, крайне сложно.
Читать дальше » 0
Алексей,
Загрузка и инициализация API Яндекс карт при скролле
API карт весит много, js код тяжёлый. Загружать сразу - плохая идея. Если карта появляется по клику, в попапе или она находится внизу страницы (т.е. не видна на первом экране), то и загрузку можно отложить до момента, когда карта станет "видна".
Читать дальше » 5
Алексей,
Bitrix framework 3
На конференции немного рассказали о планах и концепции будущего фреймворка.
Читать дальше » 0
Алексей,
Настройка формы фильтрации элементов в админке
Например, при добавлении товаров в заказ или выборе элементов в свойстве-привязке, в окне выбора есть фильтр. Его можно настроить, добавив в него различные свойства, по которым будет происходить фильтрация.
Читать дальше » 0
Алексей,
Пользовательское поле для ссылок
Понадобилось сделать поле для раздела инфоблока, в котором администратор мог бы добавлять ссылки (тег </a> с названием). У элементов есть хотя бы тип "строка с описанием", у UF_ полей можно воспользоваться только типом html, но при этом велик шанс, что в поле добавят еще какой-то код.
Читать дальше » 0
Алексей,
Ошибка bitrix-env-7.5-0.el7.noarch has missing requires of php-pecl-xdebug
Как-то многовато ошибок после обновления BitrixEnv. Эта возникла при попытке обновить сервер. Решение простое, удалить php-pecl-xdebug3 и установить php-pecl-xdebug
Читать дальше » 0
Алексей,
Как переделать пагинацию на ЧПУ
Например с /?PAGEN_1=3 на /page-3/. Казалось бы добавил правило в urlrewrite, поменял компонент system.pagenavigation и готово, но нет.
Читать дальше » 6
Алексей,
Как узнать что включен режим правки?
В коде. Есть метод $APPLICATION->GetShowIncludeAreas(), возвращает true если режим правки включен.
Читать дальше » 0
Алексей,
Ошибка: Работа с сокетами (check_socket): Fail Connection to ssl
Если у вас настроено битрикс окружение и сертификат LetEncrypt, то при проверке сайта может возникнуть ошибка "Работа с сокетами". Решается обновлением корневых сертификатов.
Читать дальше » 13
Алексей,
Получить список статусов заказа
Код запроса в БД для получения STATUS_ID и их название на нужном языке
Читать дальше » 0
Алексей,
Проверяем наличие товара на складе
Хоть в битрикс склады и используются только для вывода информации, многие их переделывают под реальные задачи. Например для вывода доступности в регионах (несколько складов под каждый регион). Ядро позволяет очень гибко проверить наличие на складах, покажу на примерах.
Читать дальше » 0
Алексей,
Как вывести элементы инфоблока без учета активности
Для вывода как активных, так и неактивных элементов, нужно в фильтр передать ACTIVE = ''
Читать дальше » 2
Алексей,
Микроразметка картинок с ленивой загрузкой
Возник вопрос, если путь картинке находится в data-src, то как добавить микроразметку изображения?
Читать дальше » 0
Алексей,
Быстрая минификация css для bitrix
Идея в том, чтобы взять готовую php библиотеку для минификации css и рекурсивно пройтись им по всем css файлам шаблона, создавая min копии, которые битрикс подхватывает автоматически.
Читать дальше » 0
Алексей,
could not start session because headers have already been sent
Ошибка чаще всего возникает либо из-за лишних символов (например пробел перед <?php), либо если файл сохранен в кодировке UTF8 с BOM.
Читать дальше » 11
Алексей,
jquery получить имя файла input file
Если надо кастомный вид поля загрузки файла (почти всегда), то само поле можно скрыть и работать с ним с помощью js
Читать дальше » 0
Алексей,
Загрузка js по событию начала активности пользователя
Я всё мучаю загрузку яндекс карт. Уж слишком они тяжелые, сразу грузить нельзя, а при открытии они загружаются очень долго.
Читать дальше » 2
Алексей,
Не отображается iframe, хотя заголовок x-frame-options отсутствует.
Столкнулся с тем, что при любом значении заголовка x-frame-options, iframe не отображается на других сайтах. Удаление заголовка так же не помогло.
Читать дальше » 0
Алексей,
Intersection Observer API, плавное появление элементов
Экспериментальный скрипт добавления анимации появления элементов при сколле. Использовать только для опытов)
Читать дальше » 1
Алексей,
htaccess редирект с пробелом и кириллицей в URL
При таком URL может возникнуть проблема, что правило не будет обрабатываться, т.к. в браузере адрес в одном виде, а сервер его понимает иначе. Решение простое: URL нужно взять в кавычки, а кириллицу писать как есть без URL-кодирования.
Читать дальше » 0
Алексей,
Рейтинг в виде звёзд, по-быстрому
Берем svg иконки звезд, далее в зависимости от рейтинга, проверяем на php какая иконка нужна (закрашенная или пустая) и выводим её
Читать дальше » 0
Алексей,
В заказе ограничить выбор типа плательщика
Например, стоит задача ограничить выбор пользователям, которые зарегистрированы как юр. лица. (запретить оформлять как физ лицо)
Читать дальше » 0
Алексей,
jquery поиск выбранного input:focus
Варианта два: $('input:focus'), либо при клике на input добавлять ему класс.
Читать дальше » 0
Алексей,
js, как узнать кол-во блоков в ряду
Решение достаточно простое: берем ширину родителя и ширину блоков, делим одно на другое и получаем кол-во блоков, которое может поместиться в одной строке. Возможно есть более правильное решение, не знаю.
Читать дальше » 0
Алексей,
Как в битрикс обновить множественное свойство Файл у элемента?
Если нужно заменить одну из картинок с сохранением порядка, можно сделать это напрямую, работая с \Bitrix\Iblock\ElementPropertyTable
Читать дальше » 0
Алексей,
Главный модуль, история изменений
Сохранил список изменений главного модуля на всякий случай, вдруг кому пригодится.
Читать дальше » 0
Алексей,
Здесь можно узнать много полезного. Я пишу на темы: веб-разработка, CMS 1С-Битрикс (как с позиции разработчика, так и от лица пользователя), различные нестандартные приемы в верстке и прочие вещи связанные так или иначе с web`ом. Я не блогер и пишу как умею, посты постоянно обновляются, т.к. я стараюсь следить за актуальностью данных.