Hello everyone.
I'm using this behavior: http://bakery.cakephp.org/articles/view/orderedbehavior-2-1 to ordenate pages in my site. But the thing is, when I delete a page, the order_display of all other pages does not change automatically. For example, if I have 5 pages, and delete the page with order_display number 3, I'll have the following order_display: 1, 2, 4, 5 and not 1,2,3,4, which would be correct. I believe it must be a bug in the afterdelete filter in the behavior, but I can't understand wit, since I'm new to cakephp. Could you people check it out please? Here's the code: public function beforeDelete(&$Model) { $Model->read(); $highest = $this->_highest($Model); if (!empty($Model->data) && ($Model->data[$Model->alias][$Model->primaryKey] == $highest[$Model->alias][$Model->primaryKey])) { $Model->data = null; } } public function afterDelete(&$Model) { if ($Model->data) { // What was the weight of the deleted model? $old_weight = $Model->data[$Model->alias][$this->settings['field']]; // update the weight of all models of higher weight by $action = array($this->settings['field'] => $this->settings['field'] . ' - 1'); $conditions = array( $Model->alias . '.' . $this->settings['field'] . ' >' => $old_weight); if ($this->settings['foreign_key']) { $conditions[$Model->alias . '.' . $this->settings['foreign_key']] = $Model->data[$Model->alias][$this->settings['foreign_key']]; } // decreasing them by 1 return $Model->updateAll($action, $conditions); } return true; } I'm using a simple $this->Page->del($id) in the controller to delete the pages. Thanks a lot!! -- View this message in context: http://www.nabble.com/orderedBehavior-2.1.2---Bug-in-afterdelete-function--tp23907768p23907768.html Sent from the CakePHP mailing list archive at Nabble.com. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
