Table of Contents
OTRS is a multi-platform web application framework which was originally developed for a trouble ticket system. It supports different web servers and databases.
This manual shows how to develop your own OTRS modules and applications based on the OTRS styleguides.
To facilitate the writing of OTRS expansion modules, the creation of a development environment is necessary. The source code of OTRS and additional public modules can be found on github.
First of all a directory must be created in which the modules can be stored. Then switch to the new directory using the command line and check them out of OTRS 3.1 or the git master by using the following command:
# for git master shell> git clone git://github.com/OTRS/otrs.git -b master # for a specific branch shell> git clone git://github.com/OTRS/otrs.git -b rel-3_1
Check out the "module-tools" module (from github) too, for your development environment. It contains a number of useful tools.
To enable the new OTRS system it is necessary to configure it on the Apache web server and to create the Config.pm. Then the Installer.pl can be executed. The basic system is ready to run now.
A clear separation between OTRS and the modules is necessary for proper developing. Particularly when using a git, a clear separation is crucial. In order to facilitate the OTRS access to the files, links must be created. This is done by a script in the directory module tools (to get this tools, check out the git module "module-tools"). Example: Linking the Calendar Module:
shell> ~/src/module-tools/link.pl ~/src/Calendar/ ~/src/otrs/
Whenever new files are added, they must be linked as described above.
To remove links from OTRS enter the following command:
shell> ~/src/module-tools/remove_links.pl ~/src/otrs/
As soon as the linking is completed, the Sysconfig must be run to register the module in OTRS. Required users, groups and roles must be created manually and access authorizations must be defined. If an additional databank table is required, this must be created manually, too. If an OPM package exists, the SQL commands can be read out to create the tables. Example:
shell> cat Calendar.sopm | bin/xml2sql.pl -t mysql