Tutorials and place to start


We recently acquired a project to continue development on an existing XWiki implementation.

I am searching for a good place to start learning more on the development around XWiki. I have spent a good day searching for examples, but I did not find much information. Some information on how to do things, but not with many examples.

I am looking for information on how to do:

  • add custom links to the top right menu
  • add custom content to the header
  • add content and functionality to all pages
  • how to create recurring velocity code, without editing every place it is used.
  • create custom queries combining data in classes

To me, these things look like basic things to develop?

We know how to create new classes, objects, sheets and live tables to add custom content models.

It could be I am searching in the wrong place. Coming from a php framework I am used to find a lot of information and examples. Only by search for the type of functionality I need. With XWiki, I mainly find information from XWiki itself, it shows often the description but no examples.

So, a pointer to a starting place, community, webcasts, etc would be greatly appreciated.

Thank you in advance.

Hi Jurjen,

For adding custom links or content to the user interface (UI), you can start by looking at the UI extension points provided by the platform, then refer to the UI extension point tutorial that is mentioned at the top of that page. In case you don’t find the extension point you need, please let us know your use case. You can also create a custom skin and consider overriding the default templates used by the platform, by adding objects of type XWikiSkinFileOverrideClass (let us know if you follow this path, we can provide guidance, in case you don’t find online examples).

You can use the same approach to add content and functionality to all pages: identify the right extension point and use it.

As for reusing Velocity code, you can include the page defining it using the include macro.

Regarding custom queries: have you checked out the Query Module documentation already?