Skip to content

Commit

Permalink
feat: Справочник(с сортировкой множества)
Browse files Browse the repository at this point in the history
BREAKING CHANGE:

- php: ^7.2 вместо >=5.5

Добавлено:

- новый тип свойства "Справочник(с сортировкой множества)", но пока с
  ограничением на 1000 элементов;
- типизация всех исключений библиотеки через
  BitrixIblockPropertyTypeExceptionInterface.

Исправлено:

- исправлены названия аргументов
  IblockPropertyTypeInterface::getSettingsHTML().
  • Loading branch information
webarchitect609 committed May 24, 2022
1 parent 842216f commit 1c8a95d
Show file tree
Hide file tree
Showing 10 changed files with 713 additions and 23 deletions.
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Change Log
==========

2.0.0
-----

### BREAKING CHANGE:

- `php: ^7.2` вместо `>=5.5`

### Добавлено:

- новый тип свойства "Справочник(с сортировкой множества)", но пока с ограничением на 1000 элементов;
- типизация всех исключений библиотеки через `BitrixIblockPropertyTypeExceptionInterface`.

### Исправлено:

- исправлены названия аргументов `IblockPropertyTypeInterface::getSettingsHTML()`.
4 changes: 3 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@
}
],
"require": {
"php": ">=5.5"
"php": "^7.2",
"anahkiasen/html-object": "^1.4",
"webarchitect609/bitrix-cache": "^1.8.0"
},
"autoload": {
"psr-4": {
Expand Down
24 changes: 13 additions & 11 deletions src/main/Abstraction/IblockPropertyTypeBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace WebArch\BitrixIblockPropertyType\Abstraction;

use Bitrix\Main\EventManager;
use WebArch\BitrixIblockPropertyType\Exception\NotImplementedMethodException;
use WebArch\BitrixIblockPropertyType\Exception\UnsupportedControlModeException;

Expand Down Expand Up @@ -39,11 +40,12 @@ abstract class IblockPropertyTypeBase implements IblockPropertyTypeInterface
*/
public function init()
{
AddEventHandler(
'iblock',
'OnIBlockPropertyBuildList',
[$this, 'getUserTypeDescription']
);
EventManager::getInstance()
->addEventHandler(
'iblock',
'OnIBlockPropertyBuildList',
[$this, 'getUserTypeDescription']
);
}

/**
Expand Down Expand Up @@ -220,10 +222,10 @@ protected function getIblockElementSearchPopupJS(
$iblockfix = 'y'
) {
$params = [
'lang' => $lang,
'lang' => $lang,
'IBLOCK_ID' => $iblockId,
'n' => $name,
'k' => $key,
'n' => $name,
'k' => $key,
'iblockfix' => $iblockfix,
];
if ($iblockId <= 0) {
Expand Down Expand Up @@ -332,7 +334,7 @@ public function prepareSettings(array $property)
* @inheritdoc
* @throws NotImplementedMethodException
*/
public function getSettingsHTML(array $property, array $value, array $control)
public function getSettingsHTML(array $property, array $control, array $propertyFields)
{
throw new NotImplementedMethodException('getSettingsHTML', static::class);
}
Expand All @@ -341,7 +343,7 @@ public function getSettingsHTML(array $property, array $value, array $control)
* @inheritdoc
* @throws NotImplementedMethodException
*/
public function getPropertyFieldHtmlMulty(array $property, array $value, array $control)
public function getPropertyFieldHtmlMulty(array $property, array $valueList, array $control)
{
throw new NotImplementedMethodException('getPropertyFieldHtmlMulty', static::class);
}
Expand All @@ -368,7 +370,7 @@ public function getPublicFilterHTML(array $property, array $control)
* @inheritdoc
* @throws NotImplementedMethodException
*/
public function getUIFilterProperty(array $property, $controlName, array &$filter)
public function getUIFilterProperty(array $property, array $control, array &$filter)
{
throw new NotImplementedMethodException('getUIFilterProperty', static::class);
}
Expand Down
12 changes: 6 additions & 6 deletions src/main/Abstraction/IblockPropertyTypeInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,28 +184,28 @@ public function prepareSettings(array $property);
* Метод должен вернуть безопасный HTML отображения настроек свойства для формы редактирования инфоблока.
*
* @param array $property
* @param array $value
* @param array $control
* @param array $propertyFields
*
* @return string
*
* @link https://dev.1c-bitrix.ru/api_help/iblock/classes/user_properties/GetSettingsHTML.php
*/
public function getSettingsHTML(array $property, array $value, array $control);
public function getSettingsHTML(array $property, array $control, array $propertyFields);

/**
* Вывод формы редактирования множественного свойства. Если отсутствует, то используется GetPropertyFieldHtml для
* каждого значения отдельно (у множественных свойств).
*
* @param array $property
* @param array $value
* @param array $valueList
* @param array $control
*
* @return string
*
* @link https://dev.1c-bitrix.ru/api_help/iblock/classes/user_properties/getpropertyfieldhtmlmulty.php
*/
public function getPropertyFieldHtmlMulty(array $property, array $value, array $control);
public function getPropertyFieldHtmlMulty(array $property, array $valueList, array $control);

/**
* Выводит html для фильтра по свойству на административной странице списка элементов инфоблока.
Expand Down Expand Up @@ -237,7 +237,7 @@ public function getPublicFilterHTML(array $property, array $control);
* Управляет отображением фильтра по свойству в списке элементов.
*
* @param array $property
* @param string $controlName Название инпута.
* @param array $control
* @param array $filter Ссылка на массив параметров внешнего вида фильтра по свойству.
* Возможные значения 'type':
* <ul>
Expand Down Expand Up @@ -265,5 +265,5 @@ public function getPublicFilterHTML(array $property, array $control);
*
* @internal Официальной документации по методу не существует.
*/
public function getUIFilterProperty(array $property, $controlName, array &$filter);
public function getUIFilterProperty(array $property, array $control, array &$filter);
}
Loading

0 comments on commit 1c8a95d

Please sign in to comment.