Недокументированный битрикс. Парсер и форматтер для номеров телефонов

В битриксе всегда было полно вспомогательного функционала, который часто располагался в нерелевантных местах. Например вещи, необходимые для работы с ценой, почему-то находились в модуле инфоблоков, или хранилище для адресов в модуле магазина. На этот раз вроде все на месте. В 17.5 в битриксе появился своего рода «парсер» для номеров телефонов. А заодно вместе с ним и форматтер. Если в двух словах, то битрикс теперь может попытаться преобразовать строковое представление номера телефона в объект, а также преобразовать его обратно в строку в заранее определенном формате. Эдакая нормализация. ...

November 21, 2018 · 3 min · Михаил Журов

Заказчикам. Почему лучше начать новый проект на Symfony, чем на Битриксе?

TL;DR Очередной лонгрид на 15-20 минут про то, что Symfony лучше Битрикса почти во всем. Опытному разработчику не нужно объяснять преимущества одной платформы над другой. Он самостоятельно может разобраться в этом вопросе на основании своего опыта. Но вот потенциальному заказчику, который не имеет широкого технического кругозора, довольно сложно сориентироваться в огромном мире современной веб-разработки. На сегодняшний момент существуют десятки различных платформ, инструментов и технологий, которые могут быть применены при создании сайта. Попробуем в этом зоопарке разобраться и понять, почему выбор одного над другим будет лучше или хуже. Данная статья будет сконцентрирована на выборе между Битриксом и Symfony. ...

August 13, 2018 · 13 min · Михаил Журов

Недокументированный битрикс. Валидация пароля пользователя

Сегодняшняя статья больше для новичков, бывалым будет не интересно, т.к. уже наверняка занимались раскопками на эту тему. В Битриксе существует возможность настроить политики безопасности у пользовательских групп. Это свод правил, которые дают возможность сделать контроль за безопасностью пользователей каждой группы более жестким, или напротив, более мягким. Среди правил есть несколько таких, которые относятся к безопасности пароля пользователя, такие как наличие там цифр, букв или спецсимволов. Все эти правила проверяются внутри ядра в момент сохранения пароля. Если вдруг пароль не прошел эти политики, то пароль не будет сохранен и будет выброшено «битриксовое исключение», которое будет содержать текст ошибки. Но что если вам необходимо проверить пароль без его сохранения в БД? Например для того, чтобы убедиться в его корректности перед передачей в стороннюю БД через API? Или провести проверку безопасности по мере заполнения формы еще до сохранения этой формы? ...

April 11, 2018 · 3 min · Михаил Журов

Недокументированный битрикс. Собственные настройки для баннеров в админке

В БУС Бизнес (а также в нескольких других редакциях) уже давно существует модуль рекламы (advertising). Его возможности заключаются в том, чтобы дать администратору возможность размещать на сайте баннеры различных типов - изображения, html-код, flash-баннеры (ныне покойный вариант). Возможности модуля позволяют организовать полноценную баннерную систему, вести аналитику по показам, кликам, настраивать различные ограничения (таргетинг) по страницам, городам и датам. В общем чего тут говорить, возможности довольно широкие. Но и как многое в БУС, возможности кастомизации этого функционала сильно ограничены. Я не совру, если скажу, что их нет, почти нет. ...

March 26, 2018 · 4 min · Михаил Журов

Недокументированный битрикс. Core component injection

Основой БУС и главным строительным материалом системы являются компоненты. Для тех, кто не в курсе, это такая сущность, которая объединяет в себе всё необходимое для работы какого-то функционального блока на сайте. Это может быть баннер, или список «новинок», слайдер с брендами вашего магазина, целая страница каталога или даже полноценный раздел типа «Блог». Возможности компонентов, по большому счету, не ограничены, и с помощью них можно решать разнообразные задачи - от вывода телефона в шапке и заканчивая разработкой REST API из пятиста точек входа. Довольно часто разработчики используют стандартные компоненты, которые идут в поставке вместе с БУС. Документацией определен механизм расширения компонентов - в зависимости от способа реализации базового компонента вы либо создаете дополнительный шаблон для него, либо копируете компонент целиком, либо наследуетесь от него, если он был разработан с помощью ООП подхода. Но бывают ситуации, когда этих возможностей не хватает. Например, компоненты БУС могут использоваться самим ядром системы, админкой. Чтобы кастомизировать компонент в админке, вам потребуется отредактировать ядро, что является очень плохой идеей. Но есть другой выход! ...

March 25, 2018 · 3 min · Михаил Журов

Недокументированный битрикс. Свои вкладки с кастомным функционалом на странице элемента инфоблока, и не только

Уж не знаю почему, но многие администраторы сайтов хвалят битриксовую админку. Однако я не разделяю этого мнения, и считаю что структура админки построена нелогично, в ней очень много лишнего, а как разработчик могу сказать, что разрабатывать свой функционал для админки - то еще сомнительное удовольствие. И тем не менее работать с ней нужно. Время от времени появляется необходимость добавить что-то свое. Очень много времени администраторы проводят в формах работы с инфоблоками, и эти формы иногда нужно дорабатывать. Стандартные документированные возможности по кастомизации формы редактирования элемента инфоблока ограничены следующими способами: можно написать свой тип свойства, тем самым добавив новые визуальные и функциональные возможности для каких-то полей. Ограничений почти нет, все зависит от вашей фантазии и умений. Изменения будут применены к конкретному свойству можно создать php-скрипт, который полностью заменит форму редактирования элемента инфоблока. Путь до такого скрипта задается в настройках инфоблока в опции «Файл с формой редактирования элемента». Чтобы создать этот скрипт, придется скопипастить очень много кода из ядра, и если вам нужно кастомизировать форму ради какой-то мелочи, это может быть неразумно UPD. Спасибо комментарию от Алексея. В конце концов есть стандартный редактор форм админки, про который я совсем забыл. Этот редактор позволяет сгруппировать имеющиеся свойства и поля инфоблока (а также любой другой формы в админке, если она разработана по фен-шую) в разные вкладки, можно создавать новые, удалять существующие и т.д. Но это все же способ именно группировки, а не создания новых вкладок с новым функционалом Но есть еще один способ. ...

March 21, 2018 · 5 min · Михаил Журов

Недокументированный битрикс. Псевдо Dependency Injection в sale

Этим постом хочу начать отдельную серию статей, которая будет знакомить читателей с некоторыми особенностями битрикс, которые не описаны в документации, но при этом могут быть полезны разработчикам для решения их насущных задач, а также для более глубокого понимания проблемы. Я не буду в этих статьях рассуждать об элегантности разработанных решений, т.к. это бессмысленно (все итак знают - почему). Постараюсь сосредоточиться именно на том, какие функции битриксоиды скрывают от нас, а также как их использовать. Мне по долгу службы приходится много и часто ковыряться в ядре битрикса, поэтому волей-неволей натыкаешься на всякие разности. В этот раз расскажу о том, как можно заставить битрикс работать с вашими собственными сущностями модуля «Интернет-магазин». ...

March 20, 2018 · 3 min · Михаил Журов

Битрикс в «коробке»

Вот такое попалось мне как-то в руки, еще летом, но все как-то не дошло до публикации. Я уже и забыл, когда в последний раз дисками-то пользовался.. Чтобы проверить содержимое этого дела, пришлось расчехлять старенький ноут, в котором по счастливой случайности оказался привод. ...

January 16, 2018 · 3 min · Михаил Журов

Модуль для маркетплейс — от идеи до старта продаж. Часть 14 — публикация и выводы

Это случилось! Наконец-то [https://marketplace.1c-bitrix.ru/solutions/maximaster.coupanda/](CouPanda! поселилась в публичном маркетплейсе). Был пройден большой путь. На страницах моего блога можно проследить за развитием модуля от идеи и до полноценно работающего решения. Много работы уже было сделано, и еще больше предстоит впереди. Еще на этапе идеи у меня было очень много задумок, а в процессе разработки появилось еще больше всего. Ниже немного мыслей о том, как все это было, и что меня ожидает в будущем. ...

January 14, 2018 · 5 min · Михаил Журов

Модуль для маркетплейс — от идеи до старта продаж. Часть 13 — Лого, демо-режим, первые итоги

Вот и подошла к концу эта серия статей о создании и запуске собственного модуля. Прошло 3.5 месяца с момента публикации первой статьи этого цикла. За это время простая идея воплотилась в реализацию простенького модуля, а я получил бесценный опыт (хоть и не самый лучший), и старался делиться им с вами. Пора отдавать модуль на модерацию и начинать считать бабосы подводить предварительные итоги. Но не все еще готово для передачи на модерацию … ...

December 22, 2017 · 8 min · Михаил Журов