mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 02:44:27 +02:00
sync with en
This commit is contained in:
@@ -1,14 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!-- $Revision$ -->
|
<!-- $Revision$ -->
|
||||||
|
<!-- EN-Revision: 1.3 Maintainer: didou Status: ready -->
|
||||||
<chapter id="resources">
|
<chapter id="resources">
|
||||||
<title>Ressources</title>
|
<title>Ressources</title>
|
||||||
<para>
|
<para>
|
||||||
La page Web de Smarty se trouve <20> l'adresse suivante : &url.smarty;
|
La page Web de Smarty se trouve <20> l'adresse suivante : &url.smarty;
|
||||||
Vous pouvez souscrire <20> la mailing liste en envoyant un email <20>
|
Vous pouvez souscrire <20> la mailing liste en envoyant un email <20>
|
||||||
&ml.general.sub;.
|
&ml.general.sub;.
|
||||||
Les archives de la mailing list se trouvent <20> l'adresse suivante :
|
Les archives de la mailing list se trouvent <20> l'adresse suivante :
|
||||||
&url.ml.archive;
|
&url.ml.archive;
|
||||||
</para>
|
</para>
|
||||||
</chapter>
|
</chapter>
|
||||||
<!-- Keep this comment at the end of the file
|
<!-- Keep this comment at the end of the file
|
||||||
Local variables:
|
Local variables:
|
||||||
|
@@ -1,45 +1,49 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!-- $Revision$ -->
|
<!-- $Revision$ -->
|
||||||
|
<!-- EN-Revision: 1.4 Maintainer: didou Status: ready -->
|
||||||
<chapter id="tips">
|
<chapter id="tips">
|
||||||
<title>Trucs et astuces</title>
|
<title>Trucs et astuces</title>
|
||||||
<para>
|
<para></para>
|
||||||
</para>
|
<sect1 id="tips.blank.var.handling">
|
||||||
<sect1 id="tips.blank.var.handling">
|
<title>Gestion des variables non-assign<67>es</title>
|
||||||
<title>Gestion des variables non-assign<67>es</title>
|
<para>
|
||||||
<para>
|
Peut-<2D>tre voudrez-vous des fois afficher une valeur par
|
||||||
Peut-<2D>tre voudrez-vous des fois afficher une valeur par d<>faut pour
|
d<>faut pour une variable qui n'a pas <20>t<EFBFBD> assign<67>e, comme
|
||||||
une variable qui n'a pas <20>t<EFBFBD> assign<67>e, comme pour afficher "&nbsp;"
|
pour afficher "&nbsp;" afin que les couleurs de fond
|
||||||
afin que les couleurs de fond des tableaux fonctionnent. Beaucoup utiliseraient
|
des tableaux fonctionnent. Beaucoup utiliseraient une
|
||||||
une instruction {if} pour g<>rer cela, mais il existe un moyen plus facile dans
|
instruction {if} pour g<>rer cela, mais il existe un moyen
|
||||||
Smarty, l'utilisation du modificateur de variable <emphasis>default</emphasis>.
|
plus facile dans Smarty : l'utilisation du modificateur
|
||||||
</para>
|
de variable <emphasis>default</emphasis>.
|
||||||
<example>
|
</para>
|
||||||
<title>afficher &nbsp; quand une variable est vide</title>
|
<example>
|
||||||
<programlisting>
|
<title>afficher &nbsp; quand une variable est vide</title>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
{* la m<>thode pas adapt<70>e *}
|
{* la m<>thode pas adapt<70>e *}
|
||||||
|
|
||||||
{if $title eq ""}
|
{if $title eq ""}
|
||||||
&nbsp;
|
|
||||||
{else}
|
{else}
|
||||||
{$title}
|
{$title}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
{* la bonne m<>thode *}
|
{* la bonne m<>thode *}
|
||||||
|
|
||||||
{$title|default:"&nbsp;"}</programlisting>
|
{$title|default:" "}
|
||||||
</example>
|
]]>
|
||||||
</sect1>
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="tips.default.var.handling">
|
<sect1 id="tips.default.var.handling">
|
||||||
<title>Gestion des variables par d<>faut</title>
|
<title>Gestion des variables par d<>faut</title>
|
||||||
<para>
|
<para>
|
||||||
Si une variable est utilis<69>e fr<66>quemment dans vos templates,
|
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.
|
lui appliquer le modificateur par d<>faut peut <20>tre un peu fastidieux.
|
||||||
Vous pouvez rem<65>dier <20> cela en lui assignant une valeur par d<>faut
|
Vous pouvez rem<65>dier <20> cela en lui assignant une valeur par d<>faut
|
||||||
avec la fonction <link linkend="language.function.assign">assign</link>.
|
avec la fonction <link linkend="language.function.assign">assign</link>.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>assigner une valeur par d<>faut <20> une variable de template</title>
|
<title>assigner une valeur par d<>faut <20> une variable de template</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -49,15 +53,15 @@
|
|||||||
{* si $title est vide, il contiendra alors no "no title" *}
|
{* si $title est vide, il contiendra alors no "no title" *}
|
||||||
{$title}</programlisting>
|
{$title}</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="tips.passing.vars">
|
<sect1 id="tips.passing.vars">
|
||||||
<title>Passage du titre <20> un template d'en-t<>te</title>
|
<title>Passage du titre <20> un template d'en-t<>te</title>
|
||||||
<para>
|
<para>
|
||||||
Quand la majorit<69> de vos templates utilisent les m<>mes en-t<>te et pied-de-page,
|
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.
|
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
|
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.
|
d'o<> on vient ? Vous pouvez passer le titre <20> l'en-t<>te quand il est inclus.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>passer le titre au template d'en-t<>te</title>
|
<title>passer le titre au template d'en-t<>te</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -93,15 +97,15 @@ footer.tpl
|
|||||||
</BODY>
|
</BODY>
|
||||||
</HTML></programlisting>
|
</HTML></programlisting>
|
||||||
</example>
|
</example>
|
||||||
<para>
|
<para>
|
||||||
Quand la page principale est con<6F>ue, le titre "Main page" est pass<73> <20> header.tpl
|
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,
|
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 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.
|
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
|
Remarquez aussi que "BC News" est affich<63>e si la variable $title
|
||||||
n'est pas d<>finie, gr<67>ce au modificateur de variable <emphasis>default</emphasis>.
|
n'est pas d<>finie, gr<67>ce au modificateur de variable <emphasis>default</emphasis>.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="tips.dates">
|
<sect1 id="tips.dates">
|
||||||
<title>Dates</title>
|
<title>Dates</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -134,7 +138,7 @@ OUTPUT:
|
|||||||
|
|
||||||
|
|
||||||
{if $date1 < $date2}
|
{if $date1 < $date2}
|
||||||
...
|
...
|
||||||
{/if}</programlisting>
|
{/if}</programlisting>
|
||||||
</example>
|
</example>
|
||||||
<para>
|
<para>
|
||||||
@@ -152,29 +156,29 @@ $startDate = makeTimeStamp($startDate_Year,$startDate_Month,$startDate_Day);
|
|||||||
|
|
||||||
function makeTimeStamp($year="",$month="",$day="")
|
function makeTimeStamp($year="",$month="",$day="")
|
||||||
{
|
{
|
||||||
if(empty($year))
|
if(empty($year))
|
||||||
$year = strftime("%Y");
|
$year = strftime("%Y");
|
||||||
if(empty($month))
|
if(empty($month))
|
||||||
$month = strftime("%m");
|
$month = strftime("%m");
|
||||||
if(empty($day))
|
if(empty($day))
|
||||||
$day = strftime("%d");
|
$day = strftime("%d");
|
||||||
|
|
||||||
return mktime(0,0,0,$month,$day,$year);
|
return mktime(0,0,0,$month,$day,$year);
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="tips.wap">
|
<sect1 id="tips.wap">
|
||||||
<title>WAP/WML</title>
|
<title>WAP/WML</title>
|
||||||
<para>
|
<para>
|
||||||
Les templates WAP/WML n<>cessitent un en-t<>te "Content-Type" qui doit <20>tre
|
Les templates WAP/WML n<>cessitent un en-t<>te "Content-Type" qui doit <20>tre
|
||||||
pass<EFBFBD> avec le template. Le moyen le plus facile de faire cela est d'<27>crire
|
pass<EFBFBD> avec le template. Le moyen le plus facile de faire cela est d'<27>crire
|
||||||
une fonction utilisateur qui <20>crit l'en-t<>te. Si vous utilisez le cache,
|
une fonction utilisateur qui <20>crit l'en-t<>te. Si vous utilisez le cache,
|
||||||
cela ne fonctionnera pas. Nous utiliserons donc une balise d'insertion
|
cela ne fonctionnera pas. Nous utiliserons donc une balise d'insertion
|
||||||
(rappelez-vous que les balises d'insertion ne sont pas mises en cache !).
|
(rappelez-vous que les balises d'insertion ne sont pas mises en cache !).
|
||||||
Assurez-vous qu'aucune sortie
|
Assurez-vous qu'aucune sortie
|
||||||
rien n'est transmise au navigateur avant l'appel du template, sans quoi
|
rien n'est transmise au navigateur avant l'appel du template, sans quoi
|
||||||
la modification de l'en-t<>te <20>chouera.
|
la modification de l'en-t<>te <20>chouera.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>utilisation d'insert pour <20>crire un en-t<>te Content-Type WML</title>
|
<title>utilisation d'insert pour <20>crire un en-t<>te Content-Type WML</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -215,16 +219,16 @@ Pretty easy isn't it?
|
|||||||
</card>
|
</card>
|
||||||
</wml></programlisting>
|
</wml></programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="tips.componentized.templates">
|
<sect1 id="tips.componentized.templates">
|
||||||
<title>Templates composants</title>
|
<title>Templates composants</title>
|
||||||
<para>
|
<para>
|
||||||
Cette astuce tient plus du hack qu'autre chose mais n'en demeure pas
|
Cette astuce tient plus du hack qu'autre chose mais n'en demeure pas
|
||||||
moins une id<69>e plut<75>t chouette. Utilisez-la <20> vos propres risques. ;-)
|
moins une id<69>e plut<75>t chouette. Utilisez-la <20> vos propres risques. ;-)
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Traditionnellemnt, la programmation avec des templates dans les applications
|
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
|
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
|
dans l'application PHP (peut-<2D>tre avec des requ<71>tes en base de donn<6E>es), puis
|
||||||
vous instanciez votre objet Smarty, assignez les variables et affichez le
|
vous instanciez votre objet Smarty, assignez les variables et affichez le
|
||||||
template. Disons par exemple que nous avons un t<>l<EFBFBD>scripteur dans
|
template. Disons par exemple que nous avons un t<>l<EFBFBD>scripteur dans
|
||||||
@@ -233,16 +237,16 @@ Pretty easy isn't it?
|
|||||||
mieux de pouvoir ajouter ce t<>l<EFBFBD>scripteur <20> n'importe quelle application
|
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
|
en incluant directement le template sans avoir <20> se soucier de la r<>cup<75>ration
|
||||||
des donn<6E>es.
|
des donn<6E>es.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Vous pouvez int<6E>grer du PHP dans vos templates avec les balises
|
Vous pouvez int<6E>grer du PHP dans vos templates avec les balises
|
||||||
{php}{/php}. Avec cette m<>thode, vous pouvez inclure des templates complets,
|
{php}{/php}. Avec cette m<>thode, vous pouvez inclure des templates complets,
|
||||||
dans la mesure o<> ils r<>cup<75>rent leurs propres donn<6E>es pour les assigner
|
dans la mesure o<> ils r<>cup<75>rent leurs propres donn<6E>es pour les assigner
|
||||||
<20> leurs propres variables. Avec le traitement int<6E>gr<67>
|
<20> leurs propres variables. Avec le traitement int<6E>gr<67>
|
||||||
de cette fa<66>on, vous pouvez garder le template et le traitement ensemble.
|
de cette fa<66>on, vous pouvez garder le template et le traitement ensemble.
|
||||||
Ainsi, on ne se soucie plus d'o<> vient le contenu du template,
|
Ainsi, on ne se soucie plus d'o<> vient le contenu du template,
|
||||||
tout vient comme un seul et unique composant.
|
tout vient comme un seul et unique composant.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>template composant</title>
|
<title>template composant</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -251,15 +255,15 @@ Pretty easy isn't it?
|
|||||||
{php}
|
{php}
|
||||||
|
|
||||||
// notre fonction pour r<>cup<75>rer les donn<6E>es
|
// notre fonction pour r<>cup<75>rer les donn<6E>es
|
||||||
function fetch_ticker($symbol,&$ticker_name,&$ticker_price) {
|
function fetch_ticker($symbol,&$ticker_name,&$ticker_price) {
|
||||||
// du traitement qui r<>cup<75>re $ticker_name
|
// du traitement qui r<>cup<75>re $ticker_name
|
||||||
// $ticker_price
|
// $ticker_price
|
||||||
}
|
}
|
||||||
|
|
||||||
// appelle la fonction
|
// appelle la fonction
|
||||||
fetch_ticker("YHOO",$ticker_name,$ticker_price);
|
fetch_ticker("YHOO",$ticker_name,$ticker_price);
|
||||||
|
|
||||||
// assigne les variables
|
// assigne les variables
|
||||||
$this->assign("ticker_name",$ticker_name);
|
$this->assign("ticker_name",$ticker_name);
|
||||||
$this->assign("ticker_price",$ticker_price);
|
$this->assign("ticker_price",$ticker_price);
|
||||||
|
|
||||||
@@ -272,8 +276,8 @@ Stock Name: {$ticker_name} Stock Price: {$ticker_price}</programlisting>
|
|||||||
pouvez inclure du PHP dans votre template avec la balise {include_php ...}.
|
pouvez inclure du PHP dans votre template avec la balise {include_php ...}.
|
||||||
De cette fa<66>on, vous pouvez garder s<>par<61>e la logique applicative
|
De cette fa<66>on, vous pouvez garder s<>par<61>e la logique applicative
|
||||||
de la logique de pr<70>sentation. Reportez-vous <20> la fonction <link
|
de la logique de pr<70>sentation. Reportez-vous <20> la fonction <link
|
||||||
linkend="language.function.include.php">include_php</link> pour plus
|
linkend="language.function.include.php">include_php</link> pour plus
|
||||||
d'informations.
|
d'informations.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>template composant avec include_php</title>
|
<title>template composant avec include_php</title>
|
||||||
@@ -282,16 +286,16 @@ load_ticker.php
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
// notre fonction pour r<>cup<75>rer les donn<6E>es
|
// notre fonction pour r<>cup<75>rer les donn<6E>es
|
||||||
function fetch_ticker($symbol,&$ticker_name,&$ticker_price) {
|
function fetch_ticker($symbol,&$ticker_name,&$ticker_price) {
|
||||||
// put logic here that fetches $ticker_name
|
// put logic here that fetches $ticker_name
|
||||||
// and $ticker_price from some resource
|
// and $ticker_price from some resource
|
||||||
}
|
}
|
||||||
|
|
||||||
// appelle la fonction
|
// appelle la fonction
|
||||||
fetch_ticker("YHOO",$ticker_name,$ticker_price);
|
fetch_ticker("YHOO",$ticker_name,$ticker_price);
|
||||||
|
|
||||||
// assigne les variables
|
// assigne les variables
|
||||||
$this->assign("ticker_name",$ticker_name);
|
$this->assign("ticker_name",$ticker_name);
|
||||||
$this->assign("ticker_price",$ticker_price);
|
$this->assign("ticker_price",$ticker_price);
|
||||||
?>
|
?>
|
||||||
@@ -306,17 +310,17 @@ index.tpl
|
|||||||
|
|
||||||
Stock Name: {$ticker_name} Stock Price: {$ticker_price}</programlisting>
|
Stock Name: {$ticker_name} Stock Price: {$ticker_price}</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="tips.obfuscating.email">
|
<sect1 id="tips.obfuscating.email">
|
||||||
<title>Dissimuler les adresses email</title>
|
<title>Dissimuler les adresses email</title>
|
||||||
<para>
|
<para>
|
||||||
Vous-<2D>tes vous d<>j<EFBFBD> demand<6E> pourquoi vos adresses emails sont sur autant
|
Vous-<2D>tes vous d<>j<EFBFBD> demand<6E> pourquoi vos adresses emails sont sur autant
|
||||||
de mailing listes de spam ? Une fa<66>on pour les spammers de r<>cup<75>rer les
|
de mailing listes de spam ? Une fa<66>on pour les spammers de r<>cup<75>rer les
|
||||||
adresses est de parcourir les pages Web. Voici une fa<66>on de rem<65>dier
|
adresses est de parcourir les pages Web. Voici une fa<66>on de rem<65>dier
|
||||||
<EFBFBD> ce probl<62>me : mettre votre adresse email dans du Javascript brouill<6C>
|
<EFBFBD> ce probl<62>me : mettre votre adresse email dans du Javascript brouill<6C>
|
||||||
au milieu de votre source HTML, sans que cela ne g<>ne l'affichage sur le
|
au milieu de votre source HTML, sans que cela ne g<>ne l'affichage sur le
|
||||||
navigateur Web. Cela est fait gr<67>ce au plugin mailto.
|
navigateur Web. Cela est fait gr<67>ce au plugin mailto.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>exemple de dissimulation d'une adresse email</title>
|
<title>exemple de dissimulation d'une adresse email</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -329,15 +333,15 @@ Send inquiries to
|
|||||||
|
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</example>
|
</example>
|
||||||
<note>
|
<note>
|
||||||
<title>Note technique</title>
|
<title>Note technique</title>
|
||||||
<para>
|
<para>
|
||||||
Cette m<>thode n'est pas infaillible. Un spammer peut programmer son
|
Cette m<>thode n'est pas infaillible. Un spammer peut programmer son
|
||||||
collecteur d'email pour passer outre cette astuce, mais c'est cependant
|
collecteur d'email pour passer outre cette astuce, mais c'est cependant
|
||||||
peu probable.
|
peu probable.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
</sect1>
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
<!-- Keep this comment at the end of the file
|
<!-- Keep this comment at the end of the file
|
||||||
Local variables:
|
Local variables:
|
||||||
|
Reference in New Issue
Block a user