MyBB.de Forum
Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html)
+--- Thema: Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? (/thread-23929.html)



Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? - icarus - 15.10.2011

Moin!

Ich war die letzten Wochen nicht ganz untätig und habe ein Plugin geschrieben, das MyBB um eine echte Mailinglistenfunktionalität erweitert. D.h. Beiträge im Forum werden per Mail zugestellt. Wenn man auf die Mail antwortet, wird die Antwort ins Forum gestellt.

Aus Faulheit nutze ich zum Bestellen und Abbestellen der Mailinglisten die Tabellen mit den Abonnement-Einstellungen. Jetzt muss ich aber natürlich irgendwie verhindern, dass bei neuen Threads eine Mail an den User erstellt wird. Dazu habe ich die folgende Funktionalität verwendet:

PHP-Code:
$plugins->add_hook('send_mail_queue_mail''syncom_send_mail_queue_mail');

function 
syncom_send_mail_queue_mail($query)
{
        global 
$db;

        
$subuser = array();
        
$query2 $db->simple_select("users""uid, email""syncom_mailinglist");
        while (
$user $db->fetch_array($query2))
                
$subuser[$user["uid"]] =$user["email"];

        while(
$email $db->fetch_array($query)) {
                
// Delete the message from the queue
                
if (in_array($email['mailto'], $subuser) and ($email['mailfrom'] == ''))
                        
$db->delete_query("mailqueue""mid='{$email['mid']}'");
        }


Das scheint aber nur teilweise zu funktionieren. Gibt es eine zuverlässigere Methode?

Michael


RE: Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? - StefanT - 16.10.2011

Soweit ich gesehen habe, gibt es beim Versenden keinen Hook, was die Sache natürlich kompliziert macht... Auf Anhieb fällt mir jedenfalls keine saubere Lösung ein, ohne Dateien zu verändern.


RE: Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? - icarus - 17.10.2011

(16.10.2011, 15:46)StefanT schrieb: Auf Anhieb fällt mir jedenfalls keine saubere Lösung ein, ohne Dateien zu verändern.
Was mir dazu eben noch auffiel: Wenn man eine Mail wegen einer neuen Nachricht im Forum erhält, steht da:
Zitat:Es kann bereits auch weitere neue Themen und Antworten geben. Du erhältst jedoch keine weitere Nachricht, bis du das Forum besucht hast.
Wie genau wird das eigentlich geprüft? Dann könnte ich ggf. an geeigneter Stelle den entsprechenden Wert setzen. Es ist nur die Frage, welches Feld und welcher Inhalt. Und, wo (d.h. bei welcher Aktion) ich das Feld am Besten setze.

Michael


RE: Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? - StefanT - 17.10.2011

Ich denke, hier wird nur der lastvisit-Wert des Users mit dem lastpost-Wert des Beitrags vergleichen. Beides lässt sich wohl kaum nutzen.


RE: Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? - icarus - 17.10.2011

"lastpost" kann ich nicht ändern, aber wieso nicht "lastvisit"? Wie wird der gesetzt, damit keine neuen Beitragsmitteilungen kommen? Oder ist der Text falsch?

Michael


RE: Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten? - StefanT - 17.10.2011

Ich habe jetzt mal nachgeschaut, es ist lastactive. Der wird aber auch an mehreren anderen Stellen verwendet, z.B. beim Profil, bei der Erkennung von gelesenen Themen.
Ich würde sagen, eine Code-Änderung ist hier die bessere Lösung. Mit dem Patches-Plugin geht das auch recht komfortabel.