Halo,
I am only beginner in xwiki but I have two small modifications which can
improve usability of xwiki.
1) modification of panel "Create" to allow automaticaly set parent page
to actual page
There is only:
- hidden input 'docFullName' where is stored actual page full name
- text input 'parent' where can write parent full name but if you focus
this input there is filled value of hidden input
Modification is adding this lines after input 'title' in Create panel source
<input type="hidden" id="docFullName"
value="$doc.getFullName()"/>
Parent page:
<input id="xwikidocparentinput2" type="text"
name="parent" value=""
class="panelinput" style="margin:auto;"
onfocus="if(this.value=='')
this.value=document.getElementById('docFullName').value;"/>
2) modification of panel Navigation
it will be nice to have pages in navigation in hierarchy - first level
pages without parent and next levels pages with their parents
My modification is not ideal (one hour learning velocity, programing and
testing) but it works.
There are only 3 levels because more levels are not allowed by wiki
syntax for lists (therefore I created new panel where is all docs in
actual space for our instalation of XWiki beta3 - I look forward to next
releases).
There is full source code:
(code between ## START Second level and ## END Second level
is new and in first level is modified only $hql definition)
#panelhiddenheader("Navigation")
#set ($hiddenSpaces = ["XWiki", "Admin", "Panels"])
#set ($hiddenPages = ["Main.WebRss", "Main.WebSearch",
"Main.BlogRss","Main.Test", "Blog.Macros",
"Main.TagsRss",
"Main.Ouverture", "Main.WikiLaunch",
"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">
#foreach($space in $spaces)
#if (!$hiddenSpaces.contains($space))
#if ($doc.web == $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">
## START First level (pages without parents)
#set($hql = $xwiki.searchDocuments("doc.web='$space' and
doc.parent=''
order by doc.name"))
#foreach($page in $hql)
#if (!$hiddenPages.contains($page))
#set($dotIndex = $page.indexOf(".")+1)
#set($pageName = $page.substring($dotIndex, $page.length()))
#if (!$blackListedPages.contains($pageName))
#if ($doc.fullName == $page)
- *$xwiki.getDocument($page).name*
#else
- [$page]
#end
#end
## START Second level
#set($hql2 = [])
#set($hql2 = $xwiki.searchDocuments("doc.web='$space' and
doc.parent='$page' order by doc.name"))
#foreach($page2 in $hql2)
#if (!$hiddenPages.contains($page2))
#set($dotIndex = $page2.indexOf(".")+1)
#set($pageName = $page2.substring($dotIndex, $page2.length()))
#if (!$blackListedPages.contains($pageName))
#if ($doc.fullName == $page2)
-- *$xwiki.getDocument($page2).name*
#else
-- *[$page2]*
#end
#end
## START Third level
#set($hql3 = [])
#set($hql3 = $xwiki.searchDocuments("doc.web='$space' and
doc.parent='$page2' order by doc.name"))
#foreach($page3 in $hql3)
#if (!$hiddenPages.contains($page3))
#set($dotIndex = $page3.indexOf(".")+1)
#set($pageName = $page3.substring($dotIndex, $page3.length()))
#if (!$blackListedPages.contains($pageName))
#if ($doc.fullName == $page3)
--- *$xwiki.getDocument($page3).name*
#else
--- [$page3]
#end
#end
#end
#end
## END Third level
#end
#end
## END Second level
#end
#end
## END First level
</div>
</div>
#end
#end
</div>
</div>
<script type="text/javascript">new Rico.Accordion( 'xwikinav',
{panelHeight:'250',onLoadShowTab:'$spacecount'} );</script>
#panelfooter()
3) next I have one question: Can I deny creating new space to all user
except admin?
4) another one small question: Is there some plugin to syntax highlight
source codes? Macro {code} is very poor. I was working on syntax
highlighting source codes in html on our university (I am staff of this
university) for our documentation "server" (static pages). I have
implemented that in Java for JAVA, XML, SQL source codes.
If there isn't such plugin I would like to implement it and give it to
XWiky community.
Zdenek Machac
Masaryk University
Czech Republic