3namespace Bitrix\Iblock\BizprocType;
6 Bitrix\Bizproc\BaseType,
7 Bitrix\Bizproc\FieldType,
8 Bitrix\Main\Localization\Loc;
13 class UserTypePropertyHtml
extends UserTypeProperty
22 public static function convertTo(FieldType $fieldType, $value, $toTypeClass)
24 if (is_array($value) && isset($value[
'VALUE']))
26 if (is_array($value) && isset($value[
'TEXT']))
29 return parent::convertTo($fieldType, $value, $toTypeClass);
38 public static function convertFrom(FieldType $fieldType, $value, $fromTypeClass)
44 $type = $fromTypeClass::getType();
49 case FieldType::DATETIME:
50 case FieldType::DOUBLE:
52 case FieldType::INTERNALSELECT:
53 case FieldType::SELECT:
54 case FieldType::STRING:
57 $value =
array(
'TYPE' =>
'text',
'TEXT' => (
string) $value);
70 public static function getConversionMap()
72 $parentMap = parent::getConversionMap();
81 FieldType::INTERNALSELECT,
95 protected static function formatValuePrintable(FieldType $fieldType, $value)
97 if (is_array($value) && isset($value[
'VALUE']))
99 if (is_array($value) && isset($value[
'TEXT']))
114 protected static function renderControl(FieldType $fieldType,
array $field, $value, $allowSelection, $renderMode)
116 $name = static::generateControlName($field);
117 $controlId = static::generateControlId($field);
119 if (is_array($value) && isset($value[
'VALUE']))
121 if (is_array($value) && isset($value[
'TEXT']))
124 return \CBPViewHelper::getHtmlEditor($controlId,
$name, $value);
135 public static function renderControlSingle(FieldType $fieldType,
array $field, $value, $allowSelection, $renderMode)
137 $selectorValue =
null;
144 $renderResult = static::renderControl($fieldType, $field, $value, $allowSelection, $renderMode);
148 $renderResult .= static::renderControlSelector($field, $selectorValue,
true,
'', $fieldType);
151 return $renderResult;
162 public static function renderControlMultiple(FieldType $fieldType,
array $field, $value, $allowSelection, $renderMode)
164 $selectorValue =
null;
165 $typeValue =
array();
166 if (!is_array($value) || is_array($value) && \CBPHelper::isAssociativeArray($value))
169 foreach ($value as $v)
177 if (empty($typeValue))
182 foreach ($typeValue as
$k => $v)
184 $singleField = $field;
185 $singleField[
'Index'] =
$k;
186 $controls[] = static::renderControl(
195 $renderResult = static::wrapCloneableControls($controls, static::generateControlName($field));
199 $renderResult .= static::renderControlSelector($field, $selectorValue,
true,
'', $fieldType);
202 return $renderResult;
210 protected static function wrapCloneableControls(
array $controls, $wrapperId)
212 $wrapperId = Main\Text\HtmlFilter::encode((
string)$wrapperId);
213 $renderResult =
'<table width="100%" border="0" cellpadding="2" cellspacing="2" id="BizprocCloneable_'
218 $renderResult .=
'<tr><td>'.$control.
'</td></tr>';
220 $renderResult .=
'</table>';
221 $renderResult .=
'<input type="button" value="'.Loc::getMessage(
'BPDT_BASE_ADD')
222 .
'" onclick="BX.Bizproc.cloneTypeControlHtml(\'BizprocCloneable_'
223 .$wrapperId.
'\', \
''.$wrapperId.
'\')
"/><br />';
225 return $renderResult;
228 public static function externalizeValue(FieldType $fieldType, $context, $value)
230 if (is_array($value) && isset($value['TEXT']) && !is_scalar($value['TEXT']))
232 return is_object($value['TEXT']) && method_exists($value['TEXT'], '__toString')
233 ? (string)$value['TEXT']
238 return parent::externalizeValue($fieldType, $context, $value);
241 protected static function generateControlName(array $field)
243 $name = $field['Field'];
244 $index = isset($field['Index']) ? (int)$field['Index'] : null;
247 $name .= "[n{$field[
'Index']}]
";
static requireModule($moduleName)
static isExpression($text)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
htmlspecialcharsback($str)
HTMLToTxt($str, $strSiteUrl="", $aDelete=[], $maxlen=70)