We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5811
    • 1,717 Posts
    Bonjour j’ai quelques soucis pour l’optimization d’un template ...

    Pour une page (liste d’articles Ditto) j’ai le template suivant (extrait):

    	<div id="colTwo">
    		<div class="post">
                           
    			[*content*]
                           
    		</div>
    	</div>


    Pour d’autres pages (articles) j’ai le template suivant (extrait):

          <h2 class="lvvtitre">[*pagetitle*] <span class="lvvauteur">- [*lvvAuteur*]</span></h2>
          
    			[*content*]
    			
          <p class="lvvcoll"><strong>Collection</strong> : [*lvvCollection*]</p>
          <p class="lvvmcle"><strong>Mots clés</strong> : </p><p>[!TvTagCloud? &parent=`[*id*]` &landing=`7` &tvTags=`lvvTags` &displayType=`list`!]</p>
          <p class="lvvstar"><strong>Notre avis</strong> : [!StarRating? &tvName=`lvvNAvis` &starTpl=`lvvStarTpl` &viewOnly=`true`!]</p>
          <p  class="lvvdate"><strong>Enregistré le</strong> : [*lvvDate*]</p>
          <hr /><br />
          [[Jot? &subscribe=`1` &pagination=`10` &captcha=`1` &placeholders=`1` &output=`0`]]
    
          [+jot.html.navigation+]
          [+jot.html.comments+]
          [+jot.html.moderate+]
          [+jot.html.form+]


    Je cherche en vain à avoir qu’un seul template en utilisant le fait que la liste correspond au document 7.
    J’ai donc crée une TV lvvContent :
    @EVAL if ($modx->getDocument() == 7) return '{{lvvContentList}}'; else return '{{lvvContentItem}}';


    et 2 chunks :
    lvvContentList :
       [*content*]


    et lvvContentItem :

         <h2 class="lvvtitre">[*pagetitle*] <span class="lvvauteur">- [*lvvAuteur*]</span></h2>
          
    			[*content*]
    			
          <p class="lvvcoll"><strong>Collection</strong> : [*lvvCollection*]</p>
          <p class="lvvmcle"><strong>Mots clés</strong> : </p><p>[!TvTagCloud? &parent=`[*id*]` &landing=`7` &tvTags=`lvvTags` &displayType=`list`!]</p>
          <p class="lvvstar"><strong>Notre avis</strong> : [!StarRating? &tvName=`lvvNAvis` &starTpl=`lvvStarTpl` &viewOnly=`true`!]</p>
          <p  class="lvvdate"><strong>Enregistré le</strong> : [*lvvDate*]</p>
          <hr /><br />
          [[Jot? &subscribe=`1` &pagination=`10` &captcha=`1` &placeholders=`1` &output=`0`]]
    
          [+jot.html.navigation+]
          [+jot.html.comments+]
          [+jot.html.moderate+]
          [+jot.html.form+]


    avec un appel dans le template :

    <div id="colTwo">
    		<div class="post">
                           
    			[*lvvContent*]
                           
    		</div>
    	</div>


    Cela ne marche pas. Quelqu’un peut-il me dire l’erreur que je fais ou quelle est la solution la plus propre à ce type de problème.
    D’avance merci.
      • 27889
      • 415 Posts
      Tu peux peut-être te tourner vers phx, avec un test if sur le id du document. Ce sera peut-être plus simple pour toi, si tu veux garder ta solution dit le moi et je jetterais un oeil.
      Note: les placeholder dans ditto sont [+content+] et pas [*content*]
        MODx Sites & Prestations: http://dp-site.fr [Last MODx Site]
        MODx Repository: [HOME] [MetaTagsExtra] / Current Dev: [xFDM]
        • 5811
        • 1,717 Posts
        Merci Soda pour ta réponse.
        Finalement j’ai trouvé le pb, l’erreur venait de la TV lvvContent

        Le code correct est :
        @EVAL if ($modx->documentIdentifier == 7) return '{{lvvContentList}}'; else return '{{lvvContentItem}}';


        Le pb est donc résolu mais je ne sais toujours pas si c’est la méthode la plus élégante. J’ai l’impression de mettre du code un peu partout (TV, chunck) alors que la solution initiale avec 2 templates est peut etre plus claire.

        Je vais voir ce que cela peux donner avec PHX.
          • 27889
          • 415 Posts
          No problemo, à ton service.
            MODx Sites & Prestations: http://dp-site.fr [Last MODx Site]
            MODx Repository: [HOME] [MetaTagsExtra] / Current Dev: [xFDM]