/** * 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; }