|
From: Tomas K. <to...@us...> - 2006-02-26 14:45:33
|
Update of /cvsroot/squirrelmail/squirrelmail/plugins/filters In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3530 Modified Files: filters.php setup.php Log Message: Doing include_once(SM_PATH . 'plugins/filters/filters.php') inside plugin init function breaks purpose of removing code from setup.php using simple hook setup and moving right_main_after_header hook handling to main filtering function. Index: filters.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/plugins/filters/filters.php,v retrieving revision 1.83 retrieving revision 1.84 diff -u -w -r1.83 -r1.84 --- filters.php 10 Feb 2006 23:06:50 -0000 1.83 +++ filters.php 26 Feb 2006 14:45:19 -0000 1.84 @@ -41,28 +41,6 @@ } /** - * Init Hooks - * @access private - */ -function filters_init_hooks () { - global $squirrelmail_plugin_hooks; - - if (! sqgetGlobalVar('mailbox',$mailbox,SQ_FORM)) { - $mailbox = 'INBOX'; - } - - $squirrelmail_plugin_hooks['left_main_before']['filters'] = 'start_filters_hook'; - if (isset($mailbox) && $mailbox == 'INBOX') { - $squirrelmail_plugin_hooks['right_main_after_header']['filters'] = 'start_filters_hook'; - } - $squirrelmail_plugin_hooks['optpage_register_block']['filters'] = 'filters_optpage_register_block_hook'; - $squirrelmail_plugin_hooks['special_mailbox']['filters'] = 'filters_special_mailbox'; - $squirrelmail_plugin_hooks['rename_or_delete_folder']['filters'] = 'update_for_folder_hook'; - $squirrelmail_plugin_hooks['webmail_bottom']['filters'] = 'start_filters_hook'; - $squirrelmail_plugin_hooks['folder_status']['filters'] = 'filters_folder_status'; -} - -/** * Register option blocks * @access private */ @@ -200,15 +178,25 @@ /** * Starts the filtering process + * @param array $hook_args do hook arguments. Is used to check hook name, array key = 0. * @access private */ -function start_filters() { +function start_filters($hook_args) { global $imapServerAddress, $imapPort, $imap_stream, $imapConnection, $UseSeparateImapConnection, $AllowSpamFilters, $filter_inbox_count; sqgetGlobalVar('username', $username, SQ_SESSION); sqgetGlobalVar('key', $key, SQ_COOKIE); + /** + * check hook that calls filtering. If filters are called by right_main_after_header, + * do filtering only when we are in INBOX folder. + */ + if ($hook_args[0]=='right_main_after_header' && + (sqgetGlobalVar('mailbox',$mailbox,SQ_FORM) && $mailbox!='INBOX')) { + return; + } + $filters = load_filters(); // No point running spam filters if there aren't any to run // Index: setup.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/plugins/filters/setup.php,v retrieving revision 1.43 retrieving revision 1.44 diff -u -w -r1.43 -r1.44 --- setup.php 23 Jan 2006 18:42:22 -0000 1.43 +++ setup.php 26 Feb 2006 14:45:20 -0000 1.44 @@ -15,8 +15,15 @@ * @access private */ function squirrelmail_plugin_init_filters() { - include_once(SM_PATH . 'plugins/filters/filters.php'); - filters_init_hooks (); + global $squirrelmail_plugin_hooks; + + $squirrelmail_plugin_hooks['left_main_before']['filters'] = 'start_filters_hook'; + $squirrelmail_plugin_hooks['right_main_after_header']['filters'] = 'start_filters_hook'; + $squirrelmail_plugin_hooks['optpage_register_block']['filters'] = 'filters_optpage_register_block_hook'; + $squirrelmail_plugin_hooks['special_mailbox']['filters'] = 'filters_special_mailbox'; + $squirrelmail_plugin_hooks['rename_or_delete_folder']['filters'] = 'update_for_folder_hook'; + $squirrelmail_plugin_hooks['webmail_bottom']['filters'] = 'start_filters_hook'; + $squirrelmail_plugin_hooks['folder_status']['filters'] = 'filters_folder_status'; } /** @@ -46,7 +53,7 @@ */ function start_filters_hook($args) { include_once(SM_PATH . 'plugins/filters/filters.php'); - start_filters (); + start_filters ($args); } /** |