Code: Alles auswählen
##############################################################
## Mod Title: Global Moderator Mod
## Mod Version: 1.0
## Author: Gumeleon <gumeleon@yahoo.com>
## Description: This mod will allow you to give a user moderator status on all forums
## from the user permissions page without having to actually make them a
## mod of each forum, just like an admin.
##
##
## Installation Level: Moderate
## Installation Time: 15 Minutes
## Files to Edit: /root/admin/admin_ug_auth.php
## /root/includes/auth.php
## /root/includes/constants.php
## /root/language/lang_english/lang_admin.php
##
################################################################
## Remember to always backup your files before adding any new mods to your forum!
################################################################
##
## Revision History
##
## V1.0 - 1/1/04
## - Initial release, everything seems to be working fine, no bugs have been found.
##
#################################################################
## Author Notes: Please report any bugs to me.
#################################################################
##
##
##
##-----------[ Open ]-------------------------------------------
##
root/includes/constants.php
##
##-----------[ Find ]-------------------------------------------
##
define('MOD', 2);
##
##-----------[ After, Add ]-------------------------------------
##
define('GLOBAL_MOD', 3);
##
##-----------[ Open ]-------------------------------------------
##
root/language/lang_english/lang_admin.php
##
##-----------[ Find ]-------------------------------------------
##
$lang['Auth_User'] = 'User';
##
##-----------[ After, Add ]-------------------------------------
##
$lang['Auth_Global'] = 'Global Moderator';
##
##-----------[ Open ]-------------------------------------------
##
root/admin/admin_ug_auth.php
##
##-----------[ Find ]-------------------------------------------
##
else
{
if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'user' && $user_level == ADMIN )
##
##-----------[ Before, Add ]------------------------------------
##
## // Add this part if you DO NOT have the Global Announcement Mod installed
##
else if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'global_mod' && $user_level != GLOBAL_MOD )
{
//
// Make user a global mod (if already user)
//
if ( $userdata['user_id'] != $user_id )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_level = " . GLOBAL_MOD . "
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
WHERE group_id = $group_id
AND auth_mod = 0";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't delete auth access info", "", __LINE__, __FILE__, $sql);
}
//
// Delete any entries in auth_access, they are not required if user is becoming a
// global mod
//
$sql = "UPDATE " . AUTH_ACCESS_TABLE . "
SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0
WHERE group_id = $group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't update auth access", "", __LINE__, __FILE__, $sql);
}
}
$message = $lang['Auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_userauth'], '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
##
## // Or add this part if you HAVE the Global Announcement Mod installed
##
else if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'global_mod' && $user_level != GLOBAL_MOD )
{
//
// Make user a global mod (if already user)
//
if ( $userdata['user_id'] != $user_id )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_level = " . GLOBAL_MOD . "
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
}
$sql = "DELETE FROM " . AUTH_ACCESS_TABLE . "
WHERE group_id = $group_id
AND auth_mod = 0";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't delete auth access info", "", __LINE__, __FILE__, $sql);
}
//
// Delete any entries in auth_access, they are not required if user is becoming a
// global mod
//
$sql = "UPDATE " . AUTH_ACCESS_TABLE . "
SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0, auth_globalannounce = 0
WHERE group_id = $group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't update auth access", "", __LINE__, __FILE__, $sql);
}
}
$message = $lang['Auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_userauth'], '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
##
##------------[ Find ]--------------------------------------
##
// Update users level, reset to USER
//
$sql = "UPDATE " . USERS_TABLE . "
SET user_level = " . USER . "
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
}
}
$message = $lang['Auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_userauth'], '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
}
##
##-------------[ After, Add ]--------------------------------
##
## // Add this part if you DO NOT have the Global Announcement Mod installed
##
else if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'user' && $user_level == GLOBAL_MOD )
{
//
// Make global mod a user (if already global mod) ... ignore if you're trying
// to change yourself from a global mod to user!
//
if ( $userdata['user_id'] != $user_id )
{
$sql = "UPDATE " . AUTH_ACCESS_TABLE . "
SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0
WHERE group_id = $group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update auth access', '', __LINE__, __FILE__, $sql);
}
//
// Update users level, reset to USER
//
$sql = "UPDATE " . USERS_TABLE . "
SET user_level = " . USER . "
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
}
}
$message = $lang['Auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_userauth'], '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
}
##
## // Or add this part if you HAVE the Global Announcement Mod installed
##
else if ( $mode == 'user' && $HTTP_POST_VARS['userlevel'] == 'user' && $user_level == GLOBAL_MOD )
{
//
// Make global mod a user (if already global mod) ... ignore if you're trying
// to change yourself from a global mod to user!
//
if ( $userdata['user_id'] != $user_id )
{
$sql = "UPDATE " . AUTH_ACCESS_TABLE . "
SET auth_view = 0, auth_read = 0, auth_post = 0, auth_reply = 0, auth_edit = 0, auth_delete = 0, auth_sticky = 0, auth_announce = 0, auth_globalannounce = 0
WHERE group_id = $group_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update auth access', '', __LINE__, __FILE__, $sql);
}
//
// Update users level, reset to USER
//
$sql = "UPDATE " . USERS_TABLE . "
SET user_level = " . USER . "
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user level', '', __LINE__, __FILE__, $sql);
}
}
$message = $lang['Auth_updated'] . '<br /><br />' . sprintf($lang['Click_return_userauth'], '<a href="' . append_sid("admin_ug_auth.$phpEx?mode=$mode") . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>');
}
##
##--------------[ Find ]-------------------------------------------
##
## // Note: You must do this three times!
##
AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")
##
##--------------[ Replace With ]-----------------------------------
##
## // Note: You must do this three times!
##
AND u.user_level NOT IN (" . USER . ", " . GLOBAL_MOD . ", " . ADMIN . ")
##
##--------------[ Find ]--------------------------------------------
##
WHERE u.user_level NOT IN (" . USER . ", " . ADMIN . ")
##
##--------------[ Replace With ]------------------------------------
##
WHERE u.user_level NOT IN (" . USER . ", " . GLOBAL_MOD . ", " . ADMIN . ")
##
##--------------[ Find ]--------------------------------------------
##
$is_admin = ( $mode == 'user' ) ? ( ( $ug_info[0]['user_level'] == ADMIN && $ug_info[0]['user_id'] != ANONYMOUS ) ? 1 : 0 ) : 0;
##
##--------------[ After, Add ]--------------------------------------
##
$is_global_mod = ( $mode == 'user' ) ? ( ( $ug_info[0]['user_level'] == GLOBAL_MOD && $ug_info[0]['user_id'] != ANONYMOUS ) ? 1 : 0 ) : 0;
$is_user = ( $mode == 'user' ) ? ( ( $ug_info[0]['user_level'] == USER || $ug_info[0]['user_level'] == MOD && $ug_info[0]['user_id'] != ANONYMOUS ) ? 1 : 0 ) : 0;
##
##--------------[ Find ]--------------------------------------------
##
s_user_type = ( $is_admin ) ? '<select name="userlevel"><option value="admin" selected="selected">' . $lang['Auth_Admin'] . '</option><option value="user">' . $lang['Auth_User'] . '</option></select>' : '<select name="userlevel"><option value="admin">' . $lang['Auth_Admin'] . '</option><option value="user" selected="selected">' . $lang['Auth_User'] . '</option></select>';
##
##--------------[ Replace With ]------------------------------------
##
$s_user_type = '<select name="userlevel">';
$s_user_type .= ($is_admin) ? '<option value="admin" selected=\"selected\">' . $lang['Auth_Admin'] . '</option>' : '<option value="admin">' . $lang['Auth_Admin'] . '</option>';
$s_user_type .= ($is_global_mod) ? '<option value="global_mod" selected=\"selected\">' . $lang['Auth_Global'] . '</option>' : '<option value="global_mod">' . $lang['Auth_Global'] . '</option>';
$s_user_type .= ($is_user) ? '<option value="user" selected=\"selected\">' . $lang['Auth_User'] . '</option>' : '<option value="user">' . $lang['Auth_User'] . '</option>';
$s_user_type .= '</select>';
##
##--------------[ Find ]--------------------------------------------
##
AND u.user_level NOT IN (" . MOD . ", " . ADMIN . ")
##
##--------------[ Replace With ]------------------------------------
##
AND u.user_level NOT IN (" . MOD . ", " . GLOBAL_MOD . ", " . ADMIN . ")
##
##--------------[ Find ]--------------------------------------------
##
$optionlist_acl = '<select name="private[' . $forum_id . ']">';
if ( $is_admin || $user_ary['auth_mod'] )
##
##--------------[ Replace With ]------------------------------------
##
$optionlist_acl = '<select name="private[' . $forum_id . ']">';
if ( $is_admin || $is_global_mod || $user_ary['auth_mod'] )
##
##--------------[ Find ]--------------------------------------------
##
if ( isset($auth_field_acl[$forum_id][$field_name]) && !($is_admin || $user_ary['auth_mod']) )
##
##--------------[ Replace With ]------------------------------------
##
if ( isset($auth_field_acl[$forum_id][$field_name]) && !($is_admin || $is_global_mod || $user_ary['auth_mod']) )
##
##--------------[ Find ]--------------------------------------------
##
else
{
if ( $is_admin || $user_ary['auth_mod'] )
{
$optionlist_acl_adv[$forum_id][$k] .= '<option value="1">' . $lang['ON'] . '</option>';
##
##--------------[ Replace With ]-------------------------------------
##
else
{
if ( $is_admin || $is_global_mod || $user_ary['auth_mod'] )
{
$optionlist_acl_adv[$forum_id][$k] .= '<option value="1">' . $lang['ON'] . '</option>';
##
##--------------[ Open ]---------------------------------------------
##
root/includes/auth.php
##
##--------------[ Find ]---------------------------------------------
##
$is_admin = ( $userdata['user_level'] == ADMIN && $userdata['session_logged_in'] ) ? TRUE : 0;
##
##--------------[ After, Add ]---------------------------------------
##
$is_global_mod = ( $userdata['user_level'] == GLOBAL_MOD && $userdata['session_logged_in'] ) ? TRUE : 0;
##
##--------------[ Find ]---------------------------------------------
##
$auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access, $is_admin) : 0;
##
##--------------[ Replace With ]-------------------------------------
##
$auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access, $is_global_mod || $is_admin) : 0;
##
##--------------[ Find ]---------------------------------------------
##
$auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin) : 0;
##
##--------------[ Replace With ]-------------------------------------
##
$auth_user[$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_global_mod || $is_admin) : 0;
##
##--------------[ Find ]---------------------------------------------
##
## // Don't do this part if you don't want to give global mods access to admin only forums
##
$auth_user[$key] = $is_admin;
##
##--------------[ Replace With ]-------------------------------------
##
## // Don't do this part if you don't want to give global mods access to admin only forums
##
$auth_user[$key] = $is_global_mod || $is_admin;
##
##--------------[ Find ]---------------------------------------------
##
$auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access[$f_forum_id], $is_admin) : 0;
##
##--------------[ Replace With ]-------------------------------------
##
$auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_ACL, $key, $u_access[$f_forum_id], $is_global_mod || $is_admin) : 0;
##
##--------------[ Find ]---------------------------------------------
##
$auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_admin) : 0;
##
##--------------[ Replace With ]-------------------------------------
##
$auth_user[$f_forum_id][$key] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_global_mod || $is_admin) : 0;
##
##--------------[ Find ]---------------------------------------------
##
## // Don't do this part if you don't want to give global mods access to admin only forums
##
$auth_user[$f_forum_id][$key] = $is_admin;
##
##--------------[ Replace With ]-------------------------------------
##
## // Don't do this part if you don't want to give global mods access to admin only forums
##
$auth_user[$f_forum_id][$key] = $is_global_mod || $is_admin;
##
##--------------[ Find ]---------------------------------------------
##
$auth_user['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_admin) : 0;
##
##--------------[ Replace With ]--------------------------------------
##
$auth_user['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access, $is_global_mod || $is_admin) : 0;
##
##--------------[ Find ]----------------------------------------------
##
$auth_user[$f_forum_id]['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_admin) : 0;
##
##--------------[ Replace With ]--------------------------------------
##
$auth_user[$f_forum_id]['auth_mod'] = ( $userdata['session_logged_in'] ) ? auth_check_user(AUTH_MOD, 'auth_mod', $u_access[$f_forum_id], $is_global_mod || $is_admin) : 0;
##
##--------------------------------------------------------------------
##
## // Don't do the rest if you don't want global mods to have access to admin only forums
##
##--------------[ Find ]----------------------------------------------
##
$result = $result || $is_admin;
##
##--------------[ Replace With ]--------------------------------------
##
$result = $result || $is_global_mod || $is_admin;
##
##--------------[ Find ]----------------------------------------------
##
$auth_user = $is_admin;
##
##--------------[ Replace With ]--------------------------------------
##
$auth_user = $is_global_mod || $is_admin;
##
##--------------------------------------------------------------------
##
## EoM