|
|
 |
Contenu d'un élément "Folder" |
 |
Vous devez être connecté pour utiliser le forum. Vous pouvez le faire ici.
|
Auteur
|
Message
|
|
Jérome Guillemain
|
Mercredi 29 Octobre 2008 10:01:36 am
Contenu d'un élément "Folder"
Bonjour,
Je suis à la recherche d'une technique me permettant de lister le contenu d'un élément de type "Folder" sous la forme d'une liste à puces dans la colonne de gauche du modèle "Web Interface".
Pour l'instant, je sais quel fichier à modifier, mais je galère dans le langage utilisé dans les fichiers TPL.
Voici pour le moment, ma séquence de code que j'ai pu implémenter :
"{if or(eq( $module_result.content_info.class_identifier, 'folder' ), eq( $module_result.content_info.parent_class_identifier, 'folder' ))}
.... (la séquence pour lister le contenu, dont j'ignore le processus
{/if}"
Merci par avance pour votre aide
|
|
Jf Sénéchal
|
Mercredi 29 Octobre 2008 4:18:20 pm
Re: Contenu d'un élément "Folder"
C'est bizarre, ça ne le fait pas d'office avec l'interface ezwebin_site ?
Chez moi oui
Si tu modifies le fichier cat extension/ezwebin/design/ezwebin/templates/menu/flat_left.tpl
Tu peux aller télécharger l'extension sur ez.no de l'interface webmin
Ensuite tu peux paramétrer quels classes s'affichent de le menu de gauche
via le settings de menu.ini à l'onglet "MenuContentSettings" puis "LeftIdentifierList"
et obtenir un tableau tel que :
default [0]
default [1] folder
default [2] feedback_form
default [3] gallery
default [4] forum
siteaccess [5] documentation_page
siteaccess [6] forums
siteaccess [7] event_calendar
extension:ezwebin [8] multicalendar
extension:ezwebin [9] link
extension:ezwebin [10] blog
extension:ezwebin [11] frontpage
Sinon, voici un bout de code pour lister des folders :
{def $left_menu_items = fetch( 'content', 'list', hash( 'parent_node_id', $root_node.node_id,
'sort_by', $root_node.sort_array,
'class_filter_type', 'include',
'class_filter_array', array( 'folder' ) ) ) }
{foreach $left_menu_items as $key => $item}
{$item.name|wash} <br />
{/foreach}
$root_node.node_id = id du conteneur courant, la variable peut être aussi $node.node_id, tout dépends du template dans lequel tu te trouves
Ces deux lignes :
'class_filter_type', 'include',
'class_filter_array', array( 'folder' )
Te permette de filtrer le type de contenu, tu pourrais aussi mettre par exemple array('folder','article')
Plus d'info sur http://ez.no/doc/ez_publish/techn...modules/content/fetch_functions/list
Bon courage
|
|
Jérome Guillemain
|
Jeudi 30 Octobre 2008 7:52:34 am
Re: Contenu d'un élément "Folder"
Merci pour ces infos, je vais essayer de voir ça...
Toutefois, j'ai une autre question : De quelle extension tu parles dans ce paragraphe :
"Tu peux aller télécharger l'extension sur ez.no de l'interface webmin .Ensuite tu peux paramétrer quels classes s'affichent de le menu de gauche via le settings de menu.ini à l'onglet "MenuContentSettings" puis "LeftIdentifierList"" ?
Merci encore
|
|
Jf Sénéchal
|
Jeudi 30 Octobre 2008 9:19:37 am
Re: Contenu d'un élément "Folder"
Je voulais parler plutôt du package design :
http://ez.no/download/ez_publish/...0/packages/4_0_0#ezwebin_design_gray
Car c'est bizarre le comportement que tu souhaites est par défault dans ce design
Je vais mettre un post ci dessous avec le code du template flat_left.tpl, tu pourrais t'en inspirer
|
|
Jf Sénéchal
|
Jeudi 30 Octobre 2008 9:20:56 am
Re: Contenu d'un élément "Folder"
<div class="border-box">
<div class="border-tl"><div class="border-tr"><div class="border-tc"></div></div></div>
<div class="border-ml"><div class="border-mr"><div class="border-mc">
<h4><a href={if eq( $ui_context, 'browse' )}{concat("content/browse/", $module_result.path[$pagerootdepth].node_id)|ezurl}{else}{$module_result.path[$pagerootdepth].url_alias|ezurl}{/if}>{$module_result.path[$pagerootdepth].text}</a></h4>
{if or(is_unset($module_result.content_info.class_identifier), ne( $module_result.content_info.class_identifier, 'documentation_page' ))}
{def $root_node=fetch( 'content', 'node', hash( 'node_id', $module_result.path[$pagerootdepth].node_id ) )
$left_menu_items = fetch( 'content', 'list', hash( 'parent_node_id', $root_node.node_id,
'sort_by', $root_node.sort_array,
'class_filter_type', 'include',
'class_filter_array', ezini( 'MenuContentSettings', 'LeftIdentifierList', 'menu.ini' ) ) )
$left_menu_items_count = $left_menu_items|count()
$li_class = array()
$a_class = array()
$current_node_in_path_2 = cond(and($current_node_id, $pagedepth|gt($pagerootdepth|inc)), $path_array[$pagerootdepth].node_id, 0 )
$current_node_in_path_3 = cond(and($current_node_id, $pagedepth|gt($pagerootdepth|sum(2))), $path_array[$pagerootdepth|inc].node_id, 0 )}
{if $left_menu_items_count}
<ul class="menu-list">
{foreach $left_menu_items as $key => $item}
{set $a_class = cond($current_node_in_path_2|eq($item.node_id), array("selected" , array())
$li_class = cond( $key|eq(0), array("firstli" , array() )}
{if $left_menu_items_count|eq( $key|inc )}
{set $li_class = $li_class|append("lastli" }
{/if}
{if $item.node_id|eq( $current_node_id )}
{set $a_class = $a_class|append("current" }
{/if}
<li{if $li_class} class="{$li_class|implode(" " }"{/if}><div class="second_level_menu"><a href={if eq( $ui_context, 'browse' )}{concat("content/browse/", $item.node_id)|ezurl}{else}{$item.url_alias|ezurl}{/if}{if $a_class} class="{$a_class|implode(" " }"{/if}>{$item.name|wash()}</a></div>
{if and( is_set( $module_result.path[$pagerootdepth|inc].node_id ), $item.node_id, eq( $module_result.path[$pagerootdepth|inc].node_id, $item.node_id ) )}
{def $sub_menu_items = fetch( 'content', 'list', hash( 'parent_node_id', $item.node_id,
'sort_by', $item.sort_array,
'class_filter_type', 'include',
'class_filter_array', ezini( 'MenuContentSettings', 'LeftIdentifierList', 'menu.ini' ) ) )
$sub_menu_items_count = $sub_menu_items|count}
{if $sub_menu_items_count}
<ul class="submenu-list">
{foreach $sub_menu_items as $subkey => $subitem}
{set $a_class = cond($current_node_in_path_3|eq($subitem.node_id), array("selected" , array())
$li_class = cond( $subkey|eq(0), array("firstli" , array() )}
{if $sub_menu_items_count|eq( $subkey|inc )}
{set $li_class = $li_class|append("lastli" }
{/if}
{if $subitem.node_id|eq( $current_node_id )}
{set $a_class = $a_class|append("current" }
{/if}
<li{if $li_class} class="{$li_class|implode(" " }"{/if}><div class="third_level_menu"><a href={if eq( $ui_context, 'browse' )}{concat("content/browse/", $subitem.node_id)|ezurl}{else}{$subitem.url_alias|ezurl}{/if}{if $a_class} class="{$a_class|implode(" " }"{/if}>{$subitem.name|wash()}</a></div></li>
{/foreach}
</ul>
{/if}
{undef $sub_menu_items $sub_menu_items_count}
{/if}
</li>
{/foreach}
</ul>
{/if}
{undef $root_node $left_menu_items $left_menu_items_count $a_class $li_class $current_node_in_path_2 $current_node_in_path_3}
{else}
<div class="contentstructure">
{def $current_node=fetch( content, node, hash( node_id, $module_result.node_id ) )
$chapter_container=fetch( content, node, hash( node_id, $current_node.path_array[$pagerootdepth|inc] ) )
$class_filter=ezini( 'TreeMenu', 'ShowClasses', 'contentstructuremenu.ini' )
$depth=is_set( $current_node.path_array[$pagerootdepth|sum(2)] )|choose( $pagerootdepth|sum(3), 0 )
$node_to_unfold=is_set( $current_node.path_array[$pagerootdepth|sum(2)] )|choose(0 , $current_node.path_array[$pagerootdepth|sum(2)] )
$contentStructureTree = content_structure_tree( $chapter_container.node_id, $class_filter, $depth, 0, 'false', false(), $node_to_unfold )}
{include uri='design:simplified_treemenu/show_simplified_menu.tpl' contentStructureTree=$contentStructureTree is_root_node=true() skip_self_node=true() current_node_id=$module_result.node_id unfold_node=$node_to_unfold chapter_level=0}
{undef $current_node $chapter_container $class_filter $depth $node_to_unfold $contentStructureTree}
</div>
{/if}
</div></div></div>
<div class="border-bl"><div class="border-br"><div class="border-bc"></div></div></div>
</div>
|
|
Jérome Guillemain
|
Jeudi 30 Octobre 2008 10:23:59 am
Re: Contenu d'un élément "Folder"
Il est vrai que ce comportement fonctionne notamment lorsque j'ai plusieurs galeries à afficher. Je trouvais ça étrange que ça ne fonctionne pas avec les articles issus du même dossier.
Toutefois, malgré le remplacement du code du fichier flat_left.tpl par le code que tu m'as fourni, et la suppression des fichiers de cache, cela ne change strictement rien....
Je pense que je vais réinstaller une nouvelle version d'Ezpublish 4.0.1 pour voir s'il n'y a un réel soucis...
Merci en tout cas pour les infos reçues...
|
|
Jérome Guillemain
|
Jeudi 30 Octobre 2008 2:21:06 pm
Re: Contenu d'un élément "Folder"
Apparemment, ça fonctionne avec les éléments de type 'folder".
Pour le moment, je vais continuer avec ce type d'élément pour mes différents articles.
Dès que j'aurai un site présentable, je me pencherai plus en profondeur sur ce souci...
Merci pour l'aide que j'ai reçu et bonne continuation à Ezpublish-france !!!
|
|
Jf Sénéchal
|
Vendredi 31 Octobre 2008 3:09:32 pm
Re: Contenu d'un élément "Folder"
Sinon, tu peux simplement ajouter dans le fichier
siteaccess/ezwebin_site/menu.ini.append.php
la liste des classes qui s'affichent dans le menu de gauche :
[MenuContentSettings]
TopIdentifierList[]
TopIdentifierList[]=folder
LeftIdentifierList[]=blog
LeftIdentifierList[]=frontpage
LeftIdentifierList[]=article <= ici j'ai ajouté article
Note : tu peux le faire depuis la partie interface admin setup
|
|
|
 |
|