/** * initialize T3 */ public static function init($xml) { $app = JFactory::getApplication(); $input = $app->input; $coretheme = isset($xml->t3) && isset($xml->t3->base) ? trim((string) $xml->t3->base) : 'base'; // check coretheme in media/t3/themes folder // if not exists, use default base theme in T3 if (!$coretheme) { $coretheme = 'base'; } foreach (array(T3_EX_BASE_PATH, T3_ADMIN_PATH) as $basedir) { if (is_dir($basedir . '/' . $coretheme)) { if (is_file($basedir . '/' . $coretheme . '/define.php')) { include_once $basedir . '/' . $coretheme . '/define.php'; } break; } } if (!defined('T3')) { // get ready for the t3 core base theme include_once T3_CORE_BASE_PATH . '/define.php'; } if (!defined('T3')) { T3::error(JText::sprintf('T3_MSG_FAILED_INIT_BASE', $coretheme)); exit; } define('T3_TEMPLATE', (string) $xml->tplname); define('T3_TEMPLATE_URL', JURI::root(true) . '/templates/' . T3_TEMPLATE); define('T3_TEMPLATE_PATH', str_replace('\\', '/', JPATH_ROOT) . '/templates/' . T3_TEMPLATE); define('T3_TEMPLATE_REL', 'templates/' . T3_TEMPLATE); define('T3_LOCAL_URL', T3_TEMPLATE_URL . '/' . T3_LOCAL_DIR); define('T3_LOCAL_PATH', T3_TEMPLATE_PATH . '/' . T3_LOCAL_DIR); define('T3_LOCAL_REL', T3_TEMPLATE_REL . '/' . T3_LOCAL_DIR); if ($input->getCmd('themer', 0)) { define('T3_THEMER', 1); } if (!$app->isAdmin()) { $params = $app->getTemplate(true)->params; define('T3_DEV_FOLDER', $params->get('t3-assets', 't3-assets') . '/dev'); define('T3_DEV_MODE', $params->get('devmode', 0)); } else { $params = self::getTemplate()->params; define('T3_DEV_FOLDER', $params->get('t3-assets', 't3-assets') . '/dev'); } if (!is_dir(JPATH_ROOT . '/' . T3_DEV_FOLDER)) { jimport('joomla.filesystem.folder'); JFolder::create(JPATH_ROOT . '/' . T3_DEV_FOLDER); } if ($input->getCmd('t3lock', '')) { JFactory::getSession()->set('T3.t3lock', $input->getCmd('t3lock', '')); $input->set('t3lock', null); } // load core library T3::import('core/path'); T3::import('core/t3j'); if (!$app->isAdmin()) { if (version_compare(JVERSION, '3.0', 'ge')) { // override core joomla class // JViewLegacy T3::register('JViewLegacy', T3_ADMIN_PATH . '/includes/joomla30/viewlegacy.php'); T3::register('JViewHtml', T3_ADMIN_PATH . '/includes/joomla30/viewhtml.php'); // JModuleHelper T3::register('JModuleHelper', T3_ADMIN_PATH . '/includes/joomla30/modulehelper.php'); // JPagination T3::register('JPagination', T3_ADMIN_PATH . '/includes/joomla30/pagination.php'); // Register T3 Layout File to put a t3 base layer for layout files T3::register('JLayoutFile', T3_ADMIN_PATH . '/includes/joomla25/layout/file.php'); } else { // override core joomla class // JView T3::register('JView', T3_ADMIN_PATH . '/includes/joomla25/view.php', 'joomla.application.component.view'); // JModuleHelper T3::register('JModuleHelper', T3_ADMIN_PATH . '/includes/joomla25/modulehelper.php', 'joomla.application.module.helper'); // JPagination T3::register('JPagination', T3_ADMIN_PATH . '/includes/joomla25/pagination.php', 'joomla.html.pagination'); //register layout T3::register('JLayout', T3_ADMIN_PATH . '/includes/joomla25/layout/layout.php'); T3::register('JLayoutBase', T3_ADMIN_PATH . '/includes/joomla25/layout/base.php'); T3::register('JLayoutFile', T3_ADMIN_PATH . '/includes/joomla25/layout/file.php'); T3::register('JLayoutHelper', T3_ADMIN_PATH . '/includes/joomla25/layout/helper.php'); T3::register('JHtmlBootstrap', T3_ADMIN_PATH . '/includes/joomla25/html/bootstrap.php'); T3::register('JHtmlBehavior', T3_ADMIN_PATH . '/includes/joomla25/html/behavior.php'); T3::register('JHtmlString', T3_ADMIN_PATH . '/includes/joomla25/html/string.php'); T3::register('JHtmlJquery', T3_ADMIN_PATH . '/includes/joomla25/html/jquery.php'); // load j25 compat language JFactory::getLanguage()->load('plg_system_t3.j25.compat', JPATH_ADMINISTRATOR); } // import renderer T3::import('renderer/pageclass'); T3::import('renderer/megamenu'); T3::import('renderer/t3bootstrap'); } else { } // capture for tm=1 => show theme magic if ($input->getCmd('tm') == 1) { $input->set('t3action', 'theme'); $input->set('t3task', 'thememagic'); } }