Ingo_Basic_Spam::_init PHP Метод

_init() защищенный Метод

protected _init ( )
    protected function _init()
    {
        global $injector, $notification;
        $this->_assertCategory('Ingo_Rule_System_Spam', _("Spam filtering"));
        if ($this->vars->submitbutton == _("Return to Rules List")) {
            Ingo_Basic_Filters::url()->redirect();
        }
        /* Get the spam object and rule. */
        $ingo_storage = $injector->getInstance('Ingo_Factory_Storage')->create();
        $spam = $ingo_storage->getSystemRule('Ingo_Rule_System_Spam');
        /* Build form. */
        $form = new Ingo_Form_Spam($this->vars);
        $renderer = new Horde_Form_Renderer(array('encode_title' => false, 'varrenderer_driver' => array('ingo', 'ingo')));
        /* Perform requested actions. Ingo_Form_Spam does token checking for
         * us .*/
        if ($form->validate($this->vars)) {
            $success = false;
            try {
                $spam->mailbox = $this->validateMbox('folder');
                $success = true;
            } catch (Horde_Exception $e) {
                $notification->push($e);
            }
            $spam->level = $this->vars->level;
            try {
                if ($this->vars->submitbutton == _("Save and Enable")) {
                    $spam->disable = false;
                    $notify = _("Rule Enabled");
                } elseif ($this->vars->submitbutton == _("Save and Disable")) {
                    $spam->disable = true;
                    $notify = _("Rule Disabled");
                } else {
                    $notify = _("Changes saved.");
                }
                $ingo_storage->updateRule($spam);
                $notification->push($notify, 'horde.success');
                $injector->getInstance('Ingo_Factory_Script')->activateAll();
            } catch (Ingo_Exception $e) {
                $notification->push($e);
            }
        }
        /* Add buttons depending on the above actions. */
        $form->setCustomButtons($spam->disable);
        /* Set default values. */
        $form->folder_var->type->setFolder($spam->mailbox);
        if (!$form->isSubmitted()) {
            $this->vars->level = $spam->level;
            $this->vars->folder = $spam->mailbox;
            $this->vars->actionID = '';
        }
        /* Set form title. */
        $form_title = _("Spam Filtering");
        if ($spam->disable) {
            $form_title .= ' [<span class="horde-form-error">' . _("Disabled") . '</span>]';
        }
        $form_title .= ' ' . Horde_Help::link('ingo', 'spam');
        $form->setTitle($form_title);
        $this->header = _("Spam Filtering");
        Horde::startBuffer();
        Horde_Util::pformInput();
        $form->renderActive($renderer, $this->vars, self::url(array('append_session' => -1)), 'post');
        $this->output = Horde::endBuffer();
    }
Ingo_Basic_Spam