1<?php 2/** 3 * Copyright 2012-2017 Horde LLC (http://www.horde.org/) 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 Jan Schneider <jan@horde.org> 9 * @category Horde 10 * @license http://www.horde.org/licenses/apache ASL 11 * @package Ingo 12 */ 13 14/** 15 * The form to manage spam filters. 16 * 17 * @author Jan Schneider <jan@horde.org> 18 * @category Horde 19 * @license http://www.horde.org/licenses/apache ASL 20 * @package Ingo 21 */ 22class Ingo_Form_Spam extends Ingo_Form_Base 23{ 24 /** 25 * The form field for the spam folder. 26 * 27 * @var Horde_Form_Variable 28 */ 29 public $folder_var; 30 31 public function __construct($vars, $title = '', $name = null) 32 { 33 parent::__construct($vars, $title, $name); 34 35 $v = $this->addVariable(_("Spam Level:"), 'level', 'int', true, false, _("Messages with a likely spam score greater than or equal to this number will be treated as spam.")); 36 $v->setHelp('spam-level'); 37 38 $this->folder_var = $this->addVariable(_("Folder to receive spam:"), 'folder', 'ingo_folders', true); 39 $this->folder_var->setHelp('spam-folder'); 40 $this->addHidden('', 'actionID', 'text', false); 41 $this->addHidden('', 'folder_new', 'text', false); 42 43 $this->setButtons(_("Save")); 44 } 45 46 public function renderActive( 47 $renderer = null, $vars = null, $action = '', $method = 'get', 48 $enctype = null, $focus = true 49 ) 50 { 51 if (is_null($vars)) { 52 $vars = $this->_vars; 53 } 54 55 $vars = clone $vars; 56 unset($vars->folder_new); 57 58 parent::renderActive( 59 $renderer, $vars, $action, $method, $enctype, $focus 60 ); 61 } 62 63 public function validate($vars = null, $canAutoFill = false) 64 { 65 if (is_null($vars)) { 66 $vars = $this->_vars; 67 } 68 if (strlen($vars->get('folder_new'))) { 69 $this->folder_var->type->newFolderSet = true; 70 } 71 return parent::validate($vars, $canAutoFill); 72 } 73 74} 75