source: branches/2.2/mobile/inc/class.ui_home.inc.php @ 3564

Revision 3564, 6.4 KB checked in by eduardoalex, 13 years ago (diff)

Ticket #1404 - Criada a tela inicial do Expresso Mini.

Line 
1<?php
2    class ui_home {
3                var $imap_functions;   
4                var $db;
5                var $bocalendar;
6                var $common;
7                var $template;
8       
9                var $public_functions = array(
10                        'index' => true,
11                        'search' => true
12                );
13               
14                function ui_home() {
15                        $this->template = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']);
16                        $this->common   = CreateObject('mobile.common_functions');
17                        $this->imap_functions   = CreateObject('expressoMail1_2.imap_functions');
18                        $this->db       = CreateObject('phpgwapi.db');
19                        $this->bocalendar = CreateObject('calendar.bocalendar');
20                }
21               
22                function index($params) {                       
23                        $this->template->set_file(Array('home_index' => 'home_index.tpl'));
24                        $this->template->set_block('home_index','page');       
25                        $this->template->set_block('home_index','folder_block');
26                        $this->template->set_block('home_index','commitment_block');
27                       
28                        //langs
29                        $this->template->set_var('lang_context_email', lang("context email"));
30                        $this->template->set_var('lang_context_contact', lang("context contact"));
31                        $this->template->set_var('lang_context_commitment', lang("context commitment"));
32                        $this->template->set_var('lang_search', lang("search"));
33                        $this->template->set_var('lang_my_mail', lang("my mail"));
34                        $this->template->set_var('lang_my_folders', lang("my folders"));
35                        $this->template->set_var('lang_my_commitments', lang("my commitments"));
36                        $this->template->set_var('lang_new_mail', lang("new mail"));
37                        $this->template->set_var('lang_mark_as_read', lang("mark as read"));
38                        $this->template->set_var('lang_selected', lang("selected"));
39                       
40                        $accountId = $GLOBALS['phpgw_info']['user']['account_id'];
41                       
42                        //pegando as pastas
43                        $default_folders = $this->imap_functions->get_folders_list(array('noSharedFolders' => true, 'folderType' => 'default', 'noQuotaInfo' => true));
44                        $total_quota = $this->imap_functions->get_quota(array());               
45                                       
46                        $this->set_folder_block($default_folders, "default_folders_box");
47                       
48                        if(isset($params["expand_folders"]) && $params["expand_folders"] == 1)
49                        {
50                                $personal_folders = $this->imap_functions->get_folders_list(array('noSharedFolders' => true, 'folderType' => 'personal', 'noQuotaInfo' => true));
51                                $this->set_folder_block($personal_folders, "personal_folders_box", sizeof($default_folders));
52                                $this->template->set_var('expand_folders', 0);                 
53                        } else {
54                                $this->template->set_var('expand_folders', 1);
55                        }
56                       
57                        $this->template->set_var('quota_percent', $total_quota["quota_percent"]);
58                        $this->template->set_var('quota_used', $this->common->borkb($total_quota["quota_used"]*1024));
59                        $this->template->set_var('quota_limit', $this->common->borkb($total_quota["quota_limit"]*1024));
60                       
61                        //pegando os eventos do dia atual
62                        $year = $this->bocalendar->year;
63                        $month = $this->bocalendar->month;
64                        $day = $this->bocalendar->day;
65                       
66                        $tstart = mktime(0,0,0,$month,$day,$year);
67                        //$tstart = $GLOBALS['phpgw']->datetime->get_weekday_start($year, $month, $day);
68                       
69                        $tstop = $tstart + 86400; //(24horas*60min*60seg*1dia)                 
70                        $this->bocalendar->so->owner = $accountId;
71                        $this->bocalendar->so->open_box($accountId);
72                        $this->bocalendar->store_to_cache( array(
73                                'owner' => $accountId,
74                                'syear'  => date('Y',$tstart),
75                                'smonth' => date('m',$tstart),
76                                'sday'   => date('d',$tstart),
77                                'eyear'  => date('Y',$tstop),
78                                'emonth' => date('m',$tstop),
79                                'eday'   => date('d',$tstop)
80                        ) );
81                       
82                        $events  = $this->bocalendar->cached_events;
83                       
84                        foreach($events[$year.$this->common->complete_string($month,2,"R","0").$this->common->complete_string($day,2,"R","0")] as $index=>$event)
85                        {
86                                $this->template->set_var('dd_class', (($index%2==0) ? "par" : "") );
87                                $this->template->set_var('commitment_time', $this->common->complete_string($event["start"]["hour"],2,"R","0") .":". $this->common->complete_string($event["start"]["min"],2,"R","0") );
88                                $this->template->set_var('commitment_title', $event["title"] );
89                               
90                                $this->template->parse('commitments_box', 'commitment_block' ,True);
91                        }                       
92                       
93                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($this->template->fp('out', 'page'));
94                }
95               
96                /**
97                 *
98                 *
99                 * $index_increment utilizado para quando passar o array das pastas pessoais somar com a quantidade de pastas default.
100                 */
101                function set_folder_block($folders, $box_target, $index_increment = 0) {
102                        foreach($folders as $index=>$folder)
103                        {
104                                $this->template->set_var('dd_class', (($index%2==0) ? "par" : "") );
105                                $this->template->set_var('folder_id', $index + $index_increment );
106                                $this->template->set_var('folder_name', $folder["folder_name"] );
107                                $this->template->set_var('folder_unseen', $folder["folder_unseen"] );
108                               
109                                $this->imap_functions->open_mbox($folder["folder_id"],true);
110                                $this->template->set_var('folder_total_msg', $this->imap_functions->get_num_msgs(array('folder' => $folder["folder_id"] ) ) );
111                               
112                                $this->template->parse($box_target, 'folder_block' ,True);
113                        }
114                }
115               
116        function search($params) {
117                        $params['name'] = 'teste';
118                        $params['default_folders'] = 1;
119
120                        //Contacts                     
121                        $bo_cc =  CreateObject('mobile.bo_mobilecc');
122                       
123                        $catalogs = $bo_cc->get_all_catalogs();
124
125                        $contacts_result = array();
126                        foreach($catalogs as $catalog) {
127                                $bo_cc->set_catalog($catalog['catalog']);
128                                $partial_result = $bo_cc->search($params['name']);
129                                $contacts_result = array_merge($contacts_result,$partial_result);
130                        }
131//                      print_r($contacts_result);
132
133                        //E-mails
134                        $no_mail_search=false;
135                        $imap_functions = CreateObject('expressoMail1_2.imap_functions');
136                        $mail_params = array('filter' => $params["name"]);
137                        if(isset($params['default_folders'])) {
138                                if(!isset($params['personal_folders']))
139                                        $mail_params['folderType'] = 'default';                 
140                        }
141                        else {
142                                if(isset($params['personal_folders']))
143                                        $mail_params['folderType'] = 'personal';
144                                else
145                                        $no_mail_search = true;
146                        }
147                       
148                        if(!$no_mail_search)
149                                $messages = $imap_functions->mobile_search($mail_params);
150                       
151//                      print_r($messages);
152
153                        //calendar
154                        ini_set('display_errors','1');
155                        $bo_calendar = CreateObject('calendar.bocalendar',1);
156                        $event_ids = $bo_calendar->search_keywords($params['name']);
157                        foreach($event_ids as $key => $id)
158                        {
159                                $event = $bo_calendar->read_entry($id);
160
161                                if(!$bo_calendar->check_perms(PHPGW_ACL_READ,$event))
162                                {
163                                        continue;
164                                }
165
166                                //TODO Montar as linhas com os eventos
167               
168                        }
169                }
170
171                /* TODO Temporário esse método */
172                function debug($var) {
173                        echo "<pre>";
174                        print_r($var);
175                        echo "</pre>";                 
176                }
177               
178        }
179?>
Note: See TracBrowser for help on using the repository browser.