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

/**
* Concrete renderer for XML output.
*
* @package XenForo_Mvc
*/
class XenForo_ViewRenderer_Xml extends XenForo_ViewRenderer_Abstract
{
    
/**
     * Constructor
     * @see XenForo_ViewRenderer_Abstract::__construct()
     */
    
public function __construct(XenForo_Dependencies_Abstract $dependenciesZend_Controller_Response_Http $responseZend_Controller_Request_Http $request)
    {
        
parent::__construct($dependencies$response$request);
        
$this->_response->setHeader('Content-Type''application/xml; charset=UTF-8'true);
    }

    
/**
     * Simple handler for XML redirects - do not redirect, just send status:ok and redirect:$redirectTarget
     *
     * @param integer Type of redirect. See {@link XenForo_ControllerResponse_Redirect}
     * @param string  Target to redirect to
     * @param mixed   Redirect message
     *
     * @return string XML response (response tag)
     */
    
public function renderRedirect($redirectType$redirectTarget$redirectMessage null, array $redirectParams = array())
    {
        
$document = new DOMDocument('1.0''utf-8');
        
$document->formatOutput true;

        
$rootNode $document->createElement('response');
        
XenForo_Helper_DevelopmentXml::createDomElements($rootNode, array(
            
'_redirectStatus' => 'ok',
            
'_redirectTarget' => $redirectTarget,
            
'_redirectMessage' => (is_null($redirectMessage) ? new XenForo_Phrase('redirect_changes_saved_successfully') : $redirectMessage),
            
'jsonParams' => XenForo_ViewRenderer_Json::jsonEncodeForOutput($redirectParams)
        ));
        
$document->appendChild($rootNode);

        return 
$document->saveXML();
    }

    
/**
    * Renders an error.
    * @see XenForo_ViewRenderer_Abstract::renderError()
    *
    * @param string|array Error message
    *
    * @return string XML, with errors root node and error tags under
    */
    
public function renderError($error)
    {
        
$document = new DOMDocument('1.0''utf-8');
        
$document->formatOutput true;

        if (!
is_array($error))
        {
            
$error = array($error);
        }

        
$rootNode $document->createElement('errors');
        
$document->appendChild($rootNode);

        foreach (
$error AS $errorMessage)
        {
            
$errorNode $rootNode->appendChild($document->createElement('error'));
            
$errorNode->appendChild($document->createCDATASection($errorMessage));
        }

        return 
$document->saveXML();
    }

    
/**
     * Renders a message.
     *
     * @see XenForo_ViewRenderer_Abstract::renderMessage()
     */
    
public function renderMessage($message)
    {
        
$document = new DOMDocument('1.0''utf-8');
        
$document->formatOutput true;

        
$rootNode $document->createElement('response');
        
$rootNode->appendChild($document->createElement('status''ok'));
        
$messageNode $document->createElement('message');
        
$messageNode->appendChild($document->createCDATASection($message));
        
$rootNode->appendChild($messageNode);
        
$document->appendChild($rootNode);

        return 
$document->saveXML();
    }

    
/**
    * Renders a view.
    * @see XenForo_ViewRenderer_Abstract::renderView()
    */
    
public function renderView($viewName, array $params = array(), $templateName ''XenForo_ControllerResponse_View $subView null)
    {
        if (
$subView)
        {
            return 
$this->renderSubView($subView);
        }

        return 
$this->renderViewObject($viewName'Xml'$params$templateName);
    }

    
/**
    * Renders the container.
    * @see XenForo_ViewRenderer_Abstract::renderContainer()
    *
    * @param string
    * @param array
    *
    * @return string
    */
    
public function renderContainer($contents, array $params = array())
    {
        return 
$contents;
    }

    
/**
    * Fallback for rendering an "unrepresentable" message.
    * @see XenForo_ViewRenderer_Abstract::renderUnrepresentable()
    *
    * @return string XML
    */
    
public function renderUnrepresentable()
    {
        return 
$this->renderError(new XenForo_Phrase('requested_page_is_unrepresentable_in_xml'));
    }
}
Онлайн: 2
Реклама