Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
E-Mail Benachrichtungen ändern
#1
hallo,
ich suche eine möglichkeit den personen, die ein forum abonniert haben, jeden post in diesem forum zuzuschicken, nicht nur die neuen themen.

leider bin ich in php nicht gerade ein spezialist. ich habe die stellen gefunden, in der die personen, die ein einzelnes thema abonniert haben, benachrichtigt werden. und auch die stelle, an der die forenabonnierer bei einem neuen thema benachrichtigt werden.
meine frage: wie kopiere ich das letztere oben mit rein, dass das funktioniert?
vielleicht gibt es ja jemanden, der zeit und lust hat, sich das mal anzusehen...

fündig geworden bin ich in der inc/datahandler/post.php

würde mich über antworten sehr freuen.
gruß, melanie



um zeile 680 herum geht es um die benachrichtigung bei einer neuen antwort in einem bereits existierenden thread
PHP-Code:
    // Fetch any users subscribed to this thread and queue up their subscription notices
            
$query $db->query("
                SELECT u.username, u.email, u.uid, u.language
                FROM "
.TABLE_PREFIX."favorites f, ".TABLE_PREFIX."users u
                WHERE f.type='s' AND f.tid='
{$post['tid']}'
                AND u.uid=f.uid
                AND f.uid!='
{$mybb->user['uid']}'
                AND u.lastactive>'
{$thread['lastpost']}'
            "
);
            while(
$subscribedmember $db->fetch_array($query))
            {
.......... 

in der zeile 1059 werden die forenabonnenten bei einem neuen thema benachrichtigt. - Krieg ich das oben irgendwie mit rein?
PHP-Code:
// Queue up any forum subscription notices to users who are subscribed to this forum.
            
$excerpt my_substr($thread['message'], 0$mybb->settings['subscribeexcerpt']).$lang->emailbit_viewthread;
            
$query $db->query("
                SELECT u.username, u.email, u.uid, u.language
                FROM "
.TABLE_PREFIX."forumsubscriptions fs, ".TABLE_PREFIX."users u
                WHERE fs.fid='"
.intval($thread['fid'])."'
                AND u.uid=fs.uid
                AND fs.uid!='"
.intval($thread['uid'])."'
                AND u.lastactive>'
{$forum['lastpost']}'
            "
);
            while(
$subscribedmember $db->fetch_array($query))
            {
............ 
#2
Die User meines Forums (1.2) erhalten, wenn sie ein Thema abboniert haben, eine E-Mail-Nachricht mit folgendem Zusatz:

"Es könnte auch weitere Antworten zu diesem Thema geben. Du erhältst keine weitere Nachricht, bevor du das Forum besucht hast."

Wie kann ich es als Admin (oder ein User) abändern, dass er weitere Nachrichten erhält, auch wenn er das Forum zwischenzeitlich nicht besucht hat?

Danke für Hilfe!!!
#3
Gar nicht. Würde auch keinen Sinn machen. Mehr als ein Hinweis ist doch nicht notwendig.
#4
Na ja, die Antworten sind ja nun nicht sehr hilfreich...

Man liest dieses Thema immer wieder und viele Foren-Admins hätten gerne eine Funktion im Admin-Control um einzustellen, wann eine Benachrichtigung versendet wird:

a) immer
b) nur die erste, dann muss der User sich einmal anmelden, bevor weitere versandt werden
c) nie (warum auch immer, aber wer es brauchen kann...)

In vielen Forenprodukten gibt es dieses Feature, warum wird es nicht in myBBoard aufgenommen?

Ich habe diese Frage bereits gestellt und der unermüdliche Michael hat mir in diesem thread geholfen:

https://www.mybb.de/forum/showthread.php?tid=1821

Ich weiß allerdings nicht, ob das auch mit der neusten Version klappt, habe die 1.2.3 gerade erst aufgespielt und muss mich jetzt auch mal daran machen, die Änderungen nachzuziehen.

Gruß,

Guido
OK, und hier direkt der Nachtrag:

in der aktuellen Version 1.2.3 ist die newreply.php komplett anders aufgebaut, die im oben verlinkten thread angegebene Änderung könnt Ihr also in die Tonne kloppen.

Kann uns Hilfesuchenden jemand sagen, wo in der aktuellen 1.2.3 vor Erstellung der mailliste überprüft wird, ob ein User zwischenzeitlich angemeldet war und wenn nicht, deswegen von der mailliste ausgeschlossen wird?

Danke Euch Allen für Eure Unterstützung!

Gruß,

Guido
#5
Datei inc/datahandlers/posts.php, ab Zeile 685.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#6
Super, Michael, Danke Dir!

Habe also Zeile 691 auskommentiert, das müsste dann passen...

Gruß,

Guido
#7
So, habe das Problem jetzt mal bauernschlau gelöst!

In der Version 1.2.3. ist in der Datei inc/datahandlers/post.php ab Zeile 685 folgendes zu finden:

PHP-Code:
// Fetch any users subscribed to this thread and queue up their subscription notices
            
$query $db->query("
                SELECT u.username, u.email, u.uid, u.language
                FROM "
.TABLE_PREFIX."favorites f, ".TABLE_PREFIX."users u
                WHERE f.type='s' AND f.tid='
{$post['tid']}'
                AND u.uid=f.uid
                AND f.uid!='
{$mybb->user['uid']}'
                AND u.lastactive>'
{$thread['lastpost']}'
            "
); 

Diese Zeilen erstellen ein Array mit den usern, die eine mail über den neuen Beitrag erhalten sollen. Dabei werden die User herausgefiltert, die den Thread abonniert haben und die sich mind. einmal seit der letzten Benachrichtigungsmail angemeldet hatten.

Wer (wie ich) IMMER eine email an ALLE Forumsuser vermailen möchte (ja, solche Fälle gibt es eben, vor allem bei Foren mit einer kleineren Anzahl User, bei mir sind es 11 Leute und alle möchten immer über jeden Beitrag informiert werden), der ändert diese Passage folgendermaßen ab:

PHP-Code:
// !!!MODIFIED!!!
//Fetch any users subscribed to this thread and queue up their subscription notices
            
$query $db->query("
                SELECT u.username, u.email, u.uid, u.language
                FROM "
.TABLE_PREFIX."users u
            "
); 

Einziger Nachteil bei dieser Variante: der Autor bekommt ebenfalls eine Nachricht, aber das muss ja nicht schlecht sein...

Gruß,

Guido
#8
Sorry, Nachtrag!

Die oben beschriebene Änderung funktioniert nur bei neuen Antworten in existierenden threads, nicht bei neuen threads.

Dazu muss ein weiterer Abschnitt in der post.php abgeändert werden, und zwar in der Funktion "function validate_thread ()". Die Zeilennummer gebe ich hier nicht an, da es durch die obige Änderung evtl. nicht mehr die Original-Zeilennummer ist. Daher bitte nach folgendem Code suchen:

PHP-Code:
// Queue up any forum subscription notices to users who are subscribed to this forum.
            
$excerpt my_substr($thread['message'], 0$mybb->settings['subscribeexcerpt']).$lang->emailbit_viewthread;
            
$query $db->query("
                SELECT u.username, u.email, u.uid, u.language
                FROM "
.TABLE_PREFIX."forumsubscriptions fs, ".TABLE_PREFIX."users u
                WHERE fs.fid='"
.intval($thread['fid'])."'
                AND u.uid=fs.uid
                AND fs.uid!='"
.intval($thread['uid'])."'
                AND u.lastactive>'
{$forum['lastpost']}'
            "
); 

und durch folgenden ersetzen:

PHP-Code:
// Modified By GUIDO HAUER
// Queue up all users.
            
$excerpt my_substr($thread['message'], 0$mybb->settings['subscribeexcerpt']).$lang->emailbit_viewthread;
            
$query $db->query("
                SELECT u.username, u.email, u.uid, u.language
                FROM "
.TABLE_PREFIX."users u
            "
); 

Mit beiden Änderungen zusammen kommen jetzt in beiden Fällen emails an alle existierenden User.

Gruß,

Guido
#9
Hi,

ich hab ein ähnliches Problem und will deswegen keinen neuen Thread öffnen.

Ein User unseres Forums bekommt immer eine Nachricht, wenn etwas neues im Forum geschrieben wurde. Die Benachrichtungen sind aber im Profil für alles abgeschaltet (außer Popup bei neuer PN).
Weiß jemand woran das liegen kann? Ist nervig, da im Forum recht viel geschrieben wird uns sie täglich mehr als 40 Benachrichtungen bekommt.
So long,

Rebel Ace
#10
Die Abonnements werden verwaltet im Benutzer-CP -> Abonnierte Themen/Foren.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.