public function save() { $flash = Flash::Instance(); $errors = array(); if (isset($this->_data['SelectorObject']['parent_id']) && $this->_data['SelectorObject']['parent_id'] == '-1') { $this->_data['SelectorObject']['parent_id'] = ''; } $do = new DataObject($this->itemTableName); $do1 = DataObject::Factory($this->_data['SelectorObject'], $errors, $do); $db = DB::Instance(); $db->StartTrans(); if (count($errors) == 0 && $do1 && $do1->save()) { if ($do1 && !empty($this->_data['SelectorObject']['copy_id'])) { $data = array('tablename' => $this->linkTableName, 'from_item_id' => $this->_data['SelectorObject']['copy_id'], 'to_item_id' => $do1->id); $result = SelectorCollection::copyItems($data, $errors); if (!$result) { $errors[] = 'Failed to copy associations'; } } $db->CompleteTrans(); $flash->addMessage("{$do1->description} {$do1->name} saved successfully"); sendTo($this->name, 'view', $this->_modules, array('id' => $do1->id)); } else { $db->FailTrans(); $db->CompleteTrans(); if (count($errors) > 0) { $flash->addErrors($errors); } $flash->addError("Error saving {$do1->description} {$do1->name} " . $db->ErrorMsg()); $this->_data['id'] = $this->_data['SelectorObject']['id']; $this->_data['parent_id'] = $this->_data['SelectorObject']['parent_id']; $this->refresh(); } }