Вход Регистрация
Файл: library/XenForo/ControllerAdmin/CaptchaQuestion.php
Строк: 179
<?php

class XenForo_ControllerAdmin_CaptchaQuestion extends XenForo_ControllerAdmin_Abstract
{
    protected function 
_preDispatch($action)
    {
        
$this->assertAdminPermission('option');
    }

    public function 
actionIndex()
    {
        
$captchaQuestionModel $this->_getCaptchaQuestionModel();

        
$captchaQuestions $captchaQuestionModel->getAllCaptchaQuestions();

        
$viewParams = array(
            
'captchaQuestions' => $captchaQuestionModel->prepareCaptchaQuestions($captchaQuestions)
        );

        return 
$this->responseView('XenForo_ViewAdmin_CaptchaQuestion_List''captcha_question_list'$viewParams);
    }

    public function 
actionAdd()
    {
        
$viewParams = array('captchaQuestion' => array(
            
'answersArray' => array(''),
            
'active' => true
        
));

        return 
$this->responseView('XenForo_ViewAdmin_CaptchaQuestion_Add''captcha_question_edit'$viewParams);
    }

    public function 
actionEdit()
    {
        
$captchaQuestionId $this->_input->filterSingle('captcha_question_id'XenForo_Input::UINT);
        
$captchaQuestion $this->_getCaptchaQuestionOrError($captchaQuestionId);

        
$viewParams = array(
            
'captchaQuestion' => $this->_getCaptchaQuestionModel()->prepareCaptchaQuestion($captchaQuestion)
        );

        return 
$this->responseView('XenForo_ViewAdmin_CaptchaQuestion_Edit''captcha_question_edit'$viewParams);
    }

    public function 
actionSave()
    {
        
$this->_assertPostOnly();

        
$captchaQuestionId $this->_input->filterSingle('captcha_question_id'XenForo_Input::UINT);

        
$data $this->_input->filter(array(
            
'question' => XenForo_Input::STRING,
            
'answers' => array(XenForo_Input::STRING'array' => true),
            
'active' => XenForo_Input::UINT,
        ));

        
$writer XenForo_DataWriter::create('XenForo_DataWriter_CaptchaQuestion');

        if (
$captchaQuestionId)
        {
            
$writer->setExistingData($captchaQuestionId);
        }

        
$writer->bulkSet($data);
        
$writer->save();

        return 
$this->responseRedirect(
            
XenForo_ControllerResponse_Redirect::SUCCESS,
            
XenForo_Link::buildAdminLink('captcha-questions') . $this->getLastHash($writer->get('captcha_question_id'))
        );
    }

    public function 
actionDelete()
    {
        if (
$this->isConfirmedPost())
        {
            return 
$this->_deleteData(
                
'XenForo_DataWriter_CaptchaQuestion''captcha_question_id',
                
XenForo_Link::buildAdminLink('captcha-questions')
            );
        }
        else
        {
            
$captchaQuestionId $this->_input->filterSingle('captcha_question_id'XenForo_Input::UINT);
            
$captchaQuestion $this->_getCaptchaQuestionOrError($captchaQuestionId);

            
$viewParams = array(
                
'captchaQuestion' => $this->_getCaptchaQuestionModel()->prepareCaptchaQuestion($captchaQuestion)
            );
            return 
$this->responseView('XenForo_ViewAdmin_CaptchaQuestion_Delete''captcha_question_delete'$viewParams);
        }
    }

    
/**
     * Selectively enables or disables specified captcha question
     *
     * @return XenForo_ControllerResponse_Abstract
     */
    
public function actionToggle()
    {
        return 
$this->_getToggleResponse(
            
$this->_getCaptchaQuestionModel()->getAllCaptchaQuestions(),
            
'XenForo_DataWriter_CaptchaQuestion',
            
'cron');
    }

    protected function 
_getCaptchaQuestionOrError($captchaQuestionId)
    {
        
$captchaQuestion $this->_getCaptchaQuestionModel()->getCaptchaQuestionById($captchaQuestionId);
        if (!
$captchaQuestion)
        {
            throw 
$this->responseException($this->responseError(new XenForo_Phrase('requested_captcha_question_not_found'), 404));
        }

        return 
$captchaQuestion;

    }

    
/**
     * @return XenForo_Model_CaptchaQuestion
     */
    
protected function _getCaptchaQuestionModel()
    {
        return 
$this->getModelFromCache('XenForo_Model_CaptchaQuestion');
    }
}
Онлайн: 1
Реклама