OSDN Git Service

Merge branch 'skinnable-master'
[nucleus-jp/nucleus-next.git] / nucleus / libs / BaseActions.php
index e8a4a3e..6ae996b 100644 (file)
  *
  * @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 $
+<<<<<<< HEAD
+ * @version $Id: BaseActions.php 1848 2012-05-16 12:17:00Z sakamocchi $
+=======
+ * @version $Id: BaseActions.php 1882 2012-06-17 07:52:43Z sakamocchi $
+>>>>>>> skinnable-master
  */
 
 class BaseActions
@@ -54,6 +58,8 @@ class BaseActions
        
        /* NOTE: defined actions for this base class */
        static private $defined_actions = array(
+               'benchmark',
+               'charset',
                'else',
                'elseif',
                'elseifnot',
@@ -61,6 +67,7 @@ class BaseActions
                'if',
                'ifnot',
                'include',
+               'locale',
                'parsedinclude',
                'phpinclude',
                'set',
@@ -88,18 +95,74 @@ class BaseActions
        }
        
        /**
-        * BaseActions::getDefinedActions()
+        * BaseActions::getAvailableActions()
         * 
-        * @static
         * @param       void
         * @return      void
         */
-       static public function getDefinedActions()
+       public function getAvailableActions()
        {
                return self::$defined_actions;
        }
        
        /**
+        * BaseActions::setParser()
+        * Set the parser
+        * 
+        * @param       object  $parser an instance of Parser class
+        * @return      void
+        */
+       public function setParser(&$parser)
+       {
+               $this->parser =& $parser;
+               return;
+       }
+       
+       /**
+        * BaseActions::parse_charset()
+        * Parse charset to appropriate character set name registered to IANA
+        * 
+        * @param       void
+        * @return      void
+        */
+       public function parse_charset()
+       {
+               global $member;
+               
+               if ( i18n::get_forced_charset() !== '' )
+               {
+                       echo i18n::get_forced_charset();
+               }
+               else
+               {
+                       echo i18n::get_current_charset();
+               }
+               
+               return;
+       }
+       
+       /**
+        * BaseActions::parse_locale()
+<<<<<<< HEAD
+        * Parse locale to language-script-region according to RFC 4646
+=======
+        * Parse locale to language-region according to RFC 4646
+>>>>>>> skinnable-master
+        * 
+        * @param       void
+        * @return      void
+        */
+       public function parse_locale()
+       {
+<<<<<<< HEAD
+               echo preg_replace('#_#', '-', i18n::get_current_locale());
+=======
+               echo preg_replace('#(.+)_(.+)_(.+)#', '$1-$3', i18n::get_current_locale());
+>>>>>>> skinnable-master
+               return;
+       }
+       
+       /**
         * BaseActions::parse_include()
         * include file (no parsing of php)
         * 
@@ -133,10 +196,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 )
@@ -145,14 +208,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) )
                {
@@ -240,11 +304,11 @@ class BaseActions
        {
                if ( !defined($constant) )
                {
-                       echo Entity::hsc($constant);
+                       echo $constant;
                }
                else
                {
-                       echo Entity::hsc(constant($constant));
+                       echo constant($constant);
                }
                return;
        }
@@ -358,6 +422,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
         * 
@@ -368,7 +446,11 @@ class BaseActions
        {
                $this->addIfExecute();
                $args = func_get_args();
+<<<<<<< HEAD
                $condition = call_user_func_array(array(&$this,'checkCondition'), $args);
+=======
+               $condition = call_user_func_array(array($this,'checkCondition'), $args);
+>>>>>>> skinnable-master
                $this->addIfCondition($condition);
                return;
        }
@@ -439,7 +521,11 @@ class BaseActions
                {
                        ob_end_clean();
                        $args = func_get_args();
+<<<<<<< HEAD
                        $condition = call_user_func_array(array(&$this,'checkCondition'), $args);
+=======
+                       $condition = call_user_func_array(array($this,'checkCondition'), $args);
+>>>>>>> skinnable-master
                        $this->addIfCondition($condition);
                }
                return;
@@ -457,7 +543,11 @@ class BaseActions
                $this->addIfExecute();
                
                $args = func_get_args();
+<<<<<<< HEAD
                $condition = call_user_func_array(array(&$this,'checkCondition'), $args);
+=======
+               $condition = call_user_func_array(array($this,'checkCondition'), $args);
+>>>>>>> skinnable-master
                $this->addIfCondition(!$condition);
                return;
        }
@@ -493,7 +583,11 @@ class BaseActions
                {
                        ob_end_clean();
                        $args = func_get_args();
+<<<<<<< HEAD
                        $condition = call_user_func_array(array(&$this,'checkCondition'), $args);
+=======
+                       $condition = call_user_func_array(array($this,'checkCondition'), $args);
+>>>>>>> skinnable-master
                        $this->addIfCondition(!$condition);
                }
                return;