Hi!
Einem Mod Moderator gib es schon auf Spanisch eine übersetzte Version davon auf Englisch und Deutsch, das ist meine Version.
Wenn der Mod installiert ist können bequem User als "Moderatoren" hinzugefügt oder entfernt werden.
Desweiteren können die jeweiligen Rechte des einzelnen "Moderators" über eine Matrix ausgewählt werden.
Diesen Mod kann man auch für/als erweiterte Userrechte einsetzen.
Rechte die zur Auswahl stehen:
.) Kategorien hinzufügen
.) nur Sub-Kategorien hinzufügen (funktioniert in verbindung mit "Kategorien bearbeiten")
.) Kategorien bearbeiten
.) Kategorierechte bearbeiten
.) Kategorien löschen
.) Bilder bearbeiten
.) Bilder löschen
.) Kommentare bearbeiten
.) Kommentare löschen
.) User hinzufügen
.) User bearbeiten
.) User löschen
.) eMail and User versenden
.) Status (für jeden Moderator individuell über ein Dropdown Feld einstellbar, sichtbar z.b. unter den jeweiligen Usernamen bei den Kommentaren)
1.) suche in der constants.php:
define('SCRIPT_VERSION', '1.7.11');
füge darunter ein:
// Moderator
define('MODERATOR_TABLE', $table_prefix.'moderator');
define('MODERATOR', 5);
define('MODERATOR_SAFE_LOGIN', 0);
2.) Kopiere die Datei "install_moderator.php" (Anhang) in deinen Root Ordner , und für sie als "Admin" aus.
3.) Kopiere die Dateien "moderator.php, categories_moderator.php, user_moderator.php" (Anhang) in deinen "admin" Order.
4.) suche in der global.php:
$new_cutoff = time() - (60 * 60 * 24 * $config['new_cutoff']);
füge darüber ein:
//#################### Start Mod Moderator ###########
$sql = "SELECT *
FROM ".MODERATOR_TABLE."
";
$result = $site_db->query($sql);
if($result){
while ($row = $site_db->fetch_array($result)) {
$moderator_access_array[$row['user_id']] = $row;
}
}
//#################### End Mod Moderator #############
5.) suche in der details.php:
elseif ($comment_row[$i][$user_table_fields['user_level']] == ADMIN) {
füge darüber ein:
//############## Start Moderator #########################
if ($moderator_access_array[$comment_row[$i][$user_table_fields['user_id']]]['status']){
$comment_user_info = $moderator_access_array[$comment_row[$i][$user_table_fields['user_id']]]['status'];
}
//############## End Moderator ###########################
5.1) suche:
elseif ($is_image_owner) {
$admin_links .= ($config['user_edit_comments'] != 1) ? "" : "<a href=\"".$site_sess->url(ROOT_PATH."member.php?action=editcomment&".URL_COMMENT_ID."=".$comment_row[$i]['comment_id'])."\">".$lang['edit']."</a> ";
füge darüber ein:
//############## Start Moderator ###########################
if ($moderator_access_array[$user_info['user_id']]['editcomment']){
$admin_links .= "<a href=\"".$site_sess->url(ROOT_PATH."admin/index.php?goto=".urlencode("comments.php?action=editcomment&comment_id=".$comment_row[$i]['comment_id']))."\" target=\"_blank\">".$lang['edit']."</a> ";
}
if ($moderator_access_array[$user_info['user_id']]['deletecomment']){
$admin_links .= "<a href=\"".$site_sess->url(ROOT_PATH."admin/index.php?goto=".urlencode("comments.php?action=removecomment&comment_id=".$comment_row[$i]['comment_id']))."\" target=\"_blank\">".$lang['delete']."</a>";
}
//############## End Moderator ##############################
5.2) suche:
$site_template->register_vars("admin_links", $admin_links);
füge darüber ein:
//############## Start Moderator ###########################
if ($moderator_access_array[$user_info['user_id']]['editimage']){
$admin_links .= "<a href=\"".$site_sess->url(ROOT_PATH."admin/index.php?goto=".urlencode("images.php?action=editimage&image_id=".$image_id))."\" target=\"_blank\">".$lang['edit']."</a> ";
}
if ($moderator_access_array[$user_info['user_id']]['deleteimage']){
$admin_links .= "<a href=\"".$site_sess->url(ROOT_PATH."admin/index.php?goto=".urlencode("images.php?action=removeimage&image_id=".$image_id))."\" target=\"_blank\">".$lang['delete']."</a> ";
}
//############## END Moderator #############################
6.) suche in der includes/page_header:
"cp_link" => ($user_info['user_level'] != ADMIN) ? "" : "\n<p align=\"center\">[<a href=\"".$site_sess->url(ROOT_PATH."admin/index.php")."\">Admin Control Panel</a>]</p>\n",
ersetze es mit:
"cp_link" => ($user_info['user_level'] != ADMIN && $moderator_access_array[$user_info['user_id']]['user_level'] != MODERATOR) ? "" : "\n<p align=\"center\">[<a href=\"".$site_sess->url(ROOT_PATH."admin/index.php")."\">Admin Control Panel</a>]</p>\n",
7.) suche in der lang/deutsch/admin.php "?>" und füge darüber ein:
//################## Start Moderator #########################
$lang['nav_moderator_group'] = "Moderator verwalten";
$lang['nav_add_moderator'] = "Moderator hinzufügen";
$lang['nav_delete_moderator'] = "Moderator löschen";
$lang['nav_edit_moderator'] = "Moderator bearbeiten";
$lang['remove_moderator'] = "User von Moderatoren gelöscht";
$lang['no_moderator'] = "Kein Moderator vorhanden.";
//------------------------------------------------------------
$lang['moderator_addcat'] = "addcat";
$lang['moderator_addsubcat'] = "addsubcat";
$lang['moderator_editcat'] = "editcat";
$lang['moderator_editcat_permission'] = "editcat_permission";
$lang['moderator_deletecat'] = "deletecat";
$lang['moderator_editimage'] = "editimage";
$lang['moderator_deleteimage'] = "deleteimage";
$lang['moderator_editcomment'] = "editcomment";
$lang['moderator_deletecomment'] = "deletecomment";
$lang['moderator_adduser'] = "adduser";
$lang['moderator_edituser'] = "edituser";
$lang['moderator_deleteuser'] = "deleteuser";
$lang['moderator_emailuser'] = "emailuser";
$lang['moderator_status'] = "status";
$moderator_status_list = array(
'Member' => 'Member',
'Co-Admin' => 'Co-Admin',
'Support-Team' => 'Support-Team',
'Support' => 'Support',
'Team' => 'Team',
'Moderator' => 'Moderator'
);
//################## End Moderator ###########################
8.) suche in der admin/global.php:
if (defined('ADMIN_SAFE_LOGIN') && ADMIN_SAFE_LOGIN == 1) {
if ($user_info['user_level'] != GUEST && $user_info['user_level'] == ADMIN && isset($HTTP_POST_VARS['loginusername'])) {
setcookie("adminon", 1, 0, '/');
$HTTP_COOKIE_VARS['adminon'] = 1;
}
else {
if ($user_info['user_level'] == GUEST || $user_info['user_level'] == USER || $user_info['user_level'] == USER_AWAITING) {
$HTTP_COOKIE_VARS['adminon'] = 0;
}
}
if (!isset($HTTP_COOKIE_VARS['adminon']) || $HTTP_COOKIE_VARS['adminon'] == 0) {
$user_info['user_level'] = GUEST;
}
else {
if ($user_info['user_level'] != GUEST && $user_info['user_level'] == ADMIN && isset($HTTP_POST_VARS['loginusername'])) {
setcookie("adminon", 1, 0, '/');
$HTTP_COOKIE_VARS['adminon'] = 1;
}
}
}
ersetze es mit:
//######################## Start Moderator ################################
if ((defined('ADMIN_SAFE_LOGIN') && ADMIN_SAFE_LOGIN == 1) || (defined('MODERATOR_SAFE_LOGIN') && MODERATOR_SAFE_LOGIN == 1)){
if ($user_info['user_level'] != GUEST && $moderator_access_array[$user_info['user_id']]['user_level'] != MODERATOR && $user_info['user_level'] == ADMIN && isset($HTTP_POST_VARS['loginusername'])) {
setcookie("adminon", 1, 0, '/');
$HTTP_COOKIE_VARS['adminon'] = 1;
}
else {
if ($user_info['user_level'] == GUEST || $moderator_access_array[$user_info['user_id']]['user_level'] == MODERATOR || $user_info['user_level'] == USER || $user_info['user_level'] == USER_AWAITING) {
$HTTP_COOKIE_VARS['adminon'] = 0;
}
}
if ($user_info['user_level'] != GUEST && $moderator_access_array[$user_info['user_id']]['user_level'] == MODERATOR && $user_info['user_level'] != ADMIN && isset($HTTP_POST_VARS['loginusername'])) {
setcookie("moderatoron", 1, 0, '/');
$HTTP_COOKIE_VARS['moderatoron'] = 1;
}
else {
if ($user_info['user_level'] == GUEST || $user_info['user_level'] == ADMIN || $user_info['user_level'] == USER || $user_info['user_level'] == USER_AWAITING) {
$HTTP_COOKIE_VARS['moderatoron'] = 0;
}
}
if (!isset($HTTP_COOKIE_VARS['adminon']) || $HTTP_COOKIE_VARS['adminon'] == 0 || !isset($HTTP_COOKIE_VARS['moderatoron']) || $HTTP_COOKIE_VARS['moderatoron'] == 0) {
$user_info['user_level'] = GUEST;
}
else {
if ($user_info['user_level'] != GUEST && $moderator_access_array[$user_info['user_id']]['user_level'] != MODERATOR && $user_info['user_level'] == ADMIN && isset($HTTP_POST_VARS['loginusername'])) {
setcookie("adminon", 1, 0, '/');
$HTTP_COOKIE_VARS['adminon'] = 1;
}
else {
if ($user_info['user_level'] != GUEST && $moderator_access_array[$user_info['user_id']]['user_level'] == MODERATOR && $user_info['user_level'] != ADMIN && isset($HTTP_POST_VARS['loginusername'])) {
setcookie("moderatoron", 1, 0, '/');
$HTTP_COOKIE_VARS['moderatoron'] = 1;
}
}
}
}
//######################## End Moderator ################################
8.1) suche:
if ($user_info['user_level'] != ADMIN) {
ersetze es mit:
if ($user_info['user_level'] != ADMIN && $moderator_access_array[$user_info['user_id']]['user_level'] != MODERATOR) { // ##### MODERATOR
9.) suche in der admin/email.php:
if ($action == "sendemails") {
füge darüber ein:
if ($user_info['user_level'] == ADMIN || $moderator_access_array[$user_info['user_id']]['emailuser']){ // ##### moderator
9.1) suche:
show_admin_footer();
füge darüber ein:
}
10.) suche in der admin/comments:
if ($action == "deletecomment") {
füge darüber ein:
if ($user_info['user_level'] == ADMIN || $moderator_access_array[$user_info['user_id']]['deletecomment']){ // ##### Moderator
10.1) suche:
if ($action == "updatecomment") {
füge darüber ein:
}// ##### moderator
if ($user_info['user_level'] == ADMIN || $moderator_access_array[$user_info['user_id']]['editcomment']){ // ##### moderator
10.2) suche:
if ($action == "modifycomments") {
füge darüber ein:
}// ##### moderator
11.) suche in der admin/index.php:
show_nav_header($lang['nav_categories_main']);
füge darüber ein:
if ($user_info['user_level'] == ADMIN){ // ##### moderator
11.1) suche:
show_nav_header($lang['nav_general_main']);
füge darüber ein:
//################## Start Moderator ###########################
show_nav_header($lang['nav_moderator_group']);
show_nav_option($lang['nav_add_moderator'], "moderator.php?action=addmoderator");
show_nav_option($lang['nav_delete_moderator'], "moderator.php?action=deletemoderator");
show_nav_option($lang['nav_edit_moderator'], "moderator.php?action=editpermissions");
//################## End Moderator #############################
11.2) suche:
@closedir($handle);
}
füge darunter ein:
} // ############## End if admin, for moderator
//################# Start Moderator ##################################
if($moderator_access_array[$user_info['user_id']]['user_level'] == MODERATOR) {
if($moderator_access_array[$user_info['user_id']]['editcat'] || $moderator_access_array[$user_info['user_id']]['addcat']) {
show_nav_header($lang['nav_categories_main']);
if($moderator_access_array[$user_info['user_id']]['editcat']){
show_nav_option($lang['nav_categories_edit'], "categories_moderator.php?action=modifycats");
}
if($moderator_access_array[$user_info['user_id']]['addcat']){
show_nav_option($lang['nav_categories_add'], "categories_moderator.php?action=addcat");
}
}
if($moderator_access_array[$user_info['user_id']]['editimage']) {
show_nav_header($lang['nav_images_main']);
show_nav_option($lang['nav_images_edit'], "images.php?action=modifyimages");
}
if($moderator_access_array[$user_info['user_id']]['editcomment'] || $moderator_access_array[$user_info['user_id']]['deletecomment']) {
show_nav_header($lang['nav_comments_main']);
show_nav_option($lang['nav_comments_edit'], "comments.php?action=modifycomments");
}
if($moderator_access_array[$user_info['user_id']]['emailuser'] || $moderator_access_array[$user_info['user_id']]['edituser']) {
show_nav_header($lang['nav_users_main']);
if($moderator_access_array[$user_info['user_id']]['edituser']) {
show_nav_option($lang['nav_users_edit'], "users_moderator.php?action=modifyusers");
}
if($moderator_access_array[$user_info['user_id']]['adduser']) {
if (!defined('USER_INTEGRATION')) {
show_nav_option($lang['nav_users_add'], "users_moderator.php?action=addusers");
}
}
if($moderator_access_array[$user_info['user_id']]['emailuser']){
if (!defined('USER_INTEGRATION')) {
show_nav_option($lang['nav_users_email'], "email.php?action=emailusers");
}
}
}
}
//#################### End Mod Moderator ##################################
12.) suche in der admin/images.php:
if ($action == "deleteimage") {
füge darüber ein:
if ($user_info['user_level'] == ADMIN || $moderator_access_array[$user_info['user_id']]['deleteimage']){ // ##### Moderator
12.1)suche:
if ($action == "updateimage") {
füge darüber ein:
} // ##### moderator
if ($user_info['user_level'] == ADMIN || $moderator_access_array[$user_info['user_id']]['editimage']){ // ##### Moderator
12.2) suche:
if ($action == "saveimages") {
füge darüber ein:
} // ##### moderator
12.3) suche:
show_text_link($lang['edit'],"images.php?action=editimage&image_id=".$image_row['image_id']);
show_text_link($lang['delete'],"images.php?action=removeimage&image_id=".$image_row['image_id']);
ersetze es mit:
if ($user_info['user_level'] == ADMIN || $moderator_access_array[$user_info['user_id']]['editimage']){ //##### moderator
show_text_link($lang['edit'],"images.php?action=editimage&image_id=".$image_row['image_id']);
}
if ($user_info['user_level'] == ADMIN || $moderator_access_array[$user_info['user_id']]['deleteimage']){ //##### moderator
show_text_link($lang['delete'],"images.php?action=removeimage&image_id=".$image_row['image_id']);
}
Die Felder für die jeweiligen Rechte die ihr nicht benötigt könnt ihr in der "lang/admin.php" durch voranstellen von "//" abwählen, diese Felder werden dann in der Auswahl "Moderator Bearbeiten"
nicht angezeigt.
mfg Andi