mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-09 00:55:23 +02:00
Merge pull request #662 from imkingdavid/ticket/10586
[ticket/10586] Use an abstract class that implements the interface
This commit is contained in:
commit
0bd635f1b4
77
phpBB/includes/extension/controller.php
Normal file
77
phpBB/includes/extension/controller.php
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package extension
|
||||||
|
* @copyright (c) 2011 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ignore
|
||||||
|
*/
|
||||||
|
if (!defined('IN_PHPBB'))
|
||||||
|
{
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstract class extended by extension front controller classes
|
||||||
|
*
|
||||||
|
* @package extension
|
||||||
|
*/
|
||||||
|
abstract class phpbb_extension_controller implements phpbb_extension_controller_interface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var phpbb_request Request class object
|
||||||
|
*/
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var dbal DBAL class object
|
||||||
|
*/
|
||||||
|
protected $db;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var user User class object
|
||||||
|
*/
|
||||||
|
protected $user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var phpbb_template Template class object
|
||||||
|
*/
|
||||||
|
protected $template;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array Config array
|
||||||
|
*/
|
||||||
|
protected $config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string PHP Extension
|
||||||
|
*/
|
||||||
|
protected $phpEx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Relative path to board root
|
||||||
|
*/
|
||||||
|
protected $phpbb_root_path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor method that provides the common phpBB objects as inherited class
|
||||||
|
* properties for automatic availability in extension controllers
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
global $request, $db, $user, $template, $config;
|
||||||
|
global $phpEx, $phpbb_root_path;
|
||||||
|
|
||||||
|
$this->request = $request;
|
||||||
|
$this->db = $db;
|
||||||
|
$this->user = $user;
|
||||||
|
$this->template = $template;
|
||||||
|
$this->config = $config;
|
||||||
|
$this->phpEx = $phpEx;
|
||||||
|
$this->phpbb_root_path = $phpbb_root_path;
|
||||||
|
}
|
||||||
|
}
|
@ -23,7 +23,7 @@ if (!defined('IN_PHPBB'))
|
|||||||
interface phpbb_extension_controller_interface
|
interface phpbb_extension_controller_interface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* handle the request to display a page from an extension
|
* Handle the request to display a page from an extension
|
||||||
*
|
*
|
||||||
* @return null
|
* @return null
|
||||||
*/
|
*/
|
||||||
|
@ -17,12 +17,11 @@ define('IN_PHPBB', true);
|
|||||||
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
|
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
|
||||||
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
$phpEx = substr(strrchr(__FILE__, '.'), 1);
|
||||||
include($phpbb_root_path . 'common.' . $phpEx);
|
include($phpbb_root_path . 'common.' . $phpEx);
|
||||||
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
|
||||||
|
|
||||||
// Start session management
|
// Start session management
|
||||||
$user->session_begin();
|
$user->session_begin();
|
||||||
$auth->acl($user->data);
|
$auth->acl($user->data);
|
||||||
$user->setup('viewforum');
|
$user->setup();
|
||||||
|
|
||||||
// Handle the display of extension front pages
|
// Handle the display of extension front pages
|
||||||
if ($ext = $request->variable('ext', ''))
|
if ($ext = $request->variable('ext', ''))
|
||||||
@ -57,6 +56,10 @@ if ($ext = $request->variable('ext', ''))
|
|||||||
exit_handler();
|
exit_handler();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
|
||||||
|
|
||||||
|
$user->add_lang('viewforum');
|
||||||
|
|
||||||
display_forums('', $config['load_moderators']);
|
display_forums('', $config['load_moderators']);
|
||||||
|
|
||||||
$order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
|
$order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class phpbb_ext_foobar_controller implements phpbb_extension_controller_interface
|
class phpbb_ext_foobar_controller extends phpbb_extension_controller
|
||||||
{
|
{
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
global $template;
|
$this->template->set_filenames(array(
|
||||||
$template->set_ext_dir_prefix($phpbb_root_path . 'ext/error/class/');
|
|
||||||
|
|
||||||
$template->set_filenames(array(
|
|
||||||
'body' => 'index_body.html'
|
'body' => 'index_body.html'
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -5,8 +5,6 @@ class phpbb_ext_error_classtype_controller
|
|||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
global $template;
|
global $template;
|
||||||
$template->set_ext_dir_prefix($phpbb_root_path . 'ext/error/classtype/');
|
|
||||||
|
|
||||||
$template->set_filenames(array(
|
$template->set_filenames(array(
|
||||||
'body' => 'index_body.html'
|
'body' => 'index_body.html'
|
||||||
));
|
));
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class phpbb_ext_error_disabled_controller implements phpbb_extension_controller_interface
|
class phpbb_ext_error_disabled_controller extends phpbb_extension_controller
|
||||||
{
|
{
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
global $template;
|
$this->template->set_filenames(array(
|
||||||
$template->set_ext_dir_prefix($phpbb_root_path . 'ext/error/disabled/');
|
|
||||||
|
|
||||||
$template->set_filenames(array(
|
|
||||||
'body' => 'index_body.html'
|
'body' => 'index_body.html'
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class phpbb_ext_foo_bar_controller implements phpbb_extension_controller_interface
|
class phpbb_ext_foo_bar_controller extends phpbb_extension_controller
|
||||||
{
|
{
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
global $template;
|
$this->template->set_filenames(array(
|
||||||
$template->set_ext_dir_prefix($phpbb_root_path . 'ext/foo/bar/');
|
|
||||||
|
|
||||||
$template->set_filenames(array(
|
|
||||||
'body' => 'foobar_body.html'
|
'body' => 'foobar_body.html'
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class phpbb_ext_foobar_controller implements phpbb_extension_controller_interface
|
class phpbb_ext_foobar_controller extends phpbb_extension_controller
|
||||||
{
|
{
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
global $template;
|
$this->template->set_filenames(array(
|
||||||
$template->set_ext_dir_prefix($phpbb_root_path . 'ext/foobar/');
|
|
||||||
|
|
||||||
$template->set_filenames(array(
|
|
||||||
'body' => 'foobar_body.html'
|
'body' => 'foobar_body.html'
|
||||||
));
|
));
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user