XWiki 扩展:检测事件空间创建



根据这里的文档,我们可以看到,在 xwiki java 扩展中,我们可以像这样拦截事件 UserCreation:

https://extensions.xwiki.org/xwiki/bin/view/Extension/Observation%20Module%20Local#HWritinganEventListenerinVelocityinaWikipage

public void onEvent(Event event, Object source, Object data)
{
XWikiDocument document = (XWikiDocument) source;
String wikiName = document.getDocumentReference().getWikiReference().getName();
DocumentReference userClass = new DocumentReference(wikiName, "XWiki", "XWikiUsers");
if (document.getXObject(userClass) != null) {
}

我想要同样的东西,但我想检测事件空间的创建(所以基本上当你在你的 wiki 中添加一个空间(基本上一个空间是文章的主根页面)时。但是我没有找到任何像XWikiUsers这样的空间或页面类。

它不想以速度或时髦的方式做到这一点,但在纯粹的 java 扩展中,我不知道,文档非常大,但很难找到我想要的东西。

从技术上讲,每当在其下创建页面(终端页面或WebHome)时,都会创建一个"空间"。

因此,您可以:

  • 每次创建页面时执行查询(DocumentCreatingEvent,所以尚未DocumentCreatedEvent),然后执行查询(请参阅 https://extensions.xwiki.org/xwiki/bin/view/Extension/Query%20Module)以查看空间(与新文档的空间引用匹配)是否与数据库中的现有空间或更深的嵌套空间匹配...或
  • 检查新创建的文档(DocumentCreatedEvent)是否具有在性能方面会更好的名称WebHome,但是如果您正在使用终端文档(即"WebHome"以外的其他文档),它将不起作用,请参阅 https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/ContentOrganization/#HTerminology

最新更新