OSDN Git Service

Revert "FIX:プラグインに渡す引数が参照で無いためプラグインオブジェクトのイベントメソッドが呼ばれない問題を修正。"
[nucleus-jp/nucleus-next.git] / nucleus / libs / BaseActions.php
index 7261ff3..5c8bf16 100644 (file)
@@ -17,7 +17,7 @@
  *
  * @license http://nucleuscms.org/license.txt GNU General Public License
  * @copyright Copyright (C) 2002-2009 The Nucleus Group
- * @version $Id: BaseActions.php 1757 2012-04-15 09:02:32Z sakamocchi $
+ * @version $Id: BaseActions.php 1882 2012-06-17 07:52:43Z sakamocchi $
  */
 
 class BaseActions
@@ -54,6 +54,7 @@ class BaseActions
        
        /* NOTE: defined actions for this base class */
        static private $defined_actions = array(
+               'benchmark',
                'charset',
                'else',
                'elseif',
@@ -138,14 +139,14 @@ class BaseActions
        
        /**
         * BaseActions::parse_locale()
-        * Parse locale to language-script-region according to RFC 4646
+        * Parse locale to language-region according to RFC 4646
         * 
         * @param       void
         * @return      void
         */
        public function parse_locale()
        {
-               echo preg_replace('#_#', '-', i18n::get_current_locale());
+               echo preg_replace('#(.+)_(.+)_(.+)#', '$1-$3', i18n::get_current_locale());
                return;
        }
        
@@ -183,10 +184,10 @@ class BaseActions
         * BaseActions::parse_parsedinclude()
         * parsed include
         * 
-        * @param       string  $filename       filename to be included
+        * @param       string  $name   filename to be included
         * @return      void
         */
-       public function parse_parsedinclude($filename)
+       public function parse_parsedinclude($name)
        {
                // check current level
                if ( $this->level > 3 )
@@ -195,14 +196,15 @@ class BaseActions
                        return;
                }
                
-               $file = $this->getIncludeFileName($filename);
-               
-               if ( !file_exists($file) )
+               $file = $this->getIncludeFileName($name);
+               if ( !file_exists($file) && $this->parser->skin != NULL)
                {
-                       return;
+                       $contents = $this->parser->skin->getContentFromDB($name);
+               }
+               else
+               {
+                       $contents = file_get_contents($file);
                }
-               
-               $contents = file_get_contents($file);
                
                if ( empty($contents) )
                {
@@ -290,11 +292,11 @@ class BaseActions
        {
                if ( !defined($constant) )
                {
-                       echo Entity::hsc($constant);
+                       echo $constant;
                }
                else
                {
-                       echo Entity::hsc(constant($constant));
+                       echo constant($constant);
                }
                return;
        }
@@ -408,6 +410,20 @@ class BaseActions
        }
        
        /**
+        * BaseActions::parse_benchmark()
+        * 
+        * @param       void
+        * @return      void
+        */
+       public function parse_benchmark()
+       {
+               global $StartTime;
+               $loadtime = microtime(TRUE) - $StartTime;
+               printf("%.3F sec/%d queries", $loadtime, DB::getExecCount());
+               return;
+       }
+       
+       /**
         * BaseActions::parse_if()
         * Parses <%if%> statements
         *