Ejemplo n.º 1
0
 /**
  * Загрузка данных из массива
  * 
  * @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);
 }
Ejemplo n.º 2
0
 /**
  * 
  * @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;
 }