Developer's corner

You want to help with a translation? You have found a bug you want to fix yourself? You need a new module no one else has coded yet? This is your introduction to the internals of moregroupware, down to the code.

Table of Contents

18. CVS and more.groupware development
Accessing CVS as a developer
CVS/SSH for unix/linux users
CVS/SSH for windows users (using wincvs)
Branching in CVS
more.groupware structure in CVS
19. How to translate Moregroupware
Structure of Moregroupware
Moregroupware lang-file
Using newslines for long text
Variables inside lang files
Test new language
Common Errors
When adding a completely new language...
20. Adding a module to moregroupware
Directory-Structure of a Module
Module Application Structure
Never use include($var/myinclude.php)!
Don't use your own database connections
What is the config.inc.php file?
What does container.inc do exactly?
require_once(SMARTY_DIR . "Smarty.class.php");
include(INCLUDEPATH .'mgw.class.inc');
include(INCLUDEPATH .'lang.inc');
include(INCLUDEPATH .'userfunc.inc');
include(INCLUDEPATH .'version.inc');
include(INCLUDEPATH .'appconfig.inc');
include(INCLUDE .'module_exec.inc');
Whats special about module_exec.inc
21. Handling common coding tasks
The definition.xml file
Logging functions
Using the core logging in more.groupware
Notification functions
Using notification in more.groupware
Database handling
SQL portability
Date and time handling
Templates with Smarty
Session usage
Using session standards in more.groupware
Passing sessions around in more.groupware
Storing per-module information in the session
Using the settings module
22. moregroupware coding conventions
Indenting
Naming conventions
Constants
Global variables
Control structures
Function calls
Comments
Including code
PHP code tags
Using CVS
General script structure