46 lines
1.2 KiB
PHP
46 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* @brief Abstract class that Controllers should extend
|
|
* @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 Invision Community
|
|
* @since 18 Feb 2013
|
|
*/
|
|
|
|
namespace IPSUtf8\Dispatcher;
|
|
|
|
/**
|
|
* Abstract class that Controllers should extend
|
|
*/
|
|
abstract class Controller
|
|
{
|
|
|
|
/**
|
|
* Execute
|
|
*
|
|
* @param string $command The part of the query string which will be used to get the method
|
|
* @param \IPS\Http\Url|NULL $url The base URL for this controller or NULL to calculate automatically
|
|
* @return void
|
|
*/
|
|
public function execute()
|
|
{
|
|
if( \IPSUtf8\Request::i()->do and \substr( \IPSUtf8\Request::i()->do, 0, 1 ) !== '_' )
|
|
{
|
|
$method = ( \IPSUtf8\Request::i()->do and preg_match( '/^[a-zA-Z\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', \IPSUtf8\Request::i()->do ) ) ? \IPSUtf8\Request::i()->do : NULL;
|
|
|
|
if ( $method !== NULL AND method_exists( $this, $method ) )
|
|
{
|
|
call_user_func( array( $this, $method ) );
|
|
}
|
|
else
|
|
{
|
|
\IPSUtf8\Output\Browser::i()->error( "Page not found" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$this->manage();
|
|
}
|
|
}
|
|
} |