code template

Vous devez être connecté pour utiliser le forum. Vous pouvez le faire ici.

Auteur Message

anne martinet

Mercredi 07 Mai 2008 3:15:18 pm

code template

Bonjour,

J'ai créer un site dans lequel il y a un folder, et dans ce folder il y a articles et un objet d'une classe que j'ai créée
(My_article).
Je souhaite limité le nombre d'article qui s'affichent à l'écran. Pour cela j'ai surchargé le template des dossiers. Mais je
souhaite aussi affiche seulement les objets de type article.
j'ai esssaye dans une boucle a tester le type de l'enfant du dossier mais je n'arrive pas à l'exprimer correctement.
Ma boucle ressemble à ca:

<div class="content-view-children">
{foreach $children as $child }

{node_view_gui view='line' content_node=$child}
Le nom de la classe de l'objet : { $node.name }

{/foreach}
</div>

mais quoi que j'écrive j'ai toujours ce résultat:

Le nom de la classe de l'objet :

merci.

sébastien gaillard

Mercredi 07 Mai 2008 4:05:18 pm

Re: code template

bonjour Anne,

il me semble que dans ton cas, la solution la plus simple serait de faire un fetch :
{set $mesArticles = fetch(content,list,hash('parent_node_id', $node.node_id,
'limit', 5,
'class_filter_type', include,
'class_filter_array', array('article'), )
)
}
et ensuite d'appliquer un foreach sur $mesArticles.
La fonction fetch te permet de récupérer les 5 (chiffre spécifié dans limit) 1ers objet de classe 'article' dont le noeud parent est le noeud de l'objet courant.

Pour plus d'info:
http://ez.no/doc/ez_publish/techn...modules/content/fetch_functions/list

Voilà, j'espère que ça t'aura aidé.

Bon courage,

Sébastien

anne martinet

Mercredi 07 Mai 2008 5:35:55 pm

Re: code template

oui, merci, cela m'a éclairé sur plusieurs points

Mais je voudrais savoir à quoi correspond le include de 'class_filter_type'.
merci

sébastien gaillard

Mercredi 07 Mai 2008 5:51:03 pm

Re: code template

ca veut dire que tu inclus dans ton fetch la/les classes spécifiées dans le class_filter_array.

anne martinet

Lundi 09 Juin 2008 5:43:58 pm

Re: code template

Toujours concernant les templates j'ai une autre question.
J'ai créer deux siteaccess, un admin et un autre public. Avec un nouveau design pour le public et le même dossier var pour les deux, ainsi que la même base.
Pour le design du siteaccess public j'ai créer un nouveau pagelayout.tpl, qui est celui-ci :

<html>
  <head>
    <title>{$site.title}</title>
  </head>

  <body>
    <p align="center"><b>{$site.title}</b></p>

    <table>
      <tr>
        <td>
          {def $currentNode = 
                 fetch( 'content', 'node', 
                 hash( 'node_id', $module_result.node_id )
                  )
          }
          {def $list_fils=fetch('content','list',
                                hash(
                                    'parent_node_id', $currentNode.node_id,
                                    'class_filter_type', 'include',
                                    'class_filter_array', array('folder'))
                               )
          }
          {foreach $list_fils as $lf}
             <a href="{$lf.url|ezurl('no','full')}">
                    {attribute_view_gui attribute=$lf.data_map.name}
             </a><br/>
             ____________________
             <br/>
          {/foreach}
        </td>
        <td>
          Le contenu : {$module_result.content}
        </td>
      </tr>
    </table>

{*  {$currentNode|attribute('show',2)}*}
  {$module_result|attribute('show',2)}
  <body>
</html>



Bien sûr j'ai du contenu dans mon siteaccess public.
Mais j'obtiens ce résultat:

                                               Presentation EZ Publish



News
____________________
Discussion
____________________
Metéo
____________________              
People                                              	Le contenu :
____________________
Musique
____________________
Animaux
____________________

Attribute 	Type 	Value
content 	string 	''
view_parameters 	array 	Array(5)
>offset 	integer 	0
...



Je ne comprends pas pourquoi $module_content n'arrive pas à m'afficher mon contenu.
Pourtant j'arrive quand même a retrouver les noms des dossiers pour mon menu.


Quelles sont les pistes à exploiter?

Merci.

anne martinet

Mardi 10 Juin 2008 4:57:53 pm

Trouvé!

Re-Bonjour à tous!

J'ai trouvé mon erreur. J'avais simplement oublié d'écrire cette ligne : AdditionalSiteDesignList[]=ezwebin
dans mon fichier settings/siteaccess/mon_siteaccess/site.ini.append.php


Bonne soirée!

eZ publish™ copyright © 1999-2008 eZ systems as