1: <?php
2: /**
3: * Autocreate special mailboxes on login.
4: *
5: * Copyright 2011-2012 Horde LLC (http://www.horde.org/)
6: *
7: * See the enclosed file COPYING for license information (GPL). If you
8: * did not receive this file, see http://www.horde.org/licenses/gpl.
9: *
10: * @author Michael Slusarz <slusarz@horde.org>
11: * @category Horde
12: * @license http://www.horde.org/licenses/gpl GPL
13: * @package IMP
14: */
15: class IMP_LoginTasks_Task_Autocreate extends Horde_LoginTasks_Task
16: {
17: /**
18: * The interval at which to run the task.
19: *
20: * @var integer
21: */
22: public $interval = Horde_LoginTasks::EVERY;
23:
24: /**
25: * Display type.
26: *
27: * @var integer
28: */
29: public $display = Horde_LoginTasks::DISPLAY_NONE;
30:
31: /**
32: * Constructor.
33: */
34: public function __construct()
35: {
36: $this->active = !empty($GLOBALS['conf']['user']['autocreate_special']);
37: }
38:
39: /**
40: * Autocreate special mailboxes on login.
41: */
42: public function execute()
43: {
44: foreach (IMP_Mailbox::getSpecialMailboxes() as $key => $val) {
45: if (is_null($val)) {
46: continue;
47: }
48:
49: switch ($key) {
50: case IMP_Mailbox::SPECIAL_DRAFTS:
51: $val->create(array(
52: 'special_use' => array(Horde_Imap_Client::SPECIALUSE_DRAFTS)
53: ));
54: break;
55:
56: case IMP_Mailbox::SPECIAL_SENT:
57: foreach ($val as $mbox) {
58: $mbox->create(array(
59: 'special_use' => array(Horde_Imap_Client::SPECIALUSE_SENT)
60: ));
61: }
62: break;
63:
64: case IMP_Mailbox::SPECIAL_SPAM:
65: $val->create(array(
66: 'special_use' => array(Horde_Imap_Client::SPECIALUSE_JUNK)
67: ));
68: break;
69:
70: case IMP_Mailbox::SPECIAL_TRASH:
71: $val->create(array(
72: 'special_use' => array(Horde_Imap_Client::SPECIALUSE_TRASH)
73: ));
74: break;
75: }
76: }
77: }
78:
79: }
80: