source: trunk/expressoMail1_2/preferences.php @ 413

Revision 413, 18.3 KB checked in by rafaelraymundo, 16 years ago (diff)

Melhoria implementada, relativo a ocorrencia #314 da comunidade.
Contatos dinamicos no envio de emails de forma configuravel.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2        /**************************************************************************/
3       
4        $GLOBALS['phpgw_info']['flags'] = array(
5                'currentapp' => 'expressoMail1_2',
6                'noheader'   => True,
7                'nonavbar'   => True,
8                'enable_nextmatchs_class' => True
9        );
10
11       
12        include('../header.inc.php');
13        include('inc/class.imap_functions.inc.php');   
14        include_once("inc/fckeditor.php");
15       
16        if (!$_POST['try_saved'])
17        {
18                // Read Config and get default values;
19               
20                $GLOBALS['phpgw']->preferences->read_repository();
21               
22                if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['max_email_per_page'])
23                        $GLOBALS['phpgw']->template->set_var('option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['max_email_per_page'].'_selected','selected');
24                else
25                $GLOBALS['phpgw']->template->set_var('option_50_selected','selected');         
26
27                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_deleted_msg'])         
28                        $GLOBALS['phpgw']->template->set_var('checked_save_deleted_msg','checked');
29                else
30                        $GLOBALS['phpgw']->template->set_var('checked_save_deleted_msg','');
31
32                if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_trash_messages_after_n_days'])
33                        $GLOBALS['phpgw']->template->set_var('delete_trash_messages_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_trash_messages_after_n_days'].'_selected','selected');
34                else
35                        $GLOBALS['phpgw']->template->set_var('delete_trash_messages_option_0_selected','selected');             
36               
37                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_and_show_previous_message'])         
38                        $GLOBALS['phpgw']->template->set_var('checked_delete_and_show_previous_message','checked');
39                else
40                        $GLOBALS['phpgw']->template->set_var('checked_delete_and_show_previous_message','');
41
42                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_new_msg'])             
43                        $GLOBALS['phpgw']->template->set_var('checked_alert_new_msg','checked');
44                else
45                        $GLOBALS['phpgw']->template->set_var('checked_alert_new_msg','');
46
47                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'])
48                        $GLOBALS['phpgw']->template->set_var('checked_mainscreen_showmail','checked');
49                else
50                        $GLOBALS['phpgw']->template->set_var('checked_mainscreen_showmail','');
51
52                if (!is_numeric($_SESSION['phpgw_info']['server']['expressomail']['expressoMail_Number_of_dynamic_contacts']))
53                {                                                                               
54                        $GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','');
55                        $GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','disabled');
56                }
57                else
58                {
59                        if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts'])
60                                $GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','checked');
61                        else
62                                $GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','');
63                }
64
65                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_shortcuts'])
66                        $GLOBALS['phpgw']->template->set_var('checked_shortcuts','checked');
67                else
68                        $GLOBALS['phpgw']->template->set_var('checked_shortcuts','');
69
70                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['auto_save_draft'])
71                        $GLOBALS['phpgw']->template->set_var('checked_auto_save_draft','checked');
72                else
73                        $GLOBALS['phpgw']->template->set_var('checked_auto_save_draft','');
74
75                // Insert new expressoMail preference use_signature: defines if the signature will be automatically inserted
76                // at the e-mail body
77                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature'])
78                        $GLOBALS['phpgw']->template->set_var('checked_use_signature','checked');
79                else
80                        $GLOBALS['phpgw']->template->set_var('checked_use_signature','');
81
82                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'])
83                        $GLOBALS['phpgw']->template->set_var('text_signature',$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature']);
84                else
85                        $GLOBALS['phpgw']->template->set_var('text_signature','');
86               
87                if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature']){
88                        $GLOBALS['phpgw']->template->set_var('type_signature_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature'].'_selected','selected');
89                        $GLOBALS['phpgw']->template->set_var('type_signature_td_'.($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature'] == 'html' ? 'text' : 'html'),'display:none');
90                }
91                else{
92                        $GLOBALS['phpgw']->template->set_var('type_signature_option_text_selected','selected');
93                        $GLOBALS['phpgw']->template->set_var('type_signature_td_html','display:none');
94                }
95
96                // BEGIN FCKEDITOR
97                $oFCKeditor = new FCKeditor('html_signature') ;
98                $oFCKeditor->BasePath   = 'js/fckeditor/';
99                $oFCKeditor->ToolbarSet = 'ExpressoLivre';
100                if(is_array($GLOBALS['phpgw_info']['user']['preferences']['expressoMail'])) {
101                        $oFCKeditor->Value      = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'];
102                }
103                // First Time: The user has no preferences. If the template file exists, then it loads a default signature.
104                // See signature_example.tpl
105                elseif(file_exists($GLOBALS['phpgw']->template->root.'/signature.tpl')){
106                        $filein = fopen($GLOBALS['phpgw']->template->root.'/signature.tpl',"r");
107                        while (!feof ($filein))
108                                $oFCKeditor->Value .= fgets($filein, 1024);
109                }
110                $oFCKeditor->Value = str_replace("{full_name}",$phpgw_info['user']['fullname'],$oFCKeditor->Value);
111                $oFCKeditor->Value = str_replace("{first_name}",$phpgw_info['user']['firstname'],$oFCKeditor->Value);
112               
113                $GLOBALS['phpgw']->template->set_var('rtf_signature',$oFCKeditor->Create());
114                $GLOBALS['phpgw']->template->set_var('text_signature',strip_tags($oFCKeditor->Value));
115                // END FCKEDITOR
116                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'])
117                        $GLOBALS['phpgw']->template->set_var('checked_menu','checked');
118                else
119                        $GLOBALS['phpgw']->template->set_var('checked_menu','');
120
121                if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'])
122                        $GLOBALS['phpgw']->template->set_var('line_height_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'].'_selected','selected');
123                else
124                        $GLOBALS['phpgw']->template->set_var('line_height_option_20_selected','selected');
125               
126                if($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'])
127                        $GLOBALS['phpgw']->template->set_var('font_size_option_'.$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'].'_selected','selected');
128                else
129                        $GLOBALS['phpgw']->template->set_var('font_size_option_11_selected','selected');
130        }
131        else //Save Config
132        {
133                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['max_email_per_page'])
134                        $GLOBALS['phpgw']->preferences->change('expressoMail','max_email_per_page',$_POST['max_emails_per_page']);
135                else
136                        $GLOBALS['phpgw']->preferences->add('expressoMail','max_email_per_page',$_POST['max_emails_per_page']);
137               
138                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_deleted_msg'])
139                        $GLOBALS['phpgw']->preferences->change('expressoMail','save_deleted_msg',$_POST['save_deleted_msg']);
140                else
141                        $GLOBALS['phpgw']->preferences->add('expressoMail','save_deleted_msg',$_POST['save_deleted_msg']);
142
143                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_trash_messages_after_n_days'])
144                        $GLOBALS['phpgw']->preferences->change('expressoMail','delete_trash_messages_after_n_days',$_POST['delete_trash_messages_after_n_days']);
145                else
146                        $GLOBALS['phpgw']->preferences->add('expressoMail','delete_trash_messages_after_n_days',$_POST['delete_trash_messages_after_n_days']);
147
148                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['delete_and_show_previous_message'])
149                        $GLOBALS['phpgw']->preferences->change('expressoMail','delete_and_show_previous_message',$_POST['delete_and_show_previous_message']);
150                else
151                        $GLOBALS['phpgw']->preferences->add('expressoMail','delete_and_show_previous_message',$_POST['delete_and_show_previous_message']);
152               
153                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['alert_new_msg'])
154                        $GLOBALS['phpgw']->preferences->change('expressoMail','alert_new_msg',$_POST['alert_new_msg']);
155                else
156                        $GLOBALS['phpgw']->preferences->add('expressoMail','alert_new_msg',$_POST['alert_new_msg']);
157
158                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'])
159                        $GLOBALS['phpgw']->preferences->change('expressoMail','mainscreen_showmail',$_POST['mainscreen_showmail']);
160                else
161                        $GLOBALS['phpgw']->preferences->add('expressoMail','mainscreen_showmail',$_POST['mainscreen_showmail']);
162
163                if (!is_numeric($_SESSION['phpgw_info']['server']['expressomail']['expressoMail_Number_of_dynamic_contacts']))
164                {                                                                               
165                        $GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','');
166                        $GLOBALS['phpgw']->template->set_var('checked_dynamic_contacts','disabled');
167                }
168                else
169                {
170                        if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_dynamic_contacts'])
171                        {
172                                $GLOBALS['phpgw']->preferences->change('expressoMail','use_dynamic_contacts',$_POST['use_dynamic_contacts']);
173                                if($_POST['use_dynamic_contacts'] == '')
174                                {
175                                        $contacts = CreateObject('expressoMail1_2.dynamic_contacts');
176                                        $contacts->delete_dynamic_contacts();
177                                }
178                        }
179                        else
180                        $GLOBALS['phpgw']->preferences->add('expressoMail','use_dynamic_contacts',$_POST['use_dynamic_contacts']);
181                }
182
183                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_shortcuts'])
184                        $GLOBALS['phpgw']->preferences->change('expressoMail','use_shortcuts',$_POST['use_shortcuts']);
185                else
186                        $GLOBALS['phpgw']->preferences->add('expressoMail','use_shortcuts',$_POST['use_shortcuts']);
187                       
188                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['auto_save_draft'])
189                        $GLOBALS['phpgw']->preferences->change('expressoMail','auto_save_draft',$_POST['auto_save_draft']);
190                else
191                        $GLOBALS['phpgw']->preferences->add('expressoMail','auto_save_draft',$_POST['auto_save_draft']);       
192
193                // Insert new expressoMail preference use_signature: defines if the signature will be automatically inserted
194                // at the e-mail body
195                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature'])
196                        $GLOBALS['phpgw']->preferences->change('expressoMail','use_signature',$_POST['use_signature']);
197                else
198                        $GLOBALS['phpgw']->preferences->add('expressoMail','use_signature',$_POST['use_signature']);
199
200                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'])
201                        $GLOBALS['phpgw']->preferences->change('expressoMail','signature',$_POST['signature']);
202                else
203                        $GLOBALS['phpgw']->preferences->add('expressoMail','signature',$_POST['signature']);
204
205                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['type_signature'])
206                        $GLOBALS['phpgw']->preferences->change('expressoMail','type_signature',$_POST['type_signature']);
207                else
208                        $GLOBALS['phpgw']->preferences->add('expressoMail','type_signature',$_POST['type_signature']);
209
210                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'])
211                        $GLOBALS['phpgw']->preferences->change('expressoMail','hide_folders',$_POST['check_menu']);
212                else
213                        $GLOBALS['phpgw']->preferences->add('expressoMail','hide_folders',$_POST['check_menu']);
214                       
215                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'])
216                        $GLOBALS['phpgw']->preferences->change('expressoMail','save_in_folder',$_POST['save_in_folder']);
217                else
218                        $GLOBALS['phpgw']->preferences->add('expressoMail','save_in_folder',$_POST['save_in_folder']);
219
220                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'])
221                        $GLOBALS['phpgw']->preferences->change('expressoMail','line_height',$_POST['line_height']);
222                else
223                        $GLOBALS['phpgw']->preferences->add('expressoMail','line_height',$_POST['line_height']);
224               
225                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['font_size'])
226                        $GLOBALS['phpgw']->preferences->change('expressoMail','font_size',$_POST['font_size']);
227                else
228                        $GLOBALS['phpgw']->preferences->add('expressoMail','font_size',$_POST['font_size']);           
229
230                $GLOBALS['phpgw']->preferences->save_repository();
231               
232                // Back to preferences.
233                $url = ($GLOBALS['phpgw']->link('/'.'expressoMail1_2'.'/index.php'));
234                $GLOBALS['phpgw']->redirect($url);
235        }
236       
237        $GLOBALS['phpgw']->common->phpgw_header();
238        print parse_navbar();
239
240        $GLOBALS['phpgw']->template->set_file(array(
241                'expressoMail_prefs' => 'preferences.tpl'
242        ));
243
244        $GLOBALS['phpgw']->template->set_var('lang_config_expressoMail',lang('Config for ExpressoMail'));
245        $GLOBALS['phpgw']->template->set_var('lang_max_emails_per_page',lang('What is the maximum number of messages per page?'));
246        $GLOBALS['phpgw']->template->set_var('lang_save_deleted_msg',lang('Save deleted messages in trash folder?'));
247        $GLOBALS['phpgw']->template->set_var('lang_delete_trash_messages_after_n_days',lang('Delete trash messages after how many days?'));
248        $GLOBALS['phpgw']->template->set_var('lang_delete_and_show_previous_message',lang('Show previous message, after delete actual message?'));
249        $GLOBALS['phpgw']->template->set_var('lang_alert_new_msg',lang('Do you wanna receive an alert for new messages?'));
250        $GLOBALS['phpgw']->template->set_var('lang_hook_home',lang('Show default view on main screen?'));
251        $GLOBALS['phpgw']->template->set_var('lang_save_in_folder',lang('Save sent messages in folder'));
252        $GLOBALS['phpgw']->template->set_var('lang_hide_menu',lang('Hide menu folders?'));
253        $GLOBALS['phpgw']->template->set_var('lang_line_height',lang('What is the height of the lines in the list of messages?'));
254        $GLOBALS['phpgw']->template->set_var('lang_font_size',lang('What the font size in the list of messages?'));
255        $GLOBALS['phpgw']->template->set_var('lang_use_dynamic_contacts',lang('Use dynamic contacts?'));
256        $GLOBALS['phpgw']->template->set_var('lang_use_shortcuts',lang('Use shortcuts?'));
257        $GLOBALS['phpgw']->template->set_var('lang_auto_save_draft',lang('Auto save draft'));
258        $GLOBALS['phpgw']->template->set_var('lang_signature',lang('Signature'));
259        $GLOBALS['phpgw']->template->set_var('lang_none',lang('None'));
260        $GLOBALS['phpgw']->template->set_var('one_day',lang('1 Day'));
261        $GLOBALS['phpgw']->template->set_var('two_days',lang('2 Days'));
262        $GLOBALS['phpgw']->template->set_var('three_days',lang('3 Days'));
263        $GLOBALS['phpgw']->template->set_var('four_days',lang('4 Days'));
264        $GLOBALS['phpgw']->template->set_var('five_days',lang('5 Day'));
265        $GLOBALS['phpgw']->template->set_var('small',lang('Small'));
266        $GLOBALS['phpgw']->template->set_var('medium',lang('Medium'));
267        $GLOBALS['phpgw']->template->set_var('normal',lang('Normal'));
268        $GLOBALS['phpgw']->template->set_var('simple_text',lang('Simple Text'));
269        $GLOBALS['phpgw']->template->set_var('html_text',lang('Rich Text'));
270        $GLOBALS['phpgw']->template->set_var('lang_config_signature',lang('Signature Configuration'));
271        $GLOBALS['phpgw']->template->set_var('lang_type_signature',lang('Signature type'));
272        $GLOBALS['phpgw']->template->set_var('big',lang('Big'));
273        $GLOBALS['phpgw']->template->set_var('lang_use_signature',lang('Insert signature automatically in new messages?'));
274
275        $boemailadmin   = CreateObject('emailadmin.bo');
276        $emailadmin_profile = $boemailadmin->getProfileList();
277        $_SESSION['phpgw_info']['expressomail']['email_server'] = $boemailadmin->getProfile($emailadmin_profile[0]['profileID']);
278        $_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
279        $e_server = $_SESSION['phpgw_info']['expressomail']['email_server'];
280        $imap = CreateObject('expressoMail1_2.imap_functions');
281        $save_in_folder_selected = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'];     
282        // Load Special Folders (Sent, Trash, Draft, Spam) from EmailAdmin (if exists, else get_lang)
283        $specialFolders = array ("Trash" => lang("Trash"), "Drafts" => lang("Drafts"), "Spam" => lang("Spam"), "Sent" => lang("Sent"));
284        foreach ($specialFolders as $key => $value){
285                if($e_server['imapDefault'.$key.'Folder'])
286                        $specialFolders[$key] = $e_server['imapDefault'.$key.'Folder'];
287        }       
288        // First access on ExpressoMail, load default preferences...
289        if(!$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']) {
290                $GLOBALS['phpgw']->template->set_var('checked_save_deleted_msg','checked');
291                $GLOBALS['phpgw']->template->set_var('checked_delete_and_show_previous_message','checked');
292                $GLOBALS['phpgw']->template->set_var('checked_alert_new_msg','checked');
293                $GLOBALS['phpgw']->template->set_var('checked_use_signature','checked');
294                $GLOBALS['phpgw']->template->set_var('checked_mainscreen_showmail','checked');
295                $save_in_folder_selected = "INBOX".$e_server['imapDelimiter'].$specialFolders["Sent"];
296        }
297        $o_folders = "<option value='-1' ".(!$save_in_folder_selected ? 'selected' : '' ).">".lang("Select on send")."</option>";       
298       
299        foreach($imap -> get_folders_list() as $id => $folder){
300                // Ignores numeric indexes and shared folders....
301                if(!is_numeric($id) || (strstr($folder['folder_id'],"user".$e_server['imapDelimiter'])))
302                        continue;
303                // Translate INBOX (root folder)
304                elseif (strtolower($folder['folder_name']) == "inbox")
305                        $folder['folder_name'] = lang("Inbox");
306                // Translate Special Folders
307                elseif (($keyFolder = array_search($folder['folder_name'], $specialFolders)) !== false)
308                        $folder['folder_name'] = lang($keyFolder);
309                // Identation for subfolders
310                $folder_id = explode($e_server['imapDelimiter'],$folder['folder_id']);         
311                $level = count($folder_id);
312                $ident = '';
313                for($i = 2; $level > 2 && $i < $level;$i++)
314                        $ident .= ' - ';
315                $o_folders.= "<option value='".$folder['folder_id']."' ".($save_in_folder_selected == $folder['folder_id'] ? 'selected' : '' ).">".$ident.$folder['folder_name']."</option>";                   
316        }
317
318        $GLOBALS['phpgw']->template->set_var('value_save_in_folder',$o_folders);
319        $GLOBALS['phpgw']->template->set_var('lang_save',lang('Save'));
320        $GLOBALS['phpgw']->template->set_var('lang_cancel',lang('Cancel'));
321       
322        $GLOBALS['phpgw']->template->set_var('save_action',$GLOBALS['phpgw']->link('/'.'expressoMail1_2'.'/preferences.php'));
323        $GLOBALS['phpgw']->template->set_var('th_bg',$GLOBALS['phpgw_info']["theme"][th_bg]);
324
325        $tr_color = $GLOBALS['phpgw']->nextmatchs->alternate_row_color($tr_color);
326        $GLOBALS['phpgw']->template->set_var('tr_color1',$GLOBALS['phpgw_info']['theme']['row_on']);
327        $GLOBALS['phpgw']->template->set_var('tr_color2',$GLOBALS['phpgw_info']['theme']['row_off']);
328
329        $GLOBALS['phpgw']->template->parse('out','expressoMail_prefs',True);
330        $GLOBALS['phpgw']->template->p('out');
331        // Com o Módulo do IM habilitado, ocorre um erro no IE
332        //$GLOBALS['phpgw']->common->phpgw_footer();
333?>
Note: See TracBrowser for help on using the repository browser.