%PDF- %PDF-
Direktori : /home1/lightco1/www/plugins/system/jsnpoweradmin/libraries/ |
Current File : //home1/lightco1/www/plugins/system/jsnpoweradmin/libraries/preview.php |
<?php /*------------------------------------------------------------------------ # JSN PowerAdmin # ------------------------------------------------------------------------ # author JoomlaShine.com Team # copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved. # Websites: http://www.joomlashine.com # Technical Support: Feedback - http://www.joomlashine.com/joomlashine/contact-us.html # @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL # @version $Id: preview.php 12506 2012-05-09 03:55:24Z hiennh $ -------------------------------------------------------------------------*/ defined( '_JEXEC' ) or die( 'Restricted access' ); class JSNPowerAdminBarPreview { /** * Contains name of the active component * @var string */ private $option; /** * All parameters on QueryString * @var array */ private $params; /** * Instance of supporter class * @var JSNPowerAdminBarPreviewAdapter */ private $adapter; /** * Constructor of the class */ public function __construct () { $this->option = JRequest::getVar('option'); $this->params = JRequest::get('GET', array()); $this->loadAdapter(); } /** * Retrieve preview link based on params. If not match, default link will be returned * @return string */ public function getPreviewLink () { if ($this->adapter == null || !($this->adapter instanceof JSNPowerAdminBarPreviewAdapter)) return JUri::root(); $preview = $this->adapter->getPreviewLink(); if (strpos($preview, '&Itemid=') === false && strpos($preview, 'option=') !== false) { $dbo = JFactory::getDBO(); $dbo->setQuery(sprintf('SELECT id FROM #__menu WHERE link LIKE "%s" LIMIT 1', $preview)); $itemId = $dbo->loadResult(); if (!is_numeric($itemId)) { $dbo->setQuery(sprintf('SELECT id FROM #__menu WHERE home=1 LIMIT 1', $preview)); $itemId = $dbo->loadResult(); } $preview.= sprintf('&Itemid=%d', $itemId); } return JUri::root().$preview; } /** * Load adapter for detect preview link * @return JSNPowerAdminBarPreviewAdapter */ private function loadAdapter () { $builtInFile = dirname(dirname(__FILE__))."/supports/{$this->option}.php"; $builtInXmlFile = dirname(dirname(__FILE__))."/supports/{$this->option}.xml"; $xmlFile = JPATH_ADMINISTRATOR."/components/{$this->option}/preview.xml"; if (is_file($builtInFile)) { require_once $builtInFile; $className = sprintf( 'JSNPowerAdminBarSupport%s', ucfirst( substr( $this->option, strpos($this->option, '_') + 1 ) ) ); $this->adapter = (class_exists($className)) ? new $className($this->option, $this->params) : null; } else { require_once dirname(dirname(__FILE__))."/supports/base.php"; $this->adapter = new JSNPowerAdminBarSupportBase($this->option, $this->params); if (is_file($builtInXmlFile)) $this->adapter->parseXml($builtInXmlFile); elseif (is_file($xmlFile)) $this->adapter->parseXml($xmlFile); } } } class JSNPowerAdminBarPreviewAdapter { /** * Contains name of the active component * @var string */ protected $option; /** * All parameters on QueryString * @var array */ protected $params; /** * Constructor of the Content support class * * @param string $option * @param array $params */ public function __construct ($option, $params) { $this->option = $option; $this->params = $params; } /** * Retrieve preview link of current context * @return string */ public function getPreviewLink() { return 'index.php'; } }