%PDF- %PDF-
Direktori : /home1/lightco1/www/lightingrepublic.com.au/components/com_docman/ |
Current File : //home1/lightco1/www/lightingrepublic.com.au/components/com_docman/dispatcher.php |
<?php /** * @package DOCman * @copyright Copyright (C) 2011 - 2013 Timble CVBA (http://www.timble.net) * @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> * @link http://www.joomlatools.com */ class ComDocmanDispatcher extends ComDefaultDispatcher { public function __construct(KConfig $config) { parent::__construct($config); $this->registerCallback('before.dispatch', array($this, 'beforeDispatch')); } protected function _initialize(KConfig $config) { $config->append(array( 'controller' => 'list', 'behaviors' => array( 'com://admin/docman.controller.behavior.routable' ) )); parent::_initialize($config); } public function getRequest() { $request = parent::getRequest(); if ($request->alias && !$request->slug) { $request->slug = array_pop(explode('-', $request->alias, 2)); } $menu = JFactory::getApplication()->getMenu()->getActive(); if ($menu) { $request->Itemid = $menu->id; } if (JFactory::getUser()->authorise('core.manage', 'com_docman') !== true) { // Can't use executable behavior here as it calls getController which in turn calls this method $request->enabled = 1; $request->status = 'published'; } $request->access = JFactory::getUser()->getAuthorisedViewLevels(); $request->page = $request->Itemid; // These are read-only for outsiders unset($request->page_conditions); $request->current_user = JFactory::getUser()->id; return $request; } public function beforeDispatch(KCommandContext $context) { if (!$this->_checkMenu()) { $translator = $this->getService('translator')->getTranslator($this->getIdentifier()); throw new KDispatcherException($translator->translate('Invalid menu item')); } } /** * Check if we have a valid menu item * * @return bool */ protected function _checkMenu() { $menu = JFactory::getApplication()->getMenu()->getActive(); if (!$menu) { return $this->getRequest()->view === 'doclink'; } return $menu->query['option'] === 'com_docman'; } }