Email2img (SPT-Tag): Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
Zeile 138: Zeile 138:
  
 
;<code>form</code>
 
;<code>form</code>
:Artikel, der das Kontaktformular bereitstellt.
+
:Anker eines Artikels, der das Kontaktformular bereitstellt.
  
 
;<code>onclick</code>
 
;<code>onclick</code>
Zeile 193: Zeile 193:
 
</source>
 
</source>
  
 +
Beispielcode eines Kontaktformulars, welches über den Anker angegeben wurde
 +
<source lang="text">
 +
<!--
 +
GET-Parameter des Aufrufs:
 +
  email = verschlüsselte Email-Adresse
 +
  emailImageUrl = URL zum Bild
 +
-->
 +
<?php
 +
  $key  = "133712345678901234567890"; // steht in der IES-Serverkonfiguration
 +
  $mode = MCRYPT_3DES;
 +
 
 +
  function str_decrypt($encrypted_string) {
 +
    GLOBAL $key, $mode;
 +
     
 +
    $td = mcrypt_module_open($mode, '', 'ecb', '');
 +
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
 +
    mcrypt_generic_init($td, $key, $iv);
 +
    $encrypted_data = hex2bin($encrypted_string);
 +
     
 +
    // decrypt
 +
    $decrypted_string = mcrypt_ecb ($mode, $key, $encrypted_data, MCRYPT_DECRYPT, $iv);
 +
     
 +
    mcrypt_generic_deinit($td);
 +
    mcrypt_module_close($td);
 +
   
 +
    return trim($decrypted_string);
 +
  }
 +
 
 +
  function hex2bin($hexdata) {
 +
    $bindata = "";
 +
    for ($i = 0; $i < strlen( $hexdata ); $i += 2)
 +
      eval ('$bindata .= "\x' . substr( $hexdata, $i, 2 ) . '";');
 +
   
 +
    return $bindata;
 +
  }
 +
 
 +
  function is_email($lom_emailstrg) {
 +
    return ereg("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]{2,})+(.[_a-zA-Z0-9-]+)*.([a-zA-Z0-9-]{2,4})$", $lom_emailstrg);
 +
  }
 +
?>
 +
 +
<?php
 +
  $CRLF = "\n";
 +
  $mail_address = isset($_REQUEST['email']) ? str_decrypt($_REQUEST['email']) : "default-email@some-domain.com";
 +
  if (!is_email($mail_address)) die("<p><strong>Ungültiger Aufruf !</strong></p><br>Die Empfänger-Adresse ist ungültig.");
 +
 +
  // Darstellung des Formulars bzw. Auswertung des Requests und Versand einer Email
 +
  ...
 +
?>
 +
</source>
  
 
<noinclude>
 
<noinclude>

Version vom 21. Juli 2008, 13:41 Uhr

Name

<spt:email2img> (ab Version 2.0) - Ersetzt Email-Adressen durch Bilder


Syntax

<spt:email2img name="imgtext" object="sp_contact"/>

Beschreibung

Ersetzt Email-Adressen durch Bilder. Diesem Tag kann mit dem Attribut object ein Text übergeben werden, der nach Email-Adressen durchsucht wird. Aus dem, in diesem Text enthaltenen Email-Adressen werden Bilder generiert. Die Email-Adressen werden durch die Bilder mit HTML-<img>-Tags ausgetauscht. Zusätzlich werden Email-Adressen, die mit einem mailto://-Link eingegeben wurden mit einem angegebenen Formular verlinkt.

Hinweis

Dieser Tag ist Bestandteil des Moduls "Proaktiver Spamschutz" und muss über dieses freigeschaltet werden.

Attribute

Name Type Required Default ab IES Version
name Variable Ja None 2
object Attribute Ja None 2
alt Text Nein geschützte E-Mail-Adresse als Grafik 2
title Text Nein E-Mail-Adresse - zum Kontaktformular bitte klicken ... 2
color Text Nein 000000 2
bgcolor Text Nein FFFFFF 2
font Text Nein Arial 2
fontsize Number Nein 12 2
fontweight Text Nein plain 2
form Text Nein None 2
onclick Text Nein Ja, wenn popupwidth und popupheight angegeben sind:
window.name='sp';window.open(
   this.href,
   '${popupwidth}x${popupheight}',
   'width=${popupwidth},height=${popupheight},scrollbars=yes');
return false;
2
popupwidth Number Nein None 2
popupheight Number Nein None 2
name
Variable, in der der ersetzte Text abgelegt wird.
object
Objekt das den zu ersetzenden Text enhält.
alt
Alternativtext der in die alt-Attribute der <img>-Tags eingetragen wird.
title
Alternativtext der in die title-Attribute der <img>-Tags eingetragen wird.
color
Schriftfarbe, die für den Email-Text in dem generierten Bild verwendet werden soll.
bgcolor
Hintergrundfarbe, die für den Email-Text in dem generierten Bild verwendet werden soll.
font
Schriftart, die für den Email-Text in dem generierten Bild verwendet werden soll. In der Standardinstallalation enthaltene Fonts sind:
  • Arial
  • Lucida
  • Verdana
  • Futura
fontsize
Schriftgrösse, die für den Email-Text in dem generierten Bild verwendet werden soll.
fontweight
Schriftstyle, die für den Email-Text in dem generierten Bild verwendet werden soll. Mögliche Werte sind:
  • plain
  • bold
  • italic
form
Anker eines Artikels, der das Kontaktformular bereitstellt.
onclick
JavaScript-Funktion nach dem Klick auf eine Email-Adresse ausgeführt werden soll.
popupwidth
Breite des Popup-Fensters für das Kontaktformular.
popupheight
Breite des Popup-Fensters für das Kontaktformular.

Beispiele

spt:email2img mit Verknüpfung zum Kontaktformular

Template Quelltext

<spt:email2img name="tmp_text" object="sp_text" form="${!{information.contact}}"/>
<sp:print name="tmp_text"/>

Inhalt der Variable sp_text

<ul>
<li>
  E-Mail-Adresse mit Link:<br/>
  <a href="mailto:test@test.de">test@test.de</a>
</li>
<li>
  E-Mail-Adresse ohne Link:<br/>
  test@test.de
</li>
</ul>

Inhalt der Variable tmp_text

<ul>
<li>
  E-Mail-Adresse mit Link:<br/>
  <a 
  href="/kontakt.php?email=9a399467ec17059b6896ff5ec902d75c&amp;emailImageUrl=%2Ftest.php.media%2Ftextimage%2F1443868664.png" 
  class="sp-mailto" 
  title="E-Mail-Adresse - zum Kontaktformular bitte klicken ..."
  ><img src="/test.php.media/textimage/1443868664.png" /></a>
</li>
<li>
  E-Mail-Adresse ohne Link:<br/>
  <img src="/test.php.media/textimage/1443868664.png" 
  alt="geschützte E-Mail-Adresse als Grafik" 
  style="vertical-align:bottom" />
</li>
</ul>

Beispielcode eines Kontaktformulars, welches über den Anker angegeben wurde

<!--
GET-Parameter des Aufrufs:
  email = verschlüsselte Email-Adresse
  emailImageUrl = URL zum Bild
-->
<?php
  $key  = "133712345678901234567890"; // steht in der IES-Serverkonfiguration
  $mode = MCRYPT_3DES;
  
  function str_decrypt($encrypted_string) {
    GLOBAL $key, $mode;
      
    $td = mcrypt_module_open($mode, '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = hex2bin($encrypted_string);
      
    // decrypt
    $decrypted_string = mcrypt_ecb ($mode, $key, $encrypted_data, MCRYPT_DECRYPT, $iv);
      
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
     
    return trim($decrypted_string);
  }
  
  function hex2bin($hexdata) {
    $bindata = "";
    for ($i = 0; $i < strlen( $hexdata ); $i += 2)
      eval ('$bindata .= "\x' . substr( $hexdata, $i, 2 ) . '";');
    
    return $bindata; 
  }
  
  function is_email($lom_emailstrg) {
    return ereg("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]{2,})+(.[_a-zA-Z0-9-]+)*.([a-zA-Z0-9-]{2,4})$", $lom_emailstrg);
  }
?>

<?php
  $CRLF = "\n";
  $mail_address = isset($_REQUEST['email']) ? str_decrypt($_REQUEST['email']) : "default-email@some-domain.com";
  if (!is_email($mail_address)) die("<p><strong>Ungültiger Aufruf !</strong></p><br>Die Empfänger-Adresse ist ungültig.");

  // Darstellung des Formulars bzw. Auswertung des Requests und Versand einer Email
  ...
?>