/** * @param Category $category */ public function add(Category $category) { $id_parent = $category->get_id_parent(); $max_order = $this->db_querier->get_column_value($this->table_name, 'MAX(c_order)', 'WHERE id_parent=:id_parent', array('id_parent' => $id_parent)); $max_order = NumberHelper::numeric($max_order); if ($this->get_categories_cache()->category_exists($id_parent)) { $order = $category->get_order(); if ($order <= 0 || $order > $max_order) { $category->set_order($max_order + 1); $result = $this->db_querier->insert($this->table_name, $category->get_properties()); $this->regenerate_cache(); return $result->get_last_inserted_id(); } else { $result = PersistenceContext::get_querier()->select_rows($this->table_name, array('id', 'c_order'), 'WHERE id_parent=:id_parent AND c_order >= :order', array('id_parent' => $id_parent, 'order' => $category->get_order())); while ($row = $result->fetch()) { $this->db_querier->update($this->table_name, array('c_order' => $row['c_order'] + 1, 'WHERE id=:id', array('id' => $row['id']))); } $result = $this->db_querier->insert($this->table_name, $category->get_properties()); $this->regenerate_cache(); return $result->get_last_inserted_id(); } } else { throw new CategoryNotFoundException($id_parent); } }
exit; } $parent = isset($_GET['parent']) ? (int) $_GET['parent'] : 0; if (isset($_GET['d'])) { $d = (int) $_GET['d']; if ($d > 0) { Category::delete($d); } } if (isset($_GET['o'])) { $o = (int) $_GET['o']; $r = (int) $_GET['r']; if ($r != 0) { $r = 1; } Category::set_order($o, $parent, $r); } $tct = Category::count(array('parent' => $parent)); //total count $rpp = 10; //row per page $pager_options = array('mode' => 'Sliding', 'perPage' => $rpp, 'delta' => 2, 'totalItems' => $tct, 'urlVar' => "pageID{$parent}", 'excludeVars' => array('o', 'r', 'd', 't', 'e')); $pager = @Pager::factory($pager_options); list($from, $to) = $pager->getOffsetByPageId(); $categories = Category::get_all(array('r.parent' => $parent), '', $from - 1 . ", {$rpp}"); include "page-header.php"; ?> <div id="wrapper"> <?php