2004-03-28 15:18:13 +00:00
|
|
|
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
|
|
|
|
<!-- $Revision$ -->
|
2005-05-24 20:07:09 +00:00
|
|
|
|
<!-- EN-Revision: 1.8 Maintainer: didou Status: ready -->
|
2004-03-28 15:18:13 +00:00
|
|
|
|
<chapter id="tips">
|
2004-04-19 17:08:12 +00:00
|
|
|
|
<title>Trucs et astuces</title>
|
|
|
|
|
|
<para></para>
|
|
|
|
|
|
<sect1 id="tips.blank.var.handling">
|
|
|
|
|
|
<title>Gestion des variables non-assign<67>es</title>
|
|
|
|
|
|
<para>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
Peut-<2D>tre voudrez-vous des fois afficher une valeur par
|
2004-04-19 17:08:12 +00:00
|
|
|
|
d<>faut pour une variable qui n'a pas <20>t<EFBFBD> assign<67>e, comme
|
|
|
|
|
|
pour afficher "&nbsp;" afin que les couleurs de fond
|
2004-05-23 15:50:53 +00:00
|
|
|
|
des tableaux fonctionnent. Beaucoup utiliseraient une
|
2005-05-10 21:15:40 +00:00
|
|
|
|
instruction <link linkend="language.function.if">{if}</link>
|
|
|
|
|
|
pour g<>rer cel<65>, mais il existe un moyen
|
2004-05-23 15:50:53 +00:00
|
|
|
|
plus facile dans Smarty : l'utilisation du modificateur
|
2004-04-19 17:08:12 +00:00
|
|
|
|
de variable <emphasis>default</emphasis>.
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</para>
|
2004-04-19 17:08:12 +00:00
|
|
|
|
<example>
|
|
|
|
|
|
<title>afficher &nbsp; quand une variable est vide</title>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:18:13 +00:00
|
|
|
|
{* la m<>thode pas adapt<70>e *}
|
|
|
|
|
|
|
|
|
|
|
|
{if $title eq ""}
|
2004-04-19 17:08:12 +00:00
|
|
|
|
|
2004-03-28 15:18:13 +00:00
|
|
|
|
{else}
|
2004-04-19 17:08:12 +00:00
|
|
|
|
{$title}
|
2004-03-28 15:18:13 +00:00
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{* la bonne m<>thode *}
|
|
|
|
|
|
|
2004-04-19 17:08:12 +00:00
|
|
|
|
{$title|default:" "}
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
</example>
|
2005-05-10 21:15:40 +00:00
|
|
|
|
<para>
|
|
|
|
|
|
Voir aussi
|
|
|
|
|
|
<link linkend="language.modifier.default">default</link> et
|
|
|
|
|
|
<link linkend="tips.default.var.handling">la gestion des variables par d<>faut</link>.
|
|
|
|
|
|
</para>
|
2004-04-19 17:08:12 +00:00
|
|
|
|
</sect1>
|
2005-05-10 21:15:40 +00:00
|
|
|
|
|
2004-05-23 15:50:53 +00:00
|
|
|
|
<sect1 id="tips.default.var.handling">
|
|
|
|
|
|
<title>Gestion des variables par d<>faut</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Si une variable est utilis<69>e fr<66>quemment dans vos templates,
|
|
|
|
|
|
lui appliquer le modificateur par d<>faut peut <20>tre un peu fastidieux.
|
2004-12-26 21:12:45 +00:00
|
|
|
|
Vous pouvez rem<65>dier <20> cel<65> en lui assignant une valeur par d<>faut
|
2005-05-24 20:07:09 +00:00
|
|
|
|
avec la fonction <link linkend="language.function.assign">{assign}</link>.
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>assigner une valeur par d<>faut <20> une variable de template</title>
|
2004-03-28 15:18:13 +00:00
|
|
|
|
<programlisting>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<![CDATA[
|
2004-12-26 21:12:45 +00:00
|
|
|
|
{* faites cel<65> quelque part en haut de votre template *}
|
2004-03-28 15:18:13 +00:00
|
|
|
|
{assign var="title" value=$title|default:"no title"}
|
|
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
{* si $title est vide, il contiendra alors la valeur "no title" *}
|
|
|
|
|
|
{$title}
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</example>
|
2005-05-10 21:15:40 +00:00
|
|
|
|
<para>
|
|
|
|
|
|
Voir aussi
|
|
|
|
|
|
<link linkend="language.modifier.default">default</link> et
|
|
|
|
|
|
<link linkend="tips.blank.var.handling">la gestion des variables non-assign<67>es</link>.
|
|
|
|
|
|
</para>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.passing.vars">
|
|
|
|
|
|
<title>Passage du titre <20> un template d'en-t<>te</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Quand la majorit<69> de vos templates utilisent les m<>mes en-t<>te et pied-de-page,
|
|
|
|
|
|
il est d'usage de les mettre dans leurs propres templates et de les inclure.
|
|
|
|
|
|
Mais comment faire si l'en-t<>te doit avoir un titre diff<66>rent, selon la page
|
|
|
|
|
|
d'o<> on vient ? Vous pouvez passer le titre <20> l'en-t<>te quand il est inclus.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
|
|
|
|
|
<title>passer le titre au template d'en-t<>te</title>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:18:13 +00:00
|
|
|
|
mainpage.tpl
|
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
|
|
{include file="header.tpl" title="Main Page"}
|
|
|
|
|
|
{* le corps du template va ici *}
|
|
|
|
|
|
{include file="footer.tpl"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
archives.tpl
|
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
|
|
{config_load file="archive_page.conf"}
|
|
|
|
|
|
{include file="header.tpl" title=#archivePageTitle#}
|
|
|
|
|
|
{* le corps du template va ici *}
|
|
|
|
|
|
{include file="footer.tpl"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
header.tpl
|
|
|
|
|
|
----------
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<HTML>
|
|
|
|
|
|
<HEAD>
|
|
|
|
|
|
<TITLE>{$title|default:"BC News"}</TITLE>
|
|
|
|
|
|
</HEAD>
|
|
|
|
|
|
<BODY>
|
2004-03-28 15:18:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
footer.tpl
|
|
|
|
|
|
----------
|
2004-12-21 20:31:42 +00:00
|
|
|
|
</BODY>
|
|
|
|
|
|
</HTML>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</example>
|
|
|
|
|
|
<para>
|
2004-04-19 17:08:12 +00:00
|
|
|
|
Quand la page principale est con<6F>ue, le titre "Main page" est pass<73> <20> header.tpl
|
|
|
|
|
|
et sera donc utilis<69> pour le titre. Quand la page d'archive est con<6F>ue,
|
|
|
|
|
|
le titre sera "Archives". Notez que dans l'exemple des archives, on utilise
|
|
|
|
|
|
le fichier archives_page.conf plut<75>t que des variables cod<6F>es en dur.
|
|
|
|
|
|
Remarquez aussi que "BC News" est affich<63>e si la variable $title
|
2005-05-24 20:07:09 +00:00
|
|
|
|
n'est pas d<>finie, gr<67>ce au modificateur de variable
|
|
|
|
|
|
<link linkend="language.modifier.default">default</link>.
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.dates">
|
|
|
|
|
|
<title>Dates</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
De fa<66>on g<>n<EFBFBD>rale, essayez de toujours passer les dates <20> Smarty
|
2004-12-26 21:12:45 +00:00
|
|
|
|
sous forme de timestamp. Cel<65> permet aux designers de templates d'utiliser
|
2004-05-23 15:50:53 +00:00
|
|
|
|
<link linkend="language.modifier.date.format">date_format</link>
|
|
|
|
|
|
pour avoir un contr<74>le total sur le formatage des dates et de comparer
|
|
|
|
|
|
facilement les dates entre elles.
|
|
|
|
|
|
</para>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<note>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
A partir Smarty 1.4.0, vous pouvez passer les dates <20> Smarty
|
|
|
|
|
|
sous la forme de timestamps Unix ou MySQL, ou tout autre format de dates
|
2005-05-10 21:15:40 +00:00
|
|
|
|
que comprend <ulink url="&url.php-manual;strtotime">strtotime()</ulink>.
|
2004-12-21 20:31:42 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
</note>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
<example>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<title>Utilisation de date_format</title>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:18:13 +00:00
|
|
|
|
{$startDate|date_format}
|
2004-12-21 20:31:42 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Affichera :
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<screen>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:18:13 +00:00
|
|
|
|
Jan 4, 2001
|
2004-12-21 20:31:42 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</screen>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:18:13 +00:00
|
|
|
|
{$startDate|date_format:"%Y/%m/%d"}
|
2004-12-21 20:31:42 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Affichera :
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<screen>
|
|
|
|
|
|
<![CDATA[
|
2004-03-28 15:18:13 +00:00
|
|
|
|
2001/01/04
|
2004-12-21 20:31:42 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</screen>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{if $date1 < $date2}
|
2004-04-19 17:08:12 +00:00
|
|
|
|
...
|
2004-12-21 20:31:42 +00:00
|
|
|
|
{/if}
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</example>
|
|
|
|
|
|
<para>
|
2005-05-10 21:15:40 +00:00
|
|
|
|
En utilisant la fonction <link linkend="language.function.html.select.date">{html_select_date}</link>
|
|
|
|
|
|
dans un template, le programmeur
|
2004-05-23 15:50:53 +00:00
|
|
|
|
veut en g<>n<EFBFBD>ral convertir le r<>sultat d'un formulaire en un timestamp.
|
|
|
|
|
|
Voici une fonction qui devrait vous <20>tre utile.
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<title>Conversion des <20>l<EFBFBD>ments date d'un formulaire en timestamp</title>
|
|
|
|
|
|
<programlisting role="php">
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
2004-12-26 21:12:45 +00:00
|
|
|
|
// cel<65> suppose que vos <20>l<EFBFBD>ments de formulaire soient nomm<6D>s
|
2004-03-28 15:18:13 +00:00
|
|
|
|
// startDate_Day, startDate_Month, startDate_Year
|
|
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
$startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day);
|
2004-03-28 15:18:13 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
function makeTimeStamp($year="", $month="", $day="")
|
2004-03-28 15:18:13 +00:00
|
|
|
|
{
|
2004-12-21 20:31:42 +00:00
|
|
|
|
if(empty($year)) {
|
|
|
|
|
|
$year = strftime("%Y");
|
|
|
|
|
|
}
|
|
|
|
|
|
if(empty($month)) {
|
|
|
|
|
|
$month = strftime("%m");
|
|
|
|
|
|
}
|
|
|
|
|
|
if(empty($day)) {
|
|
|
|
|
|
$day = strftime("%d");
|
|
|
|
|
|
}
|
2005-05-24 20:07:09 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
return mktime(0, 0, 0, $month, $day, $year);
|
|
|
|
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</example>
|
2005-05-24 20:07:09 +00:00
|
|
|
|
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Voir aussi
|
|
|
|
|
|
<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>
|
|
|
|
|
|
et <link linkend="language.variables.smarty.now">$smarty.now</link>,
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.wap">
|
|
|
|
|
|
<title>WAP/WML</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Les templates WAP/WML n<>cessitent un en-t<>te "Content-Type" qui doit <20>tre
|
2004-12-26 21:12:45 +00:00
|
|
|
|
pass<73> avec le template. Le moyen le plus facile de faire cel<65> est d'<27>crire
|
2004-05-23 15:50:53 +00:00
|
|
|
|
une fonction utilisateur qui <20>crit l'en-t<>te. Si vous utilisez le cache,
|
2004-12-26 21:12:45 +00:00
|
|
|
|
cel<65> ne fonctionnera pas. Nous utiliserons donc une balise d'insertion
|
2004-03-28 15:18:13 +00:00
|
|
|
|
(rappelez-vous que les balises d'insertion ne sont pas mises en cache !).
|
|
|
|
|
|
Assurez-vous qu'aucune sortie
|
2004-05-23 15:50:53 +00:00
|
|
|
|
rien n'est transmise au navigateur avant l'appel du template, sans quoi
|
2004-03-28 15:18:13 +00:00
|
|
|
|
la modification de l'en-t<>te <20>chouera.
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<title>Utilisation d'insert pour <20>crire un en-t<>te Content-Type WML</title>
|
|
|
|
|
|
<programlisting role="php">
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
2004-03-28 15:18:13 +00:00
|
|
|
|
// assurez-vous que Apache est configur<75> pour les extensions .wml !
|
2004-12-21 20:31:42 +00:00
|
|
|
|
// mettez cette fonction quelque part dans votre applications
|
2004-03-28 15:18:13 +00:00
|
|
|
|
// ou dans Smarty.addons.php
|
2004-12-21 20:31:42 +00:00
|
|
|
|
function insert_header()
|
|
|
|
|
|
{
|
|
|
|
|
|
// cette fonction attend un argument $content
|
|
|
|
|
|
if (empty($params['content'])) {
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
header($params['content']);
|
|
|
|
|
|
return;
|
2004-03-28 15:18:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
?>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
votre template Smarty <emphasis>doit</emphasis> commencer avec la balise d'insertion :
|
|
|
|
|
|
</para>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{insert name=header content="Content-Type: text/vnd.wap.wml"}
|
|
|
|
|
|
|
|
|
|
|
|
<?xml version="1.0"?>
|
|
|
|
|
|
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
|
|
|
|
|
|
|
|
|
|
|
|
<!-- begin new wml deck -->
|
|
|
|
|
|
<wml>
|
|
|
|
|
|
<!-- begin first card -->
|
|
|
|
|
|
<card>
|
|
|
|
|
|
<do type="accept">
|
|
|
|
|
|
<go href="#two"/>
|
|
|
|
|
|
</do>
|
|
|
|
|
|
<p>
|
|
|
|
|
|
Welcome to WAP with Smarty!
|
|
|
|
|
|
Press OK to continue...
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</card>
|
|
|
|
|
|
<!-- begin second card -->
|
|
|
|
|
|
<card id="two">
|
|
|
|
|
|
<p>
|
|
|
|
|
|
Pretty easy isn't it?
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</card>
|
|
|
|
|
|
</wml>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</example>
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.componentized.templates">
|
|
|
|
|
|
<title>Templates composants</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Traditionnellemnt, la programmation avec des templates dans les applications
|
|
|
|
|
|
se d<>roule de la fa<66>on suivante : d'abord vous r<>cup<75>rez vos variables
|
|
|
|
|
|
dans l'application PHP (peut-<2D>tre avec des requ<71>tes en base de donn<6E>es), puis
|
2005-05-10 21:15:40 +00:00
|
|
|
|
vous instanciez votre objet Smarty, <link linkend="api.assign">assignez</link>
|
|
|
|
|
|
les variables et <link linkend="api.display">affichez</link> le
|
2004-05-23 15:50:53 +00:00
|
|
|
|
template. Disons par exemple que nous avons un t<>l<EFBFBD>scripteur dans
|
|
|
|
|
|
notre template. Nous r<>cup<75>rerions les donn<6E>es dans notre application,
|
|
|
|
|
|
puis les assignerions ensuite pour les afficher. Mais ne serait-ce pas
|
|
|
|
|
|
mieux de pouvoir ajouter ce t<>l<EFBFBD>scripteur <20> n'importe quelle application
|
|
|
|
|
|
en incluant directement le template sans avoir <20> se soucier de la r<>cup<75>ration
|
2004-12-21 20:31:42 +00:00
|
|
|
|
des donn<6E>es ?
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<para>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
Vous pouvez r<>aliser cel<65> en <20>crivant un plugin personnalis<69> pour r<>cup<75>rer le contenu
|
|
|
|
|
|
et l'assigner <20> une variable du template.
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<title>Template composant</title>
|
|
|
|
|
|
<programlisting role="php">
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
<?php
|
2004-03-28 15:18:13 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
// Efface le fichier "function.load_ticker.php" dans le r<>pertoire des plugins
|
2004-03-28 15:18:13 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
// notre fonction pour r<>cup<75>rer les donn<6E>es
|
|
|
|
|
|
function fetch_ticker($symbol,&$ticker_name,&$ticker_price)
|
|
|
|
|
|
{
|
|
|
|
|
|
// du traitement qui r<>cup<75>re $ticker_name
|
|
|
|
|
|
// depuis la ressource ticker
|
|
|
|
|
|
return $ticker_info;
|
|
|
|
|
|
}
|
2004-04-19 17:08:12 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
function smarty_function_load_ticker($params, &$smarty)
|
|
|
|
|
|
{
|
|
|
|
|
|
// appel de la fonction
|
|
|
|
|
|
$ticker_info = fetch_ticker($params['symbol']);
|
2004-04-19 17:08:12 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
// assignation de la variable de template
|
|
|
|
|
|
$smarty->assign($params['assign'], $ticker_info);
|
|
|
|
|
|
}
|
|
|
|
|
|
?>
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
|
|
|
|
|
<programlisting>
|
|
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{* in index.tpl *}
|
2004-03-28 15:18:13 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
{load_ticker symbol="YHOO" assign="ticker"}
|
2004-03-28 15:18:13 +00:00
|
|
|
|
|
2004-12-21 20:31:42 +00:00
|
|
|
|
Stock Name: {$ticker.name} Stock Price: {$ticker.price}
|
|
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</example>
|
2005-05-10 21:15:40 +00:00
|
|
|
|
<para>
|
|
|
|
|
|
Voir aussi
|
|
|
|
|
|
<link linkend="language.function.include.php">{include_php}</link>,
|
|
|
|
|
|
<link linkend="language.function.include">{include}</link> et
|
|
|
|
|
|
<link linkend="language.function.php">{php}</link>.
|
|
|
|
|
|
</para>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="tips.obfuscating.email">
|
|
|
|
|
|
<title>Dissimuler les adresses email</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Vous-<2D>tes vous d<>j<EFBFBD> demand<6E> pourquoi vos adresses emails sont sur autant
|
2004-12-21 20:31:42 +00:00
|
|
|
|
de listes de diffusion de spam ? Une fa<66>on pour les spammers de r<>cup<75>rer les
|
2004-05-23 15:50:53 +00:00
|
|
|
|
adresses est de parcourir les pages Web. Voici une fa<66>on de rem<65>dier
|
|
|
|
|
|
<20> ce probl<62>me : mettre votre adresse email dans du Javascript brouill<6C>
|
2004-12-26 21:12:45 +00:00
|
|
|
|
au milieu de votre source HTML, sans que cel<65> ne g<>ne l'affichage sur le
|
|
|
|
|
|
navigateur Web. Cel<65> est fait gr<67>ce au plugin mailto.
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</para>
|
|
|
|
|
|
<example>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<title>Exemple de dissimulation d'une adresse email</title>
|
2004-03-28 15:18:13 +00:00
|
|
|
|
<programlisting>
|
2004-12-21 20:31:42 +00:00
|
|
|
|
<![CDATA[
|
|
|
|
|
|
{* in index.tpl *}
|
2004-03-28 15:18:13 +00:00
|
|
|
|
|
|
|
|
|
|
Send inquiries to
|
|
|
|
|
|
{mailto address=$EmailAddress encode="javascript" subject="Hello"}
|
2004-12-21 20:31:42 +00:00
|
|
|
|
]]>
|
|
|
|
|
|
</programlisting>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</example>
|
2004-04-19 17:08:12 +00:00
|
|
|
|
<note>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
<title>Note technique</title>
|
|
|
|
|
|
<para>
|
|
|
|
|
|
Cette m<>thode n'est pas infaillible. Un spammer peut programmer son
|
|
|
|
|
|
collecteur d'email pour passer outre cette astuce, mais c'est cependant
|
|
|
|
|
|
peu probable.
|
|
|
|
|
|
</para>
|
2004-04-19 17:08:12 +00:00
|
|
|
|
</note>
|
2005-05-10 21:15:40 +00:00
|
|
|
|
<para>
|
|
|
|
|
|
Voir aussi
|
|
|
|
|
|
<link linkend="language.modifier.escape">escape</link>.
|
|
|
|
|
|
</para>
|
2004-05-23 15:50:53 +00:00
|
|
|
|
</sect1>
|
|
|
|
|
|
</chapter>
|
|
|
|
|
|
<!-- 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
|
|
|
|
|
|
-->
|