--- mambo/branches/4.6/administrator/components/com_modules/admin.modules.php 2006/01/26 20:11:56 194 +++ mambo/branches/4.6/administrator/components/com_modules/admin.modules.php 2006/02/15 17:56:19 289 @@ -582,37 +582,27 @@ function saveOrder( &$cid, $client ) { global $database; - - $total = count( $cid ); $order = mosGetParam( $_POST, 'order', array(0) ); - $row = new mosModule( $database ); - $conditions = array(); - + $row = new mosMenu( $database ); + $positions = array(); // update ordering values - for( $i=0; $i < $total; $i++ ) { - $row->load( $cid[$i] ); + foreach ($cid as $i=>$ciditem) { + $row->load( $ciditem ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { echo "\n"; exit(); - } // if + } // remember to updateOrder this group - $condition = "position='$row->position' AND client_id='$row->client_id'"; - $found = false; - foreach ( $conditions as $cond ) - if ($cond[1]==$condition) { - $found = true; - break; - } // if - if (!$found) $conditions[] = array($row->id, $condition); - } // if - } // for - + $positions[$row->position][$row->client_id] = $row->id; + } + } // execute updateOrder for each group - foreach ( $conditions as $cond ) { - $row->load( $cond[0] ); - $row->updateOrder( $cond[1] ); + foreach ($positions as $position=>$clients) { + foreach ($clients as $client=>$rowid) { + $row->updateOrder("position = '$position' AND client_id = '$client'"); + } } // foreach $msg = T_('New ordering saved');