Smarty : méthodes
La classe xoopsTpl (fichier class/template.php)
est une classe dérivée de la classe Smarty.
Toutes les méthodes de la classe Smarty peuvent donc être
utilisées.
Sauf exception (voir display ), cette classe n'a
pas besoin d'être instanciée, puisque la création
de l'objet template est fait par xoops dans header.php :
require_once XOOPS_ROOT_PATH.'/class/template.php';
$xoopsTpl = new XoopsTpl();
NB: de nombreuses méthodes (de la classe Smarty, ou de la
classe dérivée) ne sont pas décrites, étant
utilisées principalement par le core de Xoops.
assign
Permet d'assigner une valeur à un template. La valeur est
soit une chaine, soit un tableau associatif.
assign (string |
array $tpl_var, mixed $value = null)
$tpl_var |
string ou array |
nom de la variable de template à créer |
$value |
mixed |
valeur à lui transmettre |
Exemples
// Passage d'une paire nom/valeur
$xoopsTpl->assign('displaynav', false);
// Passage d'un tableau associatif
$xoopsTpl->assign(array(
"lang_partner" =>
_MD_PARTNER,
"lang_desc" =>
_MD_DESCRIPTION,
"lang_hits" =>
_MD_HITS, ));
assign_by_ref
Identique à assign,
sauf que la donnée est passée par référence
(et non par valeur).
assign_by_ref (string
| array $tpl_var, mixed $value = null)
$tpl_var |
string ou array |
nom de la variable de template à créer |
$value |
mixed |
Référence de la valeur à lui transmettre |
append
Permet d'ajouter une valeur à
une variable tableau d'un template. Si le tableau n'existe pas, il
est d'abord créé.
Dans le template, le tableau peut être parcouru avec la fonction
foreach ou section.
append (string |
array $tpl_var, mixed $value = null)
Exemples (avec fonction section dans le template)
// Dans le code¨Php
for ( $i = 0; $i < $partner_count; $i++ ) {
$partner[$i]['hits']
= $array_partners[$i]['hits'];
$partner[$i]['title']
= $array_partners[$i]['title'];
$partner[$i]['descr']
= $array_partners[$i]['description'];
$xoopsTpl->append("partners",
$partner[$i]);
}
<{* Dans le template* }>
<{section name=partner loop=$partners}>
<tr>
<td><{$partners[partner].title}> <br/><{$partners[partner].descr}></td>
<td><{$partners[partner].hits}></td>
</tr>
<{/section}>
append_by_ref
Identique à append,
sauf que la donnée est passée par référence
(et non par valeur)
Exemple (avec boucle foreach dans le template)
// Dans le code¨Php
while (list($id, $name) = $xoopsDB->fetchRow($result)) {
$category = array();
$category['name'] = $name;
$category['id'] = $id;
$sql = 'SELECT faq_id, faq_title FROM '.$xoopsDB->prefix('xoops_faq').'
WHERE cat_id='.$id;
$result
= $xoopsDB->query($sql);
while
($myrow = $xoopsDB->fetchArray($result)) {
$category['questions'][]
= array('id' => $myrow['faq_id'], 'title' => $myrow['faq_title']);
}
$xoopsTpl->append_by_ref('categories',
$category);
unset($category);
}
<{* Dans le template* }>
<{foreach item=question from=$category.questions}>
<{$question.title}>
<{* ... suite du code* }>
display
Affichage du template.
Pas nécessaire lorsque l'on utilise l'affichage par le template
prinipal (template_main) puisque le footer.php se charge d'exécuter
cette action.
A n'utiliser que dans les cas particuliers d'affichage sans le thême
(exemples : site closed, redirect header, image_manager,...)
$xoopsTpl->display (string $template)
Exemple
include_once XOOPS_ROOT_PATH.'/class/template.php';
$xoopsTpl = new XoopsTpl();
$xoopsTpl->assign(array('sitename' => $xoopsConfig['sitename'],
'xoops_themecss' => .... ));
$xoopsTpl->xoops_setCaching(1);
$xoopsTpl->display('db:system_siteclosed.html');
exit();
xoops_template_clear_module_cache
Permet de vider le cache du module.
xoops_template_clear_module_cache (int $mid)
$mid |
int |
identifiant du module |
Exemple (aprês une m à j dans l'admin d'un module)
include_once XOOPS_ROOT_PATH.'/class/template.php';
xoops_template_clear_module_cache($xoopsModule->getVar('mid'));
Retour au sommaire Smarty
Version Xoops de référence: 2.06
C. Felix AKA theCat le 22/06/04
|