6.0.0-beta13
4/11/26
  • Backlinks
  • Similar Pages
  • Attachments
  • History
  • Back to
  • Creating a Horde Module

Note:

The HEAD skeleton module will not work with the stable FRAMEWORK_3 or H3 Horde framework and Horde base library. It uses API calls which are not available in FRAMEWORK_3.

There is currently no usable version of skeleton which is tagged FRAMEWORK_3. An older revision of the CVS HEAD version may work though.

  1. Check out the skeleton module from horde CVS

export CVSROOT=:pserver:cvsread@anoncvs.horde.org:/repository

The following password is horde

cvs login

cvs export -d modulename -r HEAD skeleton

  1. Create the following script as prjrename.php - save it somewhere sensible, like your home directory:

#!/usr/bin/php -q

n"; } // // ------------------- Main-Code -------------------- // if (count($_SERVER['argv'])==3) { // Preparation $list = array(); $path = trim($_SERVER[argv][1]); $modul = trim($_SERVER[argv][2]); // Fetch Filelist $list = analysedir( $path, $list ); // Modify each File foreach( $list as $file ) { //echo $modul.": ".$file."n"; substitute_skeleton( $file, $modul ); } } else help(); ?>
  1. On a unix system, use the following command to replace all skeleton strings with your project name (Not tested on Windows, but should work):

projectrename.php /path/to/skeleton/Checkout/ modulname

  1. Perform some file modifications:

mv /path/to/modulename/lib/Skeleton.php /path/to/modulename/lib/Modulename.php

mkdir /path/to/modulename/themes/graphics

  1. Upload a PNG icon at 16x16 for the module to the path created above, this one is available if you're stuck:

http://spriggs.org.uk/projects/horde_dev/fitlog/themes/graphics/fitlog.png

  1. In /path/to/horde/config/registry.d/ create a file called modulename.php. Please note the lack of ?> at the end of the php block, and also the menu parent. If you want your object to go ANYWHERE ELSE you will need to change this!
applications['modulename'] = array( 'fileroot' => dirname(__FILE__) . '/../../modulename', 'webroot' => $this->applications['horde']['webroot'] . '/modulename', 'name' => _("A description of your module"), 'status' => 'active', 'menu_parent' => 'horde' ); OK, so you now have your first module. Now, you need to populate it with content. This will be the subject of the next section: PopulatingYourFirstModule