/**
  * @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