OSDN Git Service

ADD: listplug_table_pluginlist()に関数内キャッシュを追加
authorsakamocchi <o-takashi@sakamocchi.jp>
Sun, 20 May 2012 14:15:00 +0000 (23:15 +0900)
committersakamocchi <o-takashi@sakamocchi.jp>
Sun, 20 May 2012 14:15:00 +0000 (23:15 +0900)
インストールされているすべてのプラグインを、HEAD/BODY/FOOTの3回取得していた。情報としては同じなので、関数内キャッシュを実装してクエリ発行回数を削減した。

nucleus/libs/showlist.php

index 201284c..98f2392 100644 (file)
@@ -392,6 +392,7 @@ function listplug_table_teamlist($vars, $type, $templateName = '')
 \r
 function listplug_table_pluginlist($vars, $type, $templateName = '')\r
 {\r
+       static $plugins = array();\r
        global $manager;\r
        \r
        $templates = array();\r
@@ -536,11 +537,13 @@ function listplug_table_pluginlist($vars, $type, $templateName = '')
                                        $data['dependlist'] = '';\r
                                }\r
                                /* check dependency */\r
-                               $req = array();\r
-                               $res = DB::getResult('SELECT pfile FROM ' . sql_table('plugin'));\r
-                               foreach ( $res as $row )\r
+                               if ( empty($plugins) )\r
                                {\r
-                                       $preq =& $manager->getPlugin($row['pfile']);\r
+                                       $plugins = DB::getResult('SELECT pfile FROM ' . sql_table('plugin'));\r
+                               }\r
+                               foreach ( $plugins as $plugin )\r
+                               {\r
+                                       $preq =& $manager->getPlugin($plugin['pfile']);\r
                                        if ( $preq )\r
                                        {\r
                                                $depList = $preq->getPluginDep();\r
@@ -548,7 +551,7 @@ function listplug_table_pluginlist($vars, $type, $templateName = '')
                                                {\r
                                                        if ( $current->pfile == $depName )\r
                                                        {\r
-                                                               $req[] = $row['pfile'];\r
+                                                               $req[] = $plugin['pfile'];\r
                                                        }\r
                                                }\r
                                        }\r