Beiträge: 53
Themen: 15
Registriert seit: 21.10.2008
16.11.2008, 06:43
Ich habe nun schon etwas gesucht aber leider nichts im Admin Bereich und hier gefunden.
Gibt es eine Möglichkeit das Editieren von Beiträgen nur für eine gewisse Zeit nach dem Erstellen eines Beitrages zu ermöglichen?
Oder das immer nur ein Beitrag geändert werden kann, solange es keine Antwort darauf gibt?
Beiträge: 1.172
Themen: 78
Registriert seit: 31.12.2006
Guten Morgen.
Sieh dazu im Admin-CP:
Konfiguration ~> Einstellungen ~> Beitragserstellung ~> Bei Bearbeitungszeit die gewünschte Zeit einstellen
Bitte die
Suche u. die
Doku nutzen.
______________________________
mfg Murphy
Beiträge: 53
Themen: 15
Registriert seit: 21.10.2008
Ahh, vielen Dank. Machmal sieht man den Wald vor Bäumen nicht.
Ist es auch möglich, dass dann bei älteren Einträgen auch der Editierbutton verschwindet?
Beiträge: 1.172
Themen: 78
Registriert seit: 31.12.2006
Das dürfte mit einer kleinen If-Abfrage möglichsein. Wenn die eingestellte Editierzeit vorbei ist, wird der Button nicht mehr angezeigt.
Bitte die
Suche u. die
Doku nutzen.
______________________________
mfg Murphy
Beiträge: 25.766
Themen: 269
Registriert seit: 20.09.2005
Ersetze in der inc/functions_post.php:
PHP-Code:
if((is_moderator($fid, "caneditposts") || ($forumpermissions['caneditposts'] == 1 && $mybb->user['uid'] == $post['uid'])) && $mybb->user['uid'] != 0)
{
eval("\$post['button_edit'] = \"".$templates->get("postbit_edit")."\";");
}
durch:
PHP-Code:
$time = TIME_NOW;
if((is_moderator($fid, "caneditposts") || ($forumpermissions['caneditposts'] == 1 && $mybb->user['uid'] == $post['uid'] && ($mybb->settings['edittimelimit'] == 0 || $post['dateline'] >= ($time-($mybb->settings['edittimelimit']*60))))) && $mybb->user['uid'] != 0)
{
eval("\$post['button_edit'] = \"".$templates->get("postbit_edit")."\";");
}
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
02.04.2010, 12:09
(Dieser Beitrag wurde zuletzt bearbeitet: 02.04.2010, 12:29 von Jockl.)
Ich krame diesen Thread mal heraus, da ich gerade ausprobieren wollte, neben der allgemeinen Bearbeitungszeit, einer bestimmten Usergruppe eine abweichende Bearbeitungszeit einzuräumen.
Ist es denkbar, einer bestimmten Usergruppe eine abweichende Bearbeitungszeit zuzuordnen? Nur über eine Anpassung des o.a. Codes von Stefan scheint das nicht zu gehen. Über einen Tipp wäre ich sehr dankbar.
Ich nutze 1.4.11
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Der Code von Stefan ist nur für die Anzeige/Ausblendung des Buttons verantwortlich und greift nicht in den eigentlichen Mechanismus ein. Wenn du daran etwas ändern willst, ist auch diese zu ändern. Mit einfachen Mitteln geht es leider nicht.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
02.04.2010, 19:09
(Dieser Beitrag wurde zuletzt bearbeitet: 02.04.2010, 20:02 von Jockl.)
Wäre ich bei folgendem Code in der editpost.php schon mal richtig oder geht es noch mehr in die Tiefe? Vermutlich müsste auch noch die xmlhttp.php geändert werden?
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'] != 0 && $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);
}
}
Evtl. ließe sich dort noch zusätzlich eine Unterscheidung bzgl. Usergruppe einbauen. Bislang waren meine Versuche aber noch nicht erfolgreich.
Nachtrag:
mit entsprechenden Änderungen in der editpost.php und der xmlhttp.php habe ich es hin bekommen.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
(02.04.2010, 19:09)Jockl schrieb: mit entsprechenden Änderungen in der editpost.php und der xmlhttp.php habe ich es hin bekommen.
Magst du diese noch hier posten? Möglicherweise ist das für den ein oder anderen auch interessant.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
03.04.2010, 15:19
(Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2010, 16:44 von Jockl.)
(03.04.2010, 14:42)Michael schrieb: Magst du diese noch hier posten? Möglicherweise ist das für den ein oder anderen auch interessant.
jep, wollte es vorher nur ausführlich Testen.
Hier aber nun die Code-Änderungen:
Ziel der Änderungen ist, einer bestimmten Usergruppe eine von der Standartbearbeitungszeit abweichende Bearbeitungszeit für Beiträge zu erteilen. Der entsprechenden Usergruppe muss im ACP die Erlaubnis erteilt werden, Beiträge bearbeiten zu dürfen.
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'] != 0 && $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'] != 0 && $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'] != 0 && $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 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'] == 0 || $forumpermissions['caneditposts'] == 0 || $mybb->user['uid'] != $post['uid'] || $mybb->user['uid'] == 0 || $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'] != 0 && $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'] == 0 || $forumpermissions['caneditposts'] == 0 || $mybb->user['uid'] != $post['uid'] || $mybb->user['uid'] == 0 || $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'] != 0 && $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'] != 0 && $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);
}
}
Achtung: Stefans
Änderungen in der inc/functions_post.php sind in meinem Code
nicht enthalten!
Nachtrag
Sollen meine o.a. Codeänderung für mehrere Usergruppen gelten, wäre folgende Anpassung notwendig:
Ersetze jeweils in der editpost.php und xmlhttp.php
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)