OSDN Git Service

CHANGE: Manager::getItem()をより効率のよくなるように修正
[nucleus-jp/nucleus-next.git] / nucleus / libs / MANAGER.php
index 737899a..892a71a 100644 (file)
@@ -104,30 +104,26 @@ class Manager
        {\r
                $item =& $this->items[$itemid];\r
                \r
-               // check the draft and future rules if the item was already cached\r
-               if ( $item )\r
+               /* confirm to cached */\r
+               if ( !array_key_exists($itemid, $this->items) )\r
                {\r
-                       if ( (!$allowdraft) && ($item['draft']) )\r
-                       {\r
-                               return 0;\r
-                       }\r
-                       \r
-                       $blog =& $this->getBlog(getBlogIDFromItemID($itemid));\r
-                       \r
-                       if ( (!$allowfuture) && ($item['timestamp'] > $blog->getCorrectTime()) )\r
-                       {\r
-                               return 0;\r
-                       }\r
-               }\r
-               \r
-               if ( !$item )\r
-               {\r
-                       // load class if needed\r
                        $this->loadClass('ITEM');\r
-                       // load item object\r
                        $item = Item::getitem($itemid, $allowdraft, $allowfuture);\r
                        $this->items[$itemid] = $item;\r
                }\r
+               \r
+               $item =& $this->items[$itemid];\r
+               if ( !$allowdraft && ($item['draft']) )\r
+               {\r
+                       return 0;\r
+               }\r
+               \r
+               $blog =& $this->getBlog($item['iblog']);\r
+               if ( !$allowfuture && ($item['timestamp'] > $blog->getCorrectTime()) )\r
+               {\r
+                       return 0;\r
+               }\r
+               \r
                return $item;\r
        }\r
        \r