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

/**
 * Controller for accessing link forums.
 *
 * @package XenForo_Nodes
 */
class XenForo_ControllerPublic_LinkForum extends XenForo_ControllerPublic_Abstract
{
    
/**
     * Displays the contents of a link forum.
     *
     * @return XenForo_ControllerResponse_Abstract
     */
    
public function actionIndex()
    {
        
$linkId $this->_input->filterSingle('node_id'XenForo_Input::UINT);
        if (!
$linkId)
        {
            return 
$this->responseRedirect(
                
XenForo_ControllerResponse_Redirect::RESOURCE_CANONICAL_PERMANENT,
                
XenForo_Link::buildPublicLink('forums')
            );
        }

        
$link $this->_getLinkOrError($linkId);

        return 
$this->responseRedirect(
            
XenForo_ControllerResponse_Redirect::RESOURCE_CANONICAL_PERMANENT,
            
$link['link_url']
        );
    }

    
/**
     * Gets the specified category or throws an error.
     *
     * @param integer $linkId
     *
     * @return array
     */
    
protected function _getLinkOrError($linkId)
    {
        
$visitor XenForo_Visitor::getInstance();
        
$fetchOptions = array('permissionCombinationId' => $visitor['permission_combination_id']);

        
$link $this->_getLinkForumModel()->getLinkForumById($linkId$fetchOptions);
        if (!
$link || $link['node_type_id'] != 'LinkForum')
        {
            throw 
$this->responseException($this->responseError(new XenForo_Phrase('requested_link_forum_not_found'), 404));
        }

        if (isset(
$link['node_permission_cache']))
        {
            
$visitor->setNodePermissions($linkId$link['node_permission_cache']);
            unset(
$link['node_permission_cache']);
        }

        if (!
$this->_getLinkForumModel()->canViewLinkForum($link$errorPhraseKey))
        {
            throw 
$this->getErrorOrNoPermissionResponseException($errorPhraseKey);
        }

        return 
$link;
    }

    public function 
updateSessionActivity($controllerResponse$controllerName$action) {}

    
/**
     * @return XenForo_Model_LinkForum
     */
    
protected function _getLinkForumModel()
    {
        return 
$this->getModelFromCache('XenForo_Model_LinkForum');
    }

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