OSDN Git Service

MERGE: リビジョン1775のマージ。fileparseスキンタイプを使用可能に
[nucleus-jp/nucleus-next.git] / nucleus / libs / globalfunctions.php
index 034b186..acff99b 100644 (file)
@@ -23,9 +23,13 @@ $nucleus['version'] = 'v4.00 SVN';
 $nucleus['codename'] = '';\r
 \r
 /* check and die if someone is trying to override internal globals (when register_globals turn on) */\r
-checkVars(array('nucleus', 'CONF', 'DIR_LIBS', 'MYSQL_HOST', 'MYSQL_USER', 'MYSQL_PASSWORD', 'MYSQL_DATABASE', '$DIR_LOCALES', 'DIR_PLUGINS', 'HTTP_GET_VARS', 'HTTP_POST_VARS', 'HTTP_COOKIE_VARS', 'HTTP_ENV_VARS', 'HTTP_SESSION_VARS', 'HTTP_POST_FILES', 'HTTP_SERVER_VARS', 'GLOBALS', 'argv', 'argc', '_GET', '_POST', '_COOKIE', '_ENV', '_SESSION', '_SERVER', '_FILES'));\r
+checkVars(array('nucleus', 'CONF', 'DIR_LIBS', 'MYSQL_HOST', 'MYSQL_USER', 'MYSQL_PASSWORD', 'MYSQL_DATABASE', 'DIR_LOCALES', 'DIR_PLUGINS', 'HTTP_GET_VARS', 'HTTP_POST_VARS', 'HTTP_COOKIE_VARS', 'HTTP_ENV_VARS', 'HTTP_SESSION_VARS', 'HTTP_POST_FILES', 'HTTP_SERVER_VARS', 'GLOBALS', 'argv', 'argc', '_GET', '_POST', '_COOKIE', '_ENV', '_SESSION', '_SERVER', '_FILES'));\r
 \r
 /* debug mode */\r
+if ( !isset($CONF) )\r
+{\r
+       $CONF = array();\r
+}\r
 if ( array_key_exists('debug', $CONF) && $CONF['debug'] )\r
 {\r
        /* report all errors! */\r
@@ -1403,45 +1407,28 @@ function selectItem($id) {
     $itemid = intval($id);\r
 }\r
 \r
-// force the use of a translation file (warning: can cause warnings)\r
-function selectLanguage($language) {\r
-\r
-       global $DIR_LANG;\r
-\r
-       # replaced ereg_replace() below with preg_replace(). ereg* functions are deprecated in PHP 5.3.0\r
-       # original ereg_replace: preg_replace( '@\\|/@', '', $language) . '.php')\r
-       # important note that '\' must be matched with '\\\\' in preg* expressions\r
-\r
-       include($DIR_LANG . preg_replace('#[\\\\|/]#', '', $language) . '.php');\r
-\r
-}\r
-\r
-function parseFile($filename, $includeMode = 'normal', $includePrefix = '') {\r
-    $handler = new Actions('fileparser');\r
-    $parser = new Parser(SKIN::getAllowedActionsForType('fileparser'), $handler);\r
-    $handler->parser =& $parser;\r
-\r
-    // set IncludeMode properties of parser\r
-    Parser::setProperty('IncludeMode', $includeMode);\r
-    Parser::setProperty('IncludePrefix', $includePrefix);\r
+function parseFile($filename, $includeMode = 'normal', $includePrefix = '')
+{
+       global $skinid;
 \r
-    if (!file_exists($filename) ) {\r
-        doError('A file is missing');\r
+       if ( !$skinid || !existsID($skinid) )
+       {
+               $skin = new Skin($CONF['BaseSkin']);
+       }
+       else
+       {
+               $skin = new Skin($skinid);
     }\r
 \r
-    $fsize = filesize($filename);\r
+       $oldIncludeMode = Parser::getProperty('IncludeMode');
+       $oldIncludePrefix = Parser::getProperty('IncludePrefix');
 \r
-    if ($fsize <= 0) {\r
-        return;\r
-    }\r
+       $skin->parse('fileparse', $filename);
 \r
-    // read file\r
-    $fd = fopen ($filename, 'r');\r
-    $contents = fread ($fd, $fsize);\r
-    fclose ($fd);\r
+       Parser::setProperty('IncludeMode', $oldIncludeMode);
+       Parser::setProperty('IncludePrefix', $oldIncludePrefix);
 \r
-    // parse file contents\r
-    $parser->parse($contents);\r
+       return;
 }\r
 \r
 /**\r
@@ -2117,6 +2104,13 @@ function getLanguageName()
        }\r
        return $language;\r
 }\r
+/* NOTE: this is completely deprecated because generating much warnings */\r
+function selectLanguage($language)\r
+{\r
+       global $DIR_LANG;\r
+       include($DIR_LANG . preg_replace('#[\\\\|/]#', '', $language) . '.php');\r
+       return;\r
+}\r
 \r
 /* NOTE: use i18n::get_available_locales() directly instead of this */\r
 function checkLanguage($lang)\r