2004-03-28 15:20:52 +00:00
|
|
|
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
|
|
|
|
<!-- $Revision$ -->
|
2006-03-16 13:25:46 +00:00
|
|
|
|
<!-- EN-Revision: 1.10 Maintainer: messju Status: ready -->
|
2005-06-20 14:44:30 +00:00
|
|
|
|
<chapter id="tips">
|
|
|
|
|
|
<title>Tips & Tricks</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<sect1 id="tips.blank.var.handling">
|
|
|
|
|
|
<title>Handhabung unangewiesener Variablen</title>
|
2004-03-28 15:20:52 +00:00
|
|
|
|
<para>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
Manchmal m<>chten Sie vielleicht, dass anstatt einer Leerstelle ein
|
|
|
|
|
|
Standardwert ausgegeben wird - zum Beispiel um im
|
|
|
|
|
|
Tabellenhintergrund "&nbsp;" auszugeben, damit er korrekt
|
|
|
|
|
|
angezeigt wird. Damit daf<61>r keine <link
|
|
|
|
|
|
linkend="language.function.if">{if}</link> Anweisung verwendet
|
|
|
|
|
|
werden muss, gibt es in Smarty eine Abk<62>rzung: die Verwendung des
|
|
|
|
|
|
<emphasis>default</emphasis> Variablen-Modifikators.
|
2004-03-28 15:20:52 +00:00
|
|
|
|
</para>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
<example>
|
|
|
|
|
|
<title>"&nbsp;" ausgeben wenn eine Variable nicht zugewiesen ist</title>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2006-03-16 13:25:46 +00:00
|
|
|
|
{* die lange Variante: *}
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{if $titel eq ""}
|
2006-03-16 13:25:46 +00:00
|
|
|
|
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{else}
|
2006-03-16 13:25:46 +00:00
|
|
|
|
{$titel}
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
|
|
|
2006-03-16 13:25:46 +00:00
|
|
|
|
{* k<>rzer: *}
|
|
|
|
|
|
{$titel|default:" "}
|
2005-06-20 14:44:30 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Siehe auch <link linkend="language.modifier.default">default
|
|
|
|
|
|
(Standardwert)</link> und <link
|
|
|
|
|
|
linkend="tips.default.var.handling">Handhabung von
|
|
|
|
|
|
Standardwerten</link>.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
</sect1>
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
<sect1 id="tips.default.var.handling">
|
|
|
|
|
|
<title>Handhabung von Standardwerten</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Wenn eine Variable in einem Template h<>ufig zum Einsatz kommt,
|
|
|
|
|
|
kann es ein bisschen st<73>rend wirken, den <link
|
|
|
|
|
|
linkend="language.modifier.default"><emphasis>default</emphasis></link>-Modifikator
|
|
|
|
|
|
jedes mal anzuwenden. Sie k<>nnen dies umgehen, indem Sie der
|
|
|
|
|
|
Variable mit der <link
|
|
|
|
|
|
linkend="language.function.assign">{assign}</link> Funktion einen
|
|
|
|
|
|
Standardwert zuweisen.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>Zuweisen des Standardwertes einer Variable</title>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{* schreiben sie dieses statement an den Anfang des Templates *}
|
|
|
|
|
|
{assign var="titel" value=$titel|default:"kein Titel"}
|
|
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
{* falls 'titel' bei der Anweisung leer war, enth<74>lt es nun den Wert
|
|
|
|
|
|
'kein Titel' wenn Sie es ausgeben *}
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{$titel}
|
2005-06-20 14:44:30 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Siehe auch <link linkend="language.modifier.default">default
|
|
|
|
|
|
(Standardwert)</link> und <link
|
|
|
|
|
|
linkend="tips.blank.var.handling">Handhabung nicht zugewiesener
|
|
|
|
|
|
Variablen</link>.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
</sect1>
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
<sect1 id="tips.passing.vars">
|
|
|
|
|
|
<title>Variablen an eingebundene Templates weitergeben</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Wenn die Mehrzahl Ihrer Templates den gleichen Header und Footer
|
|
|
|
|
|
verwenden, lagert man diese meist in eigene Templates aus und
|
|
|
|
|
|
bindet diese mit<link
|
|
|
|
|
|
linkend="language.function.include">{include}</link> ein. Was
|
|
|
|
|
|
geschieht aber wenn der Header einen seitenspezifischen Titel
|
|
|
|
|
|
haben soll? Smarty bietet die M<>glichkeit, dem eingebundenen
|
2006-03-16 13:25:46 +00:00
|
|
|
|
Template, Variablen als <link
|
|
|
|
|
|
linkend="language.syntax.attributes">Attribute</link> zu
|
|
|
|
|
|
<20>bergeben.
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>Die Titel-Variable dem Header-Template zuweisen</title>
|
|
|
|
|
|
<para>
|
2006-03-16 13:25:46 +00:00
|
|
|
|
<filename>mainpage.tpl</filename> - Beim Aufbau der Hauptseite
|
|
|
|
|
|
wird der Titel "Hauptseite" an <filename>header.tpl</filename>
|
|
|
|
|
|
<20>bergeben und dort verwendet.
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{include file="header.tpl" title="Hauptseite"}
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{* template body hier *}
|
|
|
|
|
|
{include file="footer.tpl"}
|
2005-06-20 14:44:30 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
<filename>archives.tpl</filename>
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
|
|
|
|
|
{config_load file="archiv.conf"}
|
|
|
|
|
|
{include file="header.tpl" title=#archivSeiteTitel#}
|
|
|
|
|
|
{* template body hier *}
|
|
|
|
|
|
{include file="footer.tpl"}
|
2005-06-20 14:44:30 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
2006-03-16 13:25:46 +00:00
|
|
|
|
<filename>header.tpl</filename> - Zur Info: wenn kein $titel
|
|
|
|
|
|
<20>bergeben wurde wird hier mittels des <link
|
|
|
|
|
|
linkend="language.modifier.default">default</link>-Modifikator der
|
|
|
|
|
|
Titel "Nachrichten" verwendet.
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
<html>
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<title>{$title|default:"Nachrichten"}</title>
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
<filename>footer.tpl</filename>
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
</BODY>
|
|
|
|
|
|
</HTML>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.dates">
|
|
|
|
|
|
<title>Zeitangaben</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Um dem Template Designer h<>chstm<74>gliche Kontrolle <20>ber die Ausgabe
|
|
|
|
|
|
von Zeitangaben/Daten zu erm<72>glichen, ist es empfehlenswert Daten
|
2006-03-16 13:25:46 +00:00
|
|
|
|
immer als <ulink url="&url.php-manual;time">Timestamp</ulink> zu
|
|
|
|
|
|
<20>bergeben. Der Designer kann danach die Funktion <link
|
2005-06-20 14:44:30 +00:00
|
|
|
|
linkend="language.modifier.date.format">date_format</link> f<>r die
|
|
|
|
|
|
Formatierung verwenden.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Bemerkung: Seit Smarty 1.4.0 ist es m<>glich jede Timestamp zu
|
|
|
|
|
|
<20>bergeben, welche mit strtotime() ausgewertet werden kann. Dazu
|
|
|
|
|
|
geh<65>ren Unix-Timestamps und MySQL-Timestamps.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>Die Verwendung von date_format</title>
|
|
|
|
|
|
<programlisting>
|
2004-07-16 14:32:31 +00:00
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{$startDate|date_format}
|
|
|
|
|
|
]]>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
AUSGABE:
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<screen>
|
2004-07-16 14:32:31 +00:00
|
|
|
|
<![CDATA[
|
2004-03-28 15:20:52 +00:00
|
|
|
|
Jan 4, 2001
|
2004-07-16 14:32:31 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</screen>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{$startDatum|date_format:"%Y/%m/%d"}
|
2004-07-16 14:32:31 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
2004-03-28 15:20:52 +00:00
|
|
|
|
AUSGABE:
|
2004-07-16 14:32:31 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<screen>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:20:52 +00:00
|
|
|
|
2001/01/04
|
2004-07-16 14:32:31 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</screen>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{if $datum1 < $datum2}
|
2005-06-20 14:44:30 +00:00
|
|
|
|
...
|
2004-07-16 14:32:31 +00:00
|
|
|
|
{/if}
|
|
|
|
|
|
]]>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Falls <link
|
|
|
|
|
|
linkend="language.function.html.select.date">{html_select_date}</link>
|
|
|
|
|
|
in einem Template verwendet wird, hat der Programmierer die
|
|
|
|
|
|
M<>glichkeit den Wert wieder in ein Timestamp-Format zu
|
|
|
|
|
|
<20>ndern. Dies kann zum Beispiel wie folgt gemacht werden:
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>Formular Datum-Elemente nach Timestamp konvertieren</title>
|
|
|
|
|
|
<programlisting role="php">
|
2004-07-16 14:32:31 +00:00
|
|
|
|
<![CDATA[
|
|
|
|
|
|
<?php
|
2005-06-20 14:44:30 +00:00
|
|
|
|
|
2004-03-28 15:20:52 +00:00
|
|
|
|
// hierbei wird davon ausgegangen, dass Ihre Formular Elemente wie folgt benannt sind
|
|
|
|
|
|
// startDate_Day, startDate_Month, startDate_Year
|
|
|
|
|
|
|
|
|
|
|
|
$startDate = makeTimeStamp($startDate_Year,$startDate_Month,$startDate_Day);
|
|
|
|
|
|
|
|
|
|
|
|
function makeTimeStamp($year="",$month="",$day="")
|
|
|
|
|
|
{
|
2005-06-20 14:44:30 +00:00
|
|
|
|
if(empty($year)) {
|
|
|
|
|
|
$year = strftime("%Y");
|
|
|
|
|
|
}
|
|
|
|
|
|
if(empty($month)) {
|
|
|
|
|
|
$month = strftime("%m");
|
|
|
|
|
|
}
|
|
|
|
|
|
if(empty($day)) {
|
|
|
|
|
|
$day = strftime("%d");
|
|
|
|
|
|
}
|
|
|
|
|
|
return mktime(0, 0, 0, $month, $day, $year);
|
2004-07-16 14:32:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
]]>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
<para>
|
|
|
|
|
|
Siehe auch
|
|
|
|
|
|
<link linkend="language.function.html.select.date">{html_select_date}</link>,
|
|
|
|
|
|
<link linkend="language.function.html.select.time">{html_select_time}</link>,
|
|
|
|
|
|
<link linkend="language.modifier.date.format">date_format</link>
|
|
|
|
|
|
und <link linkend="language.variables.smarty.now">$smarty.now</link>,
|
|
|
|
|
|
</para>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.wap">
|
|
|
|
|
|
<title>WAP/WML</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
WAP/WML Templates verlangen, dass ein Content-Type Header im
|
|
|
|
|
|
Template angegeben wird. Der einfachste Weg um dies zu tun, w<>re,
|
|
|
|
|
|
eine Funktion zu schreiben, welche den Header ausgibt. Falls sie
|
|
|
|
|
|
den Caching Mechanismus verwenden, sollten Sie auf das
|
|
|
|
|
|
'insert'-Tag zur<75>ckgreifen ('insert'-Tags werden nicht gecached),
|
|
|
|
|
|
um ein optimales Ergebnis zu erzielen. Achten Sie darauf, dass vor
|
|
|
|
|
|
der Ausgabe des Headers keine Daten an den Client gesendet werden,
|
|
|
|
|
|
da die gesendeten Header-Daten ansonsten von Client verworfen
|
|
|
|
|
|
werden.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>Die verwendung von 'insert' um einen WML Content-Type header zu senden</title>
|
|
|
|
|
|
<programlisting>
|
2004-07-16 14:32:31 +00:00
|
|
|
|
<![CDATA[
|
|
|
|
|
|
<?php
|
2005-06-20 14:44:30 +00:00
|
|
|
|
|
2004-03-28 15:20:52 +00:00
|
|
|
|
// stellen Sie sicher, dass Apache mit .wml Dateien umgehen kann!
|
|
|
|
|
|
// schreiben Sie folgende Funktion in Ihrer Applikation, oder in Smarty.addons.php
|
2005-06-20 14:44:30 +00:00
|
|
|
|
function insert_header($params)
|
|
|
|
|
|
{
|
2004-03-28 15:20:52 +00:00
|
|
|
|
// folgende Funktion erwartet ein $inhalt argument
|
2005-06-20 14:44:30 +00:00
|
|
|
|
if (empty($params['inhalt'])) {
|
2004-03-28 15:20:52 +00:00
|
|
|
|
return;
|
2005-06-20 14:44:30 +00:00
|
|
|
|
}
|
|
|
|
|
|
header($params['inhalt']);
|
2004-03-28 15:20:52 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
2005-06-20 14:44:30 +00:00
|
|
|
|
|
2004-07-16 14:32:31 +00:00
|
|
|
|
?>
|
|
|
|
|
|
]]>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Ihr Template <emphasis>muss</emphasis> danach wie folgt beginnen:
|
|
|
|
|
|
</para>
|
2004-07-16 14:32:31 +00:00
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{insert name=header inhalt="Content-Type: text/vnd.wap.wml"}
|
|
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
<?xml version="1.0"?>
|
|
|
|
|
|
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
|
|
|
|
|
|
|
|
|
|
|
|
<!-- neues wml deck -->
|
|
|
|
|
|
<wml>
|
|
|
|
|
|
<!-- erste karte -->
|
|
|
|
|
|
<card>
|
|
|
|
|
|
<do type="accept">
|
|
|
|
|
|
<go href="#zwei"/>
|
|
|
|
|
|
</do>
|
|
|
|
|
|
<p>
|
|
|
|
|
|
Welcome to WAP with Smarty!
|
|
|
|
|
|
Willkommen bei WAP mit Smarty!
|
|
|
|
|
|
OK klicken um weiterzugehen...
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</card>
|
|
|
|
|
|
<!-- zweite karte -->
|
|
|
|
|
|
<card id="zwei">
|
|
|
|
|
|
<p>
|
|
|
|
|
|
Einfach, oder?
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</card>
|
|
|
|
|
|
</wml>
|
2004-07-16 14:32:31 +00:00
|
|
|
|
]]>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.componentized.templates">
|
|
|
|
|
|
<title>Template/Script Komponenten</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Normalerweise werden Variablen dem Template wie folgt zugewiesen:
|
|
|
|
|
|
In Ihrer PHP-Applikation werden die Variablen zusammengestellt
|
|
|
|
|
|
(zum Beispiel mit Datenbankabfragen). Danach kreieren Sie eine
|
|
|
|
|
|
Instanz von Smarty, weisen die Variablen mit <link
|
|
|
|
|
|
linkend="api.assign">assign()</link> zu und geben das Template mit
|
|
|
|
|
|
<link linkend="api.display">display()</link> aus. Wenn wir also
|
|
|
|
|
|
zum Beispiel einen B<>rsenticker in unserem Template haben, stellen
|
|
|
|
|
|
wir die Kursinformationen in unserer Anwendung zusammen, weisen
|
|
|
|
|
|
Sie dem Template zu und geben es aus. W<>re es jedoch nicht nett
|
|
|
|
|
|
diesen B<>rsenticker einfach in ein Template einer anderen
|
|
|
|
|
|
Applikation einbinden zu k<>nnen ohne deren Programmcode zu <20>ndern?
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Sie k<>nnen PHP-Code mit {php}{/php} in Ihre Templates einbetten.
|
|
|
|
|
|
So k<>nnen Sie Templates erstellen, welche die Datenstrukturen zur
|
|
|
|
|
|
Anweisung der eigenen Variablen enthalten. Durch die Bindung von
|
|
|
|
|
|
Template und Logik entsteht so eine eigenst<73>ndig lauff<66>hige
|
|
|
|
|
|
Komponente.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>Template/Script Komponenten</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
<filename>function.load_ticker.php</filename> -
|
|
|
|
|
|
Diese Datei geh<65>rt ins <link
|
|
|
|
|
|
linkend="variable.plugins.dir">$plugins directory</link>
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<programlisting role="php">
|
2004-07-16 14:32:31 +00:00
|
|
|
|
<![CDATA[
|
|
|
|
|
|
<?php
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
2004-07-16 14:32:31 +00:00
|
|
|
|
// setup our function for fetching stock data
|
|
|
|
|
|
function fetch_ticker($symbol)
|
|
|
|
|
|
{
|
2005-06-20 14:44:30 +00:00
|
|
|
|
// put logic here that fetches $ticker_info
|
|
|
|
|
|
// from some ticker resource
|
|
|
|
|
|
return $ticker_info;
|
2004-07-16 14:32:31 +00:00
|
|
|
|
}
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
function smarty_function_load_ticker($params, $smarty)
|
2004-07-16 14:32:31 +00:00
|
|
|
|
{
|
2005-06-20 14:44:30 +00:00
|
|
|
|
// call the function
|
|
|
|
|
|
$ticker_info = fetch_ticker($params['symbol']);
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
// assign template variable
|
|
|
|
|
|
$smarty->assign($params['assign'], $ticker_info);
|
2004-07-16 14:32:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
<para>
|
|
|
|
|
|
<filename>index.tpl</filename>
|
|
|
|
|
|
</para>
|
2004-07-16 14:32:31 +00:00
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{load_ticker symbol="YHOO" assign="ticker"}
|
|
|
|
|
|
|
|
|
|
|
|
Stock Name: {$ticker.name} Stock Price: {$ticker.price}
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</example>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.obfuscating.email">
|
|
|
|
|
|
<title>Verschleierung von E-mail Adressen</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Haben Sie sich auch schon gewundert, wie Ihre E-mail Adresse auf
|
|
|
|
|
|
so viele Spam-Mailinglisten kommt? Ein Weg, wie Spammer E-mail
|
|
|
|
|
|
Adressen sammeln, ist <20>ber Webseiten. Um dieses Problem zu
|
|
|
|
|
|
bek<65>mpfen, k<>nnen sie den 'mailto'-Plugin verwenden. Er <20>ndert
|
|
|
|
|
|
die Zeichenfolge mit Javascript so, dass sie im HTML Quellcode
|
|
|
|
|
|
nicht lesbar ist, jedoch von jedem Browser wieder zusammengesetzt
|
|
|
|
|
|
werden kann. Den <link
|
|
|
|
|
|
linkend="language.function.mailto">{mailto}</link>-Plugin gibt es
|
|
|
|
|
|
im Smarty-Repository auf http://smarty.php.net. Laden sie den
|
|
|
|
|
|
Plugin herunter und speichern Sie ihn im 'plugins' Verzeichnis.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>Beispiel von verschleierung von E-mail Adressen</title>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
{* in index.tpl *}
|
2004-03-28 15:20:52 +00:00
|
|
|
|
|
2005-06-20 14:44:30 +00:00
|
|
|
|
Anfragen bitte an
|
2004-03-28 15:20:52 +00:00
|
|
|
|
{mailto address=$EmailAddress encode="javascript" subject="Hallo"}
|
|
|
|
|
|
senden
|
2005-06-20 14:44:30 +00:00
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
|
|
|
|
|
<note>
|
|
|
|
|
|
<title>Technische Details</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Die Codierung mit Javascript ist nicht sehr sicher, da ein
|
|
|
|
|
|
m<>glicher Spammer die Decodierung in sein Sammelprogramm
|
|
|
|
|
|
einbauen k<>nnte. Es wird jedoch damit gerechnet, dass, da
|
|
|
|
|
|
Aufwand und Ertrag sich nicht decken, dies nicht oft der Fall
|
|
|
|
|
|
ist.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
</note>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Siehe auch <link linkend="language.modifier.escape">escape</link>
|
|
|
|
|
|
und <link linkend="language.function.mailto">{mailto}</link>.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
</chapter>
|
2004-03-28 15:20:52 +00:00
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
|
|
|
|
Local variables:
|
|
|
|
|
|
mode: sgml
|
|
|
|
|
|
sgml-omittag:t
|
|
|
|
|
|
sgml-shorttag:t
|
|
|
|
|
|
sgml-minimize-attributes:nil
|
|
|
|
|
|
sgml-always-quote-attributes:t
|
|
|
|
|
|
sgml-indent-step:1
|
|
|
|
|
|
sgml-indent-data:t
|
|
|
|
|
|
indent-tabs-mode:nil
|
|
|
|
|
|
sgml-parent-document:nil
|
|
|
|
|
|
sgml-default-dtd-file:"../../../../manual.ced"
|
|
|
|
|
|
sgml-exposed-tags:nil
|
|
|
|
|
|
sgml-local-catalogs:nil
|
|
|
|
|
|
sgml-local-ecat-files:nil
|
|
|
|
|
|
End:
|
|
|
|
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
|
|
|
|
vim: et tw=78 syn=sgml
|
|
|
|
|
|
vi: ts=1 sw=1
|
2004-07-16 14:32:31 +00:00
|
|
|
|
-->
|