OTRS 3.0 - Developer Manual

René Bakker, Hauke Böttcher, Stefan Bedorf, Shawn Beasley, Jens Bothe, Udo Bretz, Martin Edenhofer, Martin Gruner, Manuel Hecht, Christopher Kuhn, André Mindermann, Henning Oschwald, Thomas Raith, Stefan Rother, Burchard Steinbild

This work is copyrighted by OTRS AG.

You may copy it in whole or in part as long as the copies retain this copyright statement.

The source code of this document can be found at source.otrs.org.

UNIX is a registered trademark of X/Open Company Limited. Linux is a registered trademark of Linus Torvalds.

MS-DOS, Windows, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows 2003 and Windows Vista are registered trademarks of Microsoft Corporation. Other trademarks and registered trademarks are: SUSE and YaST of SUSE Linux GmbH, Red Hat and Fedora are registered trademarks of Red Hat, Inc. Mandrake is a registered trademark of MandrakeSoft, SA. Debian is a registered trademark of Software in the Public Interest, Inc. MySQL and the MySQL Logo are registered trademarks of MySQL AB.

All trade names are used without the guarantee for their free use and are possibly registered trade marks.

OTRS AG essentially follows the notations of the manufacturers. Other products mentioned in this manual may be trademarks of the respective manufacturer.


Table of Contents

1. Getting Started
Development Environment
Framework checkout (CVS)
Linking Expansion Modules
Necessary Actions after Linking
Architecture Overview
Directories
Files
Core Modules
Frontend Handle
Frontend Modules
CMD Frontend
Database
2. Hacking OTRS
How it Works
Config Mechanism
Database Mechanism
Log Mechanism
Skins
The CSS and JavaScript "Loader"
Templating Mechanism
How to Extend it
Module Format
Object Basics
Writing an OTRS module for a new object
How to Publish your OTRS Extensions
Package Management
Package Building
How to Upgrade your OTRS Extensions to Newer Versions of OTRS
Upgrading OTRS Extensions from 2.4 to 3.0
3. Contributing to OTRS
Translating OTRS
How it works
Updating an existing translation
Adding a new frontend translation
Translating the Documentation
Code Style Guide
Perl
JavaScript
CSS
User Interface Design
Capitalization
Accessibility Guide
Accessibility Basics
Accessibility Standards
Implementation guidelines
Unit Tests
Creating a test file
Testing
True()
False()
Is()
A. Additional Resources
OTRS.org
Online API Library
Developer Mailing List
Commercial Support