1: <?php
2: /**
3: * The Ingo_Script_Sieve_Action_Reject class represents a reject 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_Reject 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['reason'] = isset($vars['reason'])
21: ? $vars['reason']
22: : '';
23: }
24:
25: /**
26: * Returns a script snippet representing this rule and any sub-rules.
27: *
28: * @return string A Sieve script snippet.
29: */
30: public function toCode()
31: {
32: return 'reject "' . Ingo_Script_Sieve::escapeString($this->_vars['reason']) . '";';
33: }
34:
35: /**
36: * Checks if the rule parameters are valid.
37: *
38: * @return boolean|string True if this rule is valid, an error message
39: * otherwise.
40: */
41: public function check()
42: {
43: return empty($this->_vars['reason'])
44: ? _("Missing reason for reject")
45: : true;
46: }
47:
48: /**
49: * Returns a list of sieve extensions required for this rule and any
50: * sub-rules.
51: *
52: * @return array A Sieve extension list.
53: */
54: public function requires()
55: {
56: return array('reject');
57: }
58:
59: }
60: