隐藏XWiki页面中的一些字段

时间:2015-04-08 09:28:07

标签: xwiki

我已将对象附加到XWiki页面。现在,当显示页面时,对象的所有属性也会显示在页面中。我不想把所有领域都显示出来,我该如何隐藏其中的一些?

1 个答案:

答案 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创建一个用户友好的界面,但对于您想要的自定义,您需要直接编辑工作表。