Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Verhindern, dass bestimmte User Mails wegen neuer Threads erhalten?
#1
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
Zitieren
#2
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.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
(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
Zitieren
#4
Ich denke, hier wird nur der lastvisit-Wert des Users mit dem lastpost-Wert des Beitrags vergleichen. Beides lässt sich wohl kaum nutzen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
"lastpost" kann ich nicht ändern, aber wieso nicht "lastvisit"? Wie wird der gesetzt, damit keine neuen Beitragsmitteilungen kommen? Oder ist der Text falsch?

Michael
Zitieren
#6
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.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren