Советы по использованию XWiki

Last modified by Eugen Colesnicov on 2010/05/19 22:57

1) Как сделать чтобы та или иная панель была недоступна для не-администраторов
	Добавить в код панели:
		#if ($xwiki.hasAdminRights())
		#panelheader('My Panel')
		…
		#panelfooter()
		#end
2) Как сделать полную переадресацию с WebHome по умолчанию
	Добавить в содержимое Main.WebHome:
		$response.sendRedirect($xwiki.getURL('Space.Page')) где Space.Page страница, на которую требуется выполнить переадресацию.
		
3)  Как встроить произвольный гаджет
	Добавить в содержимое html-snippet и в нем вписать код гаджета
	
4) Как показать встроенный flash
	Добавить flash-ролик в аттачи, а в содержимое вставить:
		#\set($\width = "500")
		#\set($\height= "500")
		#\set($\flashurl = $\doc.getAttachmentURL("filename.swf", "download"))
		#\includeForm("xwiki:XWiki.Flash")
		
5) Как "устроить" показ офисного приложения
	а) сохранить в виде html (через openoffice), зааххифировать в zip, приаттачить zip-файл, вставить в содержимое:
		#set ($url = $xwiki.zipexplorer.getFileLink($doc, "WikiWedPresentation.zip", "XWikiWedPresentation.html"))
		<iframe src="$url" frameborder=0 width=800px height=600px></iframe>
	собственно, так можно html в аттаче показывать, хоть целый сайт
	
	б) непосредственно приаттачить документ, и вставить код:
		<iframe src="/xwiki/bin/download/documentname.doc" width="100%" height="700px" 
		optional: frameborder=0 scrolling=0> </iframe>
		
6) Как установить Lucene-поиск в качестве движка по умолчанию для Панели Поиска
	Зайти в редактирование кода Панели Поиска и поменять "Main.WebSearch" на "Main.LuceneSearch". Сохранить.
	
7) Как получить список аттачей:
	а) для child-документов  (синтакс xwiki 1.0):
		#foreach($attDoc in $xwiki.wrapDocs($xwiki.searchDocuments(", XWikiAttachment att where att.docId =
		doc.id and doc.parent='$doc.fullName'")))
		   #foreach($att in $attDoc.getAttachmentList())
		     * <a href="$attDoc.getAttachmentURL($att.filename)">${att.filename} (${attDoc.displayTitle})</a>
		   #end
		#end 
	
	b) для всего раздела (синтакс xwiki 1.0):
		#foreach($attDoc in $xwiki.wrapDocs($xwiki.searchDocuments(", XWikiAttachment att where att.docId =
		doc.id and doc.web='${doc.space}'")))
		   #foreach($att in $attDoc.getAttachmentList())
		     * <a href="$attDoc.getAttachmentURL($att.filename)">${att.filename} (${attDoc.displayTitle})</a>
		   #end
		#end
	
	c) для произвольного документа  (синтакс xwiki 2.0):
		{{velocity}}
		#set ($attdoc = $xwiki.getDocument("Space.Document")) 
		#foreach( $attachment in $attdoc.getAttachmentList() )
		  * [[$attachment.getFilename()>>attach:$attachment.getFilename()]]
		\\
		#end
		{{/velocity}}

	d) для текущего документа  (синтакс xwiki 2.0):
		{{velocity}}
		#set ($attdoc = $doc) 
		#foreach( $attachment in $attdoc.getAttachmentList() )
		  * [[$attachment.getFilename()>>attach:$attachment.getFilename()]]
		\\
		#end
		{{/velocity}}
		
Как вывести все иконки на тулбар в wysiwyg-редакторе:
	- открываем templates\macros.vm
	- находим строку plugins: '$xwiki.getXWikiPreference("wysiwyg.plugins", В этой строке указываются те "плагины", которые будут подгружаться, но сам вид тулбаров настраивается ниже.
	- В найденную строку добавляем через пробелы (место не имеет значения) - color font justify - только этих трех "плагинов" нету в варианте по умолчанию.
	- Теперь в строке toolbar: '$xwiki.getXWikiPreference("wysiwyg.toolbar" добавляем сами иконки. вот полный вариант:
		"bold italic underline strikethrough teletype | subscript superscript | justifyleft justifycenter justifyright justifyfull | unorderedlist orderedlist | outdent indent | undo redo | format | fontname fontsize forecolor backcolor | hr removeformat symbol"
	- символ "|" означает строчный разделитель, символ "/" - разбивает тулбар на несколько строк.
	
Как вставить разрыв страницы при печати?
	First paragraph
        (% style="page-break-before:always" %)
        Second paragraph 
        
Вы можете иметь больше чем 1 блог в вашем вики и можно создавать блоги для каждого space. Для этого откройте путь
:///xwiki/bin/view/Blog/Management и создайте новый блог.

Как сделать чтобы в Print preview показывалось только содержимое страницы и ничего более.
	Открыть файл print.css в папке с используемым скином и добавить строку:
		#headerglobal, #hierarchy, #document-title, #document-info, #xdocFooter, #docextrapanes,
	в раздел /* Hide unneeded stuff */, после строки #globallinks, #footerglobal,

Как обращаться к аттачу и документу
#set ($attDoc = $xwiki.getDocument("Main.Files"))
#set ($urlAtt = $attDoc.getAttachmentURL("File.xml"))
[My Attachment>$urlAtt] 

Разрыв страницы:
	First paragraph
	(% style="page-break-before:always" %)
	Second paragraph 

Чтобы найти все child-страницы от этой нужно писать:
	#foreach($childDocName in $xwiki.searchDocuments("where doc.parent=’$doc’ order by doc.creationDate"))
		* [$childDocName] ($childDocName)
	#end 

Чтобы получить название страницы используйте:
$doc.title

Список страниц в разделе
	#foreach ($item in $xwiki.searchDocuments("where doc.web='MySpace'"))
 		* [$item]
	#end
	
Upgrade:
Перечень странич для исключения:
XWiki.XWikiPreferences - настройки самой wiki

XWiki.WebPreferences - настройки разделов
Main.WebPreferences
SandBox.WebPreferences

XWiki.XWikiAllGroup - список пользователей
XWiki.AdminGroup - список администраторов
XWiki.XWikiAdminGroup - ???

Main.WebHome - начальная страница
слетело членство пользователей в группе администраторов и установка лого.

Стандартный список аттачей к текущей странице и примечание о переходе:
== Содержание: ==

* **[[Постановка задачи>>SarcinaTehnologicaUzuraAnvelope]]**

{{velocity}}
#set ($attdoc = $doc) 
* **[[Прикрепленные файлы:>>$doc?viewer=Attachments]]** - нажмите для добавления/редактирования.
#foreach( $attachment in $attdoc.getAttachmentList() )
** [[$attachment.getFilename()>>attach:$attachment.getFilename()]]
#end
{{/velocity}}

Разные возможности просмотра добавляются если к стандартной строке добавить:
?viewer=attachments - просмотр только аттачей
?viewer=code - просмотр исходного кода


You can control whether to display Comments/History/Attachment/Information sections or not by setting some velocity variable to "no":
#set ($showcomments = "no")
#set ($showattachments = "no")
#set ($showhistory = "no")
#set ($showinformation = "no")

To remove them all you can set:
#set($docextras = [])


Ссылка на файл на другой странице (и в другом разделе):
[[Приказ о создании рабочей группы>>UCS.UCSWorkMaterials@UCSOrdin290.pdf]]

Просмотр офисных документов через GoogleDocs Viewer:
<iframe src="http://docs.google.com/gview?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true" style="width:600px; height:500px;" frameborder="0"></iframe>