Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Name

fetch() — Retourne le résultat du template

Description

string fetch(string template,
             string cache_id,
             string $compile_id);

Utilisée pour renvoyer le résultat du template plutôt que de l'afficher. Il faut passer un type et un chemin de ressource template valides. Vous pouvez passer un identifiant de cache $cache id en deuxième paramètre. Reportez-vous à la section cache pour plus de renseignements.

En tant que troisième paramètre optionnel, vous pouvez passer un identifiant de compilation $compile_id. C'est au cas où vous voudriez compiler plusieurs versions du même template, par exemple, pour avoir des templates compilés pour différents langages. Une autre utilité pour l'identifiant de compilation $compile_id est lorsque vous utilisez plus d'un $template_dir mais seulement un $compile_dir. Définissez un $compile_id séparé pour chaque $template_dir, sinon, les templates du même nom s'effaceront. Vous pouvez également définir la variable $compile_id une seule fois plutôt que de la passer à chaque appel à la fonction.

Example 13.14. Exemple avec fetch()


<?php
include('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

// ne fait un appel à la base de données que si le fichier
// de cache n'existe pas
if(!$smarty->is_cached('index.tpl'))
{

    // quelques données
    $address = '245 N 50th';
    $db_data = array(
                        'Ville' => 'Lincoln',
                        'Pays' => 'Nebraska',
                        'Code postal' = > '68502'
    );

    $smarty->assign('Nom','Fred');
    $smarty->assign('Adresse',$address);
    $smarty->assign($db_data);

}

// récupère le résultat
$output = $smarty->fetch('index.tpl');

// fait quelque chose avec $output ici

echo $output;
?>

    


Example 13.15. Utilisation de fetch() pour envoyer un email

Le template email_body.tpl :


Cher {$contact.name},

Bienvenu et merci d'être devenu membre de notre groupe d'utilisateur,

Cliquez sur le lien ci-dessous pour vous identifier avec votre nom d'utilisateur '{$contact.login_id}'
et vous pourrez utiliser nos forums.

http://{$smarty.server.SERVER_NAME}/login/

Liste principale
Quelques groupes d'utilisateurs

{include file="email_disclaimer.tpl"}

    

Le template email_disclaimer.tpl qui utilise le modificateur {textformat}.


{textformat wrap=40}
Unless you are named "{$contact.name}", you may read only the "odd numbered
words" (every other word beginning with the first) of the message above. If you have
violated that, then you hereby owe the sender 10 GBP for each even
numbered word you have read
{/textformat}

    

et le script PHP utilisant la fonction PHP mail()

     
<?php

// Récupération du contact depuis une base de données eg utilisation de pear ou adodb
$query  = 'select name, email, login_id from contacts where contact_id='.$contact_id;
$contact = $db->getRow($sql);
$smarty->assign('contact', $contact);

mail($contact['email'], 'Subject', $smarty->fetch('email_body.tpl'));

?>

    


Voir aussi {fetch} display(), {eval} et template_exists().

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors