function test(DataObject $do, array &$errors) { $dependency = true; $db = DB::Instance(); foreach ($this->cc as $c) { $str = $db->qstr($do->getField($c['constraint']->fieldname)->finalvalue) . ' ' . $c['constraint']->operator . ' ' . $c['constraint']->value; eval("\$a={$str};"); if (!$a) { $dependency = false; } } if ($dependency) { foreach ($this->fields as $field) { $value = $do->getField($field)->finalvalue; if (empty($value) && $value !== 0 && $value !== '0') { if (count($this->fields) == 1) { $errors[$this->fields[0]] = sprintf($this->message_stub, $do->getField($field)->tag); } else { $fieldlist = ''; foreach ($this->fields as $fieldname) { $fieldlist .= $do->getField($fieldname)->tag . ','; } $fieldlist = substr($fieldlist, 0, -1); $errors[$this->fields[0]] = sprintf($this->message_stub2, $fieldlist); } return false; } } } return $do; }
function test(DataObject $do, array &$errors) { $db = DB::Instance(); $fk_do = DataObjectFactory::Factory($this->fk_do); $values = array(); $fields = array(); foreach ($this->fields as $field => $fk_field) { if ($do->getField($field)->notnull || !empty($do->getField($field)->finalvalue)) { $values[] = $do->getField($field)->finalvalue; $fields[] = $fk_field; $names[] = $do->getField($field)->tag; } } if (empty($fields) || $fk_do->loadBy($fields, $values) && $fk_do->isLoaded()) { return $do; } $errors[key($this->fields)] = sprintf($this->message_stub, implode(',', $names)); return FALSE; }
/** * Get the list of extra data from the $record as saved into it by * {@see Form::saveInto()} * * Handles detection of falsey values explicitly saved into the * DataObject by formfields * * @param DataObject $record * @param SS_List $list * @return array List of data to write to the relation */ protected function getExtraSavedData($record, $list) { // Skip extra data if not ManyManyList if (!$list instanceof ManyManyList) { return null; } $data = array(); foreach ($list->getExtraFields() as $field => $dbSpec) { $savedField = "ManyMany[{$field}]"; if ($record->hasField($savedField)) { $data[$field] = $record->getField($savedField); } } return $data; }
/** * get value of a single composite field * * @param string $field * @return mixed */ public function getField($field) { // Skip invalid fields $fields = $this->compositeDatabaseFields(); if (!isset($fields[$field])) { return null; } // Check bound object if ($this->record instanceof DataObject) { $key = $this->getName() . $field; return $this->record->getField($key); } // Check local record if (isset($this->record[$field])) { return $this->record[$field]; } return null; }
function test(DataObject $do, array &$errors) { $fail = false; $first_val = ''; foreach ($this->fields as $fieldname) { if (empty($first_val)) { $first_val = $do->{$fieldname}; } else { if ($do->{$fieldname} !== $first_val) { $fail = true; } } } if ($fail) { $fieldlist = ''; foreach ($this->fields as $fieldname) { $fieldlist .= $do->getField($fieldname)->tag . ','; } $fieldlist = substr($fieldlist, 0, -1); $errors[$this->fields[0]] = sprintf($this->message_stub, $fieldlist); return false; } return $do; }
/** * returns field value for given fieldname with stripped slashes * * @param string $field fieldname * * @return string */ public function getField($field) { $parentField = parent::getField($field); if (!is_null($parentField)) { $parentField = stripcslashes($parentField); } return $parentField; }
protected function addAuditFields(&$fields) { // get the fields for the base table/view for the collection // and add the audit fields if they exist in the table/view $do = new DataObject($this->_tablename); foreach ($do->audit_fields as $audit_field) { if ($do->isField($audit_field)) { $fields[$audit_field] = $do->getField($audit_field); } } }