[3.2] Mailto-Link in viewtopic_body.html

Fragen rund um die Installation, Administration und Benutzung von phpBB 3.1.x und höher und die Konvertierung zu phpBB 3.2.x.
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version [3.1.x] oder [3.2.x] angeben.
STK
Mitglied
Beiträge: 8
Registriert: 13.06.2009 17:54

[3.2] Mailto-Link in viewtopic_body.html

Beitragvon STK » 14.08.2019 13:52

Hallo zusammen,

ich habe versucht, in der viewtopic_body.html einen Mailto-Link einzubauen, um den Usern die Möglichkeit zu geben, einen Beitrag per Mail zu verschicken. Das wäre bei wichtigen Sachen differenzierter, als die Benachrichtigungsfunktion.
Leider funktioniert der Link nur im ersten Beitrag des Topics. In den folgenden zerschießt es mir das Layout.

Hier mein Code:

Code: Alles auswählen

<!-- EVENT viewtopic_body_post_buttons_list_before -->
      <!-- IF not S_IS_BOT -->
         <!-- IF $SHOW_POST_BUTTONS -->
            <ul class="post-buttons">
               <!-- EVENT viewtopic_body_post_buttons_before -->
                  <li>
                     <a href="mailto:?subject=Eintrag von {postrow.POST_AUTHOR} am {postrow.POST_DATE}, Titel:                                                                   {postrow.POST_SUBJECT} &amp;body={postrow.MESSAGE}" class="button button-icon-only">
                        <i class="icon fa-envelope fa-fw" aria-hidden="true"></i><span class="sr-only">Beitrag versenden</span>
                     </a>
                  </li>
               <!-- IF postrow.U_EDIT -->
                  <li>
                     <a href="{postrow.U_EDIT}" title="{L_EDIT_POST}" class="button button-icon-only">
                        <i class="icon fa-pencil fa-fw" aria-hidden="true"></i><span class="sr-only">{L_BUTTON_EDIT}</span>
                     </a>
                  </li>
               <!-- ENDIF -->


Was mach ich falsch?

Danke,
STK

STK
Mitglied
Beiträge: 8
Registriert: 13.06.2009 17:54

Re: [3.2] Mailto-Link in viewtopic_body.html

Beitragvon STK » 15.08.2019 10:44

Guten Morgen!

Hab noch etwas weiter experimentiert.
Zum einen hab ich in viewtopic.php eine Templatevariable zu $post_row hinzugefügt:

Code: Alles auswählen

      'MAILTO'         => "Eintrag von ".get_username_string('username', $poster_id, $row['username'], $row['user_colour'], $row['post_username'])." am ".$user->format_date($row['post_time'], false, ($view == 'print') ? true : false).": ".$row['post_subject']."&amp;body=".$message,


Zum anderen sieht der Part in der viewtopic_body.html jetzt so aus:

Code: Alles auswählen

<!-- IF not S_IS_BOT -->
         <!-- IF $SHOW_POST_BUTTONS -->
            <ul class="post-buttons">
                  <li>
                     <a href="mailto:?subject={postrow.MAILTO}" class="button button-icon-only">
                        <i class="icon fa-envelope fa-fw" aria-hidden="true"></i><span class="sr-only">Beitrag versenden</span>
                     </a>
                  </li>
               <!-- EVENT viewtopic_body_post_buttons_before -->


Dadurch bleibt das Layout soweit intakt und der Button erscheint auch bei den eigenen Beiträgen - in dem Fall meinen als admin.
Bei den folgenden Beiträgen von Gästen zeigt es dann nur noch einen Button mit der Beschriftung "..." an, weil der ganze mailto-Link dann irgendwie in der Button-Beschriftung landet.

Hat jemand einen Tipp für mich?

Danke,
STK

Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 6418
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: [3.2] Mailto-Link in viewtopic_body.html

Beitragvon Kirk » 15.08.2019 12:35

Hallo
Ich denke mit reinem Text wäre dies kein Problem, bedenke aber das in Beiträgen Smilies oder Bilder auch vorhanden sind.
Schau dir mal diese Extension an, vielleicht hilft dir das weiter.

STK
Mitglied
Beiträge: 8
Registriert: 13.06.2009 17:54

Re: [3.2] Mailto-Link in viewtopic_body.html

Beitragvon STK » 15.08.2019 13:59

Danke für den Hinweis!
Jetzt ist mir zumindest klar, dass die BBCodes im Body des mailto-Links für die Layout-Sabotage verantwortlich sind. Es findet sich bestimmt die ein oder andere Funktion, um Smilies und Co aus $message zu entfernen.

Der Grund, die Mails nicht übers Board zu versenden, ist der, dass der Nutzer übers Outlook die Möglichkeit hat, die Empfänger innerhalb und außerhalb der Organisation frei zu wählen.
Der Zugriff aufs Board ist nur im Intranet möglich, aber bestimmte Inhalte sollen eben auch externen Kontakten geschickt werden können.

Das hier hab ich schon drin
http://www.mitjastachowiak.de/index.html?http://www.mitjastachowiak.de/components/php/emailontopic/index.html

Auch flexibel innerhalb des Boards bzw. der Organisation, aber nur direkt beim Posten. Wenn das Recht, Beiträge zu bearbeiten fehlt, geht es danach nicht mehr.
Dabei ist mir klar, dass man in einer vorausgefüllten Mail den Text bearbeiten kann.

Grüße
STK

STK
Mitglied
Beiträge: 8
Registriert: 13.06.2009 17:54

Re: [3.2] Mailto-Link in viewtopic_body.html

Beitragvon STK » 15.08.2019 16:44

Hab es mit

Code: Alles auswählen

// Parse the message and subject
   $parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
   $message = generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);
   $mailmessage = strip_bbcode($row['post_text'], $row['bbcode_uid']);

versucht. Aber $mailmessage scheint danach leer zu sein.

Gibt es noch eine andere Funktion, die post_text in reinen Text umwandelt?

Danke
STK

STK
Mitglied
Beiträge: 8
Registriert: 13.06.2009 17:54

Re: [3.2] Mailto-Link in viewtopic_body.html

Beitragvon STK » 16.08.2019 10:27

Code: Alles auswählen

$mailmessage=Strip_bbcode($message);

führt dazu, dass alle BB-Codes in der Topic-Anzeige perfekt entfernt werden, während

Code: Alles auswählen

.'&amp;body='.$mailmessage
am Ende des Mailto-Links keinerlei Effekt hat.

Warum verändert sich offenbar $message, während $mailmessage gleichzeitig leer ist?

Verzweifelte Grüße
STK

STK
Mitglied
Beiträge: 8
Registriert: 13.06.2009 17:54

Re: [3.2] Mailto-Link in viewtopic_body.html

Beitragvon STK » 16.08.2019 14:01

...weil strip_bbcode den String selber ändert und keinen geänderten String zurückgibt.
Funktion kopiert, umbenannt und ein return $text eingefügt und es funktioniert.
Ob das sinnvoller Code ist, weiß ich nicht. Aber er erfüllt seinen Zweck :)

Gruß
STK


Zurück zu „Support-Forum“