6.0.0-git
2024-04-24
Last Modified 2013-01-25 by Ralf Lang

Notes on converting apps from Horde 4 to Horde 5.

These are by far not complete.

Mandatory

Use Horde_PageOutput

* There is a new class Horde_PageOutput which is an OO-style output buffer

common header to $page_output->header

horde/templates/common-header.inc does not exist anymore

require $registry->get('templates', 'horde') . '/common-header.inc';
echo Horde::menu();

$page_output->header(array(
'title' => _("List")
));

Page Footer

require $registry->get('templates', 'horde') . '/common-footer.inc';
$page_output->footer();

Adding Javascript

Horde::addScriptFile('jquery-ui/jquery-1.7.min.js', 'insysgui');
$page_output->addScriptFile('jquery-ui/jquery-1.7.min.js');

New parameter format for entries in menu

In Application.php's menu function, entries now go like this

            $menu->add(Horde::url('data.php'), _("_Import/Export"), 'horde-data');

It's link, caption, css class. The Icon now has to be defined in css:

.turba-edit, #tabEditContact a {
    background-image: url("graphics/edit.png");
}

UI

Topbar search bar

* If your app sported a custom search bar (like wicked, sesha or whups), convert it to the Horde Topbar

$topbar = $injector->getInstance('Horde_View_Topbar');
/* Make topbar visible */
$topbar->search = true;
/* Define where to redirect when the button is clicked */
$topbar->searchAction = new Horde_Url('list.php');
/* Define the grayed-out hint text in the search field */
$topbar->searchLabel =  $session->get('sesha', 'search') ?: _("Stock Id");
/* Define a search icon. Leave away if you want the default */
$topbar->searchIcon = Horde_Themes::img('search-topbar.png');

Custom apps handling

If your conf.xml had such a section

<configsection name="menu">
  <configheader>Menu Settings</configheader>
  <configmultienum name="apps" desc="Select any applications that should be
  linked in Insysgui's menu" required="false">
   <values>
    <configspecial application="horde" name="apps" />
   </values>
  </configmultienum>
 </configsection>

drop it. It won't work anymore now that the app-specific menu lives in the sidebar.

The New Button

Horde 5 introduces a visually enhanced "New Item" button. In the default theme, it is green and enlarged. There can be only one "New" Button per application. It is expected that the button creates the primary domain item of the app (like in a app calendar, it would add a new event, not a new calendar - in an addressbook app, it would add a new addressbook entry, not a new address book...)

Use the ->addNewButton() call

TODO: Code example here