MyBB.de Forum
[Gelöst]Eigene Antwort unterbinden - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: [Gelöst]Eigene Antwort unterbinden (/thread-1575.html)

Seiten: Seiten: 1 2 3


[Gelöst]Eigene Antwort unterbinden - Jan - 28.03.2006

Gibt es einen MOD, der er unterbindet, das ein User auf seine eigenen Beiträge antwortet?


RE: Eigene Antwort unterbinden - Michael - 28.03.2006

Nein, eine solche Erweiterung ist mir nicht bekannt. Mit ein wenig PHP-Kenntnissen solltest du das aber schnell hinkriegen.

Denkanstoß:
Du musst ein Plugin erstellen, dass sich in die Datei newreply einbindet. Dort liest du per Query die Daten des letzten Beitrags des Themas aus und vergleichst die Benutzer-ID mit der des Benutzers, der eine Antwort schreiben will. Stimmt diese überein, gibst du eine Fehlermeldung aus:
PHP-Code:
error("Du kannst nicht auf deinen eigenen Beitrag antworten"); 



RE: Eigene Antwort unterbinden - Jan - 28.03.2006

Muss ich das nur in der newreplay ändern? Denn es gibt ja mehrere Möglichkeiten zu antworten.


RE: Eigene Antwort unterbinden - Michael - 28.03.2006

In der Datei newreply.php musst du einmal den Code einbauen, damit die Seite nicht aufgerufen werden kann, wenn ein Benutzer auf seinen Beitrag antworten will und ein zweites mal, damit ein in der Schnellantwortbox geschriebener Beitrag nicht gespeichert wird.


RE: Eigene Antwort unterbinden - Jan - 28.03.2006

Sorry, aber so ganz verstehe ich den Code dort nicht. Leider sind meine PHP Kenntnisse auch nicht so groß.

Kann ich irgendwo ausschreiben, das so ein feature sehr hilfreich wäre? Vielleicht hat einer ja Lust sowas zu machen.


RE: Eigene Antwort unterbinden - Michael - 28.03.2006

Hier ein Codeschnipsel (nicht getestet, daher keine Garantie), der deine Aufgabe erledigen sollte.

Öffne die Datei newreply.php und suche nach:
PHP-Code:
    $plugins->run_hooks("newreply_do_newreply_start"); 
Darunter einfügen:
PHP-Code:
    $query $db->query("SELECT uid FROM ".TABLE_PREFIX."posts WHERE tid = '".$tid."' ORDER BY dateline DESC LIMIT 0,1");
    
$lastposter $db->fetch_array($query);
    if(
$mybb->user['uid'] == $lastposter['uid']) {
        
error("Du kannst nicht auf deinen eigenen Beitrag antworten");
    } 



RE: Eigene Antwort unterbinden - Jan - 29.03.2006

Danke, geht wunderbar.

Ich hab mal was ergänzt.
PHP-Code:
// ################ Nicht auf eigene Beiträge antworten #########################

//    Führe diesen SQL Befehl aus:
/*
ALTER TABLE `mybb_forums` ADD `selfreply` VARCHAR( 1 ) NOT NULL DEFAULT '2';
*/
//    Nun kann der User in keinen Forum auf seinen beitrag antworten. Um dies jedoch für einige Foren zu erlauben, muss dieser befehl ausgeführt werden
/*
UPDATE `mybb_forums` SET `selfreply` = '1' WHERE `fid` =XX LIMIT 1 ;
*/
//        XX musst du hier mit der ID des Forums ändern, in dem du die eigene
//        Antwort erlauben willst.
// ##############################################################################
// Prüft das Forum
$query $db->query("SELECT selfreply FROM mybb_forums WHERE fid = '".$fid."'");
    
$selfreply $db->fetch_array($query);
if(
$selfreply['selfreply'] == "2")
{
// Ende der Prüfung

    //Nicht auf eigene Beiträge antworten können
$query $db->query("SELECT uid FROM ".TABLE_PREFIX."posts WHERE tid = '".$tid."' ORDER BY dateline DESC LIMIT 0,1");
    
$lastposter $db->fetch_array($query);
    if(
$mybb->user['uid'] == $lastposter['uid']) {
        
error("Du kannst nicht auf deinen eigenen Beitrag antworten");
    }
    
// Ende der Prüfung des Benutzers und Ausgabe der Meldung
}
// #################### Ende des Mods ########################################### 

Leider weiß ich noch nicht ganz so gut wie ein Plugin gebaut ist. Wenn ich des durchschaut hab, werde ich vlt einen machen, wo man dann im ACP angeben kann welche Foren erlaubt sind und welche nicht


RE: Eigene Antwort unterbinden - Jan - 29.03.2006

Wie kann man das nun in ein Plugin zusammenfassen?
Leider hilft mir Der Aufbau eines Plugins das nicht ganz weiter.
Gibt es nicht ein ganz simples Plugin, wo man nur noch SQL Befehle und den PHP Code austauschen muss? Ich würde gerne Plugins schreiben, aber verstehe nicht ganz wie es geht.


RE: Eigene Antwort unterbinden - Garlant - 29.03.2006

Hallo Jan,
In dieser Anleitung wird bereits alles gezeigt was nötig ist um ein Plugin zu erstellen.
Das einzige was da noch benötigt wird, ist der eigene php Code für das Plugin.
Noch mehr kann man schlecht vorgeben, da sich jedes Plugin in gewisser Weise unterscheidet.
Eine andere/weitere Möglichkeit wäre es, jemanden zu finden, der dir das Plugin schreibt oder mit dir alles durchkaut(am besten per ts/chat). Wink

Mfg Garlant


RE: Eigene Antwort unterbinden - Jan - 29.03.2006

Ja, ich wollte eigentlich aus deinem Code und meinem ein Plugin schreiben.
nur weiß ich halt nicht wie. Werde mir nochmal die anderen plugins anschauen und dann nochmal schauen ob es klappt.

Aber ein Frage noch dazu, was sind Hooks(Hacken)? An welchen muss ich zBsp diesen Code aufhängen?
Jan