mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 22:10:45 +02:00
Merge remote-tracking branch 'nickvergessen/feature/php-events-4' into develop
This commit is contained in:
@@ -25,7 +25,7 @@ class acp_forums
|
||||
|
||||
function main($id, $mode)
|
||||
{
|
||||
global $db, $user, $auth, $template, $cache, $request;
|
||||
global $db, $user, $auth, $template, $cache, $request, $phpbb_dispatcher;
|
||||
global $config, $phpbb_admin_path, $phpbb_root_path, $phpEx;
|
||||
|
||||
$user->add_lang('acp/forums');
|
||||
@@ -150,6 +150,17 @@ class acp_forums
|
||||
'forum_password_unset' => request_var('forum_password_unset', false),
|
||||
);
|
||||
|
||||
/**
|
||||
* Request forum data and operate on it (parse texts, etc.)
|
||||
*
|
||||
* @event core.acp_manage_forums_request_data
|
||||
* @var string action Type of the action: add|edit
|
||||
* @var array forum_data Array with new forum data
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('action', 'forum_data');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_request_data', compact($vars)));
|
||||
|
||||
// On add, add empty forum_options... else do not consider it (not updating it)
|
||||
if ($action == 'add')
|
||||
{
|
||||
@@ -386,6 +397,9 @@ class acp_forums
|
||||
$forum_data['forum_flags'] += (request_var('enable_quick_reply', false)) ? FORUM_FLAG_QUICK_REPLY : 0;
|
||||
}
|
||||
|
||||
// Initialise $row, so we always have it in the event
|
||||
$row = array();
|
||||
|
||||
// Show form to create/modify a forum
|
||||
if ($action == 'edit')
|
||||
{
|
||||
@@ -453,6 +467,24 @@ class acp_forums
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise data before we display the add/edit form
|
||||
*
|
||||
* @event core.acp_manage_forums_initialise_data
|
||||
* @var string action Type of the action: add|edit
|
||||
* @var bool update Do we display the form only
|
||||
* or did the user press submit
|
||||
* @var int forum_id When editing: the forum id,
|
||||
* when creating: the parent forum id
|
||||
* @var array row Array with current forum data
|
||||
* empty when creating new forum
|
||||
* @var array forum_data Array with new forum data
|
||||
* @var string parents_list List of parent options
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('action', 'update', 'forum_id', 'row', 'forum_data', 'parents_list');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_initialise_data', compact($vars)));
|
||||
|
||||
$forum_rules_data = array(
|
||||
'text' => $forum_data['forum_rules'],
|
||||
'allow_bbcode' => true,
|
||||
@@ -582,7 +614,7 @@ class acp_forums
|
||||
$errors[] = $user->lang['FORUM_PASSWORD_OLD'];
|
||||
}
|
||||
|
||||
$template->assign_vars(array(
|
||||
$template_data = array(
|
||||
'S_EDIT_FORUM' => true,
|
||||
'S_ERROR' => (sizeof($errors)) ? true : false,
|
||||
'S_PARENT_ID' => $this->parent_id,
|
||||
@@ -647,7 +679,31 @@ class acp_forums
|
||||
'S_ENABLE_POST_REVIEW' => ($forum_data['forum_flags'] & FORUM_FLAG_POST_REVIEW) ? true : false,
|
||||
'S_ENABLE_QUICK_REPLY' => ($forum_data['forum_flags'] & FORUM_FLAG_QUICK_REPLY) ? true : false,
|
||||
'S_CAN_COPY_PERMISSIONS' => ($action != 'edit' || empty($forum_id) || ($auth->acl_get('a_fauth') && $auth->acl_get('a_authusers') && $auth->acl_get('a_authgroups') && $auth->acl_get('a_mauth'))) ? true : false,
|
||||
));
|
||||
);
|
||||
|
||||
/**
|
||||
* Modify forum template data before we display the form
|
||||
*
|
||||
* @event core.acp_manage_forums_display_form
|
||||
* @var string action Type of the action: add|edit
|
||||
* @var bool update Do we display the form only
|
||||
* or did the user press submit
|
||||
* @var int forum_id When editing: the forum id,
|
||||
* when creating: the parent forum id
|
||||
* @var array row Array with current forum data
|
||||
* empty when creating new forum
|
||||
* @var array forum_data Array with new forum data
|
||||
* @var string parents_list List of parent options
|
||||
* @var array errors Array of errors, if you add errors
|
||||
* ensure to update the template variables
|
||||
* S_ERROR and ERROR_MSG to display it
|
||||
* @var array template_data Array with new forum data
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('action', 'update', 'forum_id', 'row', 'forum_data', 'parents_list', 'errors', 'template_data');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_display_form', compact($vars)));
|
||||
|
||||
$template->assign_vars($template_data);
|
||||
|
||||
return;
|
||||
|
||||
@@ -872,10 +928,22 @@ class acp_forums
|
||||
*/
|
||||
function update_forum_data(&$forum_data)
|
||||
{
|
||||
global $db, $user, $cache, $phpbb_root_path;
|
||||
global $db, $user, $cache, $phpbb_root_path, $phpbb_dispatcher;
|
||||
|
||||
$errors = array();
|
||||
|
||||
/**
|
||||
* Validate the forum data before we create/update the forum
|
||||
*
|
||||
* @event core.acp_manage_forums_validate_data
|
||||
* @var array forum_data Array with new forum data
|
||||
* @var array errors Array of errors, should be strings and not
|
||||
* language key.
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('forum_data', 'errors');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_validate_data', compact($vars)));
|
||||
|
||||
if ($forum_data['forum_name'] == '')
|
||||
{
|
||||
$errors[] = $user->lang['FORUM_NAME_EMPTY'];
|
||||
@@ -968,7 +1036,22 @@ class acp_forums
|
||||
}
|
||||
unset($forum_data_sql['forum_password_unset']);
|
||||
|
||||
if (!isset($forum_data_sql['forum_id']))
|
||||
/**
|
||||
* Remove invalid values from forum_data_sql that should not be updated
|
||||
*
|
||||
* @event core.acp_manage_forums_update_data_before
|
||||
* @var array forum_data Array with forum data
|
||||
* @var array forum_data_sql Array with data we are going to update
|
||||
* If forum_data_sql[forum_id] is set, we update
|
||||
* that forum, otherwise a new one is created.
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('forum_data', 'forum_data_sql');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_update_data_before', compact($vars)));
|
||||
|
||||
$is_new_forum = !isset($forum_data_sql['forum_id']);
|
||||
|
||||
if ($is_new_forum)
|
||||
{
|
||||
// no forum_id means we're creating a new forum
|
||||
unset($forum_data_sql['type_action']);
|
||||
@@ -1239,6 +1322,22 @@ class acp_forums
|
||||
add_log('admin', 'LOG_FORUM_EDIT', $forum_data['forum_name']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Event after a forum was updated or created
|
||||
*
|
||||
* @event core.acp_manage_forums_update_data_after
|
||||
* @var array forum_data Array with forum data
|
||||
* @var array forum_data_sql Array with data we updated
|
||||
* @var bool is_new_forum Did we create a forum or update one
|
||||
* If you want to overwrite this value,
|
||||
* ensure to set forum_data_sql[forum_id]
|
||||
* @var array errors Array of errors, should be strings and not
|
||||
* language key.
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('forum_data', 'forum_data_sql', 'is_new_forum', 'errors');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_update_data_after', compact($vars)));
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
@@ -1247,7 +1346,7 @@ class acp_forums
|
||||
*/
|
||||
function move_forum($from_id, $to_id)
|
||||
{
|
||||
global $db, $user;
|
||||
global $db, $user, $phpbb_dispatcher;
|
||||
|
||||
$to_data = $moved_ids = $errors = array();
|
||||
|
||||
@@ -1259,10 +1358,30 @@ class acp_forums
|
||||
if ($to_data['forum_type'] == FORUM_LINK)
|
||||
{
|
||||
$errors[] = $user->lang['PARENT_IS_LINK_FORUM'];
|
||||
return $errors;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event when we move all children of one forum to another
|
||||
*
|
||||
* This event may be triggered, when a forum is deleted
|
||||
*
|
||||
* @event core.acp_manage_forums_move_children
|
||||
* @var int from_id If of the current parent forum
|
||||
* @var int to_id If of the new parent forum
|
||||
* @var array errors Array of errors, should be strings and not
|
||||
* language key.
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('from_id', 'to_id', 'errors');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_move_children', compact($vars)));
|
||||
|
||||
// Return if there were errors
|
||||
if (!empty($errors))
|
||||
{
|
||||
return $errors;
|
||||
}
|
||||
|
||||
$moved_forums = get_forum_branch($from_id, 'children', 'descending');
|
||||
$from_data = $moved_forums[0];
|
||||
$diff = sizeof($moved_forums) * 2;
|
||||
@@ -1342,7 +1461,30 @@ class acp_forums
|
||||
*/
|
||||
function move_forum_content($from_id, $to_id, $sync = true)
|
||||
{
|
||||
global $db;
|
||||
global $db, $phpbb_dispatcher;
|
||||
|
||||
$errors = array();
|
||||
|
||||
/**
|
||||
* Event when we move content from one forum to another
|
||||
*
|
||||
* @event core.acp_manage_forums_move_children
|
||||
* @var int from_id If of the current parent forum
|
||||
* @var int to_id If of the new parent forum
|
||||
* @var bool sync Shall we sync the "to"-forum's data
|
||||
* @var array errors Array of errors, should be strings and not
|
||||
* language key. If this array is not empty,
|
||||
* The content will not be moved.
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('from_id', 'to_id', 'sync', 'errors');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_manage_forums_move_content', compact($vars)));
|
||||
|
||||
// Return if there were errors
|
||||
if (!empty($errors))
|
||||
{
|
||||
return $errors;
|
||||
}
|
||||
|
||||
$table_ary = array(LOG_TABLE, POSTS_TABLE, TOPICS_TABLE, DRAFTS_TABLE, TOPICS_TRACK_TABLE);
|
||||
|
||||
|
@@ -32,6 +32,7 @@ class acp_users
|
||||
{
|
||||
global $config, $db, $user, $auth, $template, $cache;
|
||||
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix, $file_uploads;
|
||||
global $phpbb_dispatcher;
|
||||
|
||||
$user->add_lang(array('posting', 'ucp', 'acp/users'));
|
||||
$this->tpl_name = 'acp_users';
|
||||
@@ -749,6 +750,19 @@ class acp_users
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
/**
|
||||
* Run custom quicktool code
|
||||
*
|
||||
* @event core.acp_users_overview_run_quicktool
|
||||
* @var array user_row Current user data
|
||||
* @var string action Quick tool that should be run
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('action', 'user_row');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_users_overview_run_quicktool', compact($vars)));
|
||||
break;
|
||||
}
|
||||
|
||||
// Handle registration info updates
|
||||
@@ -855,6 +869,18 @@ class acp_users
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify user data before we update it
|
||||
*
|
||||
* @event core.acp_users_overview_modify_data
|
||||
* @var array user_row Current user data
|
||||
* @var array data Submitted user data
|
||||
* @var array sql_ary User data we udpate
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('user_row', 'data', 'sql_ary');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_users_overview_modify_data', compact($vars)));
|
||||
|
||||
if ($update_username !== false)
|
||||
{
|
||||
$sql_ary['username'] = $update_username;
|
||||
@@ -945,12 +971,6 @@ class acp_users
|
||||
}
|
||||
}
|
||||
|
||||
$s_action_options = '<option class="sep" value="">' . $user->lang['SELECT_OPTION'] . '</option>';
|
||||
foreach ($quick_tool_ary as $value => $lang)
|
||||
{
|
||||
$s_action_options .= '<option value="' . $value . '">' . $user->lang['USER_ADMIN_' . $lang] . '</option>';
|
||||
}
|
||||
|
||||
if ($config['load_onlinetrack'])
|
||||
{
|
||||
$sql = 'SELECT MAX(session_time) AS session_time, MIN(session_viewonline) AS session_viewonline
|
||||
@@ -965,6 +985,23 @@ class acp_users
|
||||
unset($row);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add additional quick tool options and overwrite user data
|
||||
*
|
||||
* @event core.acp_users_display_overview
|
||||
* @var array user_row Array with user data
|
||||
* @var array quick_tool_ary Ouick tool options
|
||||
* @since 3.1-A1
|
||||
*/
|
||||
$vars = array('user_row', 'quick_tool_ary');
|
||||
extract($phpbb_dispatcher->trigger_event('core.acp_users_display_overview', compact($vars)));
|
||||
|
||||
$s_action_options = '<option class="sep" value="">' . $user->lang['SELECT_OPTION'] . '</option>';
|
||||
foreach ($quick_tool_ary as $value => $lang)
|
||||
{
|
||||
$s_action_options .= '<option value="' . $value . '">' . $user->lang['USER_ADMIN_' . $lang] . '</option>';
|
||||
}
|
||||
|
||||
$last_visit = (!empty($user_row['session_time'])) ? $user_row['session_time'] : $user_row['user_lastvisit'];
|
||||
|
||||
$inactive_reason = '';
|
||||
|
Reference in New Issue
Block a user