* * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. */ @define('HORDE_BASE', dirname(__FILE__) . '/../..'); require_once HORDE_BASE . '/lib/base.php'; require_once HORDE_LIBS . 'Horde/Block.php'; require_once HORDE_LIBS . 'Horde/Identity.php'; require_once HORDE_LIBS . 'Horde/Menu.php'; require_once HORDE_LIBS . 'Horde/Help.php'; if (!Auth::isAuthenticated()) { Horde::authenticationFailureRedirect(); } // Get full name for title $identity = &Identity::singleton(); $fullname = $identity->getValue('fullname'); if (empty($fullname)) { $fullname = Auth::getAuth(); } // Get refresh interval. if ($prefs->getValue('summary_refresh_time')) { $refresh_time = $prefs->getValue('summary_refresh_time'); $refresh_url = Horde::applicationUrl('services/portal/'); } // Load layout from preferences. $layout_pref = @unserialize($prefs->getValue('portal_layout')); if (!is_array($layout_pref)) { $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 "