From 348bd627109cf3dc66dafa24c31cb56f9a2c8b05 Mon Sep 17 00:00:00 2001 From: tokul Date: Sun, 26 Feb 2006 14:45:20 +0000 Subject: [PATCH] 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. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@10837 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- plugins/filters/filters.php | 34 +++++++++++----------------------- plugins/filters/setup.php | 13 ++++++++++--- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/plugins/filters/filters.php b/plugins/filters/filters.php index 7924e5e7..43ad4f32 100644 --- a/plugins/filters/filters.php +++ b/plugins/filters/filters.php @@ -40,28 +40,6 @@ if (file_exists(SM_PATH . 'config/filters_config.php')) { include_once (SM_PATH . 'plugins/filters/config.php'); } -/** - * 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 @@ function filters_bulkquery($filters, $IPs) { /** * 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 // diff --git a/plugins/filters/setup.php b/plugins/filters/setup.php index 1dcd1e92..47ab5f5f 100644 --- a/plugins/filters/setup.php +++ b/plugins/filters/setup.php @@ -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 filters_optpage_register_block_hook() { */ function start_filters_hook($args) { include_once(SM_PATH . 'plugins/filters/filters.php'); - start_filters (); + start_filters ($args); } /** -- 2.25.1