Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
unterschiedliche Bearbeitungszeiten für Beiträge
#1
Den Beitrag habe ich zwar schon hier gepostet, möchte ihn aber auch hier einsetzen. Vielleicht kann es jemand brauchen. Wink


Im ACP kann unter Beitragserstellung in der Konfiguration die Bearbeitungszeit eingestellt werden, während der User ihre Beiträge editieren können.
In meinem Fall wollte ich aber einer bestimmten Usergruppe eine davon abweichende Bearbeitungszeit einräumen. Mit nachfolgenden Codeänderungen kann das realsisiert werden.

In den nachfolgenden Zeilen wurde für die Usergruppe 11 eine Bearbeitungszeit von 30 Minuten eingeräumt.

Suche in der editpost.php nach
PHP-Code:
    if(!is_moderator($fid"caneditposts"))
    {
        if(
$thread['closed'] == 1)
        {
            
error($lang->redirect_threadclosed);
        }
        if(
$forumpermissions['caneditposts'] == 0)
        {
            
error_no_permission();
        }
        if(
$mybb->user['uid'] != $post['uid'])
        {
            
error_no_permission();
        }
        
// Edit time limit
        
$time TIME_NOW;
        if(
$mybb->settings['edittimelimit'] != && $post['dateline'] < ($time-($mybb->settings['edittimelimit']*60)))
        {
            
$lang->edit_time_limit $lang->sprintf($lang->edit_time_limit$mybb->settings['edittimelimit']);
            
error($lang->edit_time_limit);
        }
    } 
und ersetze es durch
PHP-Code:
    if(!is_moderator($fid"caneditposts"))
    {
    
// Zeit in Minuten, in der Beiträge innerhalb der entspr. Usergruppe bearbeitet werden können
    
$gid_edittime 30;
    
// entspr. Usergruppe
    
$gid_usergroup 11;
        if(
$thread['closed'] == 1)
        {
            
error($lang->redirect_threadclosed);
        }
        if(
$forumpermissions['caneditposts'] == 0)
        {
            
error_no_permission();
        }
        if(
$mybb->user['uid'] != $post['uid'])
        {
            
error_no_permission();
        }
        
// Edit time limit
        
$time TIME_NOW;
        if(
$mybb->settings['edittimelimit'] != && $post['dateline'] < ($time-($mybb->settings['edittimelimit']*60)) && $mybb->user['usergroup'] != $gid_usergroup)
        {
            
$lang->edit_time_limit $lang->sprintf($lang->edit_time_limit$mybb->settings['edittimelimit']);
            
error($lang->edit_time_limit);
        }
        if(
$mybb->settings['edittimelimit'] != && $post['dateline'] < ($time-($gid_edittime*60)) && $mybb->user['usergroup'] == $gid_usergroup)
        {
            
$lang->edit_time_limit $lang->sprintf($lang->edit_time_limit$gid_edittime);
            
error($lang->edit_time_limit);
        }
    } 

Suche in der xmlhttp.php
PHP-Code:
else if($mybb->input['action'] == "edit_post"
und innerhalb dieser if-Abfrage nach
PHP-Code:
    // If this user is not a moderator with "caneditposts" permissions.
    
if(!is_moderator($forum['fid'], "caneditposts"))
    {
        
// Thread is closed - no editing allowed.
        
if($thread['closed'] == 1)
        {
            
xmlhttp_error($lang->thread_closed_edit_message);
        }
        
// Forum is not open, user doesn't have permission to edit, or author doesn't match this user - don't allow editing.
        
else if($forum['open'] == || $forumpermissions['caneditposts'] == || $mybb->user['uid'] != $post['uid'] || $mybb->user['uid'] == || $mybb->user['suspendposting'] == 1)
        {
            
xmlhttp_error($lang->no_permission_edit_post);
        }
        
// If we're past the edit time limit - don't allow editing.
        
else if($mybb->settings['edittimelimit'] != && $post['dateline'] < (TIME_NOW-($mybb->settings['edittimelimit']*60)))
        {
            
$lang->edit_time_limit $lang->sprintf($lang->edit_time_limit$mybb->settings['edittimelimit']);
            
xmlhttp_error($lang->edit_time_limit);
        }
    } 
und ersetze es durch
PHP-Code:
    // If this user is not a moderator with "caneditposts" permissions.
    
if(!is_moderator($forum['fid'], "caneditposts"))
    {
    
// Zeit in Minuten, in der Beiträge innerhalb der entspr. Usergruppe bearbeitet werden können
    
$gid_edittime 30;
    
// entspr. Usergruppe
    
$gid_usergroup 11;
        
// Thread is closed - no editing allowed.
        
if($thread['closed'] == 1)
        {
            
xmlhttp_error($lang->thread_closed_edit_message);
        }
        
// Forum is not open, user doesn't have permission to edit, or author doesn't match this user - don't allow editing.
        
else if($forum['open'] == || $forumpermissions['caneditposts'] == || $mybb->user['uid'] != $post['uid'] || $mybb->user['uid'] == || $mybb->user['suspendposting'] == 1)
        {
            
xmlhttp_error($lang->no_permission_edit_post);
        }
        
// If we're past the edit time limit - don't allow editing.
        
else if($mybb->settings['edittimelimit'] != && $post['dateline'] < (TIME_NOW-($mybb->settings['edittimelimit']*60)) && $mybb->user['usergroup'] != $gid_usergroup)
        {
            
$lang->edit_time_limit $lang->sprintf($lang->edit_time_limit$mybb->settings['edittimelimit']);
            
xmlhttp_error($lang->edit_time_limit);
        }
        else if(
$mybb->settings['edittimelimit'] != && $post['dateline'] < (TIME_NOW-($gid_edittime*60)) && $mybb->user['usergroup'] == $gid_usergroup)
        {
            
$lang->edit_time_limit $lang->sprintf($lang->edit_time_limit$gid_edittime);
            
xmlhttp_error($lang->edit_time_limit);
        }
    } 


Sollen die o.a. Codeänderung für mehrere Usergruppen gelten, wäre folgende Anpassung notwendig:

Ersetze
PHP-Code:
    // entspr. Usergruppe
    
$gid_usergroup 11
durch
PHP-Code:
    // entspr. Usergruppen durch ein Komma trennen
    
$gid_usergroup = array(11,12); 
und
PHP-Code:
$mybb->user['usergroup'] != $gid_usergroup 
durch
PHP-Code:
!in_array($mybb->user['usergroup'], $gid_usergroup
und
PHP-Code:
$mybb->user['usergroup'] == $gid_usergroup 
durch
PHP-Code:
in_array($mybb->user['usergroup'], $gid_usergroup
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren


Nachrichten in diesem Thema
unterschiedliche Bearbeitungszeiten für Beiträge - von Jockl - 03.04.2010, 17:56

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Unterschiedliche Codebuttons in bestimmten Foren (fid) cthulhu 3 1.925 12.04.2016, 10:53
Letzter Beitrag: MrBrechreiz
  Plugin für mehrere unterschiedliche News, Ankündigungen... clayton 0 975 19.10.2014, 18:38
Letzter Beitrag: clayton
  Plugin: Unterschiedliche Darstellung einzelner Foren MaR-V-iN 3 2.017 13.05.2010, 19:45
Letzter Beitrag: StefanT
  Unterschiedliche Header unterschidliche Benutzergruppen zuweissen? blueberlin 9 3.965 22.02.2009, 21:54
Letzter Beitrag: blueberlin