Notification Mod: Nachricht nur bei neuem Thema

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
hmueller
Mitglied
Beiträge: 458
Registriert: 30.07.2002 10:39
Wohnort: Neuötting
Kontaktdaten:

Notification Mod: Nachricht nur bei neuem Thema

Beitrag von hmueller »

Hallo,

bezugnehmend auch auf
http://www.phpbb.de/viewtopic.php?p=75998#75998
hier noch einmal:

Wenn ich mir die Dateien des Notification-Mod ansehe, stelle ich fest, daß eine Benachrichtigung bei Erstellung eines neuen Themas und bei allen Antworten erfolgt.
Das wünsche ich nicht. Vielmehr soll nur bei einem neuen Thema eine Mail kommen, aber nicht automatisch bei jeder Antwort, da dies eine zu große Mail-Flut wäre. Wenn jemanden das Thema interessiert, kann er ja immer noch (wie auch ohne Mod möglich) den "Bei Antworten zu diesem Thema benachrichtigen"-Link anklicken.

Deshalb meine Frage:
a) hat irgendwer den Notification-Mod auf einem Board installiert, wo man sich mal ansehen kann, wie der funktioniert?

b) kann man das oben Geschilderte einstellen bzw. den Mod so umbauen?
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

0-Prob.

Die posting.php hat verschiedene Modi. Einer von denen ist "newtopic". Es gibt da ein swicth, das die auswertett. Da haust Du Den Notification rein. Das wars.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
hmueller
Mitglied
Beiträge: 458
Registriert: 30.07.2002 10:39
Wohnort: Neuötting
Kontaktdaten:

Beitrag von hmueller »

wie? was? wo?
Ich versteh' nur Bahnhof.

Und wie geht denn das:

Code: Alles auswählen

Do not forget to run the following commands on your sql database (replace phpbb2_ with your db prefix):
##
## CREATE TABLE phpbb2_forums_watch (
##    forum_id smallint(5) unsigned NOT NULL default '0',
##    user_id mediumint(8) NOT NULL default '0',
##    notify_status tinyint(1) NOT NULL default '0',
##    KEY forum_id (forum_id),
##    KEY user_id (user_id),
##    KEY notify_status (notify_status)
## )
##
## ALTER TABLE phpbb2_forums 
##    ADD forum_notify TINYINT(1) UNSIGNED DEFAULT '1' NOT NULL
##    AFTER forum_last_post_id

Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

wenn du phpmyadmin hast trägst du das einfach in die query ein wobei du dein prefix ersetzen musst... also in diesem falls z.b. phpbb2_ durch phpbb_

ah
hmueller
Mitglied
Beiträge: 458
Registriert: 30.07.2002 10:39
Wohnort: Neuötting
Kontaktdaten:

Beitrag von hmueller »

saerdnaer hat geschrieben:wenn du phpmyadmin hast trägst du das einfach in die query ein wobei du dein prefix ersetzen musst... also in diesem falls z.b. phpbb2_ durch phpbb_
also ich kopiere den Code und füge ihn in das Feld "SQL-Befehle ausführen..." ein, dann OK drücke. Richtig so?

Aber ich weiß immer noch nicht, welche Dateien ich dann noch ändern muß, damit die Benachrichtigung NUR bei neuem Thema kommt.
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

hmueller hat geschrieben: also ich kopiere den Code und füge ihn in das Feld "SQL-Befehle ausführen..." ein, dann OK drücke. Richtig so?´
ja. aber wie gesagt das prefix nicht vergessen...
hmueller hat geschrieben:Aber ich weiß immer noch nicht, welche Dateien ich dann noch ändern muß, damit die Benachrichtigung NUR bei neuem Thema kommt.
den satz verseh ich jetzt nicht ganz... der hack schick einem doch nur bei einem neuem thema einen mail...

ah
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

itst hat geschrieben:0-Prob.

Die posting.php hat verschiedene Modi. Einer von denen ist "newtopic". Es gibt da ein swicth, das die auswertett. Da haust Du Den Notification rein. Das wars.
Äh, OK, das war nicht wirklich verständlich. Sorry.
Also, die Datei posting.php ist zuständig für das Erstellen eines neuen Themas oder einer Antwort auf ein Thema. Um das unterscheiden zu können, benutzt phpBB einen Paramter naems "mode". der kann unter anderen den Wert "newtopic" für ein neues Thema oder "reply" für eine Antwort auf ein bestehendes Thema haben.

In der posting.php gibt es eine "switch"-Anweisung (das ist ein PHP-Befehl, Doku hier: www.php.net/switch ). Und darunter gibt es für jeden Wert von "mode" spezielle Anweisungen.
Und da könntest Du...
Äh, Du hast nicht so viel Ahnung von PHP oder? Sag bitte bescheid, weil jetzt wirds ein bißchen komplexer und ich möchte Dich nicht wieder mit unverständlichem Kram zuschreiben :-)
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Erwinchen666
Mitglied
Beiträge: 216
Registriert: 12.11.2001 01:00

Beitrag von Erwinchen666 »

Hi :D

mich interessiert's auch, schreib ruhig weiter ;-)

Gruss, Erwinchen
hmueller
Mitglied
Beiträge: 458
Registriert: 30.07.2002 10:39
Wohnort: Neuötting
Kontaktdaten:

Beitrag von hmueller »

Hallo,
den satz verseh ich jetzt nicht ganz... der hack schick einem doch nur bei einem neuem thema einen mail...
Soweit ich weiß, schickt der Mod sowohl bei einem neuen Thema als auch bei einen neuen Beitrag eine Mail. Und das wäre eine zu große Mail-Flut, deshalb sollte es so sein, daß die Mail nur bei Erstellung eines neuen Themas kommt.

Hierbei dachte ich, das lässt sich "einfach" so lösen, indem man beim Einbau des Mod bestimmte Code-Abschnitte wegläßt.

Richtg, mit PHP kenne ich mich nicht so gut aus. Ich muß also irgendwo in der posting.php was einbauen, damit zwischen neuem Thema und neuem Beitrag unterschieden wird?
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Nein. In der Posting.php wird schon unterschieden... Hier mal der Code-Abschnitt, der wichtig ist:

Code: Alles auswählen

switch ( $mode )
	{
		case 'editpost':
		case 'newtopic':
		case 'reply':
	      $username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
			$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
			$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
			$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
			$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : '';
			$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
			$bbcode_uid = '';

			prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);

			if ( $error_msg == '' )
			{
				$topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type;

				submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
				if ( $error_msg == '' )
				{
					user_notification($mode, $post_data, $forum_id, $topic_id, $post_id, $notify_user);
				}
			}
			break;

		case 'delete':
		case 'poll_delete':
			delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id);
			break;
	}
Zu finden ist das ab Zeile 528 bei einem phpBB 2.0.2.

Hier könnte man jetzt die Benachrichtig einbauen:

Code: Alles auswählen

@mail("e-mail-adresse", "Beitrag in FORUM: $subject", "Thema: $subject\nAutor: $username\nBeitrag: http://www.domain.de/viewtopic.php?t=$topic_id#$post_id");
Das könnte dann so aussehen, um nur bei neuen Nachrichtigen eine Mail zu bekommen:

Code: Alles auswählen

switch ( $mode )
	{
		case 'editpost':
		case 'newtopic':
         @mail("e-mail-adresse", "Beitrag in FORUM: $subject", "Thema: $subject\nAutor: $username\nBeitrag: http://www.domain.de/viewtopic.php?t=$topic_id#$post_id");
		case 'reply':
			$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : '';
			$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
			$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';
			$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : '';
			$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : '';
			$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : '';
			$bbcode_uid = '';

			prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);

			if ( $error_msg == '' )
			{
				$topic_type = ( $topic_type != $post_data['topic_type'] && !$is_auth['auth_sticky'] && !$is_auth['auth_announce'] ) ? $post_data['topic_type'] : $topic_type;

				submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
				if ( $error_msg == '' )
				{
					user_notification($mode, $post_data, $forum_id, $topic_id, $post_id, $notify_user);
				}
			}
			break;

		case 'delete':
		case 'poll_delete':
			delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id);
			break;
	}
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Antworten

Zurück zu „phpBB 2.0: Mod Support“