• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/form/schedule/scheduleform.php
  • Класс: BitrixTimemanFormScheduleScheduleForm
  • Вызов: ScheduleForm::configureFilterRules
public function configureFilterRules()
{
	return [
		(new FilterValidatorNumberValidator('id'))
			->configureIntegerOnly(true)
			->configureMin(1)
		,
		(new FilterValidatorStringValidator('name', 'reportPeriod', 'type'))
		,
		(new FilterModifierStringModifier('name', 'reportPeriod', 'type'))
			->configureTrim(true)
			->configureSkipOnError(true)
		,
		(new FilterModifierCallbackModifier('reportPeriodStartWeekDay'))
			->configureCallback(function ($value) {
				return (int)$value;
			})
		,
		(new FilterValidatorRangeValidator('reportPeriodStartWeekDay'))
			->configureRange(ScheduleFormHelper::getReportPeriodWeekDaysValues())
			->configureStrict(true)
		,
		(new FilterValidatorRangeValidator('reportPeriod'))
			->configureRange(ScheduleFormHelper::getReportPeriodsValues())
			->configureStrict(true)
		,
		(new FilterValidatorRangeValidator('controlledActions'))
			->configureRange(ScheduleFormHelper::getControlledActionValues())
		,
		(new FilterValidatorRangeValidator('type'))
			->configureRange(ScheduleFormHelper::getScheduleTypesValues())
			->configureStrict(true)
		,
		(new FilterValidatorEachValidator('assignments', 'assignmentsExcluded'))
		,
		(new FilterValidatorEachValidator('allowedDevices'))
			->configureValidator(
				(new FilterValidatorRangeValidator())
					->configureRange([true, false, 'on', ''])
					->configureStrict(true)
			)
		,
		(new FilterModifierCallbackModifier('allowedDevices'))
			->configureCallback(function ($values) {
				foreach ($values as $index => $item)
				{
					$values[$index] = $item === 'on' || $item === true ? true : false;
				}
				return $values;
			})
			->configureSkipOnError(true)
			->configureSkipOnArray(false)
		,
		(new FilterValidatorEachValidator('userIds', 'departmentIds', 'userIdsExcluded', 'departmentIdsExcluded'))
			->configureValidator(
				(new FilterValidatorNumberValidator())
					->configureMin(1)
					->configureIntegerOnly(true)
					->configureSkipOnEmpty(true)
			)
			->configureSkipOnEmpty(true)
		,
	];
}