/** * Validate the given data * * checks for assignments * validates * returns changed data only * * @param array $data array('schema' => ( 'fieldlabel' => 'value', ...)) * @param string $pageid * @param string[] $errors validation errors * @return AccessDataValidator[]|bool savable data or false on validation error */ public static function validateDataForPage($data, $pageid, &$errors) { $tosave = array(); $valid = true; $errors = array(); $assignments = new Assignments(); $tables = $assignments->getPageAssignments($pageid); foreach ($tables as $table) { $access = AccessTable::byTableName($table, $pageid); $validation = $access->getValidator($data[$table]); if (!$validation->validate()) { $valid = false; $errors = array_merge($errors, $validation->getErrors()); } else { if ($validation->hasChanges()) { $tosave[] = $validation; } } } if ($valid) { return $tosave; } return false; }