Design::setOptions

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Design
  4. setOptions
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/design.php
  • Класс: Bitrix\Crm\WebForm\Design
  • Вызов: Design::setOptions
public function setOptions(array $options = [])
{
	foreach ($options as $key => $value)
	{
		if (!isset($this->options[$key]))
		{
			continue;
		}

		$value = is_bool($value) ? ($value ? 'Y' : 'N') : $value;

		switch ($key)
		{
			case 'theme':
				$allowed = self::getThemes();
				if (!isset($allowed[$value]))
				{
					$value = '';
				}
				break;

			case 'dark':
				$allowed = self::getModes();
				if (!isset($allowed[$value]))
				{
					$value = 'N';
				}
				break;

			case 'shadow':
				$value = $value === 'Y' ? 'Y' : 'N';
				break;

			case 'font':
				if (!is_array($value))
				{
					$value = [];
				}
				$fontUri = trim(isset($value['uri']) ? (string) $value['uri'] : '');
				$fontUri = mb_strpos($fontUri, 'https://fonts.googleapis.com/css') === 0 ? $fontUri : '';
				$value = [
					'uri' => $fontUri,
					'family' => isset($value['family']) ? (string) $value['family'] : ''
				];
				break;

			case 'border':
				if (!is_array($value))
				{
					$value = [];
				}
				$value = array_intersect_key($value, $this->options['border']);
				foreach ($value as $index => $val)
				{
					$val = is_bool($val) ? ($val ? 'Y' : 'N') : $val;
					$value[$index] = $val === 'Y' ? 'Y' : 'N';
				}
				break;

			case 'color':
				if (!is_array($value))
				{
					$value = [];
				}
				$value = array_intersect_key($value, $this->options['color']);
				foreach ($value as $index => $val)
				{
					$value[$index] = (string) $val;
				}
				break;

			default:
				$value = (string) $value;
				break;
		}

		$this->options[$key] = $value;
	}

	return $this;
}

Добавить комментарий