source: trunk/expressoMail1_2/inc/hook_settings.inc.php @ 4726

Revision 4726, 20.3 KB checked in by airton, 13 years ago (diff)

Ticket #2118 - Opcao de troca do delimitador-separador das pastas do IMAP nao funciona a contento

  • Property svn:executable set to *
Line 
1<?php
2if(!isset($GLOBALS['phpgw_info'])){
3        $GLOBALS['phpgw_info']['flags'] = array(
4                'currentapp' => 'expressoMail1_2',
5                'nonavbar'   => true,
6                'noheader'   => true
7        );
8}
9require_once '../header.inc.php';
10
11        /**************************************************************************\
12        * eGroupWare - ExpressoMail Preferences                                    *
13        * http://www.expressolivre.org                                             *   
14        * Modified by Alexandre Felipe Muller de Souza <amuller@celepar.pr.gov.br> *
15        * --------------------------------------------                             *
16        *  This program is free software; you can redistribute it and/or modify it *
17        *  under the terms of the GNU General Public License as published by the   *
18        *  Free Software Foundation; either version 2 of the License, or (at your  *
19        *  option) any later version.                                              *
20        \**************************************************************************/
21include_once("fckeditor.php");
22include_once("class.functions.inc.php");
23$type = isset($_GET['type']) ? $_GET['type']:$GLOBALS['type']; // FIX ME
24
25//if ($type == 'user' || $type == ''){
26create_script('function exibir_ocultar()
27{
28    var type = ("'.$type.'" == "") ? "user" : "'.$type.'";
29    var use_signature_digital_cripto = null;
30
31    if (document.all)
32    {
33        // is_ie
34        use_signature_digital_cripto = document.getElementsByName(type+"[use_signature_digital_cripto]")[1];
35    }
36    else
37    {
38        // not_ie
39        use_signature_digital_cripto = document.getElementsByName(type+"[use_signature_digital_cripto]")[0];
40    }
41
42    var default_signature_digital_cripto = "'.$GLOBALS['phpgw_info']['default']['preferences']['expressoMail']['use_signature_digital_cripto'].'";
43
44    if (use_signature_digital_cripto)
45    {
46        var element_signature_digital = document.getElementById(type+"[use_signature_digital]");
47        var element_signature_cripto = document.getElementById(type+"[use_signature_cripto]");
48
49        switch (use_signature_digital_cripto[use_signature_digital_cripto.selectedIndex].value){
50
51            case "1":
52                element_signature_digital.style.display="";
53                element_signature_cripto.style.display="";
54                break;
55            case "0":
56                element_signature_digital.style.display="none";
57                element_signature_cripto.style.display="none";
58                break;
59            case "":
60                if (default_signature_digital_cripto){
61                    element_signature_digital.style.display="";
62                    element_signature_cripto.style.display="";
63                 }
64                 else
65                 {
66                    element_signature_digital.style.display="none";
67                    element_signature_cripto.style.display="none";
68                 }
69
70        }
71
72    }
73
74}');
75//}
76$default = false;
77create_check_box('Do you want to show common name instead of UID?','uid2cn',$default,
78        'Do you want to show common name instead of UID?');
79create_check_box('Do you want to automatically display the message header?','show_head_msg_full',$default,'');
80$default = array(
81        '25'    => '25',
82        '50'    => '50',
83        '75'    => '75',
84        '100'   => '100'
85);
86
87create_select_box('What is the maximum number of messages per page?','max_email_per_page',$default,'This is the number of messages shown in your mailbox per page');
88
89create_check_box('View the user name in the header of the messages printed?', 'show_name_print_messages', 'Displays the user name in the header print email');
90
91//$default = 0;
92create_check_box('Preview message text within subject column','preview_msg_subject','this exhibits a sample of message within the message subject column');
93
94//$default = 0;
95create_check_box('Preview message text within a tool-tip box','preview_msg_tip','this exhibits a sample of message within a tool-tip box');
96
97create_check_box('View extended information about users','extended_info','This exhibits employeenumber and ou from LDAP in searchs');
98
99create_check_box('Save deleted messages in trash folder?','save_deleted_msg','When delete message, send it automatically to trash folder');
100$default = array(
101        '1'    => lang('1 day'),
102        '2'    => lang('2 days'),
103        '3'    => lang('3 days'),
104        '4'   => lang('4 days'),
105        '5'   => lang('5 days')
106);
107
108$arquived_messages = array(true => lang("Copy"), false => lang("Move"));
109
110create_select_box('Delete trash messages after how many days?','delete_trash_messages_after_n_days',$default,'Delete automatically the messages in trash folder in how many days');
111create_check_box('Would you like to use local messages?','use_local_messages','Enabling this options you will be able to store messages in your local computer');
112create_select_box('Desired action to archive messages to local folders','keep_archived_messages',$arquived_messages,'After store email in your local computer delete it from server');
113create_check_box('Automaticaly create Default local folders?','auto_create_local','Enable this option if you want to automaticaly create the Inbox, Draft, Trash and Sent folders');
114create_check_box('Show previous message, after delete actual message?','delete_and_show_previous_message','Enable this option if you want to read the next message everytime you delete a message');
115create_check_box('Do you wanna receive an alert for new messages?','alert_new_msg','Everytime you receive new messages you will be informed');
116create_check_box('Show default view on main screen?','mainscreen_showmail','Show unread messages in your home page');
117create_check_box('Do you want to use remove attachments function?','remove_attachments_function','It allow you to remove attachments from messages');
118create_check_box('Do you want to use important flag in email editor?','use_important_flag','It allow you to send emails with important flag, but you can receive unwanted messages with important flag');
119create_check_box('Do you want to use SpellChecker in email editor?','use_SpellChecker','It allow you to check the spelling of your emails');
120//Use user folders from email
121
122require_once('class.imap_functions.inc.php');
123$boemailadmin = CreateObject('emailadmin.bo');
124$emailadmin_profile = $boemailadmin->getProfileList();
125$_SESSION['phpgw_info']['expressomail']['email_server'] = $boemailadmin->getProfile($emailadmin_profile[0]['profileID']);
126$_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
127$e_server = $_SESSION['phpgw_info']['expressomail']['email_server'];
128$imap = CreateObject('expressoMail1_2.imap_functions');
129
130if ($type != "" && $type != "user"){
131       
132        $trash     = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'];
133        $drafts    = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'];
134        $spam      = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder'];
135        $sent      = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'];
136        $delimiter = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter'];
137        $default = Array(
138                'INBOX' =>      lang('INBOX'),
139                'INBOX' . $imap->imap_delimiter . $drafts => lang($drafts),
140                'INBOX' . $imap->imap_delimiter . $spam => lang($spam),
141                'INBOX' . $imap->imap_delimiter . $trash => lang($trash), 
142                'INBOX' . $imap->imap_delimiter . $sent => lang($sent)
143        );
144}
145else
146{
147$save_in_folder_selected = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'];
148
149// Load Special Folders (Sent, Trash, Draft, Spam) from EmailAdmin (if exists, else get_lang)
150$specialFolders = array ("Trash" => lang("Trash"), "Drafts" => lang("Drafts"), "Spam" => lang("Spam"), "Sent" => lang("Sent"));
151
152foreach ($specialFolders as $key => $value){
153        if($e_server['imapDefault'.$key.'Folder'])
154                $specialFolders[$key] = $e_server['imapDefault'.$key.'Folder'];
155}
156unset($default);
157$default[-1] = lang('Select on send');
158       
159        foreach($imap -> get_folders_list(array('noSharedFolders' => true)) as $id => $folder){
160                if(!is_numeric($id))
161                        continue;
162                else{
163                        // Translate INBOX (root folder)
164                        if (strtolower($folder['folder_name']) == "inbox")
165                                $folder['folder_name'] = lang("Inbox");
166                        // Translate Special Folders
167                        elseif (($keyFolder = array_search($folder['folder_name'], $specialFolders)) !== false)
168                                $folder['folder_name'] = lang($keyFolder);
169                        // Identation for subfolders
170                        $folder_id = explode($e_server['imapDelimiter'],$folder['folder_id']);       
171                        $level = count($folder_id);
172                        $ident = '';
173                        for($i = 2; $level > 2 && $i < $level;$i++)
174                                $ident .= ' - ';
175                       
176                        $default[$folder['folder_id']] = $ident.$folder['folder_name'];
177                }               
178        }
179
180}
181create_select_box('Save sent messages in folder','save_in_folder',$default,'Save automatically sent messages in selected folder');
182create_check_box('Show TO: in place of FROM: only in Automatic SEND folder','from_to_sent','Show TO: in place of FROM: only in Automatic SEND folder');
183
184
185create_check_box('Hide menu folders?','hide_folders','You can use it if your screen does not have good resolution');
186
187
188$default =  array(
189    '50'    => '50',
190    '100'   => '100',
191    '150'   => '150',
192    '200'   => '200',
193    '300'   => '300',
194    '400'   => '400',
195    '65536' => lang('unlimited')
196);
197
198create_select_box('What is the maximum number of results in an e-mail search?','search_result_number',$default,'');
199
200$default =  array(
201    '1' => lang('unlimited'),
202    '2'     => '2',
203    '3'     => '3',
204    '4'     => '4',
205    '5'     => '5'
206);
207
208create_select_box('What is the minimum number of characters in searching contacts?','search_characters_number',$default,'what is the minimum number of characters in searching contacts');
209
210        $default = array(
211                '20' => lang('normal'),
212                '30' => lang('medium'),
213                '40' => lang('big')
214        );
215
216
217create_select_box('What is the height of the lines in the list of messages?','line_height',$default,'');
218create_check_box('Increases th maximum size of show messages?','max_msg_size','Increases the maximum size of show emails from 100kb to 1mb');
219create_check_box('Use dynamic contacts?','use_dynamic_contacts','Store your\'s most used contacts');
220create_check_box('Use shortcuts?','use_shortcuts','n key (Open new message)<br>ESC key (Close tab)<br>i key (print)<br>e key (forward)<br>r key (reply)<br>DELETE key (delete the current message)<br>Ctrl + up (go to previous message)<br>Ctrl + down (go to next message)<br>Shift + up or down (select multiple messages)<br>F9  key (search at catalog)<br>');
221create_check_box('Auto save draft','auto_save_draft','When you are away from computer it saves automatically the message you are writing');
222create_check_box('Send messages with return recipient option by default','return_recipient_deafault','With this option every new email will get the return recipient option marked');
223
224unset($default);
225$functions = new functions();
226$zones = $functions->getTimezones();
227$default = array(sprintf("%s", array_search('America/Sao_Paulo', $zones)) => 'America/Sao_Paulo');
228create_select_box('What is your timezone?', 'timezone', $zones, 'The Timezone you\'re in.', $default);
229
230$default =  array(
231    '1' => lang('contacts'),
232    '2' => lang('email')
233);
234
235create_select_box('Where should the quick search be performed by default?','quick_search_default',$default,'It is where the keyword should be searched when the user executes a quick search.');
236
237$default = array(
238        '65536' => lang('unlimited'),
239        '640' => '640',
240        '768' => '768',
241        '800' => '800',
242        '1024' => '1024',
243        '1080' => '1080'
244);
245
246create_select_box('What is the maximum size of embedded images?','image_size',$default,'When user send an email with image in body message, it changes the size');
247
248if($GLOBALS['phpgw_info']['server']['use_assinar_criptografar'])
249{
250    create_check_box('Enable digitally sign/cipher the message?','use_signature_digital_cripto','','',True,'onchange="javascript:exibir_ocultar();"');
251    if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature_digital_cripto'])
252    {
253        create_check_box('Always sign message digitally?','use_signature_digital','');
254        create_check_box('Always cipher message digitally?','use_signature_cripto','');
255    }
256    else
257    {
258        create_check_box('Always sign message digitally?','use_signature_digital','','',True,'',False);
259        create_check_box('Always cipher message digitally?','use_signature_cripto','','',True,'',False);
260    }
261}
262
263$default = array(
264        'text' => lang('simple text'),
265        'html' => lang('rich text')
266);
267create_check_box('Auto close the first tab on reaching the maximum number of tabs?','auto_close_first_tab','');
268create_check_box('Insert signature automatically in new messages?','use_signature','');
269create_select_box('Signature Type','type_signature',$default,'','','','onchange="javascript:changeType(this.value);" onload="javascript:alert(this.value);"');
270
271if ($type == 'user' || $type == ''){
272        $oFCKeditor = new FCKeditor('html_signature');
273        $oFCKeditor->BasePath   = '../expressoMail1_2/js/fckeditor/';
274        $oFCKeditor->ToolbarSet = 'ExpressoLivre';
275
276        $vars = $GLOBALS['phpgw']->preferences->user[$appname];
277
278        create_html_code("signature","<div id='text_signature'>
279                <textarea rows='5' cols='50' id='user_signature' name='user[signature]'>","</textarea></div>
280                <div style='display:none;' id='html_signature'>".$oFCKeditor->Create()."</div>
281                <script language='javascript'>
282//document.getElementById('user_signature').value  = '".$vars['signature']."';
283function changeType(value){
284        var html_signature = FCKeditorAPI.GetInstance(\"html_signature\");
285        value=value.replace('d','');
286        if(value == 'text'){
287                document.getElementById('user_signature').value = html_signature.GetHTML();
288                document.getElementById(\"text_signature\").style.display = '';
289                document.getElementById(\"html_signature\").style.display = 'none';
290        }
291        else if(value == 'html'){
292                html_signature.SetHTML(document.getElementById('user_signature').value);
293                document.getElementById(\"text_signature\").style.display = 'none';
294                document.getElementById(\"html_signature\").style.display  = '';
295        }
296}
297function get_html_translation_table(table, quote_style) {
298    // http://kevin.vanzonneveld.net
299    var entities = {}, hash_map = {}, decimal = 0, symbol = '';
300    var constMappingTable = {}, constMappingQuoteStyle = {};
301    var useTable = {}, useQuoteStyle = {};
302    // Translate arguments
303    constMappingTable[0]      = 'HTML_SPECIALCHARS';
304    constMappingTable[1]      = 'HTML_ENTITIES';
305    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
306    constMappingQuoteStyle[2] = 'ENT_COMPAT';
307    constMappingQuoteStyle[3] = 'ENT_QUOTES';
308 
309    useTable       = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
310    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';
311 
312    if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
313        throw new Error(\"Table: \"+useTable+' not supported');
314        // return false;
315    }
316 
317    entities['38'] = '&amp;';
318    if (useTable === 'HTML_ENTITIES') {
319        entities['160'] = '&nbsp;';
320        entities['161'] = '&iexcl;';
321        entities['162'] = '&cent;';
322        entities['163'] = '&pound;';
323        entities['164'] = '&curren;';
324        entities['165'] = '&yen;';
325        entities['166'] = '&brvbar;';
326        entities['167'] = '&sect;';
327        entities['168'] = '&uml;';
328        entities['169'] = '&copy;';
329        entities['170'] = '&ordf;';
330        entities['171'] = '&laquo;';
331        entities['172'] = '&not;';
332        entities['173'] = '&shy;';
333        entities['174'] = '&reg;';
334        entities['175'] = '&macr;';
335        entities['176'] = '&deg;';
336        entities['177'] = '&plusmn;';
337        entities['178'] = '&sup2;';
338        entities['179'] = '&sup3;';
339        entities['180'] = '&acute;';
340        entities['181'] = '&micro;';
341        entities['182'] = '&para;';
342        entities['183'] = '&middot;';
343        entities['184'] = '&cedil;';
344        entities['185'] = '&sup1;';
345        entities['186'] = '&ordm;';
346        entities['187'] = '&raquo;';
347        entities['188'] = '&frac14;';
348        entities['189'] = '&frac12;';
349        entities['190'] = '&frac34;';
350        entities['191'] = '&iquest;';
351        entities['192'] = '&Agrave;';
352        entities['193'] = '&Aacute;';
353        entities['194'] = '&Acirc;';
354        entities['195'] = '&Atilde;';
355        entities['196'] = '&Auml;';
356        entities['197'] = '&Aring;';
357        entities['198'] = '&AElig;';
358        entities['199'] = '&Ccedil;';
359        entities['200'] = '&Egrave;';
360        entities['201'] = '&Eacute;';
361        entities['202'] = '&Ecirc;';
362        entities['203'] = '&Euml;';
363        entities['204'] = '&Igrave;';
364        entities['205'] = '&Iacute;';
365        entities['206'] = '&Icirc;';
366        entities['207'] = '&Iuml;';
367        entities['208'] = '&ETH;';
368        entities['209'] = '&Ntilde;';
369        entities['210'] = '&Ograve;';
370        entities['211'] = '&Oacute;';
371        entities['212'] = '&Ocirc;';
372        entities['213'] = '&Otilde;';
373        entities['214'] = '&Ouml;';
374        entities['215'] = '&times;';
375        entities['216'] = '&Oslash;';
376        entities['217'] = '&Ugrave;';
377        entities['218'] = '&Uacute;';
378        entities['219'] = '&Ucirc;';
379        entities['220'] = '&Uuml;';
380        entities['221'] = '&Yacute;';
381        entities['222'] = '&THORN;';
382        entities['223'] = '&szlig;';
383        entities['224'] = '&agrave;';
384        entities['225'] = '&aacute;';
385        entities['226'] = '&acirc;';
386        entities['227'] = '&atilde;';
387        entities['228'] = '&auml;';
388        entities['229'] = '&aring;';
389        entities['230'] = '&aelig;';
390        entities['231'] = '&ccedil;';
391        entities['232'] = '&egrave;';
392        entities['233'] = '&eacute;';
393        entities['234'] = '&ecirc;';
394        entities['235'] = '&euml;';
395        entities['236'] = '&igrave;';
396        entities['237'] = '&iacute;';
397        entities['238'] = '&icirc;';
398        entities['239'] = '&iuml;';
399        entities['240'] = '&eth;';
400        entities['241'] = '&ntilde;';
401        entities['242'] = '&ograve;';
402        entities['243'] = '&oacute;';
403        entities['244'] = '&ocirc;';
404        entities['245'] = '&otilde;';
405        entities['246'] = '&ouml;';
406        entities['247'] = '&divide;';
407        entities['248'] = '&oslash;';
408        entities['249'] = '&ugrave;';
409        entities['250'] = '&uacute;';
410        entities['251'] = '&ucirc;';
411        entities['252'] = '&uuml;';
412        entities['253'] = '&yacute;';
413        entities['254'] = '&thorn;';
414        entities['255'] = '&yuml;';
415    }
416    if (useQuoteStyle !== 'ENT_NOQUOTES') {
417        entities['34'] = '&quot;';
418    }
419    if (useQuoteStyle === 'ENT_QUOTES') {
420        entities['39'] = '&#39;';
421    }
422    entities['60'] = '&lt;';
423    entities['62'] = '&gt;';
424 
425    // ascii decimals to real symbols
426    for (decimal in entities) {
427        symbol = String.fromCharCode(decimal);
428        hash_map[symbol] = entities[decimal];
429    }
430    return hash_map;
431}
432function html_entity_decode( string, quote_style ) {
433    // http://kevin.vanzonneveld.net
434    var hash_map = {}, symbol = '', tmp_str = '', entity = '';
435    tmp_str = string.toString();
436    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
437        return false;
438    }
439    for (symbol in hash_map) {
440        entity = hash_map[symbol];
441        tmp_str = tmp_str.split(entity).join(symbol);
442    }
443    tmp_str = tmp_str.split('&#039;').join(\"'\");
444    return tmp_str;
445}
446
447function getTypeSignature() {
448   var elementoSelects  = document.getElementsByTagName('select');
449
450   if ( elementoSelects[18].name == \"user[type_signature]\" ) {
451        return elementoSelects[18];
452   }
453   
454   for(i=0;i<elementoSelects.length;i++){
455        if( elementoSelects[i].name == \"user[type_signature]\" ){
456                 return elementoSelects[i];
457        }
458    }
459    return null;
460}
461
462function config_form(pObj,pHandler)
463{
464        pObj.onclick=function () {
465                if (getTypeSignature().value == \"html\" || getTypeSignature().value == \"htmld\") {
466                        return pHandler(\"text\");
467                }
468        };
469
470}
471document.getElementById('user_signature').value=html_entity_decode(document.getElementById('user_signature').innerHTML);
472
473function setDefaultTypeSignature() {
474        if(getTypeSignature()){
475                getTypeSignature().options[0].value = '".$GLOBALS['phpgw']->preferences->default['expressoMail']['type_signature']."d';
476                if(getTypeSignature().value.indexOf('html')!=-1){
477                   changeType(getTypeSignature().value);
478            }
479        }else{
480                 changeType('".$GLOBALS['phpgw']->preferences->forced['expressoMail']['type_signature']."');
481        }
482}
483
484setTimeout('setDefaultTypeSignature();config_form(document.getElementsByName(\'submit\')[0],changeType);',2000);
485</script>");
486}
487?>
Note: See TracBrowser for help on using the repository browser.