source: trunk/mobile/inc/class.ui_mobilemail.inc.php @ 1453

Revision 1453, 30.9 KB checked in by eduardoalex, 15 years ago (diff)

Ticket #660 - Adicionado a função delete_msg e confirm_delete_msg e template delete_msg

  • Property svn:executable set to *
Line 
1<?php
2        /**************************************************************************\
3        * eGroupWare                                                               *
4        * http://www.egroupware.org                                                *
5        * The file written by Mário César Kolling <mario.kolling@serpro.gov.br>    *
6        * --------------------------------------------                             *
7        *  This program is free software; you can redistribute it and/or modify it *
8        *  under the terms of the GNU General Public License as published by the   *
9        *  Free Software Foundation; either version 2 of the License, or (at your  *
10        *  option) any later version.                                              *
11        \**************************************************************************/
12
13        //TODO: Criar a Classe Widget.
14
15        include_once(PHPGW_INCLUDE_ROOT.'/expressoMail1_2/inc/class.imap_functions.inc.php');
16
17        // Classe principal do Mini Mail
18        class ui_mobilemail{
19
20                // Define as funções públicas
21                var $public_functions = array(
22                        'mail_list'     => True,
23                        'change_folder' => True,
24                        'change_page'   => True,
25                        'show_msg'      => True,
26                        'send_mail'     => True,
27                        //'reply_msg'   => True,
28                        'new_msg'       => True,
29                        'delete_msg'    => True,
30                        'confirm_delete_msg'    => True,
31                );
32
33                var $folders; // Pastas imap
34                var $current_folder; // Pasta corrente
35                var $current_page; // Página corrente da lista de e-mails da pasta corrente
36                var $imap_functions; // Variável que recebe um objeto do tipo class.imap_functions.inc.php
37                var $allowed_tags = '<p><a><br><em><strong><ol><li><ul><div><font>'; // Tags html que não serão removidas
38                        // ao mostrar corpo do e-mail
39
40
41                /*
42                 * @function mobilemail
43                 * @abstract Método construtor da classe principal do Mini Mail
44                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
45                 */
46                function ui_mobilemail()
47                {
48
49                        $this-> load_session();                                         
50
51                        // Recupera atributos da classe gravados na sessão
52                        $folders = $GLOBALS['phpgw']->session->appsession('mobilemail.folders','mobile');
53                        $current_folder = $GLOBALS['phpgw']->session->appsession('mobilemail.current_folder','mobile');
54                        $current_page = $GLOBALS['phpgw']->session->appsession('mobilemail.current_page','mobile');
55
56                        // Inicializa a classe class.imap_functions.inc.php
57                        $this->imap_functions = new imap_functions();
58
59                        // Testa a existência dos atributos da classe recuperadas da sessão, e as carrega ou inicializa.
60                        if ($folders)
61                        {
62                                $this->folders = $folders;
63                        }
64                        else
65                        {
66                                $this->folders = $this->imap_functions->get_folders_list();
67                        }
68
69                        if ($current_folder)
70                        {
71                                $this->current_folder = $current_folder;
72                        }
73                        else
74                        {
75                                $this->current_folder = 0; // Define o folder INBOX como o folder corrente
76                        }
77
78                        if ($current_page)
79                        {
80                                $this->current_page = $current_page;
81                        }
82                        else
83                        {
84                                $this->current_page = 1; // Define a primeira página como página padrão
85                        }
86
87                }
88
89                /*
90                 * @function save_session
91                 * @abstract Salva os atributos da classe na sessão
92                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
93                 */
94                function save_session()
95                {
96
97                        $GLOBALS['phpgw']->session->appsession('mobilemail.folders','mobile',$this->folders);
98                        $GLOBALS['phpgw']->session->appsession('mobilemail.current_folder','mobile',$this->current_folder);
99                        $GLOBALS['phpgw']->session->appsession('mobilemail.current_page','mobile',$this->current_page);
100
101                }
102
103                /*
104                 * @function change_page
105                 * @abstract Troca a página de exibição da lista de e-mails, e mostra a nova página
106                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
107                 */
108                function change_page()
109                {
110                        if (isset($_GET['page']))
111                        {
112                                $this->current_page = $_GET['page'];
113                        }
114                        $this->mail_list();
115                        $this->save_session();
116                }
117
118                /*
119                 * @function change_folder
120                 * @abstract Troca a pasta do imap, e mostra a primeira página da nova pasta
121                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
122                 */
123                function change_folder()
124                {
125                        $folder = $_GET['folder'];
126                        if (isset($folder))
127                        {
128                                $this->current_folder = $folder;
129                                $this->current_page = 1;
130                        }
131                        $this->mail_list();
132                        $this->save_session();
133                }
134
135                /*
136                 * @function show_msg
137                 * @abstract Mostra a mensagem de e-mail requisitada
138                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
139                 */
140                 // TODO: retirar msg_folder dos parâmentros necessários no GET e usar $this->current_folder
141                function show_msg()
142                {
143                        $params = array();
144
145                        //TODO: testar chamar sem parâmetros para determinar se ocorre algum problema
146                        if (isset($_GET['msg_number']) && isset($_GET['msg_folder']))
147                        {
148                                $params = array(
149                                        'msg_number' => $_GET['msg_number'],
150                                        'msg_folder' => $_GET['msg_folder'],
151                                );
152                        }
153
154                        $msg = $this->imap_functions->get_info_msg($params);
155
156                        // Carrega o template
157                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
158                        $p->set_file(
159                                Array(
160                                        'view_msg_t' => 'view_msg.tpl'
161                                )
162                        );
163                        $p->set_block('view_msg_t', 'mail_header');
164                        $p->set_block('view_msg_t', 'mail_body');
165                        $p->set_block('view_msg_t', 'mail_footer');
166                        $p->set_block('view_msg_t', 'reply_msg');
167                        $p->set_block('view_msg_t', 'attachment_list');
168                        $p->set_block('view_msg_t', 'begin_anchor');
169                        $p->set_block('view_msg_t', 'end_anchor');
170
171                        // Define o cabeçalho do e-mail
172                        $p->set_var('from_label', lang("From"));
173                        $p->set_var('from', $msg['from']['full']);
174                        $p->set_var('to_label', lang("To"));
175
176                        $p->set_var('subject_label', lang("Subject"));
177                        $p->set_var('subject', $msg['subject']);
178                        $p->set_var('date_label', lang("Date"));
179                        $p->set_var('date', $msg['fulldate']);
180
181
182                        // Mostra o corpo do e-mail
183                        $p->set_var('body', strip_tags($msg['body'], $this->allowed_tags)); // Usa a função strip_tags() para filtrar
184                                // as tags que estão presentes no corpo do e-mail.
185                        $p->set_var('link_text', lang("Return"));
186                        $p->set_var('link', "index.php?menuaction=mobile.ui_mobilemail.mail_list");
187
188
189                        $p->set_var('reply_text', lang("Reply"));
190                        $p->set_var('Delete', lang("Delete"));
191                        $msg_number = $_GET['msg_number'];
192                        $msg_folder = $_GET['msg_folder'];
193                        $p->set_var('reply', "index.php?menuaction=mobile.ui_mobilemail.new_msg&msg_number=$msg_number&msg_folder=$msg_folder");
194                        $p->set_var('delete', "index.php?menuaction=mobile.ui_mobilemail.confirm_delete_msg&msg_number=$msg_number&msg_folder=$msg_folder");
195                        if (!empty($msg['attachments']) && !empty($msg['attachments']['names']))
196                        {
197                                $attachs = "<br>".lang("This message has the follow attachments:")."<br>";
198                                foreach($msg['attachments'] as $key => $attach) {
199                                        if(is_array($attach)) {
200                                                $attachs.=$attach['name']."&nbsp;&nbsp;&nbsp;&nbsp;";
201                                                if($GLOBALS['phpgw_info']['user']['preferences']['mobile']['download_attach']==1)
202                                                        $attachs.="<a href='../expressoMail1_2/inc/gotodownload.php?msg_folder=".
203                                                                        $msg_folder."&msg_number=".$msg_number."&idx_file=".$key.
204                                                                        "&msg_part=".$attach['pid']."&encoding=".$attach['encoding']."'>".
205                                                                        lang('Download')."</a><br>";
206                                                else
207                                                        $attachs.="<br>";
208                                        }
209                                        $p->set_var('attachment_message', $attachs);
210                                }
211                                //$p->set_var('attachment_message', lang('This message have attachment(s)'));
212                        }
213                        else
214                        {
215                                $p->set_var('attachment_message', lang('This message don\'t have attachment(s)'));
216                        }
217
218                        $p->parse('view_msg_t', 'end_anchor');
219                        $p->parse('view_msg_t', 'begin_anchor');
220                        //$p->pfp('view_msg_t', 'mail_header');
221                        /*$p->pfp('out', 'mail_header');
222                        //$p->pfp('view_msg_t', 'mail_body');
223                        $p->pfp('out', 'mail_body');
224                        //$p->pfp('view_msg_t', 'attachment_list');
225                        $p->pfp('out', 'attachment_list');
226                        //$p->pfp('view_msg_t', 'mail_footer');
227                        $p->pfp('out', 'reply_msg');
228                        //$p->pfp('out', 'mail_footer');*/
229
230                        //$p->pfp('view_msg_t', 'mail_header');
231                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'mail_header'));
232                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'mail_body'));
233                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'attachment_list'));
234                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'reply_msg'));
235                }
236
237                /*
238                 * @function index
239                 * @abstract Página inicial da aplicação mobilemail, mantém o estado atual. Ou seja, mostra lista de e-mails
240                 * do folder e página definidos pelos parâmetros current_folder e current_page.
241                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
242                 */
243                 // TODO: Talvez seja melhor voltar sempre para o Inbox e primeira página
244                function index()
245                {                                               
246                        $this->print_folder_selection();
247                        $this->mail_list();
248                        $this->save_session();
249
250                }
251               
252                function load_session(){                       
253                        /************************************\
254                         * Inicialização do expressoMail1_2 *
255                        \************************************/
256                        // Get Data from ldap_manager and emailadmin.
257                        $ldap_manager = CreateObject('contactcenter.bo_ldap_manager');
258                        $boemailadmin   = CreateObject('emailadmin.bo');
259                        $emailadmin_profile = $boemailadmin->getProfileList();
260                        $_SESSION['phpgw_info']['expressomail']['email_server'] = $boemailadmin->getProfile($emailadmin_profile[0]['profileID']);
261                        $_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user'];
262                        $_SESSION['phpgw_info']['expressomail']['server'] = $GLOBALS['phpgw_info']['server'];
263                        $_SESSION['phpgw_info']['expressomail']['ldap_server'] = $ldap_manager ? $ldap_manager->srcs[1] : null;
264                        $_SESSION['phpgw_info']['expressomail']['user']['email'] = $GLOBALS['phpgw']->preferences->values['email'];
265               
266                        // Fix problem with cyrus delimiter changes in preferences.
267                        // Dots in names: enabled/disabled.
268                        $save_in_folder = @eregi_replace("INBOX/", "INBOX".$_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter'], $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder']);
269                        $save_in_folder = @eregi_replace("INBOX.", "INBOX".$_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter'], $save_in_folder);
270                        $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'] = $save_in_folder;
271                        // End Fix.
272               
273                    // Loading Admin Config Module
274                    $c = CreateObject('phpgwapi.config','expressoMail1_2');
275                    $c->read_repository();
276                    $current_config = $c->config_data;
277                    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_enable_log_messages'] = $current_config['expressoMail_enable_log_messages'];
278                    // Begin Set Anti-Spam options.
279                    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham'] = $current_config['expressoMail_command_for_ham'];
280                    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam'] = $current_config['expressoMail_command_for_spam'];
281                    $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_use_spam_filter'] = $current_config['expressoMail_use_spam_filter'];
282
283                        echo '<script> var array_lang = new Array();var use_spam_filter = \''.$current_config['expressoMail_use_spam_filter'].'\' </script>';
284
285                        // End Set Anti-Spam options.
286               
287                    // Set Imap Folder names options
288                    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']   = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']     ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']             : "Trash";
289                    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']  = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'] ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']       : "Drafts";
290                    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']    = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']      ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']              : "Spam";
291                    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']    = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']      ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']              : "Sent";
292
293                        include("../expressoMail1_2/inc/load_lang.php");                   
294
295                }
296
297                /*
298                 * @function print_folder_selection
299                 * @abstract Imprime o folder corrente (INBOX)
300                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
301                 */
302                function print_folder_selection()
303                {
304
305                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
306                        $p->set_file(
307                                Array(
308                                        'mobilemail_t' => 'mobilemail.tpl'
309                                )
310                        );
311                        $p->set_block('mobilemail_t', 'inbox_folder_list');
312                        $p->set_var('lang_folder', lang('Folder'));
313                        $p->set_var('lang_inbox', lang('Inbox'));
314                        //$p->set_var('folder_items', $folder_items);
315                        $p->parse('mobilemail_t', 'inbox_folder_list');                 
316                        //$p->fpf('out', 'mobilemail_t');
317                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'mobilemail_t'));
318
319                }
320
321                /*
322                 * @function old_print_folder_selection
323                 * @abstract Imprime na tela a caixa de seleção de folders
324                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
325                 */
326                function old_print_folder_selection()
327                {
328
329                        // Processa as options
330                        $folder_items = '';
331
332                        foreach ($this->folders as $i => $j)
333                        {
334
335                                $option_selected = '';
336                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
337                                $p->set_file(
338                                        Array(
339                                                'mobilemail_t' => 'mobilemail.tpl'
340                                        )
341                                );
342                                $p->set_block('mobilemail_t', 'folder_item');
343
344                                if (is_numeric($i))
345                                {
346                                        if ($i == $this->current_folder)
347                                        {
348                                                 $option_selected = 'selected="selected"';
349                                        }
350
351                                        $p->set_var('option_selected', $option_selected);
352                                        $p->set_var('folder_id', $j['folder_id']);
353                                        $p->set_var('folder_name', $j['folder_id']); // Mudar... provavelmente usar preg_replace
354                                                                                                                                 // para substituir cpf pelo nome do usuário.
355
356                                        if ($j['folder_unseen'] > 0)
357                                        {
358                                                $p->set_var('folder_unseen', ' - ('.$j['folder_unseen'].')');
359                                        }
360
361                                        $folder_items .= $p->fp('mobile_t', 'folder_item');
362                                }
363
364                        }
365
366                        // Processa o select
367                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
368                        $p->set_file(
369                                Array(
370                                        'mobilemail_t' => 'mobilemail.tpl'
371                                )
372                        );
373                        $p->set_block('mobilemail_t', 'folder_list');
374                        $p->set_var('folder_items', $folder_items);
375                        $p->parse('mobilemail_t', 'folder_list');                       
376                        //$p->pfp('out', 'mobilemail_t');
377                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'mobilemail_t'));
378
379                }
380
381                /*
382                 * @function mail_list
383                 * @abstract Imprime a lista de e-mails
384                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
385                 */
386                function mail_list()
387                {
388
389                        $this->messages_per_page =
390                                        isset($GLOBALS['phpgw_info']['user']['preferences']['mobile']['max_message_per_page'])?
391                                        $GLOBALS['phpgw_info']['user']['preferences']['mobile']['max_message_per_page']:10;
392//              var $pages;
393//              var $actual_page;
394//              var $number_of_messages;
395
396                        if (!isset($this->number_of_messages))
397                        {
398                                $params = array(
399                                        'folder' => $this->folders[$this->current_folder]['folder_id'],
400                                );
401                                $this->number_of_messages = $this->imap_functions->get_num_msgs($params);
402                        }
403
404                        // Recalcular as páginas
405                        $this->pages = ceil($this->number_of_messages/$this->messages_per_page);
406                        $page = $this->current_page;
407
408                        $params = array(
409                                'folder'                        => $this->folders[$this->current_folder]['folder_id'],
410                                'msg_range_begin'       => $this->current_page * $this->messages_per_page - ($this->messages_per_page - 1),
411                                'msg_range_end'         => $this->current_page * $this->messages_per_page,
412                                'sort_box_type'         => 'SORTARRIVAL',
413                                'sort_box_reverse'      => 1
414                        );
415
416                        $messages = $this->imap_functions->get_range_msgs2($params);
417                        $this->print_mails_list($messages);
418                        $this->print_page_navigation($this->pages, $this->current_page);
419
420                }
421
422                /*
423                 * @function print_mails_list
424                 * @abstract Imprime a lista de mensagens
425                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
426                 * @param array Um array com a lista de mensagens recuperado por $this->imap_functions->get_range_msgs2($params)
427                 */
428                function print_mails_list($messages)
429                {
430
431                        // Cria a lista de e-mails
432                        $mail_rows = '';
433                        if ($this->number_of_messages != 0)
434                        {
435                                foreach ($messages as $index => $msg)
436                                {
437                                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
438                                        $p->set_file(
439                                                Array(
440                                                        'mobilemail_t' => 'mobilemail.tpl'
441                                                )
442                                        );
443                                        $p->set_block('mobilemail_t', 'mail_row');
444                                        $p->set_block('mobilemail_t', 'end_strong');
445                                        $p->set_block('mobilemail_t', 'begin_strong');
446                                        $p->set_var('unseen_bkg', "#FFFFFF");
447
448                                        if (is_numeric($index))
449                                        {
450                                                !empty($msg['from']['name']) ? $from = $msg['from']['name'] : $from = $msg['from']['email'];
451                                                !empty($msg['subject']) ? $subject = $msg['subject'] : $subject = lang('[empty subject]');
452                                                if ($msg['Unseen'] == 'U'){ //Setando as mensagens nao lidas
453                                                        $p->set_var('strong_unseen_begin', trim($p->fp('mobilemail_t', 'begin_strong')));
454                                                        $p->set_var('strong_unseen_end', trim($p->fp('mobilemail_t', 'end_strong')));
455                                                        $p->set_var('unseen_bkg', "#E0ECFF");
456                                                        //$p->set_var('unseen_bkg', "#E8EEF7");
457                                        }
458                                                $p->set_var('from', $from);
459                                                $p->set_var('subject', $subject);
460                                                $p->set_var('msg_number', $msg['msg_number']);
461                                                $p->set_var('date', $msg['udate']);
462                                                $p->set_var('msg_folder', $this->folders[$this->current_folder]['folder_id']);
463                                                $p->set_var('from_label', lang('From'));
464                                                $mail_rows .= $p->fp('mobilemail_t', 'mail_row');
465                                        }
466                                }
467
468                                // Imprime a lista de e-mails
469                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
470                                $p->set_file(
471                                        Array(
472                                                'mobilemail_t' => 'mobilemail.tpl'
473                                        )
474                                );
475                                $p->set_block('mobilemail_t', 'mail_list');
476                                $p->set_var('mail_rows', $mail_rows);
477                                //$p->pfp('out', 'mail_list');
478                                $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'mail_list'));
479                        }
480                        else
481                        {
482                                // Lista de e-mails vazia
483                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
484                                $p->set_file(
485                                        Array(
486                                                'mobilemail_t' => 'mobilemail.tpl'
487                                        )
488                                );
489                                $p->set_block('mobilemail_t', 'empty_list');
490                                $p->set_var('empty_message', lang('Empty folder'));                             
491                                //$p->pfp('out', 'empty_list');
492                                $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'empty_list'));
493                        }
494                }
495
496                /*
497                 * @funtion print_page_navigation
498                 * @abstract Imprime a barra de navegação da lista de e-mails da pasta corrente. Quem chama essa função é quem faz o controle do modelo.
499                 * @author Mário César Kolling <mario.kolling@serpro.gov.br>
500                 * @param integer Número de páginas que serão geradas
501                 * @param integer Página corrente
502                 */
503                // TODO: mover este método para a classe page_navigation subclasse de widget
504                function print_page_navigation($number_of_pages, $page = 1)
505                {
506
507                        $pages = '';
508
509                        if ($number_of_pages != 0)
510                        {
511                                // Geração das páginas
512                                for ($i = 1; $i <= $number_of_pages ; $i++)
513                                {
514
515                                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
516                                        $p->set_file(
517                                                Array(
518                                                        'mobilemail_t' => 'mobilemail.tpl'
519                                                )
520                                        );
521
522                                        $p->set_block('mobilemail_t', 'space');
523                                        $p->set_block('mobilemail_t', 'begin_anchor');
524                                        $p->set_block('mobilemail_t', 'end_anchor');
525                                        $p->set_block('mobilemail_t', 'page_item');
526                                        $p->set_block('mobilemail_t', 'begin_strong');
527                                        $p->set_block('mobilemail_t', 'end_strong');
528
529                                        if ($i == $page)
530                                        {
531                                                // Se for a página sendo gerada for a página corrente,
532                                                // não gera a âncora e destaca o número (negrito)
533                                                $p->set_var('end_anchor', '');
534                                                $p->set_var('begin_anchor', '');
535                                                $p->set_var('begin_strong', trim($p->fp('mobilemail_t', 'begin_strong')));
536                                                $p->set_var('end_strong', trim($p->fp('mobilemail_t', 'end_strong')));
537                                        }
538                                        else
539                                        {
540                                                // Senão, gera a âncora
541                                                $p->set_var('begin_strong', '');
542                                                $p->set_var('end_strong', '');
543                                                $p->set_var('end_anchor', trim($p->fp('mobilemail_t', 'end_anchor')));
544                                                $p->set_var('begin_anchor_href', "index.php?menuaction=mobile.ui_mobilemail.change_page&page=$i");
545                                                $p->set_var('begin_anchor', trim($p->fp('mobilemail_t', 'begin_anchor')));
546                                        }
547
548                                        $p->set_var('page', $i);
549                                        //$pages .= trim($p->fp('mobilemail_t', 'page_item'));
550
551                                }
552                                $pages .= " ".$page." ".lang("of")." ".$number_of_pages." ";
553
554                                // Geração dos links "anterior" e "próximo"
555                                $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
556                                $p->set_file(
557                                        Array(
558                                                'mobilemail_t' => 'mobilemail.tpl'
559                                        )
560                                );
561
562                                //$p->set_block('mobilemail_t', 'space');
563                                $p->set_block('mobilemail_t', 'mail_footer');
564                                $p->set_block('mobilemail_t', 'previous');
565                                $p->set_block('mobilemail_t', 'next');
566
567                                $next_page = $page + 1;
568                                $previous_page = $page - 1;
569
570                                if ($page == 1)
571                                {
572                                        // Se for a primeira página, não imprime o link "anterior""
573                                        $p->set_var('previous', '');
574                                        if ($page == $number_of_pages)
575                                        {
576                                                // Se só existir uma página, não imprime o link "próximo"
577                                                $p->set_var('next', '');
578                                        }
579                                        else
580                                        {
581                                                $p->set_var('next_href', "index.php?menuaction=mobile.ui_mobilemail.change_page&page=$next_page");
582                                                $p->set_var('next', trim($p->fp('mobilemail_t', 'next')));
583                                        }
584
585                                }
586                                else if ($page == $number_of_pages)
587                                {
588                                        // Se for a última página, não imprime o link "próximo"
589                                        $p->set_var('next', '');
590                                        $p->set_var('previous_href', "index.php?menuaction=mobile.ui_mobilemail.change_page&page=$previous_page");
591                                        $p->set_var('previous', trim($p->fp('mobilemail_t', 'previous')));
592                                }
593                                else
594                                {
595                                        // Senão, imprime os links "anterior" e "próximo"
596                                        $p->set_var('previous_href', "index.php?menuaction=mobile.ui_mobilemail.change_page&page=$previous_page");
597                                        $p->set_var('previous', trim($p->fp('mobilemail_t', 'previous')));
598
599                                        $p->set_var('next_href', "index.php?menuaction=mobile.ui_mobilemail.change_page&page=$next_page");
600                                        $p->set_var('next', trim($p->fp('mobilemail_t', 'next')));
601                                }
602
603                                $p->set_var('pages', $pages);
604                                //$p->pfp('out', 'mail_footer');
605                                $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'mail_footer'));
606                        }
607
608                }
609
610                /*
611                 * @function new_msg()
612                 * @abstract Gera o formulário para criar novo e-mail.
613                 * @author Rommel de Brito Cysne <rommel.cysne@serpro.gov.br>
614                 
615                function new_msg()
616                {
617                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
618                        $p->set_file(
619                                Array(
620                                        'new_msg_t' => 'new_msg.tpl'
621                                )
622                        );
623
624                        $p->set_block('new_msg_t', 'msg_header');
625                        $p->set_block('new_msg_t', 'text');
626                        $p->set_block('new_msg_t', 'begin_form');
627                        $p->set_block('new_msg_t', 'end_form');
628                        $p->set_block('new_msg_t', 'hidden_area');
629
630                        $p->set_var('to_label', lang("To"));
631                        $p->set_var('to', "");
632                        $p->set_var('to_mail', "");
633
634                        $p->set_var('subject_label', lang("Subject"));
635                        $p->set_var('subject', "");
636
637                        $p->set_var('msg_number', $_GET['msg_number']);
638                        $p->set_var('msg_folder', $_GET['msg_folder']);
639
640                        $p->set_var('send_label', lang("Send"));
641
642                        $p->set_var('form_action', "index.php?menuaction=mobile.ui_mobilemail.send_mail");
643
644                        $p->pfp('out', 'begin_form');
645                        $p->pfp('out', 'msg_header');
646                        $p->pfp('out', 'text');
647                        $p->pfp('out', 'hidden_area');
648                        $p->pfp('out', 'end_form');
649
650               
651                }
652*/
653                /*
654                 * @function new_msg()
655                 * @abstract Gera o formulário para criar/enviar novo e-mail ou resposta de e-mail.
656                 * @author Rommel de Brito Cysne <rommel.cysne@serpro.gov.br>
657                 */
658               
659                function new_msg()
660                {
661                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
662                        $p->set_file(
663                                Array(
664                                        'new_msg_t' => 'new_msg.tpl'
665                                )
666                        );
667
668
669                        if (isset($_GET['msg_number']))
670                        {
671                                $params = array(
672                                        'msg_number' => $_GET['msg_number'],
673                                );
674
675                                $msg_number = $_GET['msg_number'];
676                        }
677               
678                        if($params)
679                                $msg = $this->imap_functions->get_info_msg($params);
680
681
682                        $p->set_block('new_msg_t', 'msg_header');
683                        $p->set_block('new_msg_t', 'text');
684                        $p->set_block('new_msg_t', 'begin_form');
685                        $p->set_block('new_msg_t', 'end_form');
686                        $p->set_block('new_msg_t', 'hidden_area');
687
688                        if($_GET['clk'])
689                        {
690
691                                $p->set_var('to_label', lang("To"));
692                                $p->set_var('to', "");
693                                $p->set_var('to_mail', "");
694                                $p->set_var('subject_label', lang("Subject"));
695                                $p->set_var('subject', "");
696
697                        }
698                        else if($_GET['cc_mob'])
699                        {
700
701                                $p->set_var('to_label', lang("To"));
702                                $p->set_var('to', $_GET['input_to']);
703                                $p->set_var('to_mail', $_GET['input_to_mail']);
704
705                                $p->set_var('subject_label', lang("Subject"));
706                                $p->set_var('subject', "");
707
708                                $p->set_var('msg_number', $_GET['msg_number']);
709                                $p->set_var('msg_folder', $_GET['msg_folder']);
710
711                                $p->set_var('read_only', 'readonly');
712                        }
713                        else
714                        {
715
716                                $p->set_var('from_label', lang("From"));
717                                $p->set_var('from', $msg['toaddress2']);
718
719                                $p->set_var('to_label', lang("To"));
720                                $mail_to = $msg['from']['full'];
721                                $p->set_var('to', $msg['from']['name']);
722                                $p->set_var('to_mail', $msg['from']['email']);
723
724                                $p->set_var('subject_label', lang("Subject"));
725                                $p->set_var('subject', "Re:" . $msg['subject']);
726
727                                $p->set_var('msg_number', $_GET['msg_number']);
728                                $p->set_var('msg_folder', $_GET['msg_folder']);
729
730                                $p->set_var('read_only', "readonly");
731                        }
732
733                        $p->set_var('send_label', lang("Send"));
734
735                        $p->set_var('form_action', "index.php?menuaction=mobile.ui_mobilemail.send_mail");
736
737                        /*$p->pfp('out', 'begin_form');
738                        $p->pfp('out', 'msg_header');
739                        $p->pfp('out', 'text');
740                        $p->pfp('out', 'hidden_area');
741                        $p->pfp('out', 'end_form');
742                        */
743                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'begin_form'));
744                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'msg_header'));
745                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'text'));
746                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'hidden_area'));
747                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'end_form'));
748                }
749
750                /*
751                 * @function send_mail()
752                 * @abstract Função que realiza o envio de e-mails.
753                 * @author Rommel de Brito Cysne <rommel.cysne@serpro.gov.br>
754                 */
755                function send_mail()
756                {
757                        //Chamada da classe phpmailer
758                        include_once(PHPGW_SERVER_ROOT."/phpgwapi/inc/class.phpmailer.inc.php");
759
760                        //Recebe os dados do form (passados pelo POST)
761                        $userName = $_POST['input_to']; //"User Someone";
762                        $userMail = $_POST['input_to_mail']; //"user.someone@mail.com.br";
763                        $subject = $_POST['input_subject']; //"Mail Subject";
764                        $body = $_POST['body']; //"Mail body. Any text.";
765
766                        if($userMail == "")
767                        {
768                                $userMail = $userName;
769                        }
770
771                        //Cria objeto
772                        $mail = new PHPMailer();
773
774                        if(!$this->imap_functions->add_recipients("to", $userMail, &$mail))
775                        {
776                                $error_msg = lang("Some addresses in the To field were not recognized. Please make sure that all addresses are properly formed");
777                        }
778
779                        $mail->IsSMTP();
780                        $mail->Host = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpServer'];
781                        $mail->Port = $_SESSION['phpgw_info']['expressomail']['email_server']['smtpPort'];
782
783                        //Envia os emails em formato HTML; se false -> desativa.
784                        $mail->IsHTML(true);
785                        //Email do remetente da mensagem
786                        $mail->Sender = $mail->From = $_SESSION['phpgw_info']['expressomail']['user']['email'];
787                        //Nome do remetente do email
788                        $mail->SenderName = $mail->FromName = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];
789                        //Endereço de destino do email, ou seja, pra onde a mensagem vai
790                        //$mail->AddAddress("$userMail");
791                        //Assunto da mensagem
792                        $mail->Subject = $subject;
793                        //Corpo da mensagem
794                        $mail->Body .= "<br />$body<br />";
795
796                        //Cria um objeto template
797                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
798                        //Define o template para mensagens de retorno da funcao
799                        $p->set_file(
800                                Array(
801                                        'sent_msg_t' => 'sent_msg.tpl'
802                                )
803                        );
804
805                        $p->set_block('sent_msg_t','retorno');
806                        @header('Refresh: 1; url=./');
807
808                        //Se o e-mail nao for enviado por qualquer motivo...
809                        if(!$mail->Send())
810                        {
811                                //... é exibida a mensagem abaixo e o respectivo erro...
812                                $p->set_var('msg', lang("Message not sent"));
813                                $p->set_var('erro', lang("error") . $mail->ErrorInfo);
814
815                        //... caso contrário...
816                        }else {
817                                //... mostra mensagem de sucesso e link de retorno à lista de e-mail
818                                $p->set_var('msg', lang("Message sent successfully"));
819                                //$p->set_var('link_text', lang("Return"));
820                                //$p->set_var('link', "mobilemail_index.php");
821
822                        }
823
824                        //$p->pfp('out','retorno');
825                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out','retorno'));
826
827                }
828
829                function confirm_delete_msg()
830                {                                       
831                        //Cria um objeto template
832                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
833                        //Define o template para mensagens de retorno da funcao
834                        $p->set_file(
835                                Array(
836                                        'delete_msg_t' => 'delete_msg.tpl'
837                                )
838                        );
839                        $p->set_block('delete_msg_t','retorno');                       
840                        $p->set_var('lang_delete_msg', lang("Do you like to delete this message?"));                           
841                        $p->set_var('lang_yes', lang("Yes"));   
842                        $p->set_var('lang_no', lang("No"));
843                        $p->set_var('link_yes', 'index.php?menuaction=mobile.ui_mobilemail.delete_msg&msg_number='.$_GET['msg_number'].'&msg_folder='.$_GET['msg_folder']);
844                        $p->set_var('link_no', 'index.php?menuaction=mobile.ui_mobilemail.show_msg&amp;msg_number='.$_GET['msg_number'].'&amp;msg_folder='.$_GET['msg_folder']);       
845                       
846                        $p->pfp('out','retorno'); 
847                }
848
849                function delete_msg()
850                {
851                        if (isset($_GET['msg_number']))
852                        {
853                                $params = array(
854                                        'msgs_number' => $_GET['msg_number'],
855                                        'folder' => $this->current_folder,
856                                        'new_folder_name' => 'Trash',
857                                        'new_folder' => 'INBOX/Trash'
858                                );
859                        }       
860
861                        $this->imap_functions->move_messages($params);
862                        //Cria um objeto template
863                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
864                        //Define o template para mensagens de retorno da funcao
865                        $p->set_file(
866                                Array(
867                                        'move_msg_t' => 'sent_msg.tpl'
868                                )
869                        );
870                        $p->set_block('move_msg_t','retorno');
871                        //@header('Refresh: 1; url=./ui_mobilemail.index?folder='.$this->current_folder);                       
872                        $p->set_var('msg', lang("The message was moved to trash"));                             
873
874                        $p->pfp('out','retorno');                                 
875                   
876                }
877
878                function retorna()
879                {
880                       
881                }
882
883        }
884?>
Note: See TracBrowser for help on using the repository browser.