コード例 #1
0
 public function prepareSave(Kwf_Model_Row_Interface $row, $postData)
 {
     //TODO remove in later branches?
     if ($this->getSave() === false || $this->getInternalSave() === false) {
         return;
     }
     $new = $this->_getIdsFromPostData($postData);
     //         $avaliableKeys = array(6,20,17);
     //foreach ($this->_getFields() as $field) {
     //             $avaliableKeys[] = $field->getKey();
     //         }
     $relModel = $row->getModel()->getDependentModel($this->getRelModel());
     $ref = $relModel->getReference($this->getRelationToValuesRule());
     $valueKey = $ref['column'];
     $s = $this->getChildRowsSelect();
     if (!$s) {
         $s = array();
     }
     foreach ($row->getChildRows($this->getRelModel(), $s) as $savedRow) {
         $id = $savedRow->{$valueKey};
         if (true || in_array($id, $avaliableKeys)) {
             if (!in_array($id, $new)) {
                 $savedRow->delete();
             } else {
                 unset($new[array_search($id, $new)]);
             }
         }
     }
     foreach ($new as $id) {
         if (true || in_array($id, $avaliableKeys)) {
             $i = $row->createChildRow($this->getRelModel());
             $i->{$valueKey} = $id;
         }
     }
 }