Aleksander Machniak
2015-11-22 9f1f754daf4b57a0d0d3aea95d2321716d218cf5
commit | author | age
48e9c1 1 <?php
T 2
3 /**
4  * Mark as Junk
5  *
6  * Sample plugin that adds a new button to the mailbox toolbar
7  * to mark the selected messages as Junk and move them to the Junk folder
8  *
9  * @version @package_version@
10  * @license GNU GPLv3+
11  * @author Thomas Bruederli
12  */
13 class markasjunk extends rcube_plugin
14 {
9f1f75 15     public $task = 'mail';
48e9c1 16
9f1f75 17     function init()
AM 18     {
19         $rcmail = rcmail::get_instance();
48e9c1 20
9f1f75 21         $this->register_action('plugin.markasjunk', array($this, 'request_action'));
AM 22         $this->add_hook('storage_init', array($this, 'storage_init'));
48e9c1 23
9f1f75 24         if ($rcmail->action == '' || $rcmail->action == 'show') {
AM 25             $skin_path = $this->local_skin_path();
48e9c1 26
9f1f75 27             $this->add_texts('localization', true);
AM 28             $this->include_script('markasjunk.js');
48e9c1 29
9f1f75 30             if (is_file($this->home . "/$skin_path/markasjunk.css")) {
AM 31                 $this->include_stylesheet("$skin_path/markasjunk.css");
32             }
05da15 33
9f1f75 34             $this->add_button(array(
AM 35                     'type'     => 'link',
36                     'label'    => 'buttontext',
37                     'command'  => 'plugin.markasjunk',
38                     'class'    => 'button buttonPas junk disabled',
39                     'classact' => 'button junk',
40                     'title'    => 'buttontitle',
41                     'domain'   => 'markasjunk'
42                 ),'toolbar');
43         }
7fce8f 44     }
05da15 45
9f1f75 46     function storage_init($args)
AM 47     {
48         $flags = array(
49             'JUNK'    => 'Junk',
50             'NONJUNK' => 'NonJunk',
51         );
52
53         // register message flags
54         $args['message_flags'] = array_merge((array)$args['message_flags'], $flags);
55
56         return $args;
48e9c1 57     }
05da15 58
9f1f75 59     function request_action()
AM 60     {
61         $this->add_texts('localization');
48e9c1 62
9f1f75 63         $rcmail  = rcmail::get_instance();
AM 64         $storage = $rcmail->get_storage();
65
66         foreach (rcmail::get_uids() as $mbox => $uids) {
67             $storage->unset_flag($uids, 'NONJUNK', $mbox);
68             $storage->set_flag($uids, 'JUNK', $mbox);
69         }
70
71         if (($junk_mbox = $rcmail->config->get('junk_mbox'))) {
72             $rcmail->output->command('move_messages', $junk_mbox);
73         }
74
75         $rcmail->output->command('display_message', $this->gettext('reportedasjunk'), 'confirmation');
76         $rcmail->output->send();
77     }
48e9c1 78 }