• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/clearnsharedargmanager.php
  • Класс: can
  • Вызов: can::CheckParseParams
protected function CheckParseParams ($arParseParams)
{
	if ( ! is_array($arParseParams) )
		throw new Exception();

	$arMandatoryFields = array (
		'type'      => array('boolean', 'integer', 'strictly_castable_to_integer', 'string'), 
		'mandatory' => array(true, false)
	);

	foreach ($arParseParams as $key => $element)
	{
		if ( ! is_array($element) )
			throw new Exception();

		// check mandatory fields
		foreach ($arMandatoryFields as $mandatoryField => $mandatoryFieldAllowedValues)
		{
			if ( ! array_key_exists($mandatoryField, $element) )
				throw new Exception();

			// check allowed values
			if (is_array($mandatoryFieldAllowedValues))
				if ( ! in_array($element[$mandatoryField], $mandatoryFieldAllowedValues, true) )
					throw new Exception();
		}

		// if exists $element['default_value'] => $element['mandatory'] must be FALSE
		// because if mandatory is TRUE => value must be set and no default value available
		if (array_key_exists('default_value', $element) && ($element['mandatory'] !== false))
			throw new Exception('"default_value" incompatibily with enabled "mandatory" flag');
	}
}