aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/nestedset/base.php13
-rw-r--r--phpBB/includes/nestedset/interface.php12
-rw-r--r--tests/nestedset/set_forum_add_remove_test.php4
3 files changed, 15 insertions, 14 deletions
diff --git a/phpBB/includes/nestedset/base.php b/phpBB/includes/nestedset/base.php
index a3c878a47e..c1feb48534 100644
--- a/phpBB/includes/nestedset/base.php
+++ b/phpBB/includes/nestedset/base.php
@@ -113,21 +113,22 @@ abstract class phpbb_nestedset_base implements phpbb_nestedset_interface
/**
* @inheritdoc
*/
- public function remove(array $item)
+ public function remove($item_id)
{
- $items = array_keys($this->get_branch_data($item[$this->column_item_id], 'children'));
+ $items = $this->get_branch_data($item_id, 'children');
+ $item_ids = array_keys($items);
- $this->remove_subset($items, $item);
+ $this->remove_subset($item_ids, $items[$item_id]);
- return $items;
+ return $item_ids;
}
/**
* @inheritdoc
*/
- public function delete(array $item)
+ public function delete($item_id)
{
- $removed_items = $this->remove($item);
+ $removed_items = $this->remove($item_id);
$sql = 'DELETE FROM ' . $this->table_name . '
WHERE ' . $this->db->sql_in_set($this->column_item_id, $removed_items) . '
diff --git a/phpBB/includes/nestedset/interface.php b/phpBB/includes/nestedset/interface.php
index c632c09dbf..1a6b09f975 100644
--- a/phpBB/includes/nestedset/interface.php
+++ b/phpBB/includes/nestedset/interface.php
@@ -38,20 +38,20 @@ interface phpbb_nestedset_interface
*
* Also removes all subitems from the nested set
*
- * @param array $item The item to be removed
- * @return array Items that have been removed
+ * @param int $item_id The item to be deleted
+ * @return array Item ids that have been removed
*/
- public function remove(array $item);
+ public function remove($item);
/**
* Delete an item from the nested set (also deletes the rows form the table)
*
* Also deletes all subitems from the nested set
*
- * @param array $item The item to be deleted
- * @return array Items that have been deleted
+ * @param int $item_id The item to be deleted
+ * @return array Item ids that have been deleted
*/
- public function delete(array $item);
+ public function delete($item);
/**
* Move an item by a given delta
diff --git a/tests/nestedset/set_forum_add_remove_test.php b/tests/nestedset/set_forum_add_remove_test.php
index 53fc23594a..97b6348d67 100644
--- a/tests/nestedset/set_forum_add_remove_test.php
+++ b/tests/nestedset/set_forum_add_remove_test.php
@@ -78,7 +78,7 @@ class phpbb_tests_nestedset_set_forum_add_remove_test extends phpbb_tests_nested
*/
public function test_remove_add($forum_id, $expected_removed, $expected_remove_table, $expected_added, $expected_add_table)
{
- $removed_items = $this->set->remove($this->forum_data[$forum_id]);
+ $removed_items = $this->set->remove($forum_id);
$this->assertEquals($expected_removed, $removed_items);
@@ -139,7 +139,7 @@ class phpbb_tests_nestedset_set_forum_add_remove_test extends phpbb_tests_nested
*/
public function test_delete($forum_id, $expected_deleted, $expected)
{
- $this->assertEquals($expected_deleted, $this->set->delete($this->forum_data[$forum_id]));
+ $this->assertEquals($expected_deleted, $this->set->delete($forum_id));
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
FROM phpbb_forums