comparison plugins/thunderbird_labels/thunderbird_labels.php @ 20:c3a974bdb435

a bit further on flag+parm
author Charlie Root
date Tue, 16 Jan 2018 13:09:08 -0500
parents 49706603be30
children 678dcc5152a8
comparison
equal deleted inserted replaced
19:49706603be30 20:c3a974bdb435
328 // loop over all messages and add $LabelX info to the extra_flags 328 // loop over all messages and add $LabelX info to the extra_flags
329 foreach($args['messages'] as $message) 329 foreach($args['messages'] as $message)
330 { 330 {
331 #rcube::write_log($this->name, print_r($message->flags, true)); 331 #rcube::write_log($this->name, print_r($message->flags, true));
332 $message->list_flags['extra_flags']['tb_labels'] = array(); # always set extra_flags, needed for javascript later! 332 $message->list_flags['extra_flags']['tb_labels'] = array(); # always set extra_flags, needed for javascript later!
333 if (is_array($message->flags)) 333 $message->list_flags['extra_flags']['tb_parms'] = array();
334 foreach ($message->flags as $flagname => $flagvalue) 334 foreach ($message->flags as $flagname => $flagvalue)
335 { 335 {
336 $flag = is_numeric("$flagvalue")? $flagname:$flagvalue;// for compatibility with < 0.5.4 336 $flag = is_numeric("$flagvalue")? $flagname:$flagvalue;// for compatibility with < 0.5.4
337 $flag = strtolower($flag); 337 $flag = strtolower($flag);
338 if (preg_match('/^\$?label/', $flag)) 338 if (preg_match('/^\$?label/', $flag))
339 { 339 {
340 $flag_no = preg_replace('/^\$?label/', '', $flag); 340 $flag_no = preg_replace('/^\$?label/', '', $flag);
341 rcube::write_log($this->name, "Flag:".$flag." Flag_no:".$flag_no); 341 rcube::write_log($this->name, "Flag:".$flag." Flag_no:".$flag_no);
342 $message->list_flags['extra_flags']['tb_labels'][] = (int)$flag_no; 342 if ($ppos = strpos($flag_no,'_') > -1) {
343 // We have a flag parameter value...
344 $message->list_flags['extra_flags']['tb_lparms'][]=array(
345 'number' => substr($flag_no,0,$ppos),
346 'parm' => substr($flag_no,$ppos+1));
347 }
348 else {
349 $message->list_flags['extra_flags']['tb_labels'][] = (int)$flag_no;
350 }
343 } 351 }
344 } 352 }
345 } 353 }
346 return($args); 354 return($args);
347 } 355 }