From c03624760ddcac1fe4706722e25ee2a12d85dff1 Mon Sep 17 00:00:00 2001 From: Robert Sesek Date: Fri, 10 Jun 2005 19:22:09 +0000 Subject: [PATCH] r265: Unloading more language tasks from includes/init.php to includes/class_language.php --- includes/class_language.php | 83 +++++++++++++++++++++++++++++++------ includes/init.php | 27 +----------- 2 files changed, 71 insertions(+), 39 deletions(-) diff --git a/includes/class_language.php b/includes/class_language.php index a945256..e56a472 100644 --- a/includes/class_language.php +++ b/includes/class_language.php @@ -20,12 +20,30 @@ class lang var $vars = array(); /** - * Constructor -- Initializes the language system by fetching the - * appropriate language + * Singleton initializer * * @param integer Language ID + * @return object An instance of the class */ - function lang($languageid) + function init($languageid = 0) + { + static $instance; + + if (!$instance) + { + $instance = new lang(); + $instance->load($instance->select()); + } + + return $instance; + } + + /** + * Initializes the language system by fetching the appropriate language + * + * @param integer Language ID + */ + function load($languageid) { global $bugsys; @@ -42,25 +60,38 @@ class lang } /** - * Singleton initializer + * Selects the proper language for the user * - * @param integer Language ID + * @return integer The language ID that will be used */ - function init($languageid = 0) + function select() { - static $instance; + global $bugsys; - if (!$instance) + if ($bugsys->userinfo['userid']) + { + $languageid = $bugsys->userinfo['languageid']; + $language = $bugsys->datastore['language']["$languageid"]; + } + if (!$languageid) { - if (!$languageid) + foreach ($bugsys->datastore['language'] AS $language) { - trigger_error('No language selected', E_USER_ERROR); + if ($language['default']) + { + $languageid = $language['languageid']; + $language = $bugsys->datastore['language']["$languageid"]; + break; + } } - - $instance = new lang($languageid); } - return $instance; + $this->vars['id'] = $language['languageid']; + $this->vars['charset'] = $language['charset']; + $this->vars['direction'] = $language['direction']; + $this->vars['code'] = $language['languagecode']; + + return $languageid; } /** @@ -104,6 +135,9 @@ class lang $args[0] = $phrasetext; if (($phrase = @call_user_func_array('sprintf', $args)) === false) { + global $bugsys; + $bugsys->debug("$args[0] reported an sprintf() error; parsing manually"); + for ($i = 1; $i < $numargs; $i++) { $phrase = str_replace("%{$i}\$s", $args["$i"], $args[0]); @@ -119,6 +153,29 @@ class lang return $phrase; } + + /** + * Fetches a variable from the vars array + * + * @param string Variable name + * @return mixed The value of the variable + */ + function fetch_var($varname) + { + return $this->vars["$varname"]; + } + + /** + * Returns a variable about the language system + * + * @param string The name of the variable + * @return mixed The value fof the variable + */ + function v($varname) + { + $obj =& lang::init(); + return $obj->fetch_var($varname); + } } /*=====================================================================*\ diff --git a/includes/init.php b/includes/init.php index c5e463d..1d443d8 100755 --- a/includes/init.php +++ b/includes/init.php @@ -105,35 +105,10 @@ else ); } -// ################################################################### -// pull our languageid -if ($bugsys->userinfo['userid']) -{ - $languageid = $bugsys->userinfo['languageid']; - $language = $bugsys->datastore['language']["$languageid"]; -} -if (!$languageid) -{ - foreach ($bugsys->datastore['language'] AS $language) - { - if ($language['default']) - { - $languageid = $language['languageid']; - $language = $bugsys->datastore['language']["$languageid"]; - break; - } - } -} - -$bugsys->options['lang_id'] = $language['languageid']; -$bugsys->options['lang_charset'] = $language['charset']; -$bugsys->options['lang_dir'] = $language['direction']; -$bugsys->options['lang_code'] = $language['languagecode']; - // ################################################################### // load language information require_once('./includes/class_language.php'); -$bugsys->lang =& lang::init($languageid); +$bugsys->lang =& lang::init(); // ################################################################### // Initialize usergroup system -- 2.22.5