From fb16abc1c6de1e74e90e7b46f98810d412924769 Mon Sep 17 00:00:00 2001 From: Matt Clegg Date: Thu, 20 Jan 2011 09:08:10 +0000 Subject: [PATCH] 5759: BlogTree::current() returning null when blogTree exists modified: code/BlogTree.php --- code/BlogTree.php | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/code/BlogTree.php b/code/BlogTree.php index 01ad118..cdbd6ef 100644 --- a/code/BlogTree.php +++ b/code/BlogTree.php @@ -44,7 +44,10 @@ class BlogTree extends Page { if (!$page) { $controller = Controller::curr(); - if($controller) $page = $controller->data(); + if($controller) { + if (!isset($controller->data)) return false; + $page = $controller->data(); + } } // If we _are_ a BlogTree, use us @@ -61,13 +64,14 @@ class BlogTree extends Page { if($top) return $top; // Try to find any BlogTree that is not inside another BlogTree - foreach(DataObject::get('BlogTree') as $tree) { + if($blogTrees=DataObject::get('BlogTree')) foreach($blogTrees as $tree) { if(!($tree->getParent() instanceof BlogTree)) return $tree; } // This shouldn't be possible, but assuming the above fails, just return anything you can get - return DataObject::get_one('BlogTree'); + return $blogTrees; } + /* ----------- ACCESSOR OVERRIDES -------------- */ @@ -122,16 +126,14 @@ class BlogTree extends Page { /* ----------- New accessors -------------- */ public function loadDescendantBlogHolderIDListInto(&$idList) { - if ($children = $this->AllChildren()) { - foreach($children as $child) { - if(in_array($child->ID, $idList)) continue; - - if($child instanceof BlogHolder) { - $idList[] = $child->ID; - } elseif($child instanceof BlogTree) { - $child->loadDescendantBlogHolderIDListInto($idList); - } - } + if ($children = $this->AllChildren()) foreach($children as $child) { + if(in_array($child->ID, $idList)) continue; + + if($child instanceof BlogHolder) { + $idList[] = $child->ID; + } elseif($child instanceof BlogTree) { + $child->loadDescendantBlogHolderIDListInto($idList); + } } } @@ -317,8 +319,7 @@ class BlogTree_Controller extends Page_Controller { return $date; } else { - - if(is_numeric($year)) return $year; + if(is_numeric($year)) return $year; } }