Bonjour,
Je suis actuellement dans la mise en place d'un XWiki (XWiki Enterprise 1.7.1.21800).
Dans la page d'acceuil des divers espaces créés je souhaiterais voir apparaitre une arborescence de l'espace dans lequel l'utilisateur est.
N'ayant pas trouvé de snippet approprié dans la documentation de ce wiki, je me suis servi du code de base du panel "navigation", en le modifiant de manière à ce qu'il n'affiche que l'arborescence de l'espace en cours.
Mon problème consiste dans l'incorporation de ce panel au sein de la page d'acceuil de l'espace. Il est ici question de faire en sorte que le code fonctionne, non plus sous forme de panel mais directement au sein de la page.
J'ai réussi jusqu'a maintenant à obtenir un fonctionnement similaire, à l'exception près que les lignes de l'arborescence ne sont pas cliquable. J'ai donc une arborescence fixe, sans lien.
Ma question est donc la suivante, y a-t-il un moyen d'avoir à nouveau les liens dans le passage du panel à la page ? Ou bien, connaitriez vous un moyen d'obtenir une arborescence (ou une liste des pages) de l'espace en cours.
Je m'explique pour être sur d'avoir été clair. Lorsque je me trouve dans l'espace (space) "Espace1", je souhaite voir apparaitre uniquement les pages de cette espaces là.
Code de la panel "navigation" adapté à mes besoins :
Code que j'utilise pour intégrer la panel à la page (menu d'édition : EDITOR WIKI)#panelheader($msg.get('xe.panels.navigation'))
#set ($hiddenSpaces = ['XWiki', 'Admin', 'Panels'])
#set ($hiddenPages = ['Main.WebRss', 'Main.WebSearch', 'Main.LuceneSearch', 'Main.WebSearchRss', 'Main.BlogRss', 'Blog.Macros', 'Main.TagsRss', 'Main.RegisterNewUserAction', 'Main.SpaceIndex', 'Blog.Category'])
#set ($blackListedPages = ['WebPreferences'])
<div id="xwikinavcontainer">
#set($spaces = $xwiki.spaces)
#set($i = 0)
#set($spacecount = 0)
<div id="xwikinav" class="accordion">
#foreach($space in $spaces)
#if ($doc.space == $space)
#if ($hasAdmin || ($xwiki.hasAccessLevel('view', "${space}.WebHome") && !$hiddenSpaces.contains($space)))
#set ($spacecount = $i)
#end
#set($i = $i + 1)
<div id="xwikinav${space}">
<div id="xwikinav${space}Header" class="accordionTabTitleBar"><h6>$space</h6></div>
<div id="xwikinav${space}Content" class="accordionTabContentBox">
#set ($escapedSpace = $space.replaceAll("'", "''"))
#set($hql = $xwiki.searchDocuments("doc.space='$escapedSpace' order by doc.name"))
#foreach($page in $hql)
#if (!$hiddenPages.contains($page) || $hasAdmin)
#set($dotIndex = $page.indexOf('.')+1)
#set($pageName = $page.substring($dotIndex, $page.length()))
#if (!$blackListedPages.contains($pageName) || $hasAdmin)
#if ($doc.fullName == $page)
- *${doc.name}*
#else
- [$page]
#end
#end
#end
#end
</div>
</div>
#end
#end
</div>
</div>
$xwiki.jsfx.use("js/scriptaculous/scriptaculous.js")
$xwiki.jsfx.use("js/xwiki/accordion/accordion.js")
<script type="text/javascript">
var obj = {div:'xwikinav',no:$spacecount,height:250};
var acc = createAccordion(obj);
</script>
#panelfooter()
J'ai farfouillé du coté des balises html et de leur position dans le corps du code, mais celà n'as pas vraiment résolu mon problème.{{velocity}}
{{html}}
#panelheader($msg.get('xe.panels.navigation'))
#set ($hiddenSpaces = ['XWiki', 'Admin', 'Panels'])
#set ($hiddenPages = ['Main.WebRss', 'Main.WebSearch', 'Main.LuceneSearch', 'Main.WebSearchRss', 'Main.BlogRss', 'Blog.Macros', 'Main.TagsRss', 'Main.RegisterNewUserAction', 'Main.SpaceIndex', 'Blog.Category'])
#set ($blackListedPages = ['WebPreferences'])
<div id="xwikinavcontainer">
#set($spaces = $xwiki.spaces)
#set($i = 0)
#set($spacecount = 0)
<div id="xwikinav" class="accordion">
#foreach($space in $spaces)
#if ($doc.space == $space)
#if ($hasAdmin || ($xwiki.hasAccessLevel('view', "${space}.WebHome") && !$hiddenSpaces.contains($space)))
#set ($spacecount = $i)
#end
#set($i = $i + 1)
<div id="xwikinav${space}">
<div id="xwikinav${space}Header" class="accordionTabTitleBar"><h6>$space</h6></div>
<div id="xwikinav${space}Content" class="accordionTabContentBox">
#set ($escapedSpace = $space.replaceAll("'", "''"))
#set($hql = $xwiki.searchDocuments("doc.space='$escapedSpace' order by doc.name"))
#foreach($page in $hql)
#if (!$hiddenPages.contains($page) || $hasAdmin)
#set($dotIndex = $page.indexOf('.')+1)
#set($pageName = $page.substring($dotIndex, $page.length()))
#if (!$blackListedPages.contains($pageName) || $hasAdmin)
#if ($doc.fullName == $page)
- *${doc.name}*
#else
- [$page]
#end
#end
#end
#end
</div>
</div>
#end
#end
</div>
</div>
$xwiki.jsfx.use("js/scriptaculous/scriptaculous.js")
$xwiki.jsfx.use("js/xwiki/accordion/accordion.js")
<script type="text/javascript">
var obj = {div:'xwikinav',no:$spacecount,height:250};
var acc = createAccordion(obj);
</script>
#panelfooter()
{{/html}}
{{/velocity}}
Merci par avance.
Partager