6.0.0-alpha14
7/1/25
Last Modified 2/9/09 by Guest
Table of Contents

Introduction

by Torben Dannhauer

The process of populating the new module with content/functionality is fairly straight forward and after learning how the Horde API' s work, you should be able to produce new modules in a minimum amount of time.

Jan Schneider talked about this at FOSDEM 2005. You can find his slides at http://www.horde.org/papers/fosdem2005/.

The new module's functionality could by separated in the following aspects:

  • Menus
    • Calling-procedure at entering the application
    • Permissions
    • All Content-Pages which are accessible through on oh the menus
    • Services offered to external modules

usually it is useful to nalyse another horde Module to learn how this work. I analysed Kronolith and it helped me a lot.

Obviously it is neccesarry to know the provied horde API zu wirte a horde module. Because a beginner (and this tutorial is adressed to them) has no clue about it, it is very usefull to read the package-documentation at http://dev.horde.org/api/framework/.

Menus

In Horde there are two standard menus: The Top Menu an the Side Menu.

ToDo?: Add Links to Wikipages describing menus in detail.

Top Menu

The Top MenĂ¼ is devided in to 4 sections:

  • left: Menuitems provided by this module: see below
    • mid left: Menuitems added manually: see below
    • mid right: Menuitems added in the administrator's module setup
    • right: Menuitems provided by horde as default

left

the Menuitmes this module intentionally provide are located in the file <module>/lib/Module.php in the function ::getMenu()

Add Items like this:

<?php
 

 $menu->add(Horde::applicationUrl('pagetoshow.php'), _("MenuItemName"), 'icon.png', $registry->getImageDir() );

?>

mid left

Items ar added in <module>/config/menu.php:

<?php


$_menu[] = array(

      'url' =>        'http://www.example.com/',

      'text' =>       'Example, Inc.',

      'icon' =>       'example.png',

      'icon_path' =>  'http://www.example.com/images/',

      'target' =>     '_blank',

      'onclick' =>    ''

  );

?>

Side Menu

Calling procedure at entering the application

If a module is entered via the side-menu, usualy the url to the module-folder was provided. The link ist http://<myHordeInstallation>/<mymodule> without any file. So the calling Procedure starts by executing the index.php bye the webserver.

Permissions

The module's permissiontree which includes the logical structure of all permissions available in this module is defined in <module>/lib/api.php

Further information about permissions is available at http://wiki.horde.org/Doc/Dev/PermsPackage

Content-Page

Services

Misc

  • create .inc files that display the elements on the screen
    • create any php files needed to fill in forms