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

/**
 * Controller to manage smilie categories in the admin control panel.
 *
 * @package XenForo_Smilie
 */
class XenForo_ControllerAdmin_SmilieCategory extends XenForo_ControllerAdmin_Abstract
{
    protected function 
_preDispatch($action)
    {
        
$this->assertAdminPermission('bbCodeSmilie');
    }

    
/**
     * Displays a list of smilie categories.
     *
     * @return XenForo_Controller_ResponseAbstract
     */
    
public function actionIndex()
    {
        
$smilieModel $this->_getSmilieModel();

        
$smilieCategories $smilieModel->getAllSmilieCategories();

        
$viewParams = array(
            
'smilieCategories' => $smilieModel->prepareSmilieCategories($smilieCategories)
        );

        return 
$this->responseView('XenForo_ViewAdmin_SmilieCategory_List''smilie_category_list'$viewParams);
    }

    public function 
actionAdd()
    {
        
$viewParams = array(
            
'smilieCategory' => array(
                
'display_order' => 0
            
)
        );
        return 
$this->responseView('XenForo_ViewAdmin_SmilieCategory_Edit''smilie_category_edit'$viewParams);
    }

    public function 
actionEdit()
    {
        
$smilieCategoryId $this->_input->filterSingle('smilie_category_id'XenForo_Input::UINT);
        
$smilieCategory $this->_getSmilieCategoryOrError($smilieCategoryId);

        
$viewParams = array(
            
'smilieCategory' => $smilieCategory
        
);
        return 
$this->responseView('XenForo_ViewAdmin_SmilieCategory_Edit''smilie_category_edit'$viewParams);
    }

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

        
$smilieCategoryId $this->_input->filterSingle('smilie_category_id'XenForo_Input::UINT);

        
$dwInput $this->_input->filter(array(
            
'smilie_category_id' => XenForo_Input::STRING,
            
'display_order' => XenForo_Input::UINT,
        ));

        
$titlePhrase $this->_input->filterSingle('title'XenForo_Input::STRING);

        
$dw XenForo_DataWriter::create('XenForo_DataWriter_SmilieCategory');
        if (
$smilieCategoryId)
        {
            
$dw->setExistingData($smilieCategoryId);
        }
        
$dw->bulkSet($dwInput);
        
$dw->setExtraData(XenForo_DataWriter_SmilieCategory::DATA_TITLE$titlePhrase);
        
$dw->save();

        return 
$this->responseRedirect(
            
XenForo_ControllerResponse_Redirect::SUCCESS,
            
XenForo_Link::buildAdminLink('smilies') . $this->getLastHash('c' $dw->get('smilie_category_id'))
        );
    }

    public function 
actionDelete()
    {
        if (
$this->isConfirmedPost())
        {
            return 
$this->_deleteData(
                
'XenForo_DataWriter_SmilieCategory''smilie_category_id',
                
XenForo_Link::buildAdminLink('smilies')
            );
        }
        else
        {
            
$smilieCategoryId $this->_input->filterSingle('smilie_category_id'XenForo_Input::STRING);
            
$smilieCategory $this->_getSmilieCategoryOrError($smilieCategoryId);

            
$viewParams = array(
                
'smilieCategory' => $smilieCategory
            
);
            return 
$this->responseView('XenForo_ViewAdmin_SmilieCategory_Delete''smilie_category_delete'$viewParams);
        }
    }

    
/**
     * Gets a valid smilie category or throws an exception.
     *
     * @param string $smilieCategoryId
     *
     * @return array
     */
    
protected function _getSmilieCategoryOrError($smilieCategoryId)
    {
        
$smilieModel $this->_getSmilieModel();

        
$info $smilieModel->getSmilieCategoryById($smilieCategoryId);
        if (!
$info)
        {
            throw 
$this->responseException($this->responseError(new XenForo_Phrase('requested_smilie_category_not_found'), 404));
        }

        
$smilieCategory $smilieModel->prepareSmilieCategory($info);

        return 
$smilieCategory;
    }

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