Hallo Forum,
ich benütze Joomlaboard 1.1.2.
Ich suche folgende Funktion:
Jedes mal wenn ein Benutzer ein neuen Beitrag ins Forum schreibt, sollen alle registrierten User eine Nachricht über einen neuen Beitrag bekommen.
Geht das?
Hallo Forum,
ich benütze Joomlaboard 1.1.2.
Ich suche folgende Funktion:
Jedes mal wenn ein Benutzer ein neuen Beitrag ins Forum schreibt, sollen alle registrierten User eine Nachricht über einen neuen Beitrag bekommen.
Geht das?
Ich möchte diesen Beitrag noch mal aufleben lassen, da ich genau das aktuell suche.
Die Registrierten Benutzer sollen eine Email bekommen, wenn jemand einen neuen Beitrag gepostet hat. ( bei mir aktuell Joomlaboard 1.1.4 )
Dazu hatte ich mal eine Funktion im früheren PhpBB "umgebogen" die eigentlich dazu diente den Moderatoren der Foren eben diese Funktion bereit zu stellen. Im Prinzip musste man da nur einen SQL-Query ändern.
Gibt es für das Joomlaboard eine ähnliche Funktion?
Suche genau die selbe Möglichkeit. Hat einer von euch mittlerweile eine Lösung dazu gefunden ?
Vielen Dank
Da habe ich doch glatt vergessen zu posten. Schließlich ist mir die Lösung selbst geglückt, aber nur unter Verwendung des Community Builders. Denn darüber kann jeder User selbst entscheiden ob er die Benachrichtungen bekommen möchte oder nicht.
Aber des Pudels Kern liegt in der "components/com_joomlaboard/post.php" zwischen Zeile 263 und Zeile 264 folgendes eingefügt:
Wenn sich jemand wundert: Das ist einfach kopiert von Zeile 218 bis 263 und angepasst.Code:// ************************* TDL ********************************** //Benachrichtigung an alle User ( wo cb_notify gesetzt ) if(true) { //clean up the message $mailmessage=smile::purify($message); $database->setQuery("SELECT * FROM #__comprofiler AS c" . "\n LEFT JOIN #__users as u" . "\n ON c.user_id=u.id " . "\n WHERE c.cb_notify= '1'"); $subsList=$database->loadObjectList(); //construct a useable URL $messageUrl=sefRelToAbs($mosConfig_live_site."/index.php?option=com_joomlaboard&Itemid=$Itemid&func=view&catid=$catid&id=$pid")."#$pid"; if(count($subsList)>0){//we got more than 0 subscriptions require_once(JB_ABSPATH.'/sb_mail.php'); // include sbMail class for mailing foreach($subsList as $subs){ //$mailsubject = "$_COM_A_NOTIFICATION $board_title"; $mailsubject = "[ www.cnws03.de ] - New Post - ".stripslashes($messagesubject).""; $msg = "Hallo $subs->name,\n\n"; $msg .= "es gibt eine neue Nachricht im $board_title\n"; $msg .= "Betreff: '".stripslashes($messagesubject)."' im Forum: '".stripslashes($catName)."'\n"; $msg .= "Absender: ". stripslashes($sb_authorname) . "\n\n"; $msg .= "URL: $messageUrl\n\n"; $msg .= "------------[". stripslashes($sb_authorname) . " schrieb]-------------\n\n"; $msg .= stripslashes($mailmessage) . "\n\n"; $msg .= "------------[ende]-------------\n"; $msg .= "\n\n"; $msg .= "Bitte antworte nicht auf diese Email, da diese automatisch generiert wurde.\n"; $msg .= "\n\n"; $msg .= "Um die Benachrichtigung abzuschalten, deaktiviere in deinem Profil unter *Kontaktinfo* den Punkt *Bei allen Postings benachrichtigen*.\n"; $msg .= "\n\n\n\n\n"; $msg .= "** www.cnws03.de **\n"; $msg .= "** Joomlaboard Component = the Two ***** M-Factory - http://www.tsmf.net **"; if($ip != "127.0.0.1" && $my_id != $subs->id){//don't mail yourself mosmail($sbConfig['email'],"Forum at ". $_SERVER['SERVER_NAME'],$subs->email,$mailsubject,$msg); } } } }
Vielleicht gibt das ja schon einen kleinen Hinweis. Wenn eine ausführliche "Anleitung" gewünscht ist, kann ich die mal in einer ruhigen Stunde nachliefern.
Soviel nur mal auf die Schnelle.
Vielen Dank schonmal für den Lösungsvorschlag.
Gibts auch noch ne Möglichkeit ohne den CB ? Quasi von Hause aus oder ein reiner Joomlaboard Hack ?![]()
Also im Grunde genommen, ist das das gleiche Schema auch ohne CB.
Ich wollte halt nur eine Möglichkeit haben, dass ich das per User festlegen kann. Als kleines "Extra" kann das so auch jeder Benutzer selbst einstellen.
Sonst könnte man noch ein Feld in die Benutzerdatenbank einfügen und je mit einer "0" oder "1" versehen. Das müsste dann im Query angepasst werden:
Wäre dann vielleicht sowas in etwa ( wenn das Feld "notify" heißt )PHP-Code:$database->setQuery("SELECT * FROM #__comprofiler AS c"
. "\n LEFT JOIN #__users as u"
. "\n ON c.user_id=u.id "
. "\n WHERE c.cb_notify= '1'");
Über PHPMyadmin ist es ja noch "relativ" komfortabel diese Einstellung direkt in der Datenbank zu verwalten.PHP-Code:$database->setQuery("SELECT * FROM #__users AS u"
. "\n WHERE u.notify= '1'");
Hallo!
Habe versucht Deinen Vorschlag, aus dem Joomla-Forum umzusetzen aber es funktioniert irgendwie nicht.
Bin auch nicht so megaerfahren mit diesen Codes. Hab den Code in die post.php des Joomlaboard eingefügt.
Dann habe ich im CBE ein Field mit der E-mail Benachrichtung zur Auswahl erstellt, aber es geht irgendwie nicht.
Was mach ich falsch bzw. muss ich den Code noch für mich anpassen oder in der DB was verändern?
Wäre nett wenn Du mir irgenwie auf die Sprünge helfen könntest!
Danke & lg Loona
Eventuell bringt es ja auch anderen Leuten was, daher finde ich das praktisch die Sache direkt im Forum zu klären.
Du musst bei "meiner" Lösung im Prinzip drei Dinge durchführen:
1. Das Notify Feld im Community Builder über den Field Manager anlegen. Bei mir heißt das Feld "notify" und ist eine Checkbox.
2. Den o.g. Code in die post.php einfügen; und zwar _vor_ "//Now manage the mail for moderators (only if configured" ) das ist direkt _nach_ Zeile 263
3. .... hmm ... Ich glaube es gibt keinen dritten Punkt![]()
Aber so funktioniert es bei mir. In der DB braucht man dann auch nichts mehr modifizieren, dass hat der CB schon gemacht.
Wenn es bei Dir nicht funktioniert, dann poste doch mal bitte genau, was Du gemacht hast.
Hallo!
Kein Problem, wenn es eine Lösung gibt hätte ich es sowieso hier gepostet!
1.) Das habe ich wie bereits erwähnt im Fieldmanager angelegt. Meines heißt ebenfalls cb_notify und ist eine Kontaktinfo mit Auswahlmöglichkeit Ja/Nein. Es wird auch bei der Registrierung usw. angezeigt.
2.) Habe ich ebenfalls so gemacht. Siehe Code ab 263:
Code:// ************************* TDL ********************************** //Benachrichtigung an alle User ( wo cb_notify gesetzt ) if(true) { //clean up the message $mailmessage=smile::purify($message); $database->setQuery("SELECT * FROM #__comprofiler AS c" . "\n LEFT JOIN #__users as u" . "\n ON c.user_id=u.id " . "\n WHERE c.cb_notify= '1'"); $subsList=$database->loadObjectList(); //construct a useable URL $messageUrl=sefRelToAbs($mosConfig_live_site."/index.php?option=com_joomlaboard&Itemid=$Itemid&func=view&catid=$catid&id=$pid")."#$pid"; if(count($subsList)>0){//we got more than 0 subscriptions require_once(JB_ABSPATH.'/sb_mail.php'); // include sbMail class for mailing foreach($subsList as $subs){ //$mailsubject = "$_COM_A_NOTIFICATION $board_title"; $mailsubject = "[ www.mein-website.com ] - New Post - ".stripslashes($messagesubject).""; $msg = "Hallo $subs->name,\n\n"; $msg .= "es gibt eine neue Nachricht im $board_title\n"; $msg .= "Betreff: '".stripslashes($messagesubject)."' im Forum: '".stripslashes($catName)."'\n"; $msg .= "Absender: ". stripslashes($sb_authorname) . "\n\n"; $msg .= "URL: $messageUrl\n\n"; $msg .= "------------[". stripslashes($sb_authorname) . " schrieb]-------------\n\n"; $msg .= stripslashes($mailmessage) . "\n\n"; $msg .= "------------[ende]-------------\n"; $msg .= "\n\n"; $msg .= "Bitte antworte nicht auf diese Email, da diese automatisch generiert wurde.\n"; $msg .= "\n\n"; $msg .= "Um die Benachrichtigung abzuschalten, deaktiviere in deinem Profil unter *Kontaktinfo* den Punkt *Bei allen Postings benachrichtigen*.\n"; $msg .= "\n\n\n\n\n"; $msg .= "** www.meine-website.com **\n"; $msg .= "** Joomlaboard Component = the Two ***** M-Factory - http://www.tsmf.net **"; if($ip != "127.0.0.1" && $my_id != $subs->id){//don't mail yourself mosmail($sbConfig['email'],"Forum at ". $_SERVER['SERVER_NAME'],$subs->email,$mailsubject,$msg); } } } } //Now manage the mail for moderators (only if configured) if($sbConfig['mailmod'] == '1') {//they're configured //get the proper user credentials for each moderator for this forum
3.) Funktioniert leider nicht!
LG Loona![]()
Info:
CBE-Beta1-1/2 0.6236pk
Joomlaboard 1.1.4 Stable
Das ist wirklich schwierig.
Ist denn auch bei allen Benutzern das "cb_notify" auf '1' ?
Weil durch diese Zeile, bekommst du selbst keine Nachricht wenn du gepostet hast :
Wenn das nicht weiterhilft, dann sollte man mal in einem Testsystem debuggen.Code:if($ip != "127.0.0.1" && $my_id != $subs->id){//don't mail yourself
Um zu kontrollieren ob der überhaupt in die Abfrage springt, schreibe ich dann dort an einer ungefährlichen Stelle ein
oder Ähnliches rein.Code:echo "<h1>TEST</h1>";
Gruß, T
Hey,
möchte das Thema noch einmal aufgreifen
Suche quasi eine umgekehrte Möglichkeit, sprich derjenige der den Beitrag erstellt soll festlegen können, ob registrierte User (diese erhalten bereits IMMER eine Benachrichtigung) über den neuen Beitrag informiert werden sollen.
Jemand eine Idee wie ich das bewerkstelligen kann?
Gruß,
Sand0r
Lesezeichen