Сниппеты Битрикс № 3

Кастомный шаблон для страницы Сервисы - Списки - Все списки

result_modifier.php template.php

PropertyTable, IblockTable, ORM, run-time поле, грид

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

Кастомизация шаблона для страницы Сервисы - Списки - Список

result_modifier.php template.php changes.php

Названия элементов выведены курсивом. Данные модифицированы через result_modifier.php (можно также подключить свои стили и скрипты) с дальнейшим подключением системного шаблона, который обновляется.

Кастомный шаблон для экспорта Списка в формате Excel

template.php composer.json

Использован пакет phpoffice/phpspreadsheet, который поставлен через composer.

Раздел Медицина

index.php doctor.php procedure.php add-doctor.php add-procedure.php Events.php events.php migrations

ORM для инфоблоков (списков), получение и добавление данных, разные типы полей списка (файл, привязка к элементам другого списка), IblockTable, PropertyTable, работа с запросом, кнопки из библиотеки интерфейсов битрикса, создание нового пункта в главном меню через js, миграции

Врачи и процедуры, привязанные к врачам. Добавление врачей, процедур. Сделано на списках.

Песочница CRM

Сниппеты кода для работы с сущностями CRM

Справочники

Все справочники

Все значения справочника (полная форма)

Все значения справочника (краткая форма)

Первое значение справочника

Работа с событиями

Абстрактная фабрика для обработчиков события создания сделки

events.php AbstractEventHandler.php EventHandlerFactory.php CommentEventHandler.php InvoiceEventHandler.php QuoteEventHandler.php AddDealInterface.php

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

CCrmStatus, CommentEntry, CCrmQuote, создание новых счетов

Бизнес-процессы

Простое активити для бизнес-процесса

helloworldactivity.php .description.php

Простое активити, которое делает запись в журнал. Задаются обращение и комментарий.

BaseActivity, PropertiesDialog

Модули

Модуль Пример

elisad.d7

Модуль-образец. В админке создается пункт в меню и две(?) страницы с настройками. Есть примеры создания своих таблиц для хранения данных, заполнения их тестовыми данными, подключения обработчиков событий и агентов. Показано, как выполнить установку/удаление модуля в несколько шагов.

Модуль Группы контактов по интересам

elisad.cgroups

Создание своей таблицы для хранения групп. Создание вкладки Группы контактов в разделе CRM. Во вкладке выводится комплексный компонент, который состоит из двух простых компонентов - Список групп и Карточка группы. Список выводится с помощью грида crm.interface.grid. Карточка с помощью компонента crm.interface.form.

Модуль Очистка

elisad.clean

Модуль для очистки папки /upload/iblock. Модуль должен удалять файлы, которые не используются в инфоблоках. Код чужой, непроверенный, осторожно. Создание пункта меню в админке и страницы настроек модуля в админке. Создание своих таблиц для хранения данных. Удаление файлов и директорий.

Агенты

Agents.php

Примеры агентов:

  • Простой агент, делающий запись в текстовый лог
  • Агент, который делает запись в текстовый лог 7 раз и прекращает выполнение
  • Агент, обновляющий курсы валют для модуля Валюты
  • Агент, выводящий в текстовый лог элементы списка Клиента, у которых не заполнено поле Ссылка

Локальные приложения

Дата последней коммуникации

install.php handler.php

Создано локальное приложение, которое при установке создает пользовательское поле для контактов Дата последней коммуникации типа Дата-Время.

К событию создания нового дела привязан обработчик, который проверяет является ли дело звонком или отправкой email-сообщения, а также привязано ли оно именно к сущности контакт.

Если да, то поле Дата последней коммуникации у соответствующего контакта обновляется, в него записываются текущие дата-время.

Crest, batch, crm.contact.userfield.add, event.bind, crm.activity.get, crm.contact.update