Exemplo n.º 1
0
 /**
  * Deletes a category
  *
  * @param integer $id Cateogry ID
  */
 static function delete($id)
 {
     $name = $GLOBALS['dbh']->getOne('SELECT name FROM categories WHERE id = ?', array($id));
     // Get parent ID if any
     $parentID = $GLOBALS['dbh']->getOne('SELECT parent FROM categories WHERE id = ?', array($id));
     // Delete it
     $deleted_cat_left = $GLOBALS['dbh']->getOne('SELECT cat_left FROM categories WHERE id = ?', array($id));
     $deleted_cat_right = $GLOBALS['dbh']->getOne('SELECT cat_right FROM categories WHERE id = ?', array($id));
     $GLOBALS['dbh']->query('DELETE FROM categories WHERE id = ' . $id);
     // Renumber
     $GLOBALS['dbh']->query('UPDATE categories SET cat_left = cat_left - 1, cat_right = cat_right - 1 WHERE cat_left > ? AND cat_right < ?', array($deleted_cat_left, $deleted_cat_right));
     $GLOBALS['dbh']->query('UPDATE categories SET cat_left = cat_left - 2, cat_right = cat_right - 2 WHERE cat_right > ?', array($deleted_cat_right));
     // Update any child categories
     $GLOBALS['dbh']->query('UPDATE categories SET parent = ? WHERE parent = ?', array($parentID ? $parentID : 'NULL', $id));
     include_once 'pear-rest.php';
     $pear_rest = new pearweb_Channel_REST_Generator(PEAR_REST_PATH, $GLOBALS['dbh']);
     $pear_rest->deleteCategoryREST($name);
     $pear_rest->saveAllCategoriesREST();
     return true;
 }