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

Revision 691, 29.7 KB checked in by eduardoalex, 15 years ago (diff)

Ticket #449.

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