Seite 1 von 1

Benachrichtigungs Email bei neuen Thema - Zusätzliches Feld

Verfasst: 18.01.2013 09:40
von Tuni
Hallo zusammen,

wir haben bei unserer phpBB Installation in den Benutzerprofilen 2 zusätzliche Profilfelder. Diese beiden Felder würde ich gerne in der Email ausgeben die die Benutzer erhalten wenn sie z.B. ein Thread oder Forum abonniert haben und dort ein neue Beitrag eingestellt wurde. Wo ich den Text der Nachricht ändern kann weiß ich (languages/email/). Bloß wie füge ich dort ein selbst erstelltes Profilfeld ein?

Edit: Es geht um diese 3 Textdateien die mit den beiden Feldern versehen werden müssen:

- forum_notify.txt
- newtopic_notify.txt
- topic_notify.txt

Gruß Tuni

Re: Benachrichtigungs Email bei neuen Thema - Zusätzliches F

Verfasst: 21.01.2013 11:21
von Tuni
Niemand auch nur eine grobe Ahnung? Habe bisher nicht viel mit phpbb gemacht und stehe momentan wie der Ochse vorm Berg. Ein paar Informationen wo ihr meint wo ich suchen könnte würden mir auch schon helfen.

Re: Benachrichtigungs Email bei neuen Thema - Zusätzliches F

Verfasst: 21.01.2013 12:57
von Miriam
Diese beiden Felder würde ich gerne in der Email ausgeben die die Benutzer erhalten wenn sie z.B. ein Thread oder Forum abonniert haben und dort ein neue Beitrag eingestellt wurde.
Leider hast Du nichts zum Thema "benutzerdefinierte Profilfelder" geschrieben.
Ziel ist es grob umrissen, die jeweiligen Feldinhalte in die (z.B.) notify.txt hineinzubekommen und das auch noch benutzerbezogen.
Sicherlich wird Dir aufgefallen sein, daß es in dem vorgefertigen e-mail Text Variablen gibt (zumindest läßt es sich vermuten, daß es welche sind, schon vom Aussehen her)

Nehmen wir also {USERNAME}. Das sieht aber schon wieder zu speziell aus... nehmen wir also besser nur USERNAME
Dann laß uns mal schauen, wo diese Variable überhaupt gefüllt wird (daß sie gefüllt wird, wissen wir schon) und irgendwie hat das auch was mit notify zu tun (die Erweiterung .txt habe ich aus treffertechnischen Gründen weg gelassen).

Also zücken wir mal unser notepad++ und suchen global in allen Dateien nach notify.
Los geht's.
Jetzt muß man natürlich etwas die Augen auf halten und mitdenken, denn es gibt ein paar Ergebnisse und es muß etwas herausgefiltert werden. Aber das hier sieht doch schon gut aus:

Code: Alles auswählen

  E:\xampp\htdocs\phpBB3\includes\functions_posting.php (3 hits)
	Line 1182: 	if (($topic_notification && !$config['allow_topic_notify']) || ($forum_notification && !$config['allow_forum_notify']))
	Line 1221: 			'template'		=> ($topic_notification) ? 'topic_notify' : 'newtopic_notify',
	Line 1221: 			'template'		=> ($topic_notification) ? 'topic_notify' : 'newtopic_notify',
Template, topic_notify und newtopic_notify... das ist genau das, was wir suchen... Yay!
Wir haben also diese Codestelle in der includes/functions_posting.php gefunden:

Code: Alles auswählen

            'template'        => ($topic_notification) ? 'topic_notify' : 'newtopic_notify', 
Soweit, so gut. Dann laß uns mal schauen, wo wir gelandet sind *scroll im Code nach oben*
Schon wieder Treffer ->

Code: Alles auswählen

/**
* User Notification
*/
function user_notification($mode, $subject, $topic_title, $forum_name, $forum_id, $topic_id, $post_id) 
Wir sind richtig!

Jetzt geht die Feinsuche los. Scrollen wir also langsam nach unten und halten Ausschau nach bekannten Code......

Könnte das hier sein:

Code: Alles auswählen

        foreach ($msg_list_ary as $email_template => $email_list)
        {
            foreach ($email_list as $addr)
            {
                $messenger->template($email_template, $addr['lang']);

                $messenger->to($addr['email'], $addr['name']);
                $messenger->im($addr['jabber'], $addr['name']);

                $messenger->assign_vars(array(
                    'USERNAME'        => htmlspecialchars_decode($addr['name']),
                    'TOPIC_TITLE'    => htmlspecialchars_decode($topic_title),
                    'FORUM_NAME'    => htmlspecialchars_decode($forum_name),

                    'U_FORUM'                => generate_board_url() . "/viewforum.$phpEx?f=$forum_id",
                    'U_TOPIC'                => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id",
                    'U_NEWEST_POST'            => generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&t=$topic_id&p=$post_id&e=$post_id",
                    'U_STOP_WATCHING_TOPIC'    => generate_board_url() . "/viewtopic.$phpEx?uid={$addr['user_id']}&f=$forum_id&t=$topic_id&unwatch=topic",
                    'U_STOP_WATCHING_FORUM'    => generate_board_url() . "/viewforum.$phpEx?uid={$addr['user_id']}&f=$forum_id&unwatch=forum",
                ));

                $messenger->send($addr['method']);
            }
        }
Und jetzt geht das Coden los.
Wir müssen also noch Template Variablen hinzufügen. Und hier kommst Du ins Spiel. Wie hast Du Deine Variablen benannt?

Lies auch:
https://wiki.phpbb.com/Tutorial.Template_syntax
https://wiki.phpbb.com/Template.assign_var

und auch hier: viewtopic.php?p=1178005#p1178005
Suche auch nach benutzerdefinierte Profilfelder hier im Forum.

Viel Glück!