Avatar

E-Mail-Adresse an ein Template übergeben (German / Deutsch)

by Auge ⌂, Friday, December 09, 2016, 13:49 (2694 days ago) @ RaHa

Hallo

Ich habe mir das Template und das das Template aufrufende PHP-Skript noch nicht genau angeschaut, bin mir aber sicher, dass die Emailadresse aus den oben genannten Gründen nicht per Smarty an das Template übergeben wird. Ich werde am WE nachschauen.

Hallo Auge,
hast Du scho mal nachgeschaut?

Ahem, natürlich nicht. Sorry.

Voraussetzung, dass der E-Mail-Versand aus dem Forum an alle E-Mail-Adressen funktioniert ist die richtige Konfiguration des Postfix und der DNS-Records auf dem jeweiligen Host. Ist das nicht der Fall, werden die E-Mails bei allen xxxx@gmail.com Adressen von Google abgelehnt wegen nicht eingehaltener Richtlinien.

Herrje, die haben 'nen Knall. Jetzt mal unabhängig von der dir vorschwebenden Lösung. Das Skript spricht die PHP-Funktion mail() an, was wiederum bedeutet, dass PHP und damit das Skript nichts mit den Details des Mailversands an sich zu tun haben. Die Funktion macht nämlich nichts anderes, als die Bestandteile der Nachricht an ein Emailrelay (Windows) bzw. einen Emailserver (Unixoide) zu übergeben und ihn mit dem Versand zu beauftragen. Dort eve´ntuell vorhandene Fehlkonfigurationen spielen für das Skript keine Rolle. Davon weiß es nichts.

Wenn also Google Emails wegen der Nichteinhaltung seiner Regeln abweist, hat irgendwer anders die fraglichen Regeln nicht eingehalten. Die erste mögliche Instanz ist dein Hoster/Mail-Provider, der die Emails schlussendlich versendet. Danach kommen weitere Mail-Server, über die die Nachrichten weitergeleitet werden und bei denen es ebenfalls zu Veränderungend er Nachrichten kommen kann.

Alle in meinem Forum vorhandenen xxxx@gmail.com Adressen funktionieren jedoch ohne großen Aufwand aus den E-Mail-Programmen der Nutzer. Deshalb wollte ich die Lösung mit mailto::

Ok, in einem streg begrenzten Nutzerkreis, um den es sich laut deinen Ausführungen in einem anderen Beitrag handelt und in dem die Beteiligten dem zustimmen, ist das wohl kein Problem.

Ich weiß nicht, wie weit du mit den Umbauten gehen willst. Es gibt mehrere Stellen, an denen die Anzeige des Links zum Kontaktformular mit den Daten eines registrierten Benutzers möglich ist.

- Benutzerliste (alle Benutzer)
- Benutzerseite (ein Benutzer)
- Beiträge (im Kopf des Postings)

Die hier vorgestellten Änderungen sind ungetestet. Bevor du loslegst, erstelle bitte Backups der fraglichen Dateien, ändere die Stellen eine nach der Anderen und teste nach jedem Schritt die Funktion.

Erstelle dir dazu bitte auch ein eigenes Template (falls du das nicht schon getan hast). Bei einem späteren Update der Software wird das Standardtemplate (das in templates/default) in vielen Fällen überschrieben, womit deine Änderungen weg wären. Mit einem eigenen template kannst du deine Änderungen hingegen auf den neuen Stand übertragen und dein Theme wieder aktivieren.

Die Benutzerliste

Es müssen zwei Stellen geändert werden. Die angegebenen Zeilennummern beziehen sich auf den aktuellen Entwicklungsstand und können von denen der tatsächlich installierten Version um (höchstens ein paar!) Zeilen abweichen.

1. includes/user.inc.php, Zeile #98

// vorher
    if($row['email_contact']==1) $userdata[$i]['user_email'] = TRUE;
// nachher
    if($row['email_contact']==0)
        $userdata[$i]['user_email'] = FALSE;
    else
        $userdata[$i]['user_email'] = htmlspecialchars($userdata[$i]['user_email']);
 

2. themes/[themename]/subtemplates/user.inc.tpl, Zeile #43

<!-- vorher -->
<td><span class="small">{if $row.user_email}<a href="index.php?mode=contact&amp;user_id={$row.user_id}" title="{#mailto_user#|replace:"[user]":$row.user_name}"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{else}&nbsp;{/if}</span></td>
<!-- nachher -->
<td><span class="small">{if $row.user_email}<a href="mailto: {$row.user_email}" title="{#mailto_user#|replace:"[user]":$row.user_name}"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{else}&nbsp;{/if}</span></td>

Die Benutzerseite (eines Benutzers)

1. includes/user.inc.php, Zeile #201

// vorher
    if($row['email_contact']==1) $smarty->assign('user_email',TRUE);
// nachher
    if($row['email_contact']==0)
        $smarty->assign('user_email', FALSE);
    else
        $smarty->assign('user_email', htmlspecialchars($userdata[$i]['user_email']));

2. themes/[themename]/subtemplates/user_profile.inc.tpl, Zeile #17

<!-- vorher -->
<td class="d"><p class="userdata">{if $user_hp=='' && $user_email==''}-{/if}{if $user_hp!=''}<a href="{$user_hp}" title="{$user_hp}"><img src="{$THEMES_DIR}/{$theme}/images/homepage.png" alt="{#homepage#}" width="13" height="13" /></a> &nbsp;{/if}{if $user_email}<a href="index.php?mode=contact&amp;user_id={$p_user_id}" title="{#mailto_user#|replace:"[user]":$user_name}" rel="nofollow"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{/if}</p></td>
<!-- nachher -->
<td class="d"><p class="userdata">{if $user_hp=='' && $user_email==''}-{/if}{if $user_hp!=''}<a href="{$user_hp}" title="{$user_hp}"><img src="{$THEMES_DIR}/{$theme}/images/homepage.png" alt="{#homepage#}" width="13" height="13" /></a> &nbsp;{/if}{if $user_email}<a href="mailto: {$user_email}" title="{#mailto_user#|replace:"[user]":$user_name}" rel="nofollow"><img src="{$THEMES_DIR}/{$theme}/images/email.png" alt="{#email#}" width="13" height="10" /></a>{/if}</p></td>

Die Beiträge in der Einzelansicht (im Kopf des Postings)

1. includes/entry.inc.php, Zeile #271

// vorher
    if($entrydata['email']!='' && $entrydata["email_contact"]==1) $smarty->assign('email',true);
// nachher
    if($entrydata['email']!='' && $entrydata["email_contact"]==1) $smarty->assign('email', htmlspecialchars($entrydata['email']));

2. themes/[themename]/subtemplates/entry.inc.tpl, Zeilen #7 und #9

<!-- vorher -->
{assign var=email_hp value=" <a href=\"index.php?mode=contact&amp;id=$id\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- nachher -->
{assign var=email_hp value=" <a href=\"mailto: $email\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- in Zeile #9 entsprechend nur den zweiten Block für den Link zur Email -->

Die Beiträge in der Threadansicht (geschachtelte und lineare Ansicht, im Kopf des Postings)

1. includes/entry.inc.php, Zeile #228

// vorher
    if($data['email']!='' && $data["email_contact"]==1) $data['email'] = true;
// nachher
    if($data['email']!='' && $data["email_contact"]==1) $data['email'] = htmlspecialchars($data['email']);

2. themes/[themename]/subtemplates/thread.inc.tpl und themes/[themename]/subtemplates/thread_linear.inc.tpl, jeweils Zeilen #13 und #15

<!-- vorher -->
{assign var=email_hp value=" <a href=\"index.php?mode=contact&amp;id=$email_id\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- nachher -->
{assign var=email_hp value=" <a href=\"mailto: $email\" rel=\"nofollow\"><img src=\"$THEMES_DIR/$theme/images/email.png\" title=\"$email_alt\" alt=\"@\" width=\"13\" height=\"10\" /></a>"}
<!-- in Zeile #15 entsprechend nur den zweiten Block für den Link zur Email -->

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!


Complete thread:

 RSS Feed of thread