Template ' . htmlspecialchars($template) . '
' . nl2br(htmlspecialchars(print_r($params, true))) . ''; } // Get all translated strings for this template - $dictionary = Dictionary::getArrayTemplate($template); + if($module === false){ + $module = strtolower(empty($_REQUEST['do']) ? 'main' : $_REQUEST['do']); + } + $dictionary = Dictionary::getArrayTemplate($template, $module); + // Now find all language tags in this array preg_match_all('/{{(lang_.+?)}}/', $html, $out); foreach ($out[1] as $tag) { @@ -183,7 +198,7 @@ class Render // Always add token to parameter list if (is_array($params) || $params === false || is_null($params)) $params['token'] = Session::get('token'); - // Likewise, add currently selected language (its two letter code) to params + // Likewise, add currently selected language ( its two letter code) to params $params['current_lang'] = LANG; // Add desired password field type $params['password_type'] = Property::getPasswordFieldType(); @@ -224,15 +239,66 @@ class Render /** * Private helper: Load the given template and return it */ - private static function getTemplate($template) + private static function getTemplate($template, $module = false) { if (isset(self::$templateCache[$template])) { return self::$templateCache[$template]; } + // Select current module + if(!$module){ + $module = strtolower(empty($_REQUEST['do']) ? 'Main' : $_REQUEST['do']); + } // Load from disk - $data = @file_get_contents('templates/' . $template . '.html'); + $data = @file_get_contents('modules/' . $module . '/templates/' . $template . '.html'); + if ($data === false) + $data = 'Non-existent template ' . $template . ' requested!'; self::$templateCache[$template] = & $data; return $data; } + /** + * Create the dashboard menu + */ + private static function createDashboard($page) + { + // Check all required modules + $requiredModules = array('adduser','main','session','translation','usermanagement'); + $notFound = ''; + foreach ($requiredModules as $module) { + if(!is_dir('modules/' . $module . '/')){ + $notFound .= '\'' . $module . '\' '; + } + } + if(strlen($notFound) > 0){ + Util::traceError('At least one required module was not found: ' . $notFound); + }else{ + $modules = array_diff(scandir('modules/'), array('..', '.')); + $categories = array(); + foreach ($modules as $module) { + $json = json_decode(file_get_contents("modules/" . $module . "/config.json"),true); + $categories[$json['category']][] = $module; + } + unset($categories['hidden']); + self::$dashboard = '