Index: branches/5.0.x/core/kernel/processors/main_processor.php =================================================================== diff -u -r12368 -r12533 --- branches/5.0.x/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 12368) +++ branches/5.0.x/core/kernel/processors/main_processor.php (.../main_processor.php) (revision 12533) @@ -1,6 +1,6 @@ Application->IsAdmin() || $force_admin) { - if ($module == 'in-portal') { - $module = 'kernel'; - } + $cache_key = crc32( serialize($params) ); - $path = $force_admin ? '/core/admin_templates' : THEMES_PATH; - $path = preg_replace('/\/(.*?)\/(.*)/', $module.'/\\2', $path); // remove leading slash + substitute module - } - else { - $path = mb_substr(THEMES_PATH, 1); + if (!array_key_exists($cache_key, $cached)) { + $force_admin = array_key_exists('force_admin', $params) && $params['force_admin']; + $module = array_key_exists('module', $params) ? $params['module'] : 'core'; - if (mb_strtolower($module) == 'in-portal') { - $module_folder = 'platform'; + if ($this->Application->IsAdmin() || $force_admin) { + if ($module == 'in-portal') { + $module = 'kernel'; + } + + $path = $force_admin ? '/core/admin_templates' : THEMES_PATH; + $path = preg_replace('/\/(.*?)\/(.*)/', $module.'/\\2', $path); // remove leading slash + substitute module } else { - $module_folder = $this->Application->findModule('Name', $module, 'TemplatePath'); + $path = mb_substr(THEMES_PATH, 1); + + if (mb_strtolower($module) == 'in-portal') { + $module_folder = 'platform'; + } + else { + $module_folder = $this->Application->findModule('Name', $module, 'TemplatePath'); + } + + $path .= rtrim('/' . trim($module_folder, '/'), '/') . '/'; } - $path .= rtrim('/' . trim($module_folder, '/'), '/') . '/'; + $cached[$cache_key] = $this->Application->BaseURL() . $path; } - return $this->Application->BaseURL() . $path; + return $cached[$cache_key]; } /**