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

abstract class XenForo_ControllerAdmin_NodeAbstract extends XenForo_ControllerAdmin_Abstract
{
    protected function 
_preDispatch($action)
    {
        
$this->assertAdminPermission('node');
    }

    
/**
     * @return XenForo_DataWriter_Node
     */
    
abstract protected function _getNodeDataWriter();

    
/**
     * Validate a single field
     *
     * @return XenForo_ControllerResponse_View|XenForo_ControllerResponse_Error
     */
    
public function actionValidateField()
    {
        
$this->_assertPostOnly();

        return 
$this->_validateField($this->_nodeDataWriterName, array(
            
'existingDataKey' => $this->_input->filterSingle('node_id'XenForo_Input::UINT)
        ));
    }

    
/**
     * This method should be sufficiently generic to handle deletion of any extended node type
     *
     * @return XenForo_ControllerResponse_Reroute
     */
    
public function actionDelete()
    {
        
$nodeId $this->_input->filterSingle('node_id'XenForo_Input::INT);

        if (
$this->isConfirmedPost())
        {
            
$writer $this->_getNodeDataWriter();
            
$writer->setExistingData($nodeId);

            if (
$this->_input->filterSingle('move_child_nodes'XenForo_Input::BINARY))
            {
                
$parentNodeId $this->_input->filterSingle('parent_node_id'XenForo_Input::UINT);

                if (
$parentNodeId)
                {
                    
$parentNode $this->_getNodeModel()->getNodeById($parentNodeId);

                    if (!
$parentNode)
                    {
                        return 
$this->responseError(new XenForo_Phrase('specified_destination_node_does_not_exist'));
                    }
                }
                else
                {
                    
// no destination node id, so set it to 0 (root node)
                    
$parentNodeId 0;
                }

                
$writer->setOption(XenForo_DataWriter_Node::OPTION_CHILD_NODE_DESTINATION_PARENT_ID$parentNodeId);
            }

            
$writer->delete();

            return 
$this->responseRedirect(
                
XenForo_ControllerResponse_Redirect::SUCCESS,
                
XenForo_Link::buildAdminLink('nodes')
            );
        }
        else
        {
            if (
$nodeId && $nodeType $this->_getNodeModel()->getNodeTypeByNodeId($nodeId))
            {
                return 
$this->responseReroute($nodeType['controller_admin_class'], 'deleteConfirm');
            }
            else
            {
                return 
$this->responseError(new XenForo_Phrase('requested_node_not_found'), 404);
            }
        }
    }

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

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