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

Revision 1605, 16.7 KB checked in by wmerlotto, 14 years ago (diff)

Ticket #654 - Correção da assinatura em texto simples, por Lucas da Costa

  • 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");
22$type = $_GET['type']; // FIX ME
23
24//if ($type == 'user' || $type == ''){
25create_script('function exibir_ocultar()
26{
27    var type = ("'.$type.'" == "") ? "user" : "'.$type.'";
28    var use_signature_digital_cripto = document.getElementsByName(type+"[use_signature_digital_cripto]")[0];
29    var default_signature_digital_cripto = "'.$GLOBALS['phpgw_info']['default']['preferences']['expressoMail']['use_signature_digital_cripto'].'";
30
31    if (use_signature_digital_cripto)
32    {
33        var element_signature_digital = document.getElementById(type+"[use_signature_digital]");
34        var element_signature_cripto = document.getElementById(type+"[use_signature_cripto]");
35
36        switch (use_signature_digital_cripto[use_signature_digital_cripto.selectedIndex].value){
37
38            case "1":
39                element_signature_digital.style.display="";
40                element_signature_cripto.style.display="";
41                break;
42            case "0":
43                element_signature_digital.style.display="none";
44                element_signature_cripto.style.display="none";
45                break;
46            case "":
47                if (default_signature_digital_cripto){
48                    element_signature_digital.style.display="";
49                    element_signature_cripto.style.display="";
50                 }
51                 else
52                 {
53                    element_signature_digital.style.display="none";
54                    element_signature_cripto.style.display="none";
55                 }
56
57        }
58
59    }
60
61}');
62//}
63
64$default = array(
65        '25'    => '25',
66        '50'    => '50',
67        '75'    => '75',
68        '100'   => '100'
69);
70
71create_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');
72create_check_box('Save deleted messages in trash folder?','save_deleted_msg','When delete message, send it automatically to trash folder');
73$default = array(
74        '1'    => lang('1 day'),
75        '2'    => lang('2 days'),
76        '3'    => lang('3 days'),
77        '4'   => lang('4 days'),
78        '5'   => lang('5 days')
79);
80
81create_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');
82create_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');
83create_check_box('Would you like to keep archived messages?','keep_archived_messages','After store email in your local computer delete it from server');
84create_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');
85create_check_box('Do you wanna receive an alert for new messages?','alert_new_msg','Everytime you receive new messages you will be informed');
86create_check_box('Show default view on main screen?','mainscreen_showmail','Show unread messages in your home page');
87create_check_box('Do you want to use remove attachments function?','remove_attachments_function','It allow you to remove attachments from messages');
88create_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');
89
90//Use user folders from email
91if ($type != "" && $type != "user"){
92        $trash = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'];
93        $drafts = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'];
94        $spam = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder'];
95        $sent = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder'];
96        $default = Array(
97                'INBOX' =>      lang('INBOX'),
98                'INBOX/'.$trash => lang($trash), 
99                'INBOX/'.$drafts => lang($drafts),
100                'INBOX/'.$spam => lang($spam),
101                'INBOX/'.$sent => lang($sent)
102        );
103}
104else
105{
106require_once('class.imap_functions.inc.php');
107$boemailadmin = CreateObject('emailadmin.bo');
108$emailadmin_profile = $boemailadmin->getProfileList();
109$_SESSION['phpgw_info']['expressomail']['email_server'] = $boemailadmin->getProfile($emailadmin_profile[0]['profileID']);
110$_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
111$e_server = $_SESSION['phpgw_info']['expressomail']['email_server'];
112$imap = CreateObject('expressoMail1_2.imap_functions');
113$save_in_folder_selected = $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'];
114
115// Load Special Folders (Sent, Trash, Draft, Spam) from EmailAdmin (if exists, else get_lang)
116$specialFolders = array ("Trash" => lang("Trash"), "Drafts" => lang("Drafts"), "Spam" => lang("Spam"), "Sent" => lang("Sent"));
117
118foreach ($specialFolders as $key => $value){
119        if($e_server['imapDefault'.$key.'Folder'])
120                $specialFolders[$key] = $e_server['imapDefault'.$key.'Folder'];
121}
122unset($default);
123$default[-1] = lang('Select on send');
124       
125        foreach($imap -> get_folders_list(array('noSharedFolders' => true)) as $id => $folder){
126                if(!is_numeric($id))
127                        continue;
128                else{
129                        // Translate INBOX (root folder)
130                        if (strtolower($folder['folder_name']) == "inbox")
131                                $folder['folder_name'] = lang("Inbox");
132                        // Translate Special Folders
133                        elseif (($keyFolder = array_search($folder['folder_name'], $specialFolders)) !== false)
134                                $folder['folder_name'] = lang($keyFolder);
135                        // Identation for subfolders
136                        $folder_id = explode($e_server['imapDelimiter'],$folder['folder_id']);       
137                        $level = count($folder_id);
138                        $ident = '';
139                        for($i = 2; $level > 2 && $i < $level;$i++)
140                                $ident .= ' - ';
141                       
142                        $default[$folder['folder_id']] = $ident.$folder['folder_name'];
143                }               
144        }
145
146}
147create_select_box('Save sent messages in folder','save_in_folder',$default,'Save automatically sent messages in selected folder');
148create_check_box('Hide menu folders?','hide_folders','You can use it if your screen does not have good resolution');
149
150$default = array(
151        '20' => lang('normal'),
152        '30' => lang('medium'),
153        '40' => lang('big')
154);
155
156create_select_box('What is the height of the lines in the list of messages?','line_height',$default,'');
157create_check_box('Use dynamic contacts?','use_dynamic_contacts','Store your\'s most used contacts');
158create_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>');
159create_check_box('Auto save draft','auto_save_draft','When you are away from computer it saves automatically the message you are writing');
160$default = array(
161        '65536' => lang('unlimited'),
162        '640' => '640',
163        '768' => '768',
164        '800' => '800',
165        '1024' => '1024',
166        '1080' => '1080'
167);
168
169create_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');
170
171if($GLOBALS['phpgw_info']['server']['use_assinar_criptografar'])
172{
173    create_check_box('Enable digitally sign/cipher the message?','use_signature_digital_cripto','','',True,'onchange="javascript:exibir_ocultar();"');
174    if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature_digital_cripto'])
175    {
176        create_check_box('Always sign message digitally?','use_signature_digital','');
177        create_check_box('Always cipher message digitally?','use_signature_cripto','');
178    }
179    else
180    {
181        create_check_box('Always sign message digitally?','use_signature_digital','','',True,'',False);
182        create_check_box('Always cipher message digitally?','use_signature_cripto','','',True,'',False);
183    }
184}
185
186$default = array(
187        'text' => lang('simple text'),
188        'html' => lang('rich text')
189);
190create_check_box('Insert signature automatically in new messages?','use_signature','');
191create_select_box('Signature Type','type_signature',$default,'','','','onchange="javascript:changeType(this.value);" onload="javascript:alert(this.value);"');
192
193if ($type == 'user' || $type == ''){
194        $oFCKeditor = new FCKeditor('html_signature');
195        $oFCKeditor->BasePath   = '../expressoMail1_2/js/fckeditor/';
196        $oFCKeditor->ToolbarSet = 'ExpressoLivre';
197
198        $vars = $GLOBALS['phpgw']->preferences->user[$appname];
199
200        create_html_code("signature","<div id='text_signature'>
201                <textarea rows='5' cols='50' id='user_signature' name='user[signature]'>","</textarea></div>
202                <div style='display:none;' id='html_signature'>".$oFCKeditor->Create()."</div>
203                <script language='javascript'>
204//document.getElementById('user_signature').value  = '".$vars['signature']."';
205function changeType(value){
206        var html_signature = FCKeditorAPI.GetInstance(\"html_signature\");
207        value=value.replace('d','');
208        if(value == 'text'){
209                document.getElementById('user_signature').value = html_signature.GetHTML();
210                document.getElementById(\"text_signature\").style.display = '';
211                document.getElementById(\"html_signature\").style.display = 'none';
212        }
213        else if(value == 'html'){
214                html_signature.SetHTML(document.getElementById('user_signature').value);
215                document.getElementById(\"text_signature\").style.display = 'none';
216                document.getElementById(\"html_signature\").style.display  = '';
217        }
218}
219function get_html_translation_table(table, quote_style) {
220    // http://kevin.vanzonneveld.net
221    var entities = {}, hash_map = {}, decimal = 0, symbol = '';
222    var constMappingTable = {}, constMappingQuoteStyle = {};
223    var useTable = {}, useQuoteStyle = {};
224    // Translate arguments
225    constMappingTable[0]      = 'HTML_SPECIALCHARS';
226    constMappingTable[1]      = 'HTML_ENTITIES';
227    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
228    constMappingQuoteStyle[2] = 'ENT_COMPAT';
229    constMappingQuoteStyle[3] = 'ENT_QUOTES';
230 
231    useTable       = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
232    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';
233 
234    if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
235        throw new Error(\"Table: \"+useTable+' not supported');
236        // return false;
237    }
238 
239    entities['38'] = '&amp;';
240    if (useTable === 'HTML_ENTITIES') {
241        entities['160'] = '&nbsp;';
242        entities['161'] = '&iexcl;';
243        entities['162'] = '&cent;';
244        entities['163'] = '&pound;';
245        entities['164'] = '&curren;';
246        entities['165'] = '&yen;';
247        entities['166'] = '&brvbar;';
248        entities['167'] = '&sect;';
249        entities['168'] = '&uml;';
250        entities['169'] = '&copy;';
251        entities['170'] = '&ordf;';
252        entities['171'] = '&laquo;';
253        entities['172'] = '&not;';
254        entities['173'] = '&shy;';
255        entities['174'] = '&reg;';
256        entities['175'] = '&macr;';
257        entities['176'] = '&deg;';
258        entities['177'] = '&plusmn;';
259        entities['178'] = '&sup2;';
260        entities['179'] = '&sup3;';
261        entities['180'] = '&acute;';
262        entities['181'] = '&micro;';
263        entities['182'] = '&para;';
264        entities['183'] = '&middot;';
265        entities['184'] = '&cedil;';
266        entities['185'] = '&sup1;';
267        entities['186'] = '&ordm;';
268        entities['187'] = '&raquo;';
269        entities['188'] = '&frac14;';
270        entities['189'] = '&frac12;';
271        entities['190'] = '&frac34;';
272        entities['191'] = '&iquest;';
273        entities['192'] = '&Agrave;';
274        entities['193'] = '&Aacute;';
275        entities['194'] = '&Acirc;';
276        entities['195'] = '&Atilde;';
277        entities['196'] = '&Auml;';
278        entities['197'] = '&Aring;';
279        entities['198'] = '&AElig;';
280        entities['199'] = '&Ccedil;';
281        entities['200'] = '&Egrave;';
282        entities['201'] = '&Eacute;';
283        entities['202'] = '&Ecirc;';
284        entities['203'] = '&Euml;';
285        entities['204'] = '&Igrave;';
286        entities['205'] = '&Iacute;';
287        entities['206'] = '&Icirc;';
288        entities['207'] = '&Iuml;';
289        entities['208'] = '&ETH;';
290        entities['209'] = '&Ntilde;';
291        entities['210'] = '&Ograve;';
292        entities['211'] = '&Oacute;';
293        entities['212'] = '&Ocirc;';
294        entities['213'] = '&Otilde;';
295        entities['214'] = '&Ouml;';
296        entities['215'] = '&times;';
297        entities['216'] = '&Oslash;';
298        entities['217'] = '&Ugrave;';
299        entities['218'] = '&Uacute;';
300        entities['219'] = '&Ucirc;';
301        entities['220'] = '&Uuml;';
302        entities['221'] = '&Yacute;';
303        entities['222'] = '&THORN;';
304        entities['223'] = '&szlig;';
305        entities['224'] = '&agrave;';
306        entities['225'] = '&aacute;';
307        entities['226'] = '&acirc;';
308        entities['227'] = '&atilde;';
309        entities['228'] = '&auml;';
310        entities['229'] = '&aring;';
311        entities['230'] = '&aelig;';
312        entities['231'] = '&ccedil;';
313        entities['232'] = '&egrave;';
314        entities['233'] = '&eacute;';
315        entities['234'] = '&ecirc;';
316        entities['235'] = '&euml;';
317        entities['236'] = '&igrave;';
318        entities['237'] = '&iacute;';
319        entities['238'] = '&icirc;';
320        entities['239'] = '&iuml;';
321        entities['240'] = '&eth;';
322        entities['241'] = '&ntilde;';
323        entities['242'] = '&ograve;';
324        entities['243'] = '&oacute;';
325        entities['244'] = '&ocirc;';
326        entities['245'] = '&otilde;';
327        entities['246'] = '&ouml;';
328        entities['247'] = '&divide;';
329        entities['248'] = '&oslash;';
330        entities['249'] = '&ugrave;';
331        entities['250'] = '&uacute;';
332        entities['251'] = '&ucirc;';
333        entities['252'] = '&uuml;';
334        entities['253'] = '&yacute;';
335        entities['254'] = '&thorn;';
336        entities['255'] = '&yuml;';
337    }
338    if (useQuoteStyle !== 'ENT_NOQUOTES') {
339        entities['34'] = '&quot;';
340    }
341    if (useQuoteStyle === 'ENT_QUOTES') {
342        entities['39'] = '&#39;';
343    }
344    entities['60'] = '&lt;';
345    entities['62'] = '&gt;';
346 
347    // ascii decimals to real symbols
348    for (decimal in entities) {
349        symbol = String.fromCharCode(decimal);
350        hash_map[symbol] = entities[decimal];
351    }
352    return hash_map;
353}
354function html_entity_decode( string, quote_style ) {
355    // http://kevin.vanzonneveld.net
356    var hash_map = {}, symbol = '', tmp_str = '', entity = '';
357    tmp_str = string.toString();
358    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
359        return false;
360    }
361    for (symbol in hash_map) {
362        entity = hash_map[symbol];
363        tmp_str = tmp_str.split(entity).join(symbol);
364    }
365    tmp_str = tmp_str.split('&#039;').join(\"'\");
366    return tmp_str;
367}
368
369function getTypeSignature() {
370   var elementoSelects  = document.getElementsByTagName('select');
371
372   if ( elementoSelects[18].name == \"user[type_signature]\" ) {
373        return elementoSelects[18];
374   }
375   
376   for(i=0;i<elementoSelects.length;i++){
377        if( elementoSelects[i].name == \"user[type_signature]\" ){
378                 return elementoSelects[i];
379        }
380    }
381    return null;
382}
383
384function config_form(pObj,pHandler)
385{
386        pObj.onclick=function () {
387                if (getTypeSignature().value == \"html\" || getTypeSignature().value == \"htmld\") {
388                        return pHandler(\"text\");
389                }
390        };
391
392}
393document.getElementById('user_signature').value=html_entity_decode(document.getElementById('user_signature').innerHTML);
394
395function setDefaultTypeSignature() {
396        getTypeSignature().options[0].value = '".$GLOBALS['phpgw']->preferences->default['expressoMail']['type_signature']."d';
397        if(getTypeSignature().value.indexOf('html')!=-1){
398           changeType(getTypeSignature().value);
399    }
400}
401
402setTimeout('setDefaultTypeSignature();config_form(document.getElementsByName(\'submit\')[0],changeType);',2000);
403</script>");
404}
405?>
Note: See TracBrowser for help on using the repository browser.