Index: trunk/kernel/units/general/brackets.php =================================================================== diff -u -N -r2320 -r3073 --- trunk/kernel/units/general/brackets.php (.../brackets.php) (revision 2320) +++ trunk/kernel/units/general/brackets.php (.../brackets.php) (revision 3073) @@ -126,38 +126,38 @@ $object =& $event->getObject(); $linked_info = $object->getLinkedInfo(); - $stored_ids = $this->Conn->GetCol('SELECT '.$object->IDField.' FROM '.$object->TableName.' WHERE '.$linked_info['ParentTableKey'].' = '.$linked_info['ParentId']); + $stored_ids = $this->Conn->GetCol('SELECT '.$object->IDField.' FROM '.$object->TableName.' WHERE '.$linked_info['ForeignKey'].' = '.$linked_info['ParentId']); uasort($items_info, Array(&$this, 'compareBrackets') ); foreach ($items_info as $item_id => $values) { if (in_array($item_id, $stored_ids)) { //if it's already exist - $object->SetDefaultValues(); - $object->Load($item_id); - $object->SetFieldsFromHash($values); - if (!$object->Validate()) { - unset($stored_ids[array_search($item_id, $stored_ids)]); - $event->redirect = false; - continue; + $object->SetDefaultValues(); + $object->Load($item_id); + $object->SetFieldsFromHash($values); + if (!$object->Validate()) { + unset($stored_ids[array_search($item_id, $stored_ids)]); + $event->redirect = false; + continue; + } + if( $object->Update($item_id) ) + { + $event->status = erSUCCESS; + } + else + { + $event->status = erFAIL; + $event->redirect = false; + break; + } + unset( $stored_ids[ array_search($item_id, $stored_ids) ] ); } - if( $object->Update($item_id) ) - { - $event->status = erSUCCESS; - } - else - { - $event->status = erFAIL; - $event->redirect = false; - break; - } - unset( $stored_ids[ array_search($item_id, $stored_ids) ] ); - } else { $object->SetDefaultValues(); $object->SetFieldsFromHash($values); - $object->SetDBField($linked_info['ParentTableKey'], $linked_info['ParentId']); + $object->SetDBField($linked_info['ForeignKey'], $linked_info['ParentId']); if( $object->Create() ) { @@ -168,7 +168,8 @@ } // delete - foreach ($stored_ids as $stored_id){ + foreach ($stored_ids as $stored_id) + { $this->Conn->Query('DELETE FROM '.$object->TableName.' WHERE '.$object->IDField.' = '.$stored_id); } @@ -226,7 +227,7 @@ $linked_info = $object->getLinkedInfo(); $sql = 'SELECT %s FROM %s WHERE %s = %s'; - $ids = $this->Conn->GetCol( sprintf($sql, $object->IDField, $object->TableName, $linked_info['ParentTableKey'], $linked_info['ParentId']) ); + $ids = $this->Conn->GetCol( sprintf($sql, $object->IDField, $object->TableName, $linked_info['ForeignKey'], $linked_info['ParentId']) ); if( is_array($ids) ) { usort($ids, Array(&$this, 'sortBracketIDs') );