Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.11.1
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Salut tout le monde
Quelqu'un a t il déjà utilisé la notion d'include de template ?
l'utilisation est pour un module de pouvoir faire
Code : echo $this->ProcessTemplate('templatePere.tpl');
et à l'intérieur de templatePere.tpl de faire
Code : [code lambda]
{include file='template_enfant1.tpl'}
[code lambda]
{include file='template_enfant2.tpl'}
[code lambda]
la doc smarty à ce sujet : http://www.smarty.net/docs/en/language.f...nclude.tpl
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.11.1
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Salut tout le monde
Quelqu'un a t il déjà utilisé la notion d'include de template ?
l'utilisation est pour un module de pouvoir faire
Code : echo $this->ProcessTemplate('templatePere.tpl');
et à l'intérieur de templatePere.tpl de faire
Code : [code lambda]
{include file='template_enfant1.tpl'}
[code lambda]
{include file='template_enfant2.tpl'}
[code lambda]
la doc smarty à ce sujet : http://www.smarty.net/docs/en/language.f...nclude.tpl
Messages : 11,007
Sujets : 230
Inscription : Sep 2007
Réputation :
1
j'utilise dans une gestion d'adhérents
un fichier gerer_fiche_adht.tpl (lié à gerer_fiche_adht.php)
...
{if $info_fichiermission_adht == '1'}{include file='adherent/consulter_info_fichiermission_adht.tpl'}{/if}
// si le gus à des fichiers on affiche la liste
pour afficher une liste des fichiers avec un php = consulter_info_fichiermission_adht.php
Messages : 11,007
Sujets : 230
Inscription : Sep 2007
Réputation :
1
j'utilise dans une gestion d'adhérents
un fichier gerer_fiche_adht.tpl (lié à gerer_fiche_adht.php)
...
{if $info_fichiermission_adht == '1'}{include file='adherent/consulter_info_fichiermission_adht.tpl'}{/if}
// si le gus à des fichiers on affiche la liste
pour afficher une liste des fichiers avec un php = consulter_info_fichiermission_adht.php
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
salut jce, je te remercies déjà de ta réponse mais j'ai du louper un truc.
J'ai un module (DownCnt pour ne pas le nommer) avec des templates dans /templates
Depuis le template general.tpl je veux inclure enfant.tpl
J'ai tenté :
{include file='enfant.tpl'}
{include file='/enfant.tpl'}
{include file='templates/enfant.tpl'}
{include file='/templates/enfant.tpl'}
{include file='modules/DownCnt/templates/enfant.tpl'}
{include file='/modules/DownCnt/templates/enfant.tpl'}
{include file='../modules/DownCnt/templates/enfant.tpl'}
A chaque fois smarty me répond : va te faire foutre, je n'inclurais pas ton fichier, de toute façon il n'existe pas
Tiens d'ailleurs l'url de Smarty dans mon premier post pointe vers la doc V2.
Voici la bonne : http://www.smarty.net/docs/en/language.f...nclude.tpl
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
salut jce, je te remercies déjà de ta réponse mais j'ai du louper un truc.
J'ai un module (DownCnt pour ne pas le nommer) avec des templates dans /templates
Depuis le template general.tpl je veux inclure enfant.tpl
J'ai tenté :
{include file='enfant.tpl'}
{include file='/enfant.tpl'}
{include file='templates/enfant.tpl'}
{include file='/templates/enfant.tpl'}
{include file='modules/DownCnt/templates/enfant.tpl'}
{include file='/modules/DownCnt/templates/enfant.tpl'}
{include file='../modules/DownCnt/templates/enfant.tpl'}
A chaque fois smarty me répond : va te faire foutre, je n'inclurais pas ton fichier, de toute façon il n'existe pas
Tiens d'ailleurs l'url de Smarty dans mon premier post pointe vers la doc V2.
Voici la bonne : http://www.smarty.net/docs/en/language.f...nclude.tpl
Messages : 8,242
Sujets : 58
Inscription : Dec 2007
Réputation :
0
22/08/2012, 10:19:28
(Modification du message : 22/08/2012, 10:22:28 par Jean le Chauve.)
En passant, Smarty 3 t'offre l'héritage : http://www.smarty.net/inheritance
As-tu essayé : {include './template-in-same-directory.tpl'} avec un seul point ?
Messages : 8,242
Sujets : 58
Inscription : Dec 2007
Réputation :
0
22/08/2012, 10:19:28
(Modification du message : 22/08/2012, 10:22:28 par Jean le Chauve.)
En passant, Smarty 3 t'offre l'héritage : http://www.smarty.net/inheritance
As-tu essayé : {include './template-in-same-directory.tpl'} avec un seul point ?
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
YEAAAH ça marche
La solution complète est issue de cette documentation : http://www.smarty.net/docs/en/api.add.template.dir.tpl
En gros on va ajouter le répertoire "/template" dans la conf Smarty comme étant un répertoire qui contiendra des templates qui seront "appelables" durant le traitement.
donc dans la classe PHP de mon module :
Code : //A placer avant l'appel à ProcessTemplate
$smarty->addTemplateDir(dirname(__FILE__).'/templates');
Dans arborescence de mon module j'ai deux templates : ./templates/general.tpl et ./templates/enfant.tpl
Dans general.tpl je peux faire appel à tout moment à l'autre template avec ce code.
Code : {include file='enfant.tpl'}
Note #1 : les variables passées à Smarty sont incluent de facto à enfant.tpl
Note #2 : si votre template enfant ne contiens pas vraiment de code dynamique vous pouvez jongler avec les options de Smarty pour mettre en cache les données issues de enfant.tpl
Note #3 : un cas d'utilisation est la possibilité de factoriser du code d'un onglet entier du module qui sera rechargeable par Ajax. Un seul template contient donc le code pour le premier chargement de la page est pour le chargement par ajax. Moins de code = moins d'erreur
Je vais me renseigner sur le forum anglais voir si Cg n'a pas des remarques à faires sur mon code (genre "han mais non faut pas faire ça...)
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
YEAAAH ça marche
La solution complète est issue de cette documentation : http://www.smarty.net/docs/en/api.add.template.dir.tpl
En gros on va ajouter le répertoire "/template" dans la conf Smarty comme étant un répertoire qui contiendra des templates qui seront "appelables" durant le traitement.
donc dans la classe PHP de mon module :
Code : //A placer avant l'appel à ProcessTemplate
$smarty->addTemplateDir(dirname(__FILE__).'/templates');
Dans arborescence de mon module j'ai deux templates : ./templates/general.tpl et ./templates/enfant.tpl
Dans general.tpl je peux faire appel à tout moment à l'autre template avec ce code.
Code : {include file='enfant.tpl'}
Note #1 : les variables passées à Smarty sont incluent de facto à enfant.tpl
Note #2 : si votre template enfant ne contiens pas vraiment de code dynamique vous pouvez jongler avec les options de Smarty pour mettre en cache les données issues de enfant.tpl
Note #3 : un cas d'utilisation est la possibilité de factoriser du code d'un onglet entier du module qui sera rechargeable par Ajax. Un seul template contient donc le code pour le premier chargement de la page est pour le chargement par ajax. Moins de code = moins d'erreur
Je vais me renseigner sur le forum anglais voir si Cg n'a pas des remarques à faires sur mon code (genre "han mais non faut pas faire ça...)
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
je n'avais pas vu ton commentaire Jean Le Chauve.
Je ne penses pas que l'héritage puisse être utilisé dans mon cas (utilisation d'ajax et tout et tout) mais je garde l'info sous le coude
Oui j'avais testé "./enfant.tpl" sans succès et en réalité c'est tout a fait normal qu'il ne fonctionne pas:
Citation :die(print_r($smarty->getTemplateDir()));
Dans mon code php, cette ligne m'a retourné un unique répertoire contenu dans /admin/.../template : bien loin de mon module. Donc j'aurais du hypothétiquement faire un {include file='../../../modules/DownCnt/templates/enfant.tpl'} ...
l'enfer..
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
je n'avais pas vu ton commentaire Jean Le Chauve.
Je ne penses pas que l'héritage puisse être utilisé dans mon cas (utilisation d'ajax et tout et tout) mais je garde l'info sous le coude
Oui j'avais testé "./enfant.tpl" sans succès et en réalité c'est tout a fait normal qu'il ne fonctionne pas:
Citation :die(print_r($smarty->getTemplateDir()));
Dans mon code php, cette ligne m'a retourné un unique répertoire contenu dans /admin/.../template : bien loin de mon module. Donc j'aurais du hypothétiquement faire un {include file='../../../modules/DownCnt/templates/enfant.tpl'} ...
l'enfer..
Messages : 11,007
Sujets : 230
Inscription : Sep 2007
Réputation :
1
Citation :En gros on va ajouter le répertoire "/template" dans la conf Smarty comme étant un répertoire qui contiendra des templates qui seront "appelables" durant le traitement.
ha oui mais c'est la BAba et c'est bien indiqué dans la doc
j'ai un fichier include.php ou je mets en particulier
Code : /**** Les chemins des répertoires pour SMARTY */
define('TEMPLATES_LOCATION', join_path(ROOT_DIR_GESTASSO,'templates' ) ); // répertoire Fichiers des templates
define('TMP_LOCATION', join_path(ROOT_DIR_GESTASSO,'temp')); // répertoire des Fichiers temporaires
define('TMP_TEMPLATES_C_LOCATION', join_path(ROOT_DIR_GESTASSO,'temp','templates_c')); // répertoire des Fichiers temporaires de templates
/**** Les chemins et variables pour SMARTY */
//Il doit s'agir du chemin complet du répertoire où se trouvent les fichiers classes de Smarty., le chemin doit se terminer par un slash.
define('SMARTY_DIR', join_path(ROOT_LIB ,'smarty'). DIRECTORY_SEPARATOR );
require (SMARTY_DIR.'Smarty.class.php'); // la classe
$tpl = new Smarty; //instance de Smarty pour scripts PHP
$tpl->setCompileDir (TMP_TEMPLATES_C_LOCATION) ;// répertoire par défaut de compilation = templates_c // Smarty version 3.x
$tpl->setTemplateDir (TEMPLATES_LOCATION); // répertoire par défaut des templates = templates // Smarty version 3.x
Messages : 11,007
Sujets : 230
Inscription : Sep 2007
Réputation :
1
Citation :En gros on va ajouter le répertoire "/template" dans la conf Smarty comme étant un répertoire qui contiendra des templates qui seront "appelables" durant le traitement.
ha oui mais c'est la BAba et c'est bien indiqué dans la doc
j'ai un fichier include.php ou je mets en particulier
Code : /**** Les chemins des répertoires pour SMARTY */
define('TEMPLATES_LOCATION', join_path(ROOT_DIR_GESTASSO,'templates' ) ); // répertoire Fichiers des templates
define('TMP_LOCATION', join_path(ROOT_DIR_GESTASSO,'temp')); // répertoire des Fichiers temporaires
define('TMP_TEMPLATES_C_LOCATION', join_path(ROOT_DIR_GESTASSO,'temp','templates_c')); // répertoire des Fichiers temporaires de templates
/**** Les chemins et variables pour SMARTY */
//Il doit s'agir du chemin complet du répertoire où se trouvent les fichiers classes de Smarty., le chemin doit se terminer par un slash.
define('SMARTY_DIR', join_path(ROOT_LIB ,'smarty'). DIRECTORY_SEPARATOR );
require (SMARTY_DIR.'Smarty.class.php'); // la classe
$tpl = new Smarty; //instance de Smarty pour scripts PHP
$tpl->setCompileDir (TMP_TEMPLATES_C_LOCATION) ;// répertoire par défaut de compilation = templates_c // Smarty version 3.x
$tpl->setTemplateDir (TEMPLATES_LOCATION); // répertoire par défaut des templates = templates // Smarty version 3.x
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
nié ? :/
Pourquoi un tel code ? Que tu précises un/deux répertoires de templates en plus, je le conçois... mais le répertoire de compilation ? et le répertoire de tmp ? ils te servent à quoi ?
>ha oui mais c'est la BAba et c'est bien indiqué dans la doc
De tête tu te souviens de laquelle ? rien trouvé dans le pdf du développeur.
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
nié ? :/
Pourquoi un tel code ? Que tu précises un/deux répertoires de templates en plus, je le conçois... mais le répertoire de compilation ? et le répertoire de tmp ? ils te servent à quoi ?
>ha oui mais c'est la BAba et c'est bien indiqué dans la doc
De tête tu te souviens de laquelle ? rien trouvé dans le pdf du développeur.
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
oui donc c'est bien ce qui me semblait, il n'y a rien de définit côté cmsms...
bon ben au moins les prochains à se poser la question sauront
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
oui donc c'est bien ce qui me semblait, il n'y a rien de définit côté cmsms...
bon ben au moins les prochains à se poser la question sauront
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
Petit addon : cette fonctionnalité n'est présente que depuis CmsMadeSimple 1.11.x (du fait de la nouvelle version Smarty3)
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
Petit addon : cette fonctionnalité n'est présente que depuis CmsMadeSimple 1.11.x (du fait de la nouvelle version Smarty3)
|