/** * Загрузка данных из массива * * @param array $array Массив значений полей документа * @param array $expected * @return \DataSource_Hybrid_Document */ public function read_values(array $array = NULL, array $expected = NULL) { // Default to expecting everything except the primary key if ($expected === NULL) { $expected = $this->section()->record()->fields(); } else { $fields = $this->section()->record()->fields(); foreach ($fields as $name => $field) { if (!in_array($field->id, $expected)) { unset($fields[$name]); } } $expected = $fields; } foreach ($expected as $field) { if ($field->family == DataSource_Hybrid_Field::FAMILY_FILE) { continue; } $field->onReadDocumentValue($array, $this); unset($array[$field->name]); } return parent::read_values($array); }
/** * * @param Datasource_Document $doc * return Datasource_Document */ protected function _load_session_data($doc) { $post_data = Session::instance()->get_once('post_data'); if (!empty($post_data)) { unset($post_data['id']); $doc->read_values($post_data); } return $doc; }