webarchitect609/bitrix-user-type 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

webarchitect609/bitrix-user-type

Composer 安装命令:

composer require webarchitect609/bitrix-user-type

包简介

Set of custom Bitrix user property types and basic auxiliary functionality to help develop new types as easy and fast as it possible.

README 文档

README

Набор типов пользовательских свойств, а также базовый функционал, призванный максимально упростить и ускорить разработку новых типов пользовательских свойств.

Пока нестабильная версия - будьте внимательны!

Если вы хотите создавать свои типы свойств элемента инфоблока, то вам нужен пакет webarchitect609/bitrix-iblock-property-type

Как использовать

1 Установить через composer

composer require webarchitect609/bitrix-user-type

2 В init.php как можно раньше(выше) инициализировать используемые типы пользовательских свойств (подробнее - см. "Известные проблемы" #1). Например,

\WebArch\BitrixUserPropertyType\IblockSectionLinkType::init();

Либо воспользоваться менеджером:

<?php

use WebArch\BitrixUserPropertyType\HyperLinkType;
use WebArch\BitrixUserPropertyType\IblockSectionLinkType;
use WebArch\BitrixUserPropertyType\Utils\UserTypeManager;
use WebArch\BitrixUserPropertyType\WeekDayType;
use WebArch\BitrixUserPropertyType\StoreListType;

(new UserTypeManager([
    HyperLinkType::class,
    IblockSectionLinkType::class,
    WeekDayType::class,
    StoreListType::class
]))->init();

3 Теперь можно создавать новые пользовательские поля, выбрав свойство нового типа!

Список пользовательских свойств пакета

  • "Гиперссылка". Пользовательское свойство, реализующее валидную гиперссылку. WebArch\BitrixUserPropertyType\HyperLinkType
  • "Привязка к разделу инфоблока(с окном поиска)". Позволяет удобно указать раздел, выбрав его из всплывающего окна. WebArch\BitrixUserPropertyType\IblockSectionLinkType
  • "День недели". Позволяет реализовать привязку к дню недели (ISO-8601). WebArch\BitrixUserPropertyType\WeekDayType
  • "Привязка к складу". Реализует привязку к складу по его XML_ID. WebArch\BitrixUserPropertyType\StoreListType
  • "Привязка к местоположению". Реализует привязку к местоположению Bitrix по его коду. WebArch\BitrixUserPropertyType\LocationType

Как разработать свой тип свойства

1 Наследовать свой тип от базовой реализации \WebArch\BitrixUserPropertyType\Abstraction\UserTypeBase или самостоятельно реализовать интерфейс \WebArch\BitrixUserPropertyType\Abstraction\UserTypeInterface.

2 Определить обязательный статический метод getDBColumnType(), используя один из подходящих трейтов из namespace WebArch\BitrixUserPropertyType\Abstraction\DbColumnType

3 Определить другие обязательные методы, такие как getBaseType(), getDescription() и т.д., которые требует \WebArch\BitrixUserPropertyType\Abstraction\UserTypeInterface

4 При необходимости реализации других поддерживаемых методов следует рассмотреть и реализовать интерфейсы из namespace \WebArch\BitrixUserPropertyType\Abstraction\Custom

5 Инициализировать свой тип свойства в init.php

MyUserType::init();

6 Теперь можно создавать новые пользовательские поля, выбрав свойство нового типа!

Известные проблемы

#1 Ошибка "Bitrix\Main\SystemException: Unknown field definition UF_YOUR_TYPE" при работе с HL-блоками или общая ошибка неинициализации типа пользовательского свойства.
Возможная причина

Инициализация типа пользовательского свойства в init.php происходит позже, чем сборка сущности для любого HL-блока \Bitrix\Highloadblock\HighloadBlockTable::compileEntity(), которая в свою очередь приводит к вызову \CUserTypeManager::GetUserType() и набору кеша в \CUserTypeManager::$arUserTypes, который больше не обновлятся и в который не попадают никакие вновь инициализированные типы пользовательских полей.

Способ устранения

Инициализация типов пользовательских свойств должна происходить раньше, чем самый первый вызов \Bitrix\Highloadblock\HighloadBlockTable::compileEntity() или \CUserTypeManager::GetUserType().

统计信息

  • 总下载量: 18.74k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 14
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 13
  • Watchers: 4
  • Forks: 7
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-06-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固