• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/basetype/date.php
  • Класс: BitrixBizprocBaseTypeDate
  • Вызов: Date::renderControl
static function renderControl(FieldType $fieldType, array $field, $value, $allowSelection, $renderMode)
{
	$name = static::generateControlName($field);
	$value = static::internalizeValue($fieldType, 'Renderer', $value);
	$offset = ($value instanceof ValueDate) ? $value->getOffset() : 0;

	$className = static::generateControlClassName($fieldType, $field);
	$renderResult = '';
	$isPublicControl = $renderMode & FieldType::RENDER_MODE_PUBLIC;

	if ($isPublicControl && $allowSelection)
	{
		$selectorAttributes = sprintf(
			'data-role="inline-selector-target" data-selector-type="%s" data-property="%s" ',
			htmlspecialcharsbx($fieldType->getType()),
			htmlspecialcharsbx(MainWebJson::encode($fieldType->getProperty()))
		);

		$renderResult = sprintf(
			'',
			htmlspecialcharsbx($name),
			htmlspecialcharsbx($className),
			htmlspecialcharsbx($value),
			htmlspecialcharsbx($fieldType->getDescription()),
			$selectorAttributes
		);
	}
	elseif ($renderMode & FieldType::RENDER_MODE_MOBILE)
	{
		$renderResult = '';
	}
	else
	{
		CJSCore::Init(['popup', 'date']);
		$renderResult = sprintf(
			''
					. 'calendar',
			htmlspecialcharsbx($name),
			htmlspecialcharsbx($value),
			$isPublicControl ? htmlspecialcharsbx($className) : '',
			static::getType() == FieldType::DATETIME ? 'true' : 'false',
			static::getType() == FieldType::DATETIME ? 'false' : 'true'
		);

		$tzName = 'tz_'.$name;
		$zones = self::getZones();

		if (!$offset && $renderMode & FieldType::RENDER_MODE_PUBLIC)
		{
			$offset = 'current';
		}

		$tzClassName = 'bizproc-type-control-date-lc';
		if ($fieldType->isMultiple())
		{
			$tzClassName .= ' bizproc-type-control-date-lc-multiple';
		}
		if (!$isPublicControl)
		{
			$tzClassName = '';
		}

		$renderResult .= '';

		if ($fieldType->isMultiple())
		{
			$settings = $fieldType->getSettings();
			$settings['timezones'] = $zones;
			$fieldType->setSettings($settings);
		}
	}

	return $renderResult;
}