Ignore:
Timestamp:
12/10/10 11:09:39 (13 years ago)
Author:
eduardoalex
Message:

Ticket #1406 - primeira versão da implementação da busca

Location:
branches/2.2/mobile/inc
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/mobile/inc/class.common_functions.inc.php

    r3564 r3573  
    5858                }                
    5959                 
     60                function strach_string($string,$size) { 
     61                        return strlen($string)>$size ? substr($string,0,$size)."...": 
     62                                                                                $string; 
     63                } 
     64                 
    6065        } //end common class 
    6166         
  • branches/2.2/mobile/inc/class.ui_home.inc.php

    r3571 r3573  
    116116                 
    117117        function search($params) { 
    118                         $params['name'] = 'teste'; 
    119                         $params['default_folders'] = 1; 
    120  
    121                         //Contacts                       
    122                         $bo_cc =  CreateObject('mobile.bo_mobilecc'); 
    123                          
    124                         $catalogs = $bo_cc->get_all_catalogs(); 
    125  
    126                         $contacts_result = array(); 
    127                         foreach($catalogs as $catalog) { 
    128                                 $bo_cc->set_catalog($catalog['catalog']); 
    129                                 $partial_result = $bo_cc->search($params['name']); 
    130                                 $contacts_result = array_merge($contacts_result,$partial_result); 
     118                        include_once "class.ui_mobilecc.inc.php"; 
     119                        $ui_mobilemail = CreateObject("mobile.ui_mobilemail");//Necessário para lista de emails, que é uma função estática 
     120 
     121                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']); 
     122                        $p->set_file( 
     123                                Array( 
     124                                        'search' => 'home_search.tpl' 
     125                                ) 
     126                        ); 
     127                         
     128                        //Langs gerais da página 
     129                        $p->set_block('search','home_search'); 
     130                        $p->set_var('search_param',$params['name']); 
     131                        $p->set_var('lang_back',lang('back')); 
     132                        $p->set_var('lang_new_message',ucfirst(lang('new message'))); 
     133                        $p->set_var('lang_search',lang('search')); 
     134                        $p->set_var('lang_search_return',lang('search return')); 
     135                        $p->set_var('lang_your_search_was_by',ucfirst(lang('your search was by'))); 
     136                        $p->set_var('lang_emails',ucfirst(lang('e-mails'))); 
     137                        $p->set_var('lang_contacts',ucfirst(lang('contacts'))); 
     138                        $p->set_var('lang_calendar',ucfirst(lang('calendar'))); 
     139                        $p->set_var('lang_events',lang('events')); 
     140                        $p->set_var('default_folders',$params['default_folders']); 
     141                        $p->set_var('personal_folders',$params['personal_folders']);     
     142                        $p->set_var('contacts_search',$params['contacts_search']);       
     143                        $p->set_var('calendar_search',$params['calendar_search']); 
     144                        $p->set_var('lang_more',lang("more"));   
     145                        $p->set_var('lang_messages',lang("messages")); 
     146                        $p->set_var('show_more_contacts',"none"); 
     147                        $p->set_var('show_more_messages',"none"); 
     148                        $p->set_var('show_more_events',"none"); 
     149                         
     150                        //Contatos                       
     151                        if($params["contacts_search"]==="1") { 
     152                                $bo_cc =  CreateObject('mobile.bo_mobilecc'); 
     153                                $catalogs = $bo_cc->get_all_catalogs(); 
     154         
     155                                $max_contacts = isset($params['max_contacts'])?$params['max_contacts']:10; 
     156                                $contacts_result = array(); 
     157                                $p->set_var('next_max_contacts',$max_contacts+10); 
     158                                $p->set_var('max_contacts',$max_contacts); 
     159                                 
     160                                 
     161                                foreach($catalogs as $catalog) { 
     162                                        if(count($contacts_result)>=$max_contacts) { 
     163                                                $bo_cc->set_catalog($catalog['catalog']); 
     164                                                $partial_result = $bo_cc->search($params['name'],"1"); 
     165                                                if(count($partial_result)>1) { 
     166                                                        $p->set_var('show_more_contacts',"block"); 
     167                                                } 
     168                                                break; 
     169                                        } 
     170                                        $max_to_search = $max_contacts - count($contacts_result);//Só posso pedir no máximo o número máximo a ser visto menos o que já foi achado. 
     171                                        $bo_cc->set_catalog($catalog['catalog']); 
     172                                        $partial_result = $bo_cc->search($params['name'],$max_to_search); 
     173                                        if($partial_result["has_more"]) { 
     174                                                $p->set_var('show_more_contacts',"block"); 
     175                                                unset($partial_result["has_more"]); 
     176                                        } 
     177                                        $contacts_result = array_merge($contacts_result,$partial_result); 
     178                                         
     179                                } 
     180                                $p->set_var('contacts',ui_mobilecc::print_contacts($contacts_result)); 
     181                        } 
     182                        else { 
     183                                $p->set_var('show_contacts',"none"); 
    131184                        } 
    132185 
    133186                        //E-mails 
    134187                        $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'])) 
     188                        if($params['default_folders']==="1") { 
     189                                if($params['personal_folders']!=="1") 
    139190                                        $mail_params['folderType'] = 'default';                  
    140191                        } 
    141192                        else { 
    142                                 if(isset($params['personal_folders'])) 
     193                                if($params['personal_folders']==="1") 
    143194                                        $mail_params['folderType'] = 'personal'; 
    144195                                else 
    145196                                        $no_mail_search = true; 
    146                         } 
    147                          
    148                         if(!$no_mail_search) 
     197                        }                        
     198 
     199                        if(!$no_mail_search) { 
     200                                $imap_functions = CreateObject('expressoMail1_2.imap_functions'); 
     201                                $mail_params['filter'] = $params["name"]; 
     202                                $mail_params['max_msgs'] = isset($params['max_msgs'])?$params['max_msgs']:10; 
     203                                 
     204                                $p->set_var('next_max_msgs',$mail_params['max_msgs']+10); 
     205                                $p->set_var('max_msgs',$mail_params['max_msgs']); 
     206 
    149207                                $messages = $imap_functions->mobile_search($mail_params); 
    150                          
    151                         //calendar 
    152                         ini_set('display_errors','1'); 
    153                         $bo_calendar = CreateObject('calendar.bocalendar',1); 
    154                         $event_ids = $bo_calendar->search_keywords($params['name']); 
    155                         foreach($event_ids as $key => $id) 
    156                         { 
    157                                 $event = $bo_calendar->read_entry($id); 
    158  
    159                                 if(!$bo_calendar->check_perms(PHPGW_ACL_READ,$event)) 
    160                                 { 
    161                                         continue; 
     208                                if($mail_params['max_msgs']>=$messages["total_msgs"]) 
     209                                        $p->set_var('show_more_messages',"none"); 
     210                                else 
     211                                        $p->set_var('show_more_messages',"block"); 
     212                                $p->set_var('mails',$ui_mobilemail->print_mails_list($messages)); 
     213                        } 
     214                        else { 
     215                                $p->set_var('show_mails',"none"); 
     216                        } 
     217                         
     218                        //Agenda 
     219                        if($params["calendar_search"]==="1") { 
     220                                $bo_calendar = CreateObject('calendar.bocalendar',1); 
     221                                $functions = CreateObject('mobile.common_functions'); 
     222                                 
     223                                $max_events = isset($params['max_events'])?$params['max_events']:10; 
     224                                $p->set_var('next_max_events',$max_events+10); 
     225                                $p->set_var('max_events',$max_events); 
     226                                 
     227                                $event_ids = $bo_calendar->search_keywords($params['name']); 
     228                                $p->set_block("search","row_events"); 
     229                                $p->set_block("search","no_events"); 
     230                                $bg = "par"; 
     231                                if(!empty($event_ids)) { 
     232                                        $total_events_search = count($event_ids); 
     233                                        $event_ids = array_slice($event_ids,0,$max_events,true); 
     234                                        if($total_events_search>count($event_ids)) 
     235                                                $p->set_var('show_more_events',"block"); 
     236                                        foreach($event_ids as $key => $id) 
     237                                        { 
     238                                                $event = $bo_calendar->read_entry($id); 
     239                                                 
     240                                                if(!$bo_calendar->check_perms(PHPGW_ACL_READ,$event)) 
     241                                                { 
     242                                                        continue; 
     243                                                } 
     244         
     245                                                $p->set_var("bg",$bg=="par"?$bg="reset-dt":$bg="par"); 
     246                                                $p->set_var("date",$functions->complete_string($event["start"]["mday"],2,"R","0")."/". 
     247                                                                                        $functions->complete_string($event["start"]["month"],2,"R","0")."/". 
     248                                                                                        $event["start"]["year"]." ". 
     249                                                                                        $functions->complete_string($event["start"]["hour"],2,"R","0").":". 
     250                                                                                        $functions->complete_string($event["start"]["min"],2,"R","0")); 
     251                                                $p->set_var("title",$functions->strach_string($event["title"],40)); 
     252                                                $p->set_var("description",$functions->strach_string($event["description"],80)); 
     253                                                $p->fp("calendar_results","row_events",True); 
     254                                 
     255                                        } 
    162256                                } 
    163  
    164                                 //TODO Montar as linhas com os eventos 
    165                  
    166                         } 
    167                 } 
     257                                else { 
     258                                        $p->set_var("lang_no_results",lang("no results found")); 
     259                                        $p->parse("calendar_results","no_events"); 
     260                                } 
     261                        } 
     262                        else { 
     263                                $p->set_var("show_calendar","none"); 
     264                        } 
     265                        $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out','home_search')); 
     266 
     267                } 
     268                 
    168269                 
    169270        } 
  • branches/2.2/mobile/inc/class.ui_mobilecc.inc.php

    r3268 r3573  
    460460                } 
    461461                 
     462                static function print_contacts($contacts) { 
     463                        $functions = CreateObject('mobile.common_functions'); 
     464                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']); 
     465                                        $p->set_file( 
     466                                                Array( 
     467                                                        'cc_t' => 'contacts_list.tpl' 
     468                                                ) 
     469                                        ); 
     470                        $p->set_block('cc_t', 'rows_contacts'); 
     471                        $p->set_block('cc_t', 'row_contacts'); 
     472                        $p->set_block('cc_t', 'no_contacts'); 
     473                         
     474                        $bg = "par"; 
     475                        if(!empty($contacts)) { 
     476                                foreach($contacts as $id => $contact) { 
     477                                         
     478                                        $p->set_var('bg',$bg=="par"?$bg="reset-dt":$bg="par");                                                   
     479                                        $p->set_var('lang_tel',lang("tel")); 
     480                                        $p->set_var('show_tel',$contact["connections"]["connection2"]["connection_value"]!=null?"inline":"none"); 
     481                                        $p->set_var('lang_see_details',strtoupper(lang("see details"))); 
     482                                        $p->set_var('contact_name',$functions->strach_string(is_array($contact["names_ordered"])? 
     483                                                                        $contact["names_ordered"][0]:$contact["names_ordered"],20)); 
     484                                        $p->set_var('email', 
     485                                                                $functions->strach_string( 
     486                                                                        ($contact["connections"]["connection1"]["connection_value"]!=null &&  
     487                                                                        $contact["connections"]["connection1"]["id_type"]==="1")? 
     488                                                                                $contact["connections"]["connection1"]["connection_value"]:" ",20)); 
     489                                        $p->set_var('tel',$functions->strach_string($contact["connections"]["connection1"]["id_type"]==="2"? 
     490                                                                                $contact["connections"]["connection1"]["connection_value"]: 
     491                                                                                $contact["connections"]["connection2"]["connection_value"],19)); 
     492                                                 
     493                                        $p->fp('rows','row_contacts',True); 
     494                                } 
     495                        } 
     496                        else { 
     497                                $p->set_var("lang_no_results",lang("no results found")); 
     498                                $p->parse("rows","no_contacts"); 
     499                        } 
     500                        return $p->fp('out','rows_contacts'); 
     501                } 
     502                 
    462503        } 
     504         
     505         
     506         
     507         
    463508?> 
  • branches/2.2/mobile/inc/class.ui_mobilemail.inc.php

    r3571 r3573  
    431431                function print_mails_list($messages) 
    432432                { 
    433  
    434                         // Cria a lista de e-mails 
    435                         $mail_rows = ''; 
    436       $unread_msg_count = 0; 
    437        
    438                         if ($this->number_of_messages != 0) 
    439                         { 
    440                                 $unread_msg_count = 0; 
    441                                 foreach ($messages as $index => $msg) 
    442                                 { 
    443                                   $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']); 
    444                                         $p->set_file(array('mobilemail_t' => 'mobilemail.tpl')); 
    445                                         $p->set_block('mobilemail_t', 'mail_row'); 
    446                                         $p->set_block('mobilemail_t', 'end_strong'); 
    447                                         $p->set_block('mobilemail_t', 'begin_strong'); 
    448                                         $p->set_var('unseen_bkg', "seen_bkg"); 
    449                                         $p->set_var('itememail_access_key', "0"); 
    450                                         $p->set_var('str_new_message', ""); 
    451  
    452                                         if (is_numeric($index)) 
    453                                         { 
    454                                                 !empty($msg['from']['name']) ? $from = $msg['from']['name'] : $from = $msg['from']['email']; 
    455                                                 !empty($msg['subject']) ? $subject = $msg['subject'] : $subject = lang('[empty subject]'); 
    456                                                 if ($msg['Unseen'] == 'U') 
    457                                                 { //Setando as mensagens nao lidas 
    458                                                         $p->set_var('strong_unseen_begin', trim($p->fp('mobilemail_t', 'begin_strong'))); 
    459                                                         $p->set_var('strong_unseen_end', trim($p->fp('mobilemail_t', 'end_strong'))); 
    460                                                         $p->set_var('unseen_bkg', "unseen_bkg"); 
    461                                                         $p->set_var('itememail_access_key', "9"); 
    462                                                         $unread_msg_count = $unread_msg_count + 1; 
    463                                                         $p->set_var('str_new_message', lang("New message")); 
    464                                                 } 
    465                                                 $p->set_var('from', $from); 
    466                                                 $p->set_var('subject', $subject); 
    467                                                 $p->set_var('msg_number', $msg['msg_number']); 
    468                                                 $p->set_var('date', $msg['smalldate']); 
    469                                                 $p->set_var('msg_folder', $this->folders[$this->current_folder]['folder_id']); 
    470                                                 $p->set_var('from_label', lang('From')); 
    471                                                 $mail_rows .= $p->fp('mobilemail_t', 'mail_row'); 
     433                         
     434                        $functions = CreateObject('mobile.common_functions'); 
     435                        $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']); 
     436                                        $p->set_file( 
     437                                                Array( 
     438                                                        'mobilemail_t' => 'mails_list.tpl' 
     439                                                ) 
     440                                        ); 
     441                        $p->set_block('mobilemail_t', 'rows_mails'); 
     442                        $p->set_block('mobilemail_t', 'row_mails'); 
     443                        $p->set_block('mobilemail_t', 'no_messages'); 
     444 
     445                        if(count($messages)>1) { //O array de emails tem pelo menos uma posição com o total de mensagens. 
     446                                $bg = "par"; 
     447         
     448                                foreach($messages as $id => $message) { 
     449                                         
     450                                        if(($id==='num_msgs') ||($id==='total_msgs')) 
     451                                                continue; 
     452                                        if($message['from']['name']) 
     453                                                $from_name = $functions->strach_string($message['from']['name'],20); 
     454                                        else 
     455                                                $from_name = $functions->strach_string($message['from']['email'],20); 
     456                                         
     457                                        $p->set_var('bg',$bg=="par"?$bg="reset-dt":$bg="par");                                                   
     458                                        $p->set_var('from',$from_name); 
     459                                        $p->set_var('mail_time',$message['smalldate']); 
     460                                        $p->set_var('mail_from',$functions->strach_string($message['from']['email'],23)); 
     461                                        $p->set_var('subject',$functions->strach_string($message['subject'],25)); 
     462                                        $p->set_var('size',$functions->borkb($message['Size'])); 
     463                                        $p->set_var('lang_attachment',lang('ATTACHMENT')); 
     464                                        $p->set_var('msg_number', $message['msg_number']); 
     465                                        $p->set_var('msg_folder', isset($message['msg_folder'])? 
     466                                                                        $message['msg_folder']:$this->folders[$this->current_folder]['folder_id']); 
     467                                        if($message['attachment']['number_attachments']>0) { 
     468                                                $p->set_var('show_attach','inline'); 
     469                                                $p->set_var('no_attach_space','none'); 
    472470                                        } 
    473                                 } 
    474      
    475                                 // Imprime a lista de e-mails 
    476                                 $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']); 
    477                                 $p->set_file(array('mobilemail_t' => 'mobilemail.tpl')); 
    478                                 $p->set_block('mobilemail_t', 'mail_list'); 
    479                                 $p->set_var('mail_rows', $mail_rows); 
    480                                 $p->set_var('messages_total', $this->number_of_messages); 
    481                                 $p->set_var('unread_messages_total', $unread_msg_count); 
    482                                 if ($unread_msg_count) 
    483                                 { 
    484                                         $p->set_var('(unread_messages_total)', '('.$unread_msg_count.')'); 
    485                                 } 
    486                                  
    487                                 //$p->pfp('out', 'mail_list'); 
    488                                 $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'mail_list')); 
    489                         } 
    490                         else 
    491                         { 
    492                                 // Lista de e-mails vazia 
    493                                 $p = CreateObject('phpgwapi.Template', PHPGW_SERVER_ROOT . '/mobile/templates/'.$GLOBALS['phpgw_info']['server']['template_set']); 
    494                                 $p->set_file(array('mobilemail_t' => 'mobilemail.tpl')); 
    495                                 $p->set_block('mobilemail_t', 'empty_list'); 
    496                                 $p->set_var('empty_message', lang('Empty folder'));                              
    497                                 //$p->pfp('out', 'empty_list'); 
    498                                 $GLOBALS['phpgw_info']['mobiletemplate']->set_content($p->fp('out', 'empty_list')); 
    499                         } 
     471                                        else { 
     472                                                $p->set_var('show_attach','none'); 
     473                                                $p->set_var('no_attach_space','block'); 
     474                                        } 
     475                                                 
     476                                        $p->fp('rows','row_mails',True); 
     477                                } 
     478                        } 
     479                        else { 
     480                                $p->set_var("lang_no_results",lang("no results found")); 
     481                                $p->parse("rows","no_messages"); 
     482                        } 
     483                        return $p->fp('out','rows_mails'); 
    500484                } 
    501485 
Note: See TracChangeset for help on using the changeset viewer.