1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-08 01:36:57 +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:
Igor Wiedler
2012-03-30 10:59:46 -07:00
8 changed files with 92 additions and 26 deletions

View 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;
}
}

View File

@@ -23,7 +23,7 @@ if (!defined('IN_PHPBB'))
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
*/

View File

@@ -17,12 +17,11 @@ define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$user->setup();
// Handle the display of extension front pages
if ($ext = $request->variable('ext', ''))
@@ -57,6 +56,10 @@ if ($ext = $request->variable('ext', ''))
exit_handler();
}
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
$user->add_lang('viewforum');
display_forums('', $config['load_moderators']);
$order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';