mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-05 19:04:27 +02:00
sync with EN
#Hello all ;)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?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 -->
|
<!-- EN-Revision: 1.4 Maintainer: didou Status: ready -->
|
||||||
<chapter id="resources">
|
<chapter id="resources">
|
||||||
<title>Ressources</title>
|
<title>Ressources</title>
|
||||||
<para>
|
<para>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<?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 -->
|
<!-- EN-Revision: 1.5 Maintainer: didou Status: ready -->
|
||||||
<chapter id="tips">
|
<chapter id="tips">
|
||||||
<title>Trucs et astuces</title>
|
<title>Trucs et astuces</title>
|
||||||
<para></para>
|
<para></para>
|
||||||
@@ -47,11 +47,14 @@
|
|||||||
<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>
|
||||||
{* faites cela qq part en haut de votre template *}
|
<![CDATA[
|
||||||
|
{* faites cela quelque part en haut de votre template *}
|
||||||
{assign var="title" value=$title|default:"no title"}
|
{assign var="title" value=$title|default:"no title"}
|
||||||
|
|
||||||
{* si $title est vide, il contiendra alors no "no title" *}
|
{* si $title est vide, il contiendra alors la valeur "no title" *}
|
||||||
{$title}</programlisting>
|
{$title}
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="tips.passing.vars">
|
<sect1 id="tips.passing.vars">
|
||||||
@@ -64,8 +67,8 @@
|
|||||||
</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>
|
||||||
|
<![CDATA[
|
||||||
mainpage.tpl
|
mainpage.tpl
|
||||||
------------
|
------------
|
||||||
|
|
||||||
@@ -85,17 +88,19 @@ archives.tpl
|
|||||||
|
|
||||||
header.tpl
|
header.tpl
|
||||||
----------
|
----------
|
||||||
<HTML>
|
<HTML>
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<TITLE>{$title|default:"BC News"}</TITLE>
|
<TITLE>{$title|default:"BC News"}</TITLE>
|
||||||
</HEAD>
|
</HEAD>
|
||||||
<BODY>
|
<BODY>
|
||||||
|
|
||||||
|
|
||||||
footer.tpl
|
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
|
||||||
@@ -115,31 +120,48 @@ footer.tpl
|
|||||||
pour avoir un contr<74>le total sur le formatage des dates et de comparer
|
pour avoir un contr<74>le total sur le formatage des dates et de comparer
|
||||||
facilement les dates entre elles.
|
facilement les dates entre elles.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<note>
|
||||||
NOTE : <20> partir Smarty 1.4.0, vous pouvez passer les dates <20> Smarty
|
<para>
|
||||||
sous la forme de timestamps Unix ou MySQL, ou tout autre format de dates
|
A partir Smarty 1.4.0, vous pouvez passer les dates <20> Smarty
|
||||||
que comprend strtotime().
|
sous la forme de timestamps Unix ou MySQL, ou tout autre format de dates
|
||||||
</para>
|
que comprend strtotime().
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
<example>
|
<example>
|
||||||
<title>utilisation de date_format</title>
|
<title>Utilisation de date_format</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
{$startDate|date_format}
|
{$startDate|date_format}
|
||||||
|
]]>
|
||||||
OUTPUT:
|
</programlisting>
|
||||||
|
<para>
|
||||||
|
Affichera :
|
||||||
|
</para>
|
||||||
|
<screen>
|
||||||
|
<![CDATA[
|
||||||
Jan 4, 2001
|
Jan 4, 2001
|
||||||
|
]]>
|
||||||
|
</screen>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
{$startDate|date_format:"%Y/%m/%d"}
|
{$startDate|date_format:"%Y/%m/%d"}
|
||||||
|
]]>
|
||||||
OUTPUT:
|
</programlisting>
|
||||||
|
<para>
|
||||||
|
Affichera :
|
||||||
|
</para>
|
||||||
|
<screen>
|
||||||
|
<![CDATA[
|
||||||
2001/01/04
|
2001/01/04
|
||||||
|
]]>
|
||||||
|
</screen>
|
||||||
{if $date1 < $date2}
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
{if $date1 < $date2}
|
||||||
...
|
...
|
||||||
{/if}</programlisting>
|
{/if}
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
</example>
|
</example>
|
||||||
<para>
|
<para>
|
||||||
En utilisant la fonction {html_select_date} dans un template, le programmeur
|
En utilisant la fonction {html_select_date} dans un template, le programmeur
|
||||||
@@ -147,24 +169,33 @@ OUTPUT:
|
|||||||
Voici une fonction qui devrait vous <20>tre utile.
|
Voici une fonction qui devrait vous <20>tre utile.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>conversion des <20>l<EFBFBD>ments date d'un formulaire en timestamp</title>
|
<title>Conversion des <20>l<EFBFBD>ments date d'un formulaire en timestamp</title>
|
||||||
<programlisting>
|
<programlisting role="php">
|
||||||
|
<![CDATA[
|
||||||
|
<?php
|
||||||
|
|
||||||
// cela suppose que vos <20>l<EFBFBD>ments de formulaire soient nomm<6D>s
|
// cela suppose que vos <20>l<EFBFBD>ments de formulaire soient nomm<6D>s
|
||||||
// startDate_Day, startDate_Month, startDate_Year
|
// startDate_Day, startDate_Month, startDate_Year
|
||||||
|
|
||||||
$startDate = makeTimeStamp($startDate_Year,$startDate_Month,$startDate_Day);
|
$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))
|
}
|
||||||
$month = strftime("%m");
|
if(empty($month)) {
|
||||||
if(empty($day))
|
$month = strftime("%m");
|
||||||
$day = strftime("%d");
|
}
|
||||||
|
if(empty($day)) {
|
||||||
return mktime(0,0,0,$month,$day,$year);
|
$day = strftime("%d");
|
||||||
}</programlisting>
|
}
|
||||||
|
|
||||||
|
return mktime(0, 0, 0, $month, $day, $year);
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="tips.wap">
|
<sect1 id="tips.wap">
|
||||||
@@ -180,52 +211,62 @@ function makeTimeStamp($year="",$month="",$day="")
|
|||||||
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 role="php">
|
||||||
|
<![CDATA[
|
||||||
|
<?php
|
||||||
|
|
||||||
// assurez-vous que Apache est configur<75> pour les extensions .wml !
|
// assurez-vous que Apache est configur<75> pour les extensions .wml !
|
||||||
// mettez cette fonction qq part dans votre applications
|
// mettez cette fonction quelque part dans votre applications
|
||||||
// ou dans Smarty.addons.php
|
// ou dans Smarty.addons.php
|
||||||
function insert_header() {
|
function insert_header()
|
||||||
// cette fonction attend un argument $content
|
{
|
||||||
extract(func_get_arg(0));
|
// cette fonction attend un argument $content
|
||||||
if(empty($content))
|
if (empty($params['content'])) {
|
||||||
return;
|
return;
|
||||||
header($content);
|
}
|
||||||
return;
|
header($params['content']);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// votre template Smarty DOIT commencer avec la balise d'insertion
|
?>
|
||||||
|
]]>
|
||||||
|
</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"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
|
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
|
||||||
|
|
||||||
<!-- begin new wml deck -->
|
<!-- begin new wml deck -->
|
||||||
<wml>
|
<wml>
|
||||||
<!-- begin first card -->
|
<!-- begin first card -->
|
||||||
<card>
|
<card>
|
||||||
<do type="accept">
|
<do type="accept">
|
||||||
<go href="#two"/>
|
<go href="#two"/>
|
||||||
</do>
|
</do>
|
||||||
<p>
|
<p>
|
||||||
Welcome to WAP with Smarty!
|
Welcome to WAP with Smarty!
|
||||||
Press OK to continue...
|
Press OK to continue...
|
||||||
</p>
|
</p>
|
||||||
</card>
|
</card>
|
||||||
<!-- begin second card -->
|
<!-- begin second card -->
|
||||||
<card id="two">
|
<card id="two">
|
||||||
<p>
|
<p>
|
||||||
Pretty easy isn't it?
|
Pretty easy isn't it?
|
||||||
</p>
|
</p>
|
||||||
</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>
|
|
||||||
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. ;-)
|
|
||||||
</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
|
||||||
@@ -236,102 +277,70 @@ Pretty easy isn't it?
|
|||||||
puis les assignerions ensuite pour les afficher. Mais ne serait-ce pas
|
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
|
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<EFBFBD>grer du PHP dans vos templates avec les balises
|
Vous pouvez r<EFBFBD>aliser cel<65> en <20>crivant un plugin personnalis<69> pour r<>cup<75>rer le contenu
|
||||||
{php}{/php}. Avec cette m<>thode, vous pouvez inclure des templates complets,
|
et l'assigner <20> une variable du template.
|
||||||
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>
|
|
||||||
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,
|
|
||||||
tout vient comme un seul et unique composant.
|
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>template composant</title>
|
<title>Template composant</title>
|
||||||
<programlisting>
|
<programlisting role="php">
|
||||||
{* Smarty *}
|
<![CDATA[
|
||||||
|
<?php
|
||||||
|
|
||||||
{php}
|
// Efface le fichier "function.load_ticker.php" dans le r<>pertoire des plugins
|
||||||
|
|
||||||
// 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
|
{
|
||||||
// $ticker_price
|
// du traitement qui r<>cup<75>re $ticker_name
|
||||||
}
|
// depuis la ressource ticker
|
||||||
|
return $ticker_info;
|
||||||
|
}
|
||||||
|
|
||||||
// appelle la fonction
|
function smarty_function_load_ticker($params, &$smarty)
|
||||||
fetch_ticker("YHOO",$ticker_name,$ticker_price);
|
{
|
||||||
|
// appel de la fonction
|
||||||
|
$ticker_info = fetch_ticker($params['symbol']);
|
||||||
|
|
||||||
// assigne les variables
|
// assignation de la variable de template
|
||||||
$this->assign("ticker_name",$ticker_name);
|
$smarty->assign($params['assign'], $ticker_info);
|
||||||
$this->assign("ticker_price",$ticker_price);
|
}
|
||||||
|
?>
|
||||||
|
]]>
|
||||||
|
</programlisting>
|
||||||
|
<programlisting>
|
||||||
|
<![CDATA[
|
||||||
|
{* in index.tpl *}
|
||||||
|
|
||||||
{/php}
|
{load_ticker symbol="YHOO" assign="ticker"}
|
||||||
|
|
||||||
Stock Name: {$ticker_name} Stock Price: {$ticker_price}</programlisting>
|
Stock Name: {$ticker.name} Stock Price: {$ticker.price}
|
||||||
</example>
|
]]>
|
||||||
<para>
|
</programlisting>
|
||||||
A partir de Smarty 1.5.0, il y a m<>me un moyen plus propre. Vous
|
|
||||||
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 la logique de pr<70>sentation. Reportez-vous <20> la fonction <link
|
|
||||||
linkend="language.function.include.php">include_php</link> pour plus
|
|
||||||
d'informations.
|
|
||||||
</para>
|
|
||||||
<example>
|
|
||||||
<title>template composant avec include_php</title>
|
|
||||||
<programlisting>
|
|
||||||
load_ticker.php
|
|
||||||
---------------
|
|
||||||
|
|
||||||
<?php
|
|
||||||
// notre fonction pour r<>cup<75>rer les donn<6E>es
|
|
||||||
function fetch_ticker($symbol,&$ticker_name,&$ticker_price) {
|
|
||||||
// put logic here that fetches $ticker_name
|
|
||||||
// and $ticker_price from some resource
|
|
||||||
}
|
|
||||||
|
|
||||||
// appelle la fonction
|
|
||||||
fetch_ticker("YHOO",$ticker_name,$ticker_price);
|
|
||||||
|
|
||||||
// assigne les variables
|
|
||||||
$this->assign("ticker_name",$ticker_name);
|
|
||||||
$this->assign("ticker_price",$ticker_price);
|
|
||||||
?>
|
|
||||||
|
|
||||||
|
|
||||||
index.tpl
|
|
||||||
---------
|
|
||||||
|
|
||||||
{* Smarty *}
|
|
||||||
|
|
||||||
{include_php file="load_ticker.php"}
|
|
||||||
|
|
||||||
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 listes de diffusion 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
|
||||||
<20> ce probl<62>me : mettre votre adresse email dans du Javascript brouill<6C>
|
<20> 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>
|
||||||
|
<![CDATA[
|
||||||
index.tpl
|
{* in index.tpl *}
|
||||||
---------
|
|
||||||
|
|
||||||
Send inquiries to
|
Send inquiries to
|
||||||
{mailto address=$EmailAddress encode="javascript" subject="Hello"}
|
{mailto address=$EmailAddress encode="javascript" subject="Hello"}
|
||||||
|
]]>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</example>
|
</example>
|
||||||
<note>
|
<note>
|
||||||
<title>Note technique</title>
|
<title>Note technique</title>
|
||||||
|
@@ -1,26 +1,35 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!-- $Revision$ -->
|
<!-- $Revision$ -->
|
||||||
<!-- EN-Revision: 1.5 Maintainer: didou Status: ready -->
|
<!-- EN-Revision: 1.6 Maintainer: didou Status: ready -->
|
||||||
<bookinfo id="bookinfo">
|
<bookinfo id="bookinfo">
|
||||||
<title>Smarty - le moteur et compilateur de templates PHP</title>
|
<title>Smarty - le moteur et compilateur de templates PHP</title>
|
||||||
<authorgroup id="authors">
|
<authorgroup id="authors">
|
||||||
<author>
|
<author>
|
||||||
<firstname>Monte</firstname><surname>Ohrt <monte@ispi.net></surname>
|
<firstname>Monte</firstname>
|
||||||
|
<surname>Ohrt <monte@ispi.net></surname>
|
||||||
</author>
|
</author>
|
||||||
<author>
|
<author>
|
||||||
<firstname>Andrei</firstname><surname>Zmievski <andrei@php.net></surname>
|
<firstname>Andrei</firstname>
|
||||||
|
<surname>Zmievski <andrei@php.net></surname>
|
||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
<authorgroup id="translators">
|
<authorgroup id="translators">
|
||||||
<author>
|
<author>
|
||||||
<firstname>Arnaud</firstname><surname>Cogolu<EFBFBD>gnes <arnaud.cogoluegnes@free.fr></surname>
|
<firstname>Arnaud</firstname>
|
||||||
|
<surname>Cogolu<EFBFBD>gnes <arnaud.cogoluegnes@free.fr></surname>
|
||||||
</author>
|
</author>
|
||||||
<author>
|
<author>
|
||||||
<firstname>G<EFBFBD>rald</firstname><surname>Cro<EFBFBD>s <gcroes@aston.fr></surname>
|
<firstname>G<EFBFBD>rald</firstname>
|
||||||
|
<surname>Cro<EFBFBD>s <gcroes@aston.fr></surname>
|
||||||
</author>
|
</author>
|
||||||
<author>
|
<author>
|
||||||
<firstname>Mehdi</firstname><surname>Achour <didou@php.net></surname>
|
<firstname>Mehdi</firstname>
|
||||||
|
<surname>Achour <didou@php.net></surname>
|
||||||
</author>
|
</author>
|
||||||
|
<author>
|
||||||
|
<firstname>Yannick</firstname>
|
||||||
|
<surname>Yannick <yannick@php.net></surname>
|
||||||
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
<pubdate>&build-date;</pubdate>
|
<pubdate>&build-date;</pubdate>
|
||||||
<copyright>
|
<copyright>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!-- $Revision$ -->
|
<!-- $Revision$ -->
|
||||||
<!-- EN-Revision: 1.3 Maintainer: gerald Status: ready -->
|
<!-- EN-Revision: 1.4 Maintainer: gerald Status: ready -->
|
||||||
<chapter id="config.files">
|
<chapter id="config.files">
|
||||||
<title>Fichiers de configuration</title>
|
<title>Fichiers de configuration</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -34,7 +34,7 @@ Intro = """Une valeur qui tient sur
|
|||||||
|
|
||||||
# hidden section
|
# hidden section
|
||||||
[.Database]
|
[.Database]
|
||||||
host=mon.domaine.com
|
host=mon.example.com
|
||||||
db=ADDRESSBOOK
|
db=ADDRESSBOOK
|
||||||
user=php-user
|
user=php-user
|
||||||
pass=foobar
|
pass=foobar
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!-- $Revision$ -->
|
<!-- $Revision$ -->
|
||||||
<!-- EN-Revision: 1.4 Maintainer: gerald Status: ready -->
|
<!-- EN-Revision: 1.5 Maintainer: gerald Status: ready -->
|
||||||
<chapter id="language.basic.syntax">
|
<chapter id="language.basic.syntax">
|
||||||
<title>Bases syntaxiques</title>
|
<title>Bases syntaxiques</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
&designers.language-basic-syntax.language-syntax-comments;
|
&designers.language-basic-syntax.language-syntax-comments;
|
||||||
|
&designers.language-basic-syntax.language-syntax-variables;
|
||||||
&designers.language-basic-syntax.language-syntax-functions;
|
&designers.language-basic-syntax.language-syntax-functions;
|
||||||
&designers.language-basic-syntax.language-syntax-attributes;
|
&designers.language-basic-syntax.language-syntax-attributes;
|
||||||
&designers.language-basic-syntax.language-syntax-quotes;
|
&designers.language-basic-syntax.language-syntax-quotes;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
<!-- $Revision$ -->
|
<!-- $Revision$ -->
|
||||||
<!-- EN-Revision: 1.6 Maintainer: didou Status: ready -->
|
<!-- EN-Revision: 1.7 Maintainer: didou Status: ready -->
|
||||||
<part id="getting.started">
|
<part id="getting.started">
|
||||||
<title>Pour commencer</title>
|
<title>Pour commencer</title>
|
||||||
|
|
||||||
@@ -12,6 +12,8 @@
|
|||||||
Cela s'explique plus facilement dans une situation o<> le
|
Cela s'explique plus facilement dans une situation o<> le
|
||||||
programmeur et le designer de templates jouent des r<>les diff<66>rents, ou,
|
programmeur et le designer de templates jouent des r<>les diff<66>rents, ou,
|
||||||
comme la plupart du temps, sont deux personnes distinctes.
|
comme la plupart du temps, sont deux personnes distinctes.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
Supposons par exemple que vous concevez une page Web qui affiche un
|
Supposons par exemple que vous concevez une page Web qui affiche un
|
||||||
article de newsletter. Le titre, le sous-titre, l'auteur et le corps
|
article de newsletter. Le titre, le sous-titre, l'auteur et le corps
|
||||||
sont des <20>l<EFBFBD>ments de contenu, ils ne contiennent aucune information
|
sont des <20>l<EFBFBD>ments de contenu, ils ne contiennent aucune information
|
||||||
@@ -40,7 +42,8 @@
|
|||||||
pour l'afficher, etc. sont toutes des actions relatives <20> du traitement
|
pour l'afficher, etc. sont toutes des actions relatives <20> du traitement
|
||||||
de pr<70>sentation. Cela ne signifie pas que Smarty requiert une telle s<>paration
|
de pr<70>sentation. Cela ne signifie pas que Smarty requiert une telle s<>paration
|
||||||
de votre part. Smarty ne sais pas quoi est quoi, c'est donc <20> vous de placer
|
de votre part. Smarty ne sais pas quoi est quoi, c'est donc <20> vous de placer
|
||||||
la logique de pr<70>sentation dans vos templates. Ainsi, si vous NE d<>sirez PAS
|
la logique de pr<70>sentation dans vos templates. Ainsi, si vous
|
||||||
|
<emphasis>ne d<>sirez pas</emphasis>
|
||||||
disposer de logique m<>tier dans vos templates, placez tous vos contenus
|
disposer de logique m<>tier dans vos templates, placez tous vos contenus
|
||||||
dans des variables au format texte uniquement.
|
dans des variables au format texte uniquement.
|
||||||
</para>
|
</para>
|
||||||
@@ -58,33 +61,80 @@
|
|||||||
Quelques caract<63>ristiques de Smarty :
|
Quelques caract<63>ristiques de Smarty :
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>Il est tr<74>s rapide.</para></listitem>
|
<listitem>
|
||||||
<listitem><para>Il est efficace, le parser PHP s'occupe
|
<para>
|
||||||
du sale travail.</para></listitem>
|
Il est tr<74>s rapide.
|
||||||
<listitem><para>Pas d'analyse de template co<63>teuse, une seule compilation.
|
</para>
|
||||||
</para></listitem>
|
</listitem>
|
||||||
<listitem><para>Il sait ne recompiler que les fichiers de templates
|
<listitem>
|
||||||
qui ont <20>t<EFBFBD> modifi<66>s.</para></listitem>
|
<para>
|
||||||
<listitem><para>Vous pouvez cr<63>er des <link linkend="language.custom.functions">
|
Il est efficace, le parser PHP s'occupe du sale travail.
|
||||||
fonctions utilisateurs</link> et des <link linkend="language.modifiers">
|
</para>
|
||||||
modificateurs de variables</link> personnalis<69>s, le langage de
|
</listitem>
|
||||||
template est donc extr<74>mement extensible.</para></listitem>
|
<listitem>
|
||||||
<listitem><para>Syntaxe des templates configurable, vous
|
<para>
|
||||||
pouvez utiliser {}, {{}}, <!--{}-->, etc comme d<>limiteurs.
|
Pas d'analyse de template co<63>teuse, une seule compilation.
|
||||||
</para></listitem>
|
</para>
|
||||||
<listitem><para>Les instructions if/elseif/else/endif
|
</listitem>
|
||||||
sont pass<73>es au parser PHP, la syntaxe de l'expression {if...}
|
<listitem>
|
||||||
peut <20>tre aussi simple ou aussi complexe que vous
|
<para>
|
||||||
le d<>sirez.</para></listitem>
|
Il sait ne recompiler que les fichiers de templates qui ont <20>t<EFBFBD> modifi<66>s.
|
||||||
<listitem><para>Imbrication illimit<69>e de sections,
|
</para>
|
||||||
de 'if', etc. autoris<69>e.</para></listitem>
|
</listitem>
|
||||||
<listitem><para>Il est possible d'inclure du code PHP
|
<listitem>
|
||||||
directement dans vos templates, bien que cela ne soit pas obligatoire
|
<para>
|
||||||
(ni conseill<6C>), vu que le moteur est extensible.</para></listitem>
|
Vous pouvez cr<63>er des <link linkend="language.custom.functions">
|
||||||
<listitem><para>Support de cache int<6E>gr<67>.</para></listitem>
|
fonctions utilisateurs</link> et des <link linkend="language.modifiers">
|
||||||
<listitem><para>Sources de templates arbitraires.</para></listitem>
|
modificateurs de variables</link> personnalis<69>s, le langage de
|
||||||
<listitem><para>Fonctions de gestion de cache personnalisables.</para></listitem>
|
template est donc extr<74>mement extensible.
|
||||||
<listitem><para>Architecture de plugins</para></listitem>
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Syntaxe des templates configurable, vous
|
||||||
|
pouvez utiliser {}, {{}}, <!--{}-->, etc. comme d<>limiteurs.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Les instructions if/elseif/else/endif
|
||||||
|
sont pass<73>es au parser PHP, la syntaxe de l'expression {if...}
|
||||||
|
peut <20>tre aussi simple ou aussi complexe que vous
|
||||||
|
le d<>sirez.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Imbrication illimit<69>e de sections, de 'if', etc. autoris<69>e.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Il est possible d'inclure du code PHP
|
||||||
|
directement dans vos templates, bien que cela ne soit pas obligatoire
|
||||||
|
(ni conseill<6C>), v<> que le moteur est extensible.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Support de cache int<6E>gr<67>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sources de templates arbitraires.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Fonctions de gestion de cache personnalisables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Architecture de plugins
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
||||||
@@ -127,9 +177,9 @@ debug.tpl
|
|||||||
linkend="constant.smarty.dir">SMARTY_DIR</link> qui
|
linkend="constant.smarty.dir">SMARTY_DIR</link> qui
|
||||||
repr<70>sente le chemin complet de la biblioth<74>que Smarty. En fait,
|
repr<70>sente le chemin complet de la biblioth<74>que Smarty. En fait,
|
||||||
si votre application trouve le fichier
|
si votre application trouve le fichier
|
||||||
<emphasis>Smarty.class.php</emphasis>, vous n'aurez pas
|
<filename>Smarty.class.php</filename>, vous n'aurez pas
|
||||||
besoin de d<>finir la variable SMARTY_DIR, Smarty s'en chargera pour vous.
|
besoin de d<>finir la variable SMARTY_DIR, Smarty s'en chargera pour vous.
|
||||||
En revanche, si <emphasis>Smarty.class.php</emphasis>
|
En revanche, si <filename>Smarty.class.php</filename>
|
||||||
n'est pas dans votre r<>pertoire d'inclusion ou que vous ne
|
n'est pas dans votre r<>pertoire d'inclusion ou que vous ne
|
||||||
donnez pas un chemin absolu <20> votre application, vous
|
donnez pas un chemin absolu <20> votre application, vous
|
||||||
devez d<>finir SMARTY_DIR explicitement. SMARTY_DIR
|
devez d<>finir SMARTY_DIR explicitement. SMARTY_DIR
|
||||||
@@ -154,7 +204,7 @@ $smarty = new Smarty;
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
Essayez de lancer le script ci-dessus. Si vous obtenez une erreur indiquant
|
Essayez de lancer le script ci-dessus. Si vous obtenez une erreur indiquant
|
||||||
que le fichier <emphasis>Smarty.class.php</emphasis> n'est pas trouv<75>,
|
que le fichier <filename>Smarty.class.php</filename> n'est pas trouv<75>,
|
||||||
tentez l'une des actions suivantes :
|
tentez l'une des actions suivantes :
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -201,19 +251,21 @@ $smarty = new Smarty;
|
|||||||
Maintenant que les fichiers de la librairie sont en place,
|
Maintenant que les fichiers de la librairie sont en place,
|
||||||
il est temps de d<>finir les r<>pertoires de Smarty, pour votre application.
|
il est temps de d<>finir les r<>pertoires de Smarty, pour votre application.
|
||||||
Smarty a besoin de quatre r<>pertoires qui sont (par d<>faut)
|
Smarty a besoin de quatre r<>pertoires qui sont (par d<>faut)
|
||||||
<emphasis>templates</emphasis>,
|
<filename class="directory">templates</filename>,
|
||||||
<emphasis>templates_c</emphasis>, <emphasis>configs</emphasis> et
|
<filename class="directory">templates_c</filename>,
|
||||||
<emphasis>cache</emphasis>. Chacun d'entre eux peut <20>tre d<>fini
|
<filename class="directory">configs</filename> et
|
||||||
via les attributs <emphasis>$template_dir</emphasis>,
|
<filename class="directory">cache</filename>. Chacun d'entre eux peut <20>tre d<>fini
|
||||||
<emphasis>$compile_dir</emphasis>, <emphasis>$config_dir</emphasis> et
|
via les attributs <varname>$template_dir</varname>,
|
||||||
<emphasis>$cache_dir</emphasis> respectivement. Il est vivement
|
<varname>$compile_dir</varname>, <varname>$config_dir</varname> et
|
||||||
|
<varname>$cache_dir</varname> respectivement. Il est vivement
|
||||||
conseill<6C> que vous r<>gliez ces r<>pertoires s<>par<61>ment pour chaque
|
conseill<6C> que vous r<>gliez ces r<>pertoires s<>par<61>ment pour chaque
|
||||||
application qui utilise Smarty.
|
application qui utilise Smarty.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Assurez-vous de bien conna<6E>tre chemin de la racine
|
Assurez-vous de bien conna<6E>tre chemin de la racine
|
||||||
de votre arborescence Web. Dans notre exemple, la racine
|
de votre arborescence Web. Dans notre exemple, la racine
|
||||||
est "/web/www.mydomain.com/docs". Seul Smarty
|
est <filename
|
||||||
|
class="directory">/web/www.example.com/docs/</filename>. Seul Smarty
|
||||||
acc<63>de aux r<>pertoires en question, et jamais le serveur Web.
|
acc<63>de aux r<>pertoires en question, et jamais le serveur Web.
|
||||||
Pour des raisons de s<>curit<69>, il est donc conseill<6C> de
|
Pour des raisons de s<>curit<69>, il est donc conseill<6C> de
|
||||||
sortir ces r<>pertoires dans un r<>pertoire
|
sortir ces r<>pertoires dans un r<>pertoire
|
||||||
@@ -228,15 +280,16 @@ $smarty = new Smarty;
|
|||||||
environnement pour n'importe quelle autre application, il suffit de
|
environnement pour n'importe quelle autre application, il suffit de
|
||||||
remplacer "livredor" avec le nom de votre application. Nous allons
|
remplacer "livredor" avec le nom de votre application. Nous allons
|
||||||
mettre nos r<>pertoires Smarty dans
|
mettre nos r<>pertoires Smarty dans
|
||||||
"/web/www.mydomain.com/smarty/livredor/".
|
<filename
|
||||||
|
class="directory">/web/www.example.com/smarty/livredor/</filename>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Vous allez avoir besoin d'au moins un fichier <20> la racine de
|
Vous allez avoir besoin d'au moins un fichier <20> la racine de
|
||||||
l'arborescence Web,
|
l'arborescence Web,
|
||||||
il s'agit du script auquel l'internaute a acc<63>s. Nous allons l'appeler
|
il s'agit du script auquel l'internaute a acc<63>s. Nous allons l'appeler
|
||||||
"index.php" et le placer dans un sous-r<>pertoire
|
<filename>index.php</filename> et le placer dans un sous-r<>pertoire
|
||||||
appel<65> "/livredor/".
|
appel<65> <filename class="directory">/livredor/</filename>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<title>Technical Note</title>
|
<title>Technical Note</title>
|
||||||
@@ -244,7 +297,7 @@ $smarty = new Smarty;
|
|||||||
Il est pratique de configurer le serveur Web de
|
Il est pratique de configurer le serveur Web de
|
||||||
sorte que "index.php" soit identifi<66> comme fichier
|
sorte que "index.php" soit identifi<66> comme fichier
|
||||||
par d<>faut de ce r<>pertoire. Aicnsi, si l'on tape
|
par d<>faut de ce r<>pertoire. Aicnsi, si l'on tape
|
||||||
"http://www.mydomain.com/livredor/", le script index.php soit
|
"http://www.example.com/livredor/", le script index.php soit
|
||||||
ex<65>cut<75> sans que "index.php" ne soit sp<73>cifi<66> dans l'URL. Avec Apache
|
ex<65>cut<75> sans que "index.php" ne soit sp<73>cifi<66> dans l'URL. Avec Apache
|
||||||
vous pouvez r<>gler cela en ajoutant "index.php" <20> la ligne o<> se
|
vous pouvez r<>gler cela en ajoutant "index.php" <20> la ligne o<> se
|
||||||
trouve DirectoryIndex (s<>parez chaque entr<74>e par un espace).
|
trouve DirectoryIndex (s<>parez chaque entr<74>e par un espace).
|
||||||
@@ -264,12 +317,12 @@ $smarty = new Smarty;
|
|||||||
/usr/local/lib/php/Smarty/internals/*.php
|
/usr/local/lib/php/Smarty/internals/*.php
|
||||||
/usr/local/lib/php/Smarty/plugins/*.php
|
/usr/local/lib/php/Smarty/plugins/*.php
|
||||||
|
|
||||||
/web/www.mydomain.com/smarty/livredor/templates/
|
/web/www.example.com/smarty/livredor/templates/
|
||||||
/web/www.mydomain.com/smarty/livredor/templates_c/
|
/web/www.example.com/smarty/livredor/templates_c/
|
||||||
/web/www.mydomain.com/smarty/livredor/configs/
|
/web/www.example.com/smarty/livredor/configs/
|
||||||
/web/www.mydomain.com/smarty/livredor/cache/
|
/web/www.example.com/smarty/livredor/cache/
|
||||||
|
|
||||||
/web/www.mydomain.com/docs/livredor/index.php
|
/web/www.example.com/docs/livredor/index.php
|
||||||
]]>
|
]]>
|
||||||
</screen>
|
</screen>
|
||||||
</example>
|
</example>
|
||||||
@@ -290,11 +343,11 @@ $smarty = new Smarty;
|
|||||||
<title>r<EFBFBD>gler les permissions d'acc<63>s</title>
|
<title>r<EFBFBD>gler les permissions d'acc<63>s</title>
|
||||||
<programlisting role="shell">
|
<programlisting role="shell">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
chown nobody:nobody /web/www.mydomain.com/smarty/livredor/templates_c/
|
chown nobody:nobody /web/www.example.com/smarty/livredor/templates_c/
|
||||||
chmod 770 /web/www.mydomain.com/smarty/livredor/templates_c/
|
chmod 770 /web/www.example.com/smarty/livredor/templates_c/
|
||||||
|
|
||||||
chown nobody:nobody /web/www.mydomain.com/smarty/livredor/cache/
|
chown nobody:nobody /web/www.example.com/smarty/livredor/cache/
|
||||||
chmod 770 /web/www.mydomain.com/smarty/livredor/cache/
|
chmod 770 /web/www.example.com/smarty/livredor/cache/
|
||||||
]]>
|
]]>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</example>
|
</example>
|
||||||
@@ -316,7 +369,7 @@ chmod 770 /web/www.mydomain.com/smarty/livredor/cache/
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Edition de /web/www.mydomain.com/smarty/templates/index.tpl</title>
|
<title>Edition de /web/www.example.com/smarty/templates/index.tpl</title>
|
||||||
<screen>
|
<screen>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
|
||||||
@@ -349,7 +402,7 @@ Hello, {$name}!
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title><EFBFBD>dition de /web/www.mydomain.com/docs/livredor/index.php</title>
|
<title><EFBFBD>dition de /web/www.example.com/docs/livredor/index.php</title>
|
||||||
<screen>
|
<screen>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
<?php
|
<?php
|
||||||
@@ -358,10 +411,10 @@ Hello, {$name}!
|
|||||||
|
|
||||||
$smarty = new Smarty;
|
$smarty = new Smarty;
|
||||||
|
|
||||||
$smarty->template_dir = '/web/www.mydomain.com/smarty/livredor/templates/';
|
$smarty->template_dir = '/web/www.example.com/smarty/livredor/templates/';
|
||||||
$smarty->compile_dir = '/web/www.mydomain.com/smarty/livredor/templates_c/';
|
$smarty->compile_dir = '/web/www.example.com/smarty/livredor/templates_c/';
|
||||||
$smarty->config_dir = '/web/www.mydomain.com/smarty/livredor/configs/';
|
$smarty->config_dir = '/web/www.example.com/smarty/livredor/configs/';
|
||||||
$smarty->cache_dir = '/web/www.mydomain.com/smarty/livredor/cache/';
|
$smarty->cache_dir = '/web/www.example.com/smarty/livredor/cache/';
|
||||||
|
|
||||||
$smarty->assign('name','Ned');
|
$smarty->assign('name','Ned');
|
||||||
|
|
||||||
@@ -376,8 +429,9 @@ Hello, {$name}!
|
|||||||
<para>
|
<para>
|
||||||
Dans notre exemple, nous avons configur<75> les chemins absolus
|
Dans notre exemple, nous avons configur<75> les chemins absolus
|
||||||
pour chacun des r<>pertoires Smarty. Si
|
pour chacun des r<>pertoires Smarty. Si
|
||||||
'/web/www.mydomain.com/smarty/livredor/' est dans votre
|
<filename
|
||||||
include_path PHP alors ces r<>glages ne sont pas n<>cessaires.
|
class="directory">/web/www.example.com/smarty/livredor/</filename>
|
||||||
|
est dans votre include_path PHP alors ces r<>glages ne sont pas n<>cessaires.
|
||||||
Quoi qu'il en soit il est plus efficace et (par exp<78>rience)
|
Quoi qu'il en soit il est plus efficace et (par exp<78>rience)
|
||||||
moins g<>n<EFBFBD>rateur d'erreurs de les d<>finir avec des chemins
|
moins g<>n<EFBFBD>rateur d'erreurs de les d<>finir avec des chemins
|
||||||
absolus. Cela nous garantit que Smarty r<>cup<75>rera les bons fichiers.
|
absolus. Cela nous garantit que Smarty r<>cup<75>rera les bons fichiers.
|
||||||
@@ -385,7 +439,7 @@ Hello, {$name}!
|
|||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Et maintenant appelez le fichier index.php avec navigateur
|
Et maintenant appelez le fichier <filename>index.php</filename> avec navigateur
|
||||||
Web. Vous devriez voir "Hello, Ned!".
|
Web. Vous devriez voir "Hello, Ned!".
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -406,7 +460,7 @@ Hello, {$name}!
|
|||||||
propre classe fille et de l'initialiser selon votre environnement.
|
propre classe fille et de l'initialiser selon votre environnement.
|
||||||
De la sorte, nous n'aurons plus besoin de configurer <20> chaques fois les
|
De la sorte, nous n'aurons plus besoin de configurer <20> chaques fois les
|
||||||
chemins de notre environnement. Cr<43>ons un nouveau r<>pertoire
|
chemins de notre environnement. Cr<43>ons un nouveau r<>pertoire
|
||||||
"/php/includes/livredor/" et un nouveau fichier appel<65> "setup.php".
|
"/php/includes/livredor/" et un nouveau fichier appel<65> <filename>setup.php</filename>.
|
||||||
Dans notre exemple d'environnement, "/php/includes" est notre
|
Dans notre exemple d'environnement, "/php/includes" est notre
|
||||||
include_path PHP. Assurez-vous de faire la m<>me chose ou alors d'utiliser
|
include_path PHP. Assurez-vous de faire la m<>me chose ou alors d'utiliser
|
||||||
des chemins absolus.
|
des chemins absolus.
|
||||||
@@ -430,18 +484,18 @@ Hello, {$name}!
|
|||||||
|
|
||||||
function Smarty_livredor() {
|
function Smarty_livredor() {
|
||||||
|
|
||||||
// Constructeur de la classe. Appel<EFBFBD> automatiquement
|
// Constructeur de la classe.
|
||||||
// <20> l'instanciation de la classe.
|
// Appel<65> automatiquement <20> l'instanciation de la classe.
|
||||||
|
|
||||||
$this->Smarty();
|
$this->Smarty();
|
||||||
|
|
||||||
$this->template_dir = '/web/www.mydomain.com/smarty/livredor/templates/';
|
$this->template_dir = '/web/www.example.com/smarty/livredor/templates/';
|
||||||
$this->compile_dir = '/web/www.mydomain.com/smarty/livredor/templates_c/';
|
$this->compile_dir = '/web/www.example.com/smarty/livredor/templates_c/';
|
||||||
$this->config_dir = '/web/www.mydomain.com/smarty/livredor/configs/';
|
$this->config_dir = '/web/www.example.com/smarty/livredor/configs/';
|
||||||
$this->cache_dir = '/web/www.mydomain.com/smarty/livredor/cache/';
|
$this->cache_dir = '/web/www.example.com/smarty/livredor/cache/';
|
||||||
|
|
||||||
$this->caching = true;
|
$this->caching = true;
|
||||||
$this->assign('app_name','Guest Book');
|
$this->assign('app_name', 'Guest Book');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -455,7 +509,7 @@ Hello, {$name}!
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title><EFBFBD>dition de /web/www.mydomain.com/docs/livredor/index.php</title>
|
<title>Edition de /web/www.example.com/docs/livredor/index.php</title>
|
||||||
<programlisting role="php">
|
<programlisting role="php">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
<?php
|
<?php
|
||||||
|
@@ -11,6 +11,7 @@
|
|||||||
<person name="G<>rald Cro<72>s" email="gerald@php.net" nick="gerald" cvs="yes" editor="yes" />
|
<person name="G<>rald Cro<72>s" email="gerald@php.net" nick="gerald" cvs="yes" editor="yes" />
|
||||||
<person name="Arnaud Cogolu<6C>gnes" email="arnaud@php.net" nick="nono" cvs="yes" />
|
<person name="Arnaud Cogolu<6C>gnes" email="arnaud@php.net" nick="nono" cvs="yes" />
|
||||||
<person name="Mehdi Achour" email="didou@php.net" nick="didou" cvs="yes" />
|
<person name="Mehdi Achour" email="didou@php.net" nick="didou" cvs="yes" />
|
||||||
|
<person name="Yannick Torres" email="yannick@php.net" nick="yannick" cvs="yes" />
|
||||||
<person name="Raoul Lourse" email="nobody@php.net" nick="nobody" cvs="yes" />
|
<person name="Raoul Lourse" email="nobody@php.net" nick="nobody" cvs="yes" />
|
||||||
</translators>
|
</translators>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user