/local/php_interface/js/ и закидываем туда файлы скриптов. Далее добавляем код ниже в init.php — и проверяем в админке ))В файле
jscolor_custom.js находятся дополнительные настройки — их можно менять согласно документации.$arJsConfig = array(
'jscolor' => array(
'js' => '/local/php_interface/js/jscolor.js',
// 'css' => '/local/php_interface/js/jscolor.css',
'rel' => array(),
),
'jscolor_custom' => array(
'js' => '/local/php_interface/js/jscolor_custom.js',
'rel' => array(),
)
);
foreach ($arJsConfig as $ext => $arExt) {
\CJSCore::RegisterExt($ext, $arExt);
}
// расширим свой класс от числового типа
class UserDataColor extends CUserTypeInteger
{
// инициализация пользовательского свойства для главного модуля
static function GetUserTypeDescription()
{
return array(
'USER_TYPE_ID' => 'color',
'CLASS_NAME' => 'UserDataColor',
'DESCRIPTION' => 'Цвет',
'BASE_TYPE' => 'int',
);
}
// инициализация пользовательского свойства для инфоблока
static function GetIBlockPropertyDescription()
{
return array(
'PROPERTY_TYPE' => 'S',
'USER_TYPE' => 'color',
'DESCRIPTION' => 'Цвет',
'GetPropertyFieldHtml' => array('UserDataColor', 'GetPropertyFieldHtml'),
);
}
// представление свойства
static function getViewHTML($name, $value)
{
CUtil::InitJSCore(array('jscolor', 'jscolor_custom'));
return '<input type="text" data-jscolor="" name="'.$name.'" value="'.$value.'">';
}
// редактирование свойства
static function getEditHTML($name, $value, $is_ajax = false)
{
CUtil::InitJSCore(array('jscolor', 'jscolor_custom'));
return '<input type="text" data-jscolor="" name="'.$name.'" value="'.$value.'">';
}
// редактирование свойства в форме (главный модуль)
function GetEditFormHTML($arUserField, $arHtmlControl)
{
return self::getEditHTML($arHtmlControl['NAME'], $arHtmlControl['VALUE'], false);
}
// редактирование свойства в списке (главный модуль)
function GetAdminListEditHTML($arUserField, $arHtmlControl)
{
return self::getViewHTML($arHtmlControl['NAME'], $arHtmlControl['VALUE'], true);
}
// редактирование свойства в форме и списке (инфоблок)
static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
{
return $strHTMLControlName['MODE'] == 'FORM_FILL'
? self::getEditHTML($strHTMLControlName['VALUE'], $value['VALUE'], false)
: self::getViewHTML($strHTMLControlName['VALUE'], $value['VALUE'])
;
}
}
// добавляем тип для инфоблока
AddEventHandler("iblock", "OnIBlockPropertyBuildList", array("UserDataColor", "GetIBlockPropertyDescription"));
// добавляем тип для главного модуля
AddEventHandler("main", "OnUserTypeBuildList", array("UserDataColor", "GetUserTypeDescription"));* Свежий jscolor можно скачать с сайта jscolor Color Picker
Скачать:

