The Packages

The structure of chamilo 2.0 exists out of several packages which are all small projects on itself. Most of the packages require one or more other packages on the system to be available. The packages are divided into a few categories.


The applications are the packages that run the system. They define the context and execute business logic. There are two types of applications.

  • Core Applications

The core applications are the applications that are needed to run chamilo 2.0. Core applications include user / group management, administration management etc.
The core applications can be found in the root folder of the chamilo 2.0 project.

  • Optional Applications

The optional applications are the applications which are a nice addition to chamilo 2.0, but are not necessary to run the platform. On of the most important optional application is the weblcms (courses) application.
The optional applications can be found at /application/.

Content objects

The content objects are packages that maintain the content of the system. They can be created from within the repository application or from within a context with use of the RepoViewer.
The content objects can be found at /repository/content_object/.


The tools are a bunch of SubManagers which can be found in the weblcms application. They provide pieces of code to manage certain content objects.
Ex: An assessment tool manages the publications of the assessments in a course.

The tools can be found at /application/weblcms/tool/.

External repository implementations

The external repository implementations are packages which manage the connection between chamilo and external content repositories. Ex: The connection between chamilo and youtube.
The external repository implementations can be found at /common/extensions/external_repository_manager/implementation/

Video conferencing implementations

The video conferencing implementations are packages which execute code for video conferencing tools like big blue button.
The video conferencing implementations can be found at /common/extensions/video_conferencing_manager/implementation/

Package Contents

Each package exists out of 2 folders:

  • Resources: the resources of the package (javascript, css, images, translations)
  • Php: the php / xml code of the package.

Application php contents

The php folder for applications is structured in the following layout:

  • Ajax: ajax code for the application
  • Blocks: the blocks for the personal home page
  • Install: the installation xml files and installer class
  • Lib: the heart of the application
  • Reporting: the reporting files for the application
  • Rights: the rights for the application in xml format
  • Settings: the settings for the application in xml format
  • Trackers: the trackers for the application
  • Webservices: the webservice files for the application
  • Xmlfeeds: the xml feeds for the application

The lib folder for applications is structured in the following layout:

  • DataManager: the datamanager implementations
  • Forms: the forms of the application
  • {Application}Manager: the manager of the application which runs the application and its components
  • Tables: the tables that are used in the application
  • Optional folders are possible for example: category_manager, publisher, connector...

The manager folder for applications is structured in the following layout:

  • Component: the components of the application
  • Component/{implementation}_table: the implementation of all the tables.

Content object php contents

The php folder for content objects has the following layout:

  • Ajax: the ajax code for the package
  • Builder: the implementation of the complex builder for that content object
  • Display: the implementation of the complex display for that content object
  • Install: the install folder for the content object with additional xml files.
  • Settings: the settings for the content object
  • Update: the update code for the package (optional)

Other php contents

The php folder for other packages have the same structure as the SubManagers

Updated by Sven Vanpoucke over 11 years ago ยท 1 revisions