Development Guide

About this Document

Purpose of this document

The purpose of this document is to support the development of new features for ILIAS. It offers guidance on the process  for everyone that wants to participate in proposing, discussing, testing and maintaining functionality of ILIAS.
 
For developers it contains a lot of conventions that need to be respected, when they add new code. The biggest part contains information of the different programming concepts in ILIAS.

Relation to other documents

A lot of documentation has been moved to README.md files in the main ILIAS code repository in the past. Thus a better starting point for current development documentation may be https://github.com/ILIAS-eLearning/ILIAS/blob/trunk/docs/development/README.md.

However this document contains a) documentation that has not been moved to README files yet and b) documentation on legacy concepts, that are still being used in the ILIAS code.

Other supplementary documentation:

Change Log

Date

Version

Change

Author

28 June 2009

7.3

Added chapter on code templates

Alex Killing

6 August 2009

7.4

Added page on standard user name presentation

Alex Killing

13 August 2009

7.5

Updated repository object plugin example

Alex Killing

1 September 2009

7.6

Added data table filter documentation

Alex Killing

7 September 2009

7.7

Added setDisableFilterHiding() method to table filters.

Alex Killing

16 October 2009

7.8

Fixed repository plugin example due to bug Latest change was due to Bug 5347.

Alex Killing

21 December 2009

7.9

Another fix in the repository plugin example. Missing break; in ilObjExampleGUI

Alex Killing

3 May 2010

7.10

Revised docu on tabbed menues

Alex Killing

30 June 2010

7.11

Added chapter on Import/Export

Alex Killing

1 July 2010

7.12

Added "selectable columns" feature description to "Data Tables" chapter.

Alex Killing

7 Sep 2010

7.13

Added "Getting involved as Developer" page. Updated several pages in the introduction chapter. Marked outdated information.

Alex Killing / Matthias Kunkel

15 Mar 2011

7.14

Added CSS Guidelines

Stephan Heller / Alex Killing

28 Mar 2011

7.15

Updated repository plugin example

Alex Killing

6 May 2011

7.16

Updated the chapter on testing

Alex Killing

22 Jun 2011

7.17

Added user interface plugin slot documentation

Alex Killing

24 Nov 2011

7.18

Revision of introduction, added $ilCtrl documentation, revised some other pages.

Alex Killing

21 Dec 2011

7.19

Added chapter on exceptions

Alex Killing

14 Feb 2012

7.20

Added chapter on event handling

Jörg Lützenkirchen

10 Jan 2013

7.21

Updated SVN server information (chap 4)

Matthias Kunkel

6 Apr 2013

7.22

Added chapter on Explorer2 service

Alex Killing

26 June 2013

7.23

Added chapter on Cloud-Module Plugins

Timon Amstutz

26 May 2014

7.24

Added chapter an ActiveRecords

Fabian Schmid

30 July 2014

7.25

Added chapter on Test Question Plugins

Fred Neumann

1. Mai 2015

7.26

Revised "Repository Object Plugin" Section for ILIAS 5.0

Timon Amstutz

07 June 2015

7.27

Revised "The Development Process" and updated steps and descriptions

Matthias Kunkel

04 April 2017

7.28

Revised "CSS/Less Guidelines" and linked Guideline in Repo

18 August 2017

7.29

Revised chapter "PDF Generation"
Added plugin slot documentation "PDF Renderer Plugin" in "Plugins"

Maximilian Becker

28 May 2018

7.30

Revised description and example for Test Question Plugins

Fred Neumann