Categories > TinyButStrong general (FR) >

Réutilisation de sous sous-modèles

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: tyler
Date: 2009-11-28
Time: 15:46

Réutilisation de sous sous-modèles

Bonjour,

pour commencer chapeau au créateur de TBS ;)

J'ai une petite question concernant les sous-modèles :
J'utilise un sous-modèle principal qui génère les parties communes de la page ( header, footer... ). Au centre se charge un autre sous-modèle en fonction de la page concernée ( via la variable var.tpl_content ).
[onload;file=../header.tpl]
<div id="main">
<div id="header">
<!-- Logout -->
<div id="logout"><h5>{ [onshow.tpl_pseudo] connecté - </h5><a href="login.php?logout">Déconnexion</a> <h5>}</h5></div>
<!-- Menu principal -->
<ul id="nav">
<li><a href="[pri.url]">[pri.section;block=li]</a>
    <ul>
    <li><a href="[sub.url]">[sub.item;block=li;p1=[pri.$]]</a></li>
    [onshow;block=ul;when [sub.#]!=0]</ul>
</li>
</ul>
<!-- Sous menus -->
<ul id="navsub">
[onshow.tpl_submenu;htmlconv=no]
</ul>
<!-- header --></div>
<div id="content">
[onload;file=[var.tpl_content]] <!-- SOUS MODELE EN FONCTION DE LA PAGE -->
<!-- content --></div>
<!-- main --></div>
[onload;file=../adm/bottom.tpl]
[onload;file=../footer.tpl]

Ce sous-modèle charge lui même un autre sous-modèle qui permet de générer des formulaires ( [onload;file=form.tpl] ) :
[onload;file=howto.tpl]
[onload;file=messages.tpl]
<h3>Gestion des catégories d'images</h3>
[onload;file=form.tpl] <!-- SOUS MODELE FORMULAIRE N°: 1 -->
<br />
<h3>Gestion des catégories d'images</h3>
[onload;file=form.tpl] <!-- SOUS MODELE FORMULAIRE N°: 2 -->
<!-- etc... -->

Voici le sous-modèle form.tpl :
[onshow.tpl_form_header;htmlconv=no]
<p class="double">[tpl_double;block=p]
<label for="[tpl_double.for]"><span class="required">[tpl_double.required]</span>[tpl_double.label;htmlconv=no]</label>[tpl_double.field;htmlconv=no]
</p>
<p class="simple">
<span class="required">*</span> <span class="tiny">Champs obligatoires</span>
</p>
<p class="simple">
[onshow.tpl_submit;htmlconv=no]
</p>
</form>

Si dans mon sous-modèle je charge et fusionne une seule fois le sous-modèle form.tpl tout va bien. Par contre comment doit-je procéder pour afficher plusieurs formulaires en utilisant à chaque fois le même sous-modèle ( form.tpl ) mais fusionné avec des valeurs diffèrentes ?

Merci d'avance.
@+++
By: Skrol29
Date: 2009-11-30
Time: 14:37

Re: Réutilisation de sous sous-modèles

Salut Tyler,

C'est un vrai problème que tu soulève là. je n'arrive pas à trouver de solution simple pour ré-utiliser un sous-modèle en changeant le nom des blocs à l'intérieur.

Le seul moyen que je vois, c'est d'utiliser les paramètres "script=" et "subtpl" ce qui te permet de modifier le source de du sous-modèle avant son insertion dans le modèle principal. Par contre cela t'oblige à passer par un script externe.

En tout cas je compte ajouter cette fonctionnalité dans une prochaine version de TBS.
By: tyler
Date: 2009-11-30
Time: 19:00

Re: Réutilisation de sous sous-modèles

Tant pis je vais opter pour une autre solution, peut-être simplement dupliquer le fichier form.tpl en form1.tpl et ainsi obtenir des sous-modèles indépendants. Je pense que je n'aurai jamais plus de deux ou trois formulaires dans une page ça devrait aller.
Car en fait la solution du "subtpl" ne me convient pas, je tiens à centraliser tout le code php dans une même page pour faciliter la maintenance.
Si tu ajoute cette fonctionnalité dans une version prochaine ce serait top !

Encore bravo pour ton travail et merci pour ta réponse.
By: Skrol29
Date: 2009-12-08
Time: 12:00

Re: Réutilisation de sous sous-modèles

Salut Tyler,

TBS 3.5.1, qui vient de sortir, propose un nouveau paramètre "rename" qui renomme des blocs et des champs TBS dans un sous-modèle.

http://www.tinybutstrong.com/fr/manual.php#html_field_prm_rename

By: Tyler
Date: 2009-12-08
Time: 20:10

Re: Réutilisation de sous sous-modèles

Super cool ! Je teste tout ça et je te fais un retour rapidement ;)
By: Tyler
Date: 2009-12-09
Time: 19:11

Re: Réutilisation de sous sous-modèles

Petit feedback sur la réutilisation des modèles, en fait je n'y arrive pas, les deux sous-modèles sont fusionnés avec les même données :

[onload;file=howto.tpl] <!-- howto.tpl sera réutilisé -->
[onload;file=messages.tpl]
<h3>Gestion des catégories d'images</h3>
[onload;file=form.tpl] <!-- form.tpl sera réutilisé -->
<br />
<h3>Gestion des galeries d'images</h3>
[onload;file=howto.tpl;rename tpl_howto_presentation=tpl_howto2_presentation,tpl_howto=tpl_howto2]
[onload;file=form.tpl;rename tpl_form_header=tpl_form2_header,tpl_double=tpl_double2,tpl_submit=tpl_submit2]

Form.tpl :
<!-- Formulaire -->
[onshow.tpl_form_header;htmlconv=no]
<p class="double">[tpl_double;block=p]
<label for="[tpl_double.for]">[tpl_double.label;htmlconv=no]<span class="required">[tpl_double.required]</span></label>[tpl_double.field;htmlconv=no]
</p>
<p class="simple">
<span class="required">*</span> <span class="tiny">Champs obligatoires</span>
</p>
<p class="simple">
[onshow.tpl_submit;htmlconv=no]
</p>
</form>

Aurais-je fourché ?

@++
By: Tyler
Date: 2009-12-13
Time: 15:23

Re: Réutilisation de sous sous-modèles

Re,

je sais ce qui n'allait pas, les block sont correctement fusionnés, pas de soucis, ce sont les champs onshow qui ne passent pas ce qui est normal.
Je ne peux pas les convertir en onload puisque mon template est chargé bien avant la déclaration des variables concernées ( d'où l'utilisation de onshow ). Je vais peux être convertir ces champs en block...

Merci encore ;)

@++