diff --git a/mail/inc/class.mail_hooks.inc.php b/mail/inc/class.mail_hooks.inc.php index 80f3da1861..88860f6f89 100644 --- a/mail/inc/class.mail_hooks.inc.php +++ b/mail/inc/class.mail_hooks.inc.php @@ -388,90 +388,76 @@ class mail_hooks { unset($hook_data); // not used, but required by function signature - //error_log(__METHOD__); // always show the side bar unset($GLOBALS['egw_info']['user']['preferences']['common']['auto_hide_sidebox']); $appname = 'mail'; - $menu_title = $GLOBALS['egw_info']['apps'][$appname]['title'] . ' '. lang('Menu'); -/* - $file = array(); - $profileID = 0; - if (isset($GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'])) - $profileID = (int)$GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID']; - try - { - $mail_bo = Mail::getInstance(true,$profileID); - $profileID = $GLOBALS['egw_info']['user']['preferences']['mail']['ActiveProfileID'] = $mail_bo->profileID; - } catch (Exception $e) { - //error_log(__METHOD__."()" . $e->getMessage()); - $profileID = Mail\Account::get_default_acc_id(); - } - $preferences =& $mail_bo->mailPreferences; - $serverCounter = $sieveEnabledServerCounter = 0; - // account select box - $selectedID = $profileID; - $allAccountData = Mail\Account::search($only_current_user=true, $just_name=false, $order_by=null); - if ($allAccountData) { - $rememberFirst=$selectedFound=null; - foreach ($allAccountData as $tmpkey => $icServers) + // Mail sidebox menus + $menus = array( + array( + 'title' => $GLOBALS['egw_info']['apps'][$appname]['title'], + 'enable' => true, + 'items' => array( + array( + 'no_lang' => true, + 'text'=>'', + 'link'=>false, + 'icon' => false + ), + array( + 'no_lang' => true, + 'text'=>'', + 'link'=>false, + 'icon' => false + ) + ) + ), + array ( + 'title' => lang('Mail Menu'), + 'enable' => true, + 'items' => array ( + 'menuOpened' => false, + array ( + 'text' => 'import message', + 'link' => "javascript:egw_openWindowCentered2('". + Egw::link('/index.php', array('menuaction' => 'mail.mail_ui.importMessage') ,false). + "','importMessageDialog',600,100,'no','$appname');" + ), + array ( + 'enable' => self::access('createaccount'), + 'text'=>'create new account', + 'link'=> "javascript:egw_openWindowCentered2('" . + Egw::link('/index.php', array('menuaction' => 'mail.mail_wizard.add'), ''). + "','_blank',640,480,'yes')", + ), + ) + ), + array ( + 'title' => lang('Admin'), + 'enable' => $GLOBALS['egw_info']['user']['apps']['admin'] && !Api\Header\UserAgent::mobile(), + 'items' => array ( + 'Site Configuration' => Egw::link('/index.php','menuaction=admin.uiconfig.index&appname=' . $appname), + ) + ) + ); + + // Menu generator + foreach ($menus as &$menu) + { + foreach ($menu['items'] as &$item) { - if (is_null($rememberFirst)) $rememberFirst = $tmpkey; - if ($tmpkey == $selectedID) $selectedFound=true; - //error_log(__METHOD__.__LINE__.' Key:'.$tmpkey.'->'.array2string($icServers->acc_imap_host)); - $host = $icServers->acc_sieve_host; - if (empty($host)) continue; - if ($icServers->acc_sieve_enabled && $icServers->acc_sieve_port) $sieveEnabledServerCounter++; - $serverCounter++; - //error_log(__METHOD__.__LINE__.' Key:'.$tmpkey.'->'.array2string($identities[$icServers->acc_id])); + if (array_key_exists('enable', $item) && !$item['enable']) { + unset($item); + } + } + if (!(array_key_exists('enable', $menu) && !$menu['enable'])) + { + display_sidebox($appname,$menu['title'],$menu['items']); } } -*/ - $file=array(); - // Destination div for folder tree - $file[] = array( - 'no_lang' => true, - 'text'=>'', - 'link'=>false, - 'icon' => false - ); - $file[] = array( - 'no_lang' => true, - 'text'=>'', - 'link'=>false, - 'icon' => false - ); - $linkData = array( - 'menuaction' => 'mail.mail_ui.importMessage', - ); - - $file += array( - 'import message' => "javascript:egw_openWindowCentered2('".Egw::link('/index.php', $linkData,false)."','importMessageDialog',600,100,'no','$appname');", - ); - - - // create account wizard - if (self::access('createaccount')) - { - $file += array( - 'create new account' => "javascript:egw_openWindowCentered2('" . - Egw::link('/index.php', array('menuaction' => 'mail.mail_wizard.add'), ''). - "','_blank',640,480,'yes')", - ); - } - // display them all - display_sidebox($appname,$menu_title,$file); - - if ($GLOBALS['egw_info']['user']['apps']['admin'] && !Api\Header\UserAgent::mobile()) - { - $file = Array( - 'Site Configuration' => Egw::link('/index.php','menuaction=admin.uiconfig.index&appname=' . $appname), - ); - display_sidebox($appname,lang('Admin'),$file); - } + // add pgp encryption menu at the end Api\Hooks::pgp_encryption_menu('mail'); - } /**