1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-11 11:13:59 +02:00

- allow local moderators to properly use the mcp for more than one forum (mcp)

- automatically get a forum id for global topics if needed (mcp)
- allow linking to unapproved topics via a post id (viewtopic)
- use #p[post_id] anchor (mcp_post)
- use actions where appropriate (mcp_queue)
- added approve_details mode (mcp_queue)
- use new post details page (mcp_queue)
- adding missing lang keys for (dis)approval of topics/posts (mcp_queue)
- return to topic link (mcp_topic)
- some changes to follow the coding guidelines


git-svn-id: file:///svn/phpbb/trunk@5584 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Nils Adermann
2006-02-25 12:46:31 +00:00
parent f95e730adf
commit 4bcfafdc64
12 changed files with 139 additions and 103 deletions

View File

@@ -99,18 +99,10 @@ if ($topic_id && !$forum_id)
$forum_id = (int) $row['forum_id'];
}
// If we do not have a forum id and the user is not a super moderator (global options are set to false, even if the user is able to moderator at least one forum
if (!$forum_id && !$auth->acl_get('m_'))
// If the user doesn't have any moderator powers (globally or locally) he can't access the mcp
if (!$forum_id && !$auth->acl_get('m_') && !$auth->acl_getf_global('m_'))
{
$forum_list = get_forum_list('m_');
if (!sizeof($forum_list))
{
trigger_error('MODULE_NOT_EXIST');
}
// We do not check all forums, only the first one should be sufficiant.
$forum_id = $forum_list[0];
trigger_error('MODULE_NOT_EXIST');
}
if($forum_id)
@@ -160,7 +152,6 @@ else
if (!$post_id)
{
$module->set_display('main', 'post_details', false);
$module->set_display('queue', 'approve_details', false);
$module->set_display('warn', 'warn_post', false);
}
if (!$topic_id)
@@ -168,6 +159,10 @@ if (!$topic_id)
$module->set_display('main', 'topic_view', false);
$module->set_display('logs', 'topic_logs', false);
}
if (!$topic_id && !$post_id)
{
$module->set_display('queue', 'approve_details', false);
}
if (!$forum_id)
{
$module->set_display('main', 'forum_view', false);
@@ -517,6 +512,24 @@ function check_ids(&$ids, $table, $sql_id, $acl_list = false)
$forum_id = request_var('f', 0);
}
if ($forum_id === 0)
{
// Determine first forum the user is able to read - for global announcements
$forum_ary = array_unique(array_keys($auth->acl_getf('!f_read', true)));
$sql = 'SELECT forum_id
FROM ' . FORUMS_TABLE . '
WHERE forum_type = ' . FORUM_POST;
if (sizeof($forum_ary))
{
$sql .= ' AND forum_id NOT IN ( ' . implode(', ', $forum_ary) . ')';
}
$result = $db->sql_query_limit($sql, 1);
$forum_id = (int) $db->sql_fetchfield('forum_id', 0, $result);
$db->sql_freeresult($result);
}
if ($acl_list && !$auth->acl_get($acl_list, $forum_id))
{
trigger_error('NOT_AUTHORIZED');