@@ -104,49 +104,22 @@ function get_classic_filter_modal_content()
104104if (!hm_exists ('get_mailbox_filters ' )) {
105105 function get_mailbox_filters ($ mailbox , $ site_config , $ user_config )
106106 {
107+ $ factory = get_sieve_client_factory ($ site_config );
107108 try {
108- // Initialize SieveService with proper cache and server config
109- $ servers = [];
110- foreach ($ user_config ->get ('imap_servers ' ) as $ id => $ server ) {
111- if (!empty ($ server ['sieve_config_host ' ])) {
112- $ servers [$ id ] = $ server ;
113- }
114- }
115-
116- // Get cache instance safely
117- $ cacheInstance = null ;
118- if ($ site_config && method_exists ($ site_config , 'get ' )) {
119- $ cacheInstance = $ site_config ->get ('hm_cache_instance ' );
120- }
121-
122- // Only initialize if we have a valid cache instance
123- if ($ cacheInstance && is_object ($ cacheInstance )) {
124- SieveService::init ($ cacheInstance , $ servers );
125-
126- // Get scripts using SieveService
127- $ scripts = SieveService::listScripts ($ mailbox ['id ' ]);
128- } else {
129- // Fallback to direct client connection if no cache available
130- $ factory = get_sieve_client_factory ($ site_config );
131- $ client = $ factory ->init ($ user_config , $ mailbox , in_array (mb_strtolower ('nux ' ), $ site_config ->get_modules (true ), true ));
132- $ scripts = $ client ->listScripts ();
133- }
134-
135- // Filter only cypht scripts
136- $ cypht_scripts = [];
137- foreach ($ scripts as $ script ) {
109+ $ client = $ factory ->init ($ user_config , $ mailbox , in_array (mb_strtolower ('nux ' ), $ site_config ->get_modules (true ), true ));
110+ $ scripts = [];
111+ foreach ($ client ->listScripts () as $ script ) {
138112 if (mb_strstr ($ script , 'cypht ' )) {
139- $ cypht_scripts [] = $ script ;
113+ $ scripts [] = $ script ;
140114 }
141115 }
142-
143116 } catch (Exception $ e ) {
144117 Hm_Msgs::add ("Sieve: {$ e ->getMessage ()}" , "danger " );
145118 return ['count ' => 0 , 'list ' => '' ];
146119 }
147120
148121 $ scripts_sorted = [];
149- foreach ($ cypht_scripts as $ script_name ) {
122+ foreach ($ scripts as $ script_name ) {
150123 $ exp_name = explode ('- ' , $ script_name );
151124 if (end ($ exp_name ) == 'cypht ' ) {
152125 $ base_class = 'script ' ;
@@ -198,7 +171,7 @@ function get_mailbox_filters($mailbox, $site_config, $user_config)
198171 </tr>
199172 ' ;
200173 }
201- return ['count ' => count ($ cypht_scripts ), 'list ' => $ script_list ];
174+ return ['count ' => count ($ scripts ), 'list ' => $ script_list ];
202175 }
203176}
204177
@@ -642,22 +615,18 @@ function initialize_sieve_client_factory($site_config, $user_config, $imapServer
642615if (!hm_exists ('get_all_scripts ' )) {
643616 function get_all_scripts ($ imapServer , $ load_current = true , $ return_only = null ) {
644617 try {
645- $ client = SieveService::getConnection ($ imapServer );
646- if (!is_null ($ client )){
647- $ scripts = $ client ->listScripts ();
648- if (!is_array ($ scripts ) || array_search ('blocked_senders ' , $ scripts , true ) === false ) {
649- return '' ;
650- }
651- $ current_script = '' ;
652- if ($ load_current ) {
653- $ current_script = SieveService::getScript ($ imapServer , 'blocked_senders ' );
654- }
655- if ($ return_only === 'scripts ' ) return $ scripts ;
656- if ($ return_only === 'current_script ' ) return $ current_script ;
657-
658- return [$ scripts , $ current_script ];
618+ $ scripts = SieveService::listScripts ($ imapServer );
619+ if (!is_array ($ scripts ) || array_search ('blocked_senders ' , $ scripts , true ) === false ) {
620+ return '' ;
659621 }
660- return null ;
622+ $ current_script = '' ;
623+ if ($ load_current ) {
624+ $ current_script = SieveService::getScript ($ imapServer , 'blocked_senders ' );
625+ }
626+ if ($ return_only === 'scripts ' ) return $ scripts ;
627+ if ($ return_only === 'current_script ' ) return $ current_script ;
628+
629+ return [$ scripts , $ current_script ];
661630 } catch (Exception $ e ) {
662631 Hm_Msgs::add ("Sieve: {$ e ->getMessage ()}" , "danger " );
663632 return null ;
0 commit comments