Просмотров: 40115
Дата последнего изменения: 13.11.2023
Татьяна Старкова
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Старт, Стандарт
Свои типы свойств
В системе имеются следующие стандартные типы свойств: Строка, Число, Да/Нет, Перечисление, Файл, Дата и Местоположение. Но вы можете добавлять свои типы свойств и самостоятельно определять их внешний вид. Таким образом, у покупателя при оформлении заказа будет спрашиваться какое-то значение, которое вы сами запрограммируете. Для этого вам необходимо выполнить следующие действия:
Унаследовать класс пользовательского типа:
class MyType extends \Bitrix\Sale\Internals\Input\Base
{
protected static function getEditHtmlSingle($name, array $input, $value){...}
protected static function getErrorSingle(array $input, $value){...}
static function getSettings(array $input, $reload){...}
}
Подключить тип свойства к системе - тип подключается на событии registerInputTypes:
BX.Sale.Input.Manager.MyType = MyType;
BX.Sale.Input.Utils.extend(MyType, BX.Sale.Input.BaseInput);
BX.Sale.Input.Manager.register('myType', MyType);
function MyType(name, settings, value, publicO)
{
MyType.__super__.constructor.call(this, name, settings, value, publicO);
}
MyType.prototype.createEditorSingle = function (name, value)
{
...
};
MyType.prototype.afterEditorSingleInsert = function (item)
{
...
};
MyType.prototype.setValueSingle = function (item, value)
{
...
};
MyType.prototype.getValueSingle = function (item)
{
...
};
MyType.prototype.setDisabledSingle = function (item, disabled)
{
...
};
MyType.prototype.addEventSingle = function (item, name, action)
{
...
};
Важно! Название типа myType должно быть уникальным в рамках всей системы.
В результате в дальнейшем, когда менеджер магазина будет создавать новое свойство заказа, ему среди стандартных типов будет доступен для выбора и ваш созданный тип свойства.
Обратите внимание! Поддержку созданного пользовательского свойства в компоненте оформления заказа
sale.order.ajax
Компонент служит для оформления заказа на одной странице с использованием технологии AJAX. Компонент является стандартным и входит в дистрибутив модуля.