FLUX RSS



ACCUEIL / FORUMS / QUESTIONS TECHNIQUES / CONTENU D'UN ÉLÉMENT "FOLDER"




sondages
Avez-vous déjà utilisé les exports statiques ? :
oui
non
RESULTATS | SONDAGES
liens
eZ systems
http://ez.no
PHPEdit
http://www.waterproof.fr/
AFUL
http://www.aful.org
Framasoft
http://www.framasoft.net
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

actualités
Traduction d'un tutorial eZ
eZ publish 4.0 est sorti
EzPublish 3.9 enfin disponible !
Ez Publish 3.9 RC2 est en ligne !
Ez Publish 3.9 RC1 disponible !
références
Site ohmycom
OhmyBlog