groovy XWiki AppWithinMinutes在显示器上添加自定义速度脚本

0yycz8jy  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(125)

我是XWiki的新手,不是Java开发人员。我想开发一个简单的AppWithinMinutes应用程序(让我们称之为ServerCatalog),用于服务器列表及其属性,如操作系统、环境等。这都是可行的。我可以从AppWithinMinites UI中开发。
我还开发了一个宏,它列出了所有页面的标签。
例如,当某人在我的ServerCatalog中创建一个条目时,可以说SERVERD56,其中D代表开发环境。
当我们显示该条目时,我还希望执行我开发的宏,以便它可以列出与标签SERVERX56匹配的所有页面。
请注意,我将D替换为X,因此在执行宏之前,我希望操作该页面标题,并使用X删除Environment前缀(在本例中,D表示开发环境)。
我希望它清楚我想完成的事情。如果它不清楚请告诉我。
如果有人能帮助我做这件事,我将非常感激。

编辑内容:

按照爱德华·莫拉鲁(Eduard Moraru)的建议,我尝试了以下方法:
我已经创建了一个名为“PageListByTag”的自定义宏。

.
.
.
.
{{/html}}
{{/velocity}}

{{python}}
title = document.getTitle()
newTitle = title[:6] + "X" + title[6+1:]
print(newTitle)
{{/python}}

它有几个问题。
1.我的html标记已经结束了。我不能再在其中插入任何新内容
1.我无法在velocity标签内添加python代码,因为XWiki不允许嵌套脚本
1.如果我想使用python,我仍然不知道如何在python代码中调用宏
如果我可以用速度替换字符串中的第6个字符,那么一切都可以正常工作。我可以在速度脚本中使用宏,因为它在html的边界内。

kse8i1jr

kse8i1jr1#

据我所知,您希望自定义显示应用程序条目时使用的应用程序“工作表”。
如果您查看文档中有关自定义的部分,您将获得许多有关您应查看的内容的起点:
https://extensions.xwiki.org/xwiki/bin/view/Extension/App%20Within%20Minutes%20Application#HCustomization
这一行很有意思(还有上面关于XWiki应用程序工作原理的链接):
工作表,用于显示和编辑应用程序条目(例如HolidaySheet)
在您的情况下,要自定义的文档(在wiki语法模式下编辑)应为ServerCatalog.Code.ServerCatalogSheet
在该文档中,有AWM自动生成的代码,您可以在其中添加对宏的调用。


## AWM generated code...

...

## Customization:

{{displayAssociatedPages /}}

然后,在此宏(在此示例中称为displayAssociatedPages)中,您可以执行类似以下的操作:

{{velocity}}

# set ($title = $doc.title)

## OR #set ($title = $doc.name), depending if your pages have titles

# if ($title.startsWith('SERVERD'))

  #set ($tag = $title.replaceFirst('SERVERD', 'SERVERX'))
  ##
  ## We can reuse and customize this snippet: https://snippets.xwiki.org/xwiki/bin/view/Extension/Display%20pages%20with%20a%20specific%20tag/
  ##
  #set ($references = $xwiki.tag.getDocumentsWithTag($tag))
  #foreach($reference in $references)
    #set ($document = $xwiki.getDocument($reference))
    #set ($label = $document.getTitle())
    [[$label>>$reference]]
  #end 

# end

{{/velocity}}

API文档和更多信息,请访问https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/API/
此外,您应该了解自订AWM应用程序后,使用AWM本身编辑时应该小心。例如,如果新增字段AFAIK,则可能会覆写对工作表所做的自订(如上例所示),因此您应该从文件历程记录中复原这些自订并重新套用。

相关问题