%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home1/lightco1/www/lightingrepublic.com.au/administrator/components/com_files/
Upload File :
Create Path :
Current File : //home1/lightco1/www/lightingrepublic.com.au/administrator/components/com_files/dispatcher.php

<?php
/**
 * @version     $Id$
 * @package     Nooku_Components
 * @subpackage  Files
 * @copyright   Copyright (C) 2011 - 2012 Timble CVBA and Contributors. (http://www.timble.net).
 * @license     GNU GPLv3 <http://www.gnu.org/licenses/gpl.html>
 * @link        http://www.nooku.org
 */

/**
 * Dispatcher Class
 *
 * @author      Ercan Ozkaya <http://nooku.assembla.com/profile/ercanozkaya>
 * @package     Nooku_Components
 * @subpackage  Files
 */

class ComFilesDispatcher extends ComDefaultDispatcher
{
    /**
     * Overloaded execute function to handle exceptions in JSON requests
     */
    public function execute($action, KCommandContext $context)
    {
        try {
            return parent::execute($action, $context);
        }
        catch (KControllerException $e) {
            $this->_handleException($e);
        }
        catch (KModelException $e) {
            $this->_handleException($e);
        }
    }

    protected function _handleException(Exception $e) 
    {
    	if (KRequest::get('get.format', 'cmd') == 'json') 
        {
    		$obj = new stdClass;
    		$obj->status = false;
    		$obj->error  = $e->getMessage();
    		$obj->code   = $e->getCode();

    		// Plupload do not pass the error to our application if the status code is not 200
    		$code = KRequest::get('get.plupload', 'int') ? 200 : $e->getCode();

    		header($code.' '.str_replace("\n", ' ', $e->getMessage()), true, $code);

    		echo json_encode($obj);
    		JFactory::getApplication()->close();
    	}
    	else throw $e;
    }
    
	/**
	 * Overloaded to comply with FancyUpload.
	 * It doesn't let us pass AJAX headers so this is needed.
	 */
	public function _actionForward(KCommandContext $context)
	{
		if ($context->result->getStatus() != KDatabase::STATUS_DELETED) {
			if(KRequest::type() == 'FLASH' || KRequest::format() == 'json') {
				$context->result = $this->getController()->execute('display', $context);
			} else {
				parent::_actionForward($context);
			}
		}
		return $context->result;

	}
}

Zerion Mini Shell 1.0