/** * @ignore */ public static function validate(array $uArray = null) { if ($uArray !== null) { foreach (self::$rules as $tRule) { $tValues = Arrays::getPath($uArray, $tRule->field, $tRule->defaultValue); if ($tValues === null) { // if it's null and also default value is not set self::addSummary($tRule->field, $tRule->errorMessage); continue; } if (!$tRule->isArray) { $tValues = array($tValues); } foreach ($tValues as $tValue) { $tResult = null; foreach ($tRule->conditions as $tCondition) { $tArgs = $tCondition[1]; array_unshift($tArgs, $tValue); $tSingleResult = call_user_func_array('Scabbia\\Extensions\\Validation\\Conditions::' . $tCondition[0], $tArgs); if ($tResult === null || $tCondition[2] === null) { $tResult = $tSingleResult; } elseif ($tCondition[2] === 'and') { $tResult = $tResult && $tSingleResult; } elseif ($tCondition[2] === 'or') { $tResult = $tResult || $tSingleResult; } } if ($tResult === false) { break; } } if ($tResult === false) { self::addSummary($tRule->field, $tRule->errorMessage); } } } return count(self::$summary) === 0; }
/** * @ignore */ public function getButDeleted() { return Arrays::getRowsBut($this->records, 'changed', 'delete'); }