| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- <?php
 - 
 - /**
 -  * Show additional message headers
 -  *
 -  * Proof-of-concept plugin which will fetch additional headers
 -  * and display them in the message view.
 -  *
 -  * Enable the plugin in config.inc.php and add your desired headers:
 -  *   $config['show_additional_headers'] = array('User-Agent');
 -  *
 -  * @version @package_version@
 -  * @author Thomas Bruederli
 -  * @license GNU GPLv3+
 -  */
 - class show_additional_headers extends rcube_plugin
 - {
 -   public $task = 'mail';
 - 
 -   function init()
 -   {
 -     $rcmail = rcmail::get_instance();
 -     if ($rcmail->action == 'show' || $rcmail->action == 'preview') {
 -       $this->add_hook('storage_init', array($this, 'storage_init'));
 -       $this->add_hook('message_headers_output', array($this, 'message_headers'));
 -     } else if ($rcmail->action == '') {
 -       // with enabled_caching we're fetching additional headers before show/preview
 -       $this->add_hook('storage_init', array($this, 'storage_init'));
 -     }
 -   }
 - 
 -   function storage_init($p)
 -   {
 -     $rcmail = rcmail::get_instance();
 -     if ($add_headers = (array)$rcmail->config->get('show_additional_headers', array()))
 -       $p['fetch_headers'] = trim($p['fetch_headers'].' ' . strtoupper(join(' ', $add_headers)));
 - 
 -     return $p;
 -   }
 - 
 -   function message_headers($p)
 -   {
 -     $rcmail = rcmail::get_instance();
 -     foreach ((array)$rcmail->config->get('show_additional_headers', array()) as $header) {
 -       if ($value = $p['headers']->get($header))
 -         $p['output'][$header] = array('title' => $header, 'value' => $value);
 -     }
 - 
 -     return $p;
 -   }
 - }
 
 
  |