Search in the Documentation:

What is a module?

As explained in Part 1, modules are the new way to add features to Jahia and may be considered as plug-ins to the platform. The term “feature” is generic and covers a very large spectrum. It may refer to simple content types (article, news, dog…) that can be manipulated by editors to create content nodes and displayed in pages, or to interactive components (poll, rating…), or to deep layer features (remote publishing, LDAP connector…) or even to template-sets that are also packaged as modules.

In fact, as an integrator, nearly everything you will create will be done and deployed through modules.

A module may contain:

  • Content definitions
  • View scripts (JSP, JSR-286 compatible languages such as Velocity or Freemarker, or even PHP*)
  • Static resources (text file, images, CSS files, Javascript files)
  • Resource bundles or other property files
  • Java classes or JAR libraries
  • Filters
  • Permission and role definitions
  • Rules
  • jBPM workflow definitions
  • Tag libraries
  • Spring Framework configuration files
  • Content import files (in XML format)

Note that none of these files are required, and you may create an empty module, although it won’t be very useful.

* Through the integration of Caucho’s Quercus PHP engine, which may require a commercial license depending on deployment needs.