source: trunk/expressoMail1_2/preferences.php @ 389

Revision 389, 16.9 KB checked in by niltonneto, 16 years ago (diff)

Ver Tickets no Trac #286 e #287.
Inclusão de template de assinatura padrão.
Assinatura também disponível em formato de texto rico.
Inclusão da biblioteca FCKEditor.

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