Esempio n. 1
0
 protected function update_item($iname, $name, $value, $items, $data, $form, $object)
 {
     $info = $data['assoc'];
     if (isset($items[$iname])) {
         $action = 'update';
         $item = $items[$iname];
     } else {
         if (is_null($value)) {
             return;
         }
         $action = 'insert';
         $item = $this->get_assoc_mapper($name, $data)->make_entity();
         $item[$info['key_column']] = $object->id();
         $item['__data'] = $value;
         $item[$item[$info['value_column']]] = $value;
         $this->add_item_to_form($form, $item, $iname, $idata = $this->get_item_data($name, $data), CMS_Fields::type($idata));
     }
     $keys = isset($info['id_columns']) ? array() : array($info['key_column'] => $item[$info['key_column']], $info['value_column'] => $item[$info['value_column']]);
     $item_data = $this->get_item_data($name, $data);
     $type = CMS_Fields::Type($item_data);
     $type->assign_to_object($form, $item, $iname, $item_data);
     $item[$info['value_column']] = $item[$iname];
     if ($action == 'update') {
         $item->{$action}(array(), $keys);
     } else {
         $item->{$action}();
     }
 }