CINXE.COM

phpBB.de • PN per Script (php) automatisch senden

<!DOCTYPE html> <html dir="ltr" lang="de"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="robots" content="noindex" /> <title>phpBB.de &bull; PN per Script (php) automatisch senden</title> <link href="./styles/phpBBdev1/theme/print.css" rel="stylesheet"> </head> <body id="phpbb" class="ltr"> <div id="wrap" class="wrap"> <a id="top" class="top-anchor" accesskey="t"></a> <div id="page-header"> <h1>phpBB.de</h1> <p>phpBB.de - Die deutsche phpBB-Community<br /><a href="https://www.phpbb.de/community/">https://www.phpbb.de/community/</a></p> <h2>PN per Script (php) automatisch senden</h2> <p><a href="https://www.phpbb.de/community/viewtopic.php?t=234434">https://www.phpbb.de/community/viewtopic.php?t=234434</a></p> </div> <div id="page-body" class="page-body"> <div class="page-number">Seite <strong>1</strong> von <strong>1</strong></div> <div class="post"> <h3>PN per Script (php) automatisch senden</h3> <div class="date">Verfasst: <strong>11.05.2015 12:22</strong></div> <div class="author">von <strong>befubo</strong></div> <div class="content">Guten Tag liebe phpBB Community<br> <br> Seit einiger Zeit erweitere ich unser Forum um Funktionen.<br> Nun habe ich eine Frage bez眉glich dem Versenden einer automatischen PN an ein Mitglied via php.<br> Hintergrund ist:<br> Mittels eines Scripts pr眉fe ich, wie lange der User bereits registriert ist und ob er aktiv ist. Wenn ja, wird eine entsprechende Grafik (Medaille) angezeigt.<br> Jetzt m枚chte ich, dass wenn der Benutzer eine Auszeichnung erh盲lt auch eine PN kriegt, in welcher er begl眉ckw眉nscht wird.<br> Die Pr眉fung des Ganzen ist kein Problem und habe ich soweit auch schon.<br> Wie kann ich jetzt aber eine automatische PN an den richtigen User senden?<br> <br> Folgendes habe ich per SuFu gefunden:<br> <a href="https://www.phpbb.de/community/viewtopic.php?f=93&amp;t=224543" class="postlink">viewtopic.php?f=93&amp;t=224543</a><br> <br> Allerdings ist da der Autor selber auf die L枚sung gekommen, wirklich durchblicken tu ich aber bei dem Script nicht (Und ich m枚chte ja nicht den toten Thread ausgraben).<br> Mir ist nicht klar, was die einzelnen Codeteile machen und wie sie funktionieren.<br> Vor allem in der Userverwaltung und den Zugriffen darauf blicke ich inzwischen gut durch bei phpBB, aber das hier ist grad etwas kryptisch f眉r mich <img class="smilies" src="./images/smilies/icon_e_smile.gif" width="15" height="17" alt=":)" title="L盲cheln"><br> K枚nntet ihr mir da vielleicht etwas auf die Spr眉nge helfen?<br> <br> Vielen Dank und liebe Gr眉sse<br> befubo</div> </div> <hr /> <div class="post"> <h3>Re: PN per Script (php) automatisch senden</h3> <div class="date">Verfasst: <strong>19.05.2015 15:15</strong></div> <div class="author">von <strong>befubo</strong></div> <div class="content">Guten Tag zusammen<br> <br> Wollt nur mal kurz anklopfen, ob vielleicht schon jemand eine Idee hatte?<br> Habe selber noch weiter versucht den Code von oben weiter zu deuten, aber ich weiss einfach nicht wie das alles zusammen passt.<br> Folgendes habe ich mal noch gefunden:<br> <a href="https://wiki.phpbb.com/Using_phpBB3%27s_Basic_Functions#1.4.7._Inserting_Posts_and_Private_Messages" class="postlink">https://wiki.phpbb.com/Using_phpBB3's_B ... e_Messages</a><br> <br> Das klingt eigentlich ganz vielversprechend, ich scheitere aber wieder an der praktischen Ausf眉hrung. Ich hab dann mal folgendes zusammengeschustert:<br> <div class="codebox"><p>Code: <a href="#" onclick="selectCode(this); return false;">Alles ausw盲hlen</a></p><pre><code>&lt;?php define('IN_PHPBB',聽true); $phpbb_root_path聽=聽(defined('PHPBB_ROOT_PATH'))聽?聽PHPBB_ROOT_PATH聽:聽'./'; $phpEx聽=聽substr(strrchr(__FILE__,聽'.'),聽1); include($phpbb_root_path聽.聽'common.'聽.聽$phpEx); include($phpbb_root_path聽.聽'includes/functions_display.'聽.聽$phpEx); include($phpbb_root_path聽.聽'includes/functions_privmsgs.'聽.聽$phpEx); //聽Start聽session聽management $user-&gt;session_begin(); $auth-&gt;acl($user-&gt;data); $user-&gt;setup('viewforum'); if($user-&gt;data['is_registered']) { echo聽"registriert!"; } else { echo聽"nicht聽registriert!"; } $db聽=聽@new聽mysqli(聽"localhost",聽"XXX",聽"XXX",聽"XXX"聽); $betreff聽=聽"Testbetreff"; $inhalt聽=聽"Testinhalt"; //聽note聽that聽multibyte聽support聽is聽enabled聽here聽 $my_subject聽=聽utf8_normalize_nfc($betreff); $my_text聽聽聽聽=聽utf8_normalize_nfc($inhalt); echo聽"$my_subject&lt;br&gt;$my_text&lt;hr&gt;"; //聽variables聽to聽hold聽the聽parameters聽for聽submit_pm $poll聽=聽$uid聽=聽$bitfield聽=聽$options聽=聽'';聽 generate_text_for_storage($my_subject,聽$uid,聽$bitfield,聽$options,聽false,聽false,聽false); generate_text_for_storage($my_text,聽$uid,聽$bitfield,聽$options,聽true,聽true,聽true); $data聽=聽array(聽 聽聽聽聽'address_list'聽聽聽聽聽聽=&gt;聽array聽('u'聽=&gt;聽array(2聽=&gt;聽'to')),聽//Verstehe聽ich聽nicht,聽was聽das聽macht 聽聽聽聽'from_user_id'聽聽聽聽聽聽=&gt;聽156,聽//ID聽des聽Senders 聽聽聽聽'from_username'聽聽聽聽聽=&gt;聽'befubo',聽//Username聽des聽Senders 聽聽聽聽'icon_id'聽聽聽聽聽聽聽聽聽聽聽=&gt;聽0,聽//Titelicon聽der聽Nachricht 聽聽聽聽'from_user_ip'聽聽聽聽聽聽=&gt;聽$user-&gt;data['user_ip'],聽//Liest聽IP聽des聽Users聽(welcher?)聽aus 聽聽聽聽聽 聽聽聽聽'enable_bbcode'聽聽聽聽聽=&gt;聽true, 聽聽聽聽'enable_smilies'聽聽聽聽=&gt;聽true, 聽聽聽聽'enable_urls'聽聽聽聽聽聽聽=&gt;聽true, 聽聽聽聽'enable_sig'聽聽聽聽聽聽聽聽=&gt;聽true, 聽聽聽聽'message'聽聽聽聽聽聽聽聽聽聽聽=&gt;聽$my_text, 聽聽聽聽'bbcode_bitfield'聽聽聽=&gt;聽$bitfield, 聽聽聽聽'bbcode_uid'聽聽聽聽聽聽聽聽=&gt;聽$uid, ); submit_pm('post',聽$my_subject,聽$data,聽false); ?&gt;</code></pre></div> Nat眉rlich klappt das nicht, schliesslich verstehe ich auch alle komponenten nicht ganz:<br> Folgendes:<span style="color:#FF0000"> 'address_list'聽聽聽聽聽聽=&gt;聽array聽('u'聽=&gt;聽array(2聽=&gt;聽'to')),</span> erschliesst sich mir einfach nicht. Diese Kurzbeschreibung hat mir irgendwie nicht weitergeholfen: <blockquote class="uncited"><div>This value holds the recipients. It's a nested array of the following structure array ('u' =&gt; array(2 =&gt; 'to' 3 =&gt; ' bcc'), ('g' =&gt; array(2 =&gt; 'to' 3 =&gt; ' bcc'))) Meaning, the first level array has two subarrays: 'u' for users and 'g' for groups. Each of these hold arrays mapping the recipients user_id to the type of recipient he is ('to' or 'bcc').</div></blockquote> Ich verstehe diese Formulierung nicht ganz.<br> <br> Ebenfalls kommen die Variablen $uid,聽$bitfield und聽$options vor. Ich kann aber nicht erschliessen woher er diese holt, bzw was f眉r Inhalt diese haben sollten.<br> Ich hoffe ihr k枚nnt mir etwas unter die Arme greifen <img class="smilies" src="./images/smilies/icon_e_smile.gif" width="15" height="17" alt=":)" title="L盲cheln"><br> Vielen Dank und freundliche Gr眉sse<br> befubo</div> </div> <hr /> <div class="post"> <h3>Re: PN per Script (php) automatisch senden</h3> <div class="date">Verfasst: <strong>20.05.2015 14:28</strong></div> <div class="author">von <strong>gn#36</strong></div> <div class="content">Mir ist die Nutzung der eingebauten Funktionen immer zu aufw盲ndig, weshalb ich grunds盲tzlich die <a href="https://github.com/phpbb-de/phpbb3-mod-hookup/blob/master/root/includes/functions_post_oo.php" class="postlink">OO Posting API</a> von Pyramide nutze. Einfach die verlinkte Datei ins includes Verzeichnis legen und dann die darin befindlichen Objekte f眉r PN, post oder topic nutzen. Ist eigentlich ziemlich intuitiv nutzbar und sehr einfach: <div class="codebox"><p>Code: <a href="#" onclick="selectCode(this); return false;">Alles ausw盲hlen</a></p><pre><code>&lt;?php //Standard聽phpBB聽Init聽Zeugs聽(spare聽ich聽mir聽mal) include($phpbb_root_path聽.聽'includes/functions_post_oo.'聽.聽$phpEx); $post聽=聽new聽post(); $post-&gt;post_subject聽=聽'Thementitel'; $post-&gt;forum_id聽=聽20;聽//Forum聽f眉r聽neues聽Thema $post-&gt;post_text聽=聽聽'Hier聽kommt聽der聽komplette聽Beitragstext聽rein.聽Alle聽normalen聽bbcodes聽d眉rfen聽verwendet聽werden.'; //Fertig,聽jetzt聽Beitrag聽absenden $post-&gt;submit();</code></pre></div> PN ist 盲hnlich einfach. <div class="codebox"><p>Code: <a href="#" onclick="selectCode(this); return false;">Alles ausw盲hlen</a></p><pre><code>$pn聽=聽new聽privmsg(); $pn-&gt;to('user',聽123);聽//To聽user聽with聽id聽123聽(can聽also聽handle聽group聽with聽id) //Add聽BCC聽recipient $pn-&gt;to('user',聽'bcc',聽124); $pn-&gt;message_subject聽=聽'Titel'; $pn-&gt;message_text聽=聽'Inhalt聽der聽PN'; //ggf.聽noch聽Absender聽o.盲.聽festlegen聽(default:聽aktueller聽User) //聽Absenden $pn-&gt;submit();</code></pre></div> Um trotzdem noch auf deine Frage einzugehen: Das ist dort 盲hnlich wie in der OO Posting API. Es gibt ein Unter-Array <code class="inline">u</code> das alle user enth盲lt, die Empf盲nger sein sollen, es gibt ein Unter-Array <code class="inline">g</code>, das alle Gruppen enth盲lt, an die die PN gehen soll. Du kannst ja eine PN an mehrere Gruppen und mehrere User gleichzeitig versenden. Innerhalb des Arrays ist dann die ID des Users bzw. der Gruppe der Schl眉ssel des Eintrags, w盲hrend der eintrag selbst entweder "to" ist, wenn die PN direkt an den Empf盲nger gehen soll (und das f眉r alle anderen sichtbar ist) oder "bcc", sofern es sich um einen versteckten Eintrag handelt.<br> <br> Zur bbcode UID gibt's: KB:bbcode_uid (allgemein KB:bbcode) Das Bitfield ist so 盲hnlich und definiert, welche BBcodes 眉berhaupt im Text vorkommen. Die werden von generate_text_for_storage gef眉llt und brauchen dich ansonsten nicht zu k眉mmern. <br> <br> Aus genau dem Grund nutze ich o.g. OO Posting API. Da muss man mit den Dingern n盲mlich nicht hantieren, das 眉bernimmt die API.</div> </div> <hr /> <div class="post"> <h3>Re: PN per Script (php) automatisch senden</h3> <div class="date">Verfasst: <strong>21.05.2015 17:33</strong></div> <div class="author">von <strong>befubo</strong></div> <div class="content">Hey!<br> Vielen Dank, das hilft mir sehr weiter!!<br> Das Versenden klappt jetzt wunderbar auf meiner Testseite, werde ich dann direkt integrieren bei mir.<br> <br> Liebe Gr眉sse, befubo</div> </div> <hr /> </div> <div id="page-footer" class="page-footer"> <div class="page-number">Alle Zeiten sind <span title="Europa/Berlin">UTC+01:00</span><br />Seite <strong>1</strong> von <strong>1</strong></div> <div class="copyright"> <p>Powered by <a href="https://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Limited </p> <p>Deutsche 脺bersetzung durch <a href="https://www.phpbb.de/">phpBB.de</a> </p> </div> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10