我已将对象附加到XWiki页面。现在,当显示页面时,对象的所有属性也会显示在页面中。我不想把所有领域都显示出来,我该如何隐藏其中的一些?
答案 0 :(得分:1)
简短回答:如果你想修改一个对象在XWiki页面中的显示方式,你可以编辑它的类表。
更长的anser:假设对象BarClass
中的Foo
类,或Foo.BarClass
中的对象。此类页面定义了对象具有的字段,具有两个附带页面,Foo.BarTemplate
处的类模板和类表Foo.BarSheet
,其中包含显示此类对象的代码。你想查看表格。
这可以通过在wiki编辑器中打开页面来完成,例如
http://localhost:8080/xwiki/bin/edit/Foo/BarSheet?editor=wiki
您将看到如下代码:
{{velocity}}
## You can modify this page to customize the presentation of your object.
## At first you should keep the default presentation and just save the document.
#set($class = $doc.getObject('Foo.BarClass').xWikiClass)
#foreach($prop in $class.properties)
; $prop.prettyName
: $doc.display($prop.getName())
#end
{{/velocity}}
如果您想隐藏,请说field2
,您可以将foreach
循环更改为:
#foreach($prop in $class.properties)
#if ($prop.name != 'field2' || $xcontext.action == 'edit')
; $prop.prettyName
: $doc.display($prop.getName())
#end
#end
如果该字段的名称为$prop.name != 'field2'
且field2
注意您的字段仍显示在编辑模式中,则$xcontext.action == 'edit'
会确保该字段不显示(否则您的用户将无法编辑该字段,这可能不是您想要的)。
如果您使用AppWithinMinutes
创建了类,则类表看起来不同:
{{velocity}}
{{html wiki="true"}}
#set ($discard = $doc.use('FooBarCode.FooBarClass'))
#set ($discard = $services.localization.use('document', 'FooBarCode.FooBarTranslations'))
(% class="xform" %)
(((
; <label for="FooBarCode.FooBarClass_0_field1">$escapetool.xml($doc.displayPrettyName('field1', false, false))</label>
: $doc.display('field1')
; <label for="FooBarCode.FooBarClass_0_field2">$escapetool.xml($doc.displayPrettyName('field2', false, false))</label>
: $doc.display('field2')
; <label for="FooBarCode.FooBarClass_0_field3">$escapetool.xml($doc.displayPrettyName('field3', false, false))</label>
: $doc.display('field3')
)))
{{/html}}
{{/velocity}}
在这种情况下,您需要找到显示您要隐藏的字段的两行,然后将其换行为简单的#if ($xcontext.action == 'edit')
,如:
#if ($xcontext.action == 'edit')
; <label for="FooBarCode.FooBarClass_0_field2">$escapetool.xml($doc.displayPrettyName('field2', false, false))</label>
: $doc.display('field2')
#end
如果您想了解有关如何使用XWiki类的更多信息,请阅读http://platform.xwiki.org/xwiki/bin/view/DevGuide/FAQTutorialManual上的教程
通常,您希望在几分钟内通过&#34;应用程序创建和管理您的wiki课程。应用程序:http://extensions.xwiki.org/xwiki/bin/view/Extension/App+Within+Minutes+Application创建一个用户友好的界面,但对于您想要的自定义,您需要直接编辑工作表。