/** * change category order * @param $cat_id category id * @param $dir direction (up|down) * @param return xml (<ret>0</ret>|<ret>1</ret>) */ function moveCat($cat_id, $dir) { if (!$this->_admin) { return '<ret>0</ret>'; } $db = new DbAdmin(); $cat_order = $db->getCatOrder($cat_id); $a = $db->getCatsInOrder($cat_order, $dir, 2); $new_order = 0; if (2 == count($a)) { $new_order = $a[0]['cat_order'] > $a[1]['cat_order'] ? $a[1]['cat_order'] + ($a[0]['cat_order'] - $a[1]['cat_order']) / 2 : $a[0]['cat_order'] + ($a[1]['cat_order'] - $a[0]['cat_order']) / 2; } else { if (1 == count($a)) { $new_order = $cat_order > $a[0]['cat_order'] ? $a[0]['cat_order'] / 2 : $a[0]['cat_order'] + CAT_ORDER_STEP; } } if ($new_order) { $db->setNewOrder($cat_id, $new_order); return '<ret>1</ret>'; } return '<ret>0</ret>'; }