Seite 1 von 1

Beitragsbearbeitungszeit für ein Forum aushebeln

Verfasst: 23.05.2013 09:01
von Maugrim
Hallo!

Ich habe in meinem Forum eingestellt, dass die Mitglieder ihre Beiträge nur 3 Stunden bearbeiten dürfen

allerdings habe ich ein Forum, in welchem ich gerne uneingeschränkt zulassen würde, dass die User ihre Beiträge bearbeiten dürfen.


Ich denke am ehesten komme ich da hin, wenn ich in der posting.php folgende Zeile einfach aushebel oder?

Code: Alles auswählen

    if (!($post_data['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time']))
    {
        trigger_error('CANNOT_EDIT_TIME');
    }
Da müsste man vorher noch abfragen, ob man in Forum Nr 14 bearbeiten will oder nicht
reicht das?
Und wie könnte ich das bewerkstelligen? Meine php-Kenntnisse halten sich leider in Grenzen :(

Code: Alles auswählen

    $edit_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_edit', $forum_id) || (
        $user->data['user_id'] == $poster_id &&
        $auth->acl_get('f_edit', $forum_id) &&
        !$row['post_edit_locked'] &&
        ($row['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time'])
    ))); 
Analog müsste dann dieser Teil aus der viewtopic.php auch geändert werden, damit das icon angezeigt wird

Re: Beitragsbearbeitungszeit für ein Forum aushebeln

Verfasst: 23.05.2013 13:31
von HabNurNeFrage
Hi,

ich glaube, die beiden Stellen müssten ausreichen.
Kannst Du ja ausprobieren, ob es schon reicht, wenn Du Folgendes machst:

1) Deinen Fund in posting.php ersetzen mit:

Code: Alles auswählen

    // Foren von Editzeitbeschränkung ausschließen (Edit Warnung für bestimmte Foren deaktivieren)
    
    $erlaubte_foren = array(24, 38, 71); // hier in den Klammern alle Foren IDs, die Du von der Zeitbeschränkung ausschließen willst
    
    if (!in_array($forum_id, $erlaubte_foren))
    {
        if (!($post_data['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time']))
        {
            trigger_error('CANNOT_EDIT_TIME');
        }
    }
    // Foren von Editzeitbeschränkung ausschließen (Edit Warnung für bestimmte Foren deaktivieren)      
2) Deinen Fund in viewtopic.php ersetzen mit:

Code: Alles auswählen

    // bestimmte Foren von Editzeitbeschränkung ausschließen
    
    $erlaubte_foren = array(24, 38, 71); // hier in den Klammern alle Foren IDs, die Du von der Edit-Beschränkung ausschließen willst
    
    if (!in_array($forum_id, $erlaubte_foren))
    {
        $edit_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_edit', $forum_id) || (
        $user->data['user_id'] == $poster_id &&
        $auth->acl_get('f_edit', $forum_id) &&
        !$row['post_edit_locked'] &&
        ($row['post_time'] > time() - ($config['edit_time'] * 60) || !$config['edit_time'])
        ))); 
    }
    
    if (in_array($forum_id, $erlaubte_foren))
    {
        $edit_allowed = ($user->data['is_registered'] && ($auth->acl_get('m_edit', $forum_id) || (
        $user->data['user_id'] == $poster_id &&
        $auth->acl_get('f_edit', $forum_id) &&
        !$row['post_edit_locked'] 
        ))); 
    }
    // bestimmte Foren von Editzeitbeschränkung ausschließen      
LG

Re: Beitragsbearbeitungszeit für ein Forum aushebeln

Verfasst: 24.05.2013 16:10
von Maugrim
Habs mal eingebaut :)
Wenns Probleme gibt, meld ich mich ^^

lieben Dank :)

Re: Beitragsbearbeitungszeit für ein Forum aushebeln

Verfasst: 26.04.2015 02:32
von redbull254
Hallo erstmal,

ich benötige auch die Möglichkeit, bestimmten Foren eine abweichende Bearbeitungszeit zuzuordnen. Wie kann ich nun für ein bestimmtes Forum vierundzwanzig (24) Stunden einstellen?

Re: Beitragsbearbeitungszeit für ein Forum aushebeln

Verfasst: 04.05.2015 23:46
von gn#36
In der Variablen $config['edit_time'] steht die Zeit in Sekunden. Du kannst vor beide oben genannten Stellen ohne dass du obige Änderung benötigst oder beeinflusst einfach folgendes einfügen:

Code: Alles auswählen

if(in_array($forum_id, array(1,2,3)))
{
    $config['edit_time'] = 84600; // 24*60*60 Sekunden
}
1,2,3 sind die IDs der Foren die du auf 24 Stunden setzen willst.

Falls du nur ein Forum ändern willst, dann kannst du auch if($forum_id == 1) statt der obigen if Zeile verwenden. Wenn du eine andere Zeit in Sekunden einsetzt kannst du beliebige Zeiten einsetzen. Wenn du mehrere Foren mit verschiedenen Zeiten ausstatten willst kannst du auch mehrere von diesen Abfragen hintereinander hängen (am besten aber dann die folgenden if durch elseif ersetzen, für die Übersichtlichkeit macht es ab einer gewissen Menge auch Sinn, eine Switch Anweisung zu verwenden statt if/elseif).

Re: Beitragsbearbeitungszeit für ein Forum aushebeln

Verfasst: 05.05.2015 02:54
von redbull254
Hallo gn#36,

vielen Dank für die ausführliche Erklärung. :)