Exemple #1
0
 /**
  * 
  */
 public function mail_messages_list($p)
 {
     if (in_array('attachment', (array) $p['cols']) && !empty($p['messages'])) {
         foreach ($p['messages'] as $header) {
             $part = new StdClass();
             $part->mimetype = $header->ctype;
             if (libcalendaring::part_is_vcalendar($part)) {
                 $header->list_flags['attachmentClass'] = 'ical';
             } else {
                 if (in_array($header->ctype, array('multipart/alternative', 'multipart/mixed'))) {
                     // TODO: fetch bodystructure and search for ical parts. Maybe too expensive?
                     if (!empty($header->structure) && is_array($header->structure->parts)) {
                         foreach ($header->structure->parts as $part) {
                             if (libcalendaring::part_is_vcalendar($part) && !empty($part->ctype_parameters['method'])) {
                                 $header->list_flags['attachmentClass'] = 'ical';
                                 break;
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Exemple #2
0
 /**
  * libcalendaring::part_is_vcalendar()
  */
 function test_part_is_vcalendar()
 {
     $part = new StdClass();
     $part->mimetype = 'text/plain';
     $part->filename = 'event.ics';
     $this->assertFalse(libcalendaring::part_is_vcalendar($part));
     $part->mimetype = 'text/calendar';
     $this->assertTrue(libcalendaring::part_is_vcalendar($part));
     $part->mimetype = 'text/x-vcalendar';
     $this->assertTrue(libcalendaring::part_is_vcalendar($part));
     $part->mimetype = 'application/ics';
     $this->assertTrue(libcalendaring::part_is_vcalendar($part));
     $part->mimetype = 'application/x-any';
     $this->assertTrue(libcalendaring::part_is_vcalendar($part));
 }