*
* @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 1848 2012-05-16 12:17:00Z sakamocchi $
*/
class BaseActions
/* NOTE: defined actions for this base class */
static private $defined_actions = array(
+ 'benchmark',
+ 'charset',
'else',
'elseif',
'elseifnot',
'if',
'ifnot',
'include',
+ 'locale',
'parsedinclude',
'phpinclude',
'set',
- 'skinfile'
+ 'skinfile',
+ 'text'
);
/**
}
/**
- * 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()
+ * Parse locale to language-script-region according to RFC 4646
+ *
+ * @param void
+ * @return void
+ */
+ public function parse_locale()
+ {
+ echo preg_replace('#_#', '-', i18n::get_current_locale());
+ return;
+ }
+
+ /**
* BaseActions::parse_include()
* include file (no parsing of php)
*
* 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 )
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) )
{
}
/**
+ * BaseActions::parse_text()
+ * Parse text
+ *
+ * @param string $constant named constant
+ * @return void
+ */
+ public function parse_text($constant)
+ {
+ if ( !defined($constant) )
+ {
+ echo $constant;
+ }
+ else
+ {
+ echo constant($constant);
+ }
+ return;
+ }
+
+ /**
* BaseActions::addIfCondition()
* Helper function: add if condition
*
}
/**
+ * 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
*