$layout_pref = array(); } // Store the apps we need to load stylesheets for. $cssApps = array(); foreach ($layout_pref as $row) { foreach ($row as $item) { if (is_array($item) && !in_array($item['app'], $cssApps)) { $cssApps[] = $item['app']; } } } $title = _("My Portal"); $cssApp = 'app[]=' . implode(ini_get('arg_separator.output') . 'app[]=', $cssApps); require HORDE_TEMPLATES . '/common-header.inc'; require HORDE_TEMPLATES . '/portal/menu.inc'; Help::javascript(); $notification->notify(array('listeners' => 'status')); require HORDE_TEMPLATES . '/portal/header.inc'; $covered = array(); foreach ($layout_pref as $row_num => $row) { $width = floor(100 / count($row)); echo "<tr>\n"; foreach ($row as $col_num => $item) { if (isset($covered[$row_num]) && isset($covered[$row_num][$col_num])) { continue; } if (is_array($item)) { $block = $registry->callByPackage($item['app'], 'block', $item['params']); if (is_a($block, 'Horde_Block')) { if (isset($item['height'])) { $block->setHeight($item['height']);
function menu() { global $conf, $registry, $notification; require_once HORDE_LIBS . 'Horde/Menu.php'; require CHORA_TEMPLATES . '/menu/menu.inc'; $notification->notify(array('listeners' => 'status')); /* Include the JavaScript for the help system. */ Help::javascript(); }