diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/controllers/CMSSiteTreeFilter.php index 3b311a2a..25067baa 100644 --- a/code/controllers/CMSSiteTreeFilter.php +++ b/code/controllers/CMSSiteTreeFilter.php @@ -71,13 +71,15 @@ abstract class CMSSiteTreeFilter extends Object { $parents[$pageArr['ParentID']] = true; $this->_cache_ids[$pageArr['ID']] = true; } - - if(!empty($parents)) { + + while(!empty($parents)) { $q = new SQLQuery(); $q->setSelect(array('"ID"','"ParentID"')) ->setFrom('"SiteTree"') ->setWhere('"ID" in ('.implode(',',array_keys($parents)).')'); + $parents = array(); + foreach($q->execute() as $row) { if ($row['ParentID']) $parents[$row['ParentID']] = true; $this->_cache_ids[$row['ID']] = true;