70 lines
1.8 KiB
PHP
70 lines
1.8 KiB
PHP
<?php
|
|
/**
|
|
* @brief Dispatcher (Web)
|
|
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
|
|
* @copyright (c) Invision Power Services, Inc.
|
|
* @license https://www.invisioncommunity.com/legal/standards/
|
|
* @package IPS Tools
|
|
* @since 4 Sept 2013
|
|
*/
|
|
|
|
namespace IPSUtf8\Dispatcher;
|
|
use \IPSUtf8\Output\Browser\Template;
|
|
|
|
/**
|
|
* Web Dispatcher
|
|
*/
|
|
class Browser extends \IPSUtf8\Dispatcher
|
|
{
|
|
/**
|
|
* Run
|
|
*/
|
|
public function run()
|
|
{
|
|
/* Is this already Invision Community or has the lock been removed? */
|
|
if( ! \BYPASS_SAFETY_LOCK and \IPSUtf8\Convert::i()->databaseIsIPS4() )
|
|
{
|
|
\IPSUtf8\Output\Browser::i()->error( \IPSUtf8\Output\Browser\Template::errorAlreadyIPS4() );
|
|
}
|
|
|
|
$this->controller = ( \IPSUtf8\Request::i()->controller ) ? \IPSUtf8\Request::i()->controller : 'browser';
|
|
|
|
$fileLocation = \THIS_PATH . '/modules/browser/' . $this->controller . '.php';
|
|
$classname = 'IPSUtf8\\modules\\browser\\' . $this->controller;
|
|
|
|
if( !file_exists( $fileLocation ) )
|
|
{
|
|
\IPSUtf8\Output\Browser::i()->error( "Page doesn't exist" );
|
|
}
|
|
|
|
/* Run */
|
|
$this->controllerObj = new $classname;
|
|
if( !( $this->controllerObj instanceof \IPSUtf8\Dispatcher\Controller ) )
|
|
{
|
|
\IPSUtf8\Output\Browser::i()->error( "Page doesn't exist" );
|
|
}
|
|
|
|
$this->controllerObj->execute();
|
|
|
|
/* Output */
|
|
if ( \IPSUtf8\Request::i()->isAjax() )
|
|
{
|
|
\IPSUtf8\Output\Browser::i()->sendOutput( Template::blankTemplate( \IPSUtf8\Output\Browser::i()->output ), 200, 'text/html', \IPSUtf8\Output\Browser::i()->httpHeaders );
|
|
}
|
|
else
|
|
{
|
|
\IPSUtf8\Output\Browser::i()->sendOutput( Template::wrapper( \IPSUtf8\Output\Browser::i()->title, \IPSUtf8\Output\Browser::i()->output ), 200, 'text/html', \IPSUtf8\Output\Browser::i()->httpHeaders );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Init
|
|
*/
|
|
public function init()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
}
|