1: <?php
2: /**
3: * The Ingo_Script_Sieve_Action_Fileinto class represents a fileinto action.
4: *
5: * See the enclosed file LICENSE for license information (ASL). If you
6: * did not receive this file, see http://www.horde.org/licenses/apache.
7: *
8: * @author Mike Cochrane <mike@graftonhall.co.nz>
9: * @package Ingo
10: */
11: class Ingo_Script_Sieve_Action_Fileinto extends Ingo_Script_Sieve_Action
12: {
13: /**
14: * Constructor.
15: *
16: * @param array $vars Any required parameters.
17: */
18: public function __construct($vars = array())
19: {
20: $this->_vars['folder'] = isset($vars['folder'])
21: ? $vars['folder']
22: : '';
23:
24: if (!empty($vars['utf8'])) {
25: $this->_vars['folder'] = Horde_String::convertCharset($this->_vars['folder'], 'UTF7-IMAP', 'UTF-8');
26: }
27: }
28:
29: /**
30: * Returns a script snippet representing this rule and any sub-rules.
31: *
32: * @return string A Sieve script snippet.
33: */
34: public function toCode()
35: {
36: return 'fileinto "' . Ingo_Script_Sieve::escapeString($this->_vars['folder']) . '";';
37: }
38:
39: /**
40: * Checks if the rule parameters are valid.
41: *
42: * @return boolean|string True if this rule is valid, an error message
43: * otherwise.
44: */
45: public function check()
46: {
47: return empty($this->_vars['folder'])
48: ? _("Inexistant mailbox specified for message delivery.")
49: : true;
50: }
51:
52: /**
53: * Returns a list of sieve extensions required for this rule and any
54: * sub-rules.
55: *
56: * @return array A Sieve extension list.
57: */
58: public function requires()
59: {
60: return array('fileinto');
61: }
62:
63: }
64: