Exemplo n.º 1
0
 /**
  * initialize CANVAS
  */
 public static function init($xml)
 {
     $app = JFactory::getApplication();
     $input = $app->input;
     $coretheme = isset($xml->canvas) && isset($xml->canvas->base) ? trim((string) $xml->canvas->base) : 'base';
     // check coretheme in media/canvas/themes folder
     // if not exists, use default base theme in CANVAS
     if (!$coretheme) {
         $coretheme = 'base';
     }
     foreach (array(CANVAS_EX_BASE_PATH, CANVAS_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('CANVAS')) {
         // get ready for the canvas core base theme
         include_once CANVAS_CORE_BASE_PATH . '/define.php';
     }
     if (!defined('CANVAS')) {
         CANVAS::error(JText::sprintf('CANVAS_MSG_FAILED_INIT_BASE', $coretheme));
         exit;
     }
     define('CANVAS_CORE_TEMPLATE_BASE', $coretheme);
     define('CANVAS_TEMPLATE', $xml->tplname);
     define('CANVAS_TEMPLATE_URL', JURI::root(true) . '/templates/' . CANVAS_TEMPLATE);
     define('CANVAS_TEMPLATE_PATH', JPATH_ROOT . '/templates/' . CANVAS_TEMPLATE);
     define('CANVAS_TEMPLATE_REL', 'templates/' . CANVAS_TEMPLATE);
     define('CANVAS_LOCAL_URL', CANVAS_TEMPLATE_URL . '/' . CANVAS_LOCAL_DIR);
     define('CANVAS_LOCAL_PATH', CANVAS_TEMPLATE_PATH . '/' . CANVAS_LOCAL_DIR);
     define('CANVAS_LOCAL_REL', CANVAS_TEMPLATE_REL . '/' . CANVAS_LOCAL_DIR);
     if ($input->getCmd('themer', 0)) {
         define('CANVAS_THEMER', 1);
     }
     if (!$app->isAdmin()) {
         $params = $app->getTemplate(true)->params;
         define('CANVAS_DEV_FOLDER', $params->get('canvas-assets', 'canvas-assets') . '/dev');
         define('CANVAS_DEV_MODE', $params->get('devmode', 0));
     } else {
         $params = self::getTemplate()->params;
         define('CANVAS_DEV_FOLDER', $params->get('canvas-assets', 'canvas-assets') . '/dev');
     }
     if (!is_dir(JPATH_ROOT . '/' . CANVAS_DEV_FOLDER)) {
         jimport('joomla.filesystem.folder');
         JFolder::create(JPATH_ROOT . '/' . CANVAS_DEV_FOLDER);
     }
     if ($input->getCmd('canvaslock', '')) {
         JFactory::getSession()->set('CANVAS.canvaslock', $input->getCmd('canvaslock', ''));
         $input->set('canvaslock', null);
     }
     // load core library
     CANVAS::import('core/path');
     CANVAS::import('core/canvasj');
     if (!$app->isAdmin()) {
         if (version_compare(JVERSION, '3.0', 'ge')) {
             // override core joomla class
             // JViewLegacy
             CANVAS::register('JViewLegacy', CANVAS_ADMIN_PATH . '/includes/joomla30/viewlegacy.php');
             // JModuleHelper
             CANVAS::register('JModuleHelper', CANVAS_ADMIN_PATH . '/includes/joomla30/modulehelper.php');
             // JPagination
             CANVAS::register('JPagination', CANVAS_ADMIN_PATH . '/includes/joomla30/pagination.php');
             // Register CANVAS Layout File to put a canvas base layer for layout files
             CANVAS::register('JLayoutFile', CANVAS_ADMIN_PATH . '/includes/joomla25/layout/file.php');
         } else {
             // override core joomla class
             // JView
             CANVAS::register('JView', CANVAS_ADMIN_PATH . '/includes/joomla25/view.php', 'joomla.application.component.view');
             // JModuleHelper
             CANVAS::register('JModuleHelper', CANVAS_ADMIN_PATH . '/includes/joomla25/modulehelper.php', 'joomla.application.module.helper');
             // JPagination
             CANVAS::register('JPagination', CANVAS_ADMIN_PATH . '/includes/joomla25/pagination.php', 'joomla.html.pagination');
             //register layout
             CANVAS::register('JLayout', CANVAS_ADMIN_PATH . '/includes/joomla25/layout/layout.php');
             CANVAS::register('JLayoutBase', CANVAS_ADMIN_PATH . '/includes/joomla25/layout/base.php');
             CANVAS::register('JLayoutFile', CANVAS_ADMIN_PATH . '/includes/joomla25/layout/file.php');
             CANVAS::register('JLayoutHelper', CANVAS_ADMIN_PATH . '/includes/joomla25/layout/helper.php');
             CANVAS::register('JHtmlBootstrap', CANVAS_ADMIN_PATH . '/includes/joomla25/html/bootstrap.php');
             CANVAS::register('JHtmlString', CANVAS_ADMIN_PATH . '/includes/joomla25/html/string.php');
             // load j25 compat language
             JFactory::getLanguage()->load('plg_system_canvas.j25.compat', JPATH_ADMINISTRATOR);
         }
         // import renderer
         CANVAS::import('renderer/pageclass');
         CANVAS::import('renderer/megamenu');
         CANVAS::import('renderer/canvasbootstrap');
     } else {
     }
     // capture for tm=1 => show theme magic
     if ($input->getCmd('tm') == 1) {
         $input->set('canvasaction', 'theme');
         $input->set('canvastask', 'thememagic');
     }
 }