mirror of
https://github.com/joomla/joomla-cms.git
synced 2024-05-29 08:21:38 +00:00
032ea5d32d
-----BEGIN PGP SIGNATURE----- iQHIBAABCgAyFiEEc8tLlhrb4aveTfJiRzuTXEnqGwgFAl34mZsUHGxlaXRobmVy QGl0cm9uaWMuYXQACgkQRzuTXEnqGwhOYAv+PgzapMJWw6Hic32RIfVrgQtbl4ac gybmYhBLFeSd4qrc1Ya8+Fsx79U1RR1elkrZGB1Rm5/vGvHqgFI9JzmpbK8wGTWF yU46g9rDM++2M08qQQxg8a2vx9VoN5yvccPi7oKEpU4gzRcEsPr9ih406dtPlSBZ w38jmD8J/DF0TcOuWS0dZjEF8NtbxGFGS6x9Wc4ZyYoPvfsqpjYXKnc70ExifSgc 373B+vCkyhvHaW+aA4nZ50WuZHd3Rasf4VNB8JVz8hXMnnJf2zwthWaJtWiwjLeS u6x59xbsibQqZImlqdooSbIKROY3ZjVgNPCrYk4Iolm6MD8khIm4rvOmGP1Nrrr8 fZrBuN42ynv5tLutuSwSJSPXvX+RGjgPSeLSGM8FXujtCoxNJrbP3qo7EdkIofAD BPwwRDUiorRFwT4JfMqyBHSrM4BUqOlFN+9wi7oVM/405LfmTx3K0zfh2YCPvRXt IybdpfYAld7RQb6KWONf42Q/+mEVE5/wJhRe =KyXf -----END PGP SIGNATURE----- Merge tag '3.9.14' into 4.0-dev Joomla! 3.9.14
133 lines
2.5 KiB
PHP
133 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* Joomla! Content Management System
|
|
*
|
|
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
|
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
|
*/
|
|
|
|
namespace Joomla\CMS\Document;
|
|
|
|
\defined('JPATH_PLATFORM') or die;
|
|
|
|
use Joomla\CMS\Factory as CmsFactory;
|
|
|
|
/**
|
|
* XmlDocument class, provides an easy interface to parse and display XML output
|
|
*
|
|
* @since 1.7.0
|
|
*/
|
|
class XmlDocument extends Document
|
|
{
|
|
/**
|
|
* Document name
|
|
*
|
|
* @var string
|
|
* @since 3.0.0
|
|
*/
|
|
protected $name = 'joomla';
|
|
|
|
/**
|
|
* Flag indicating the document should be downloaded (Content-Disposition = attachment) versus displayed inline
|
|
*
|
|
* @var boolean
|
|
* @since 3.9.0
|
|
*/
|
|
protected $isDownload = false;
|
|
|
|
/**
|
|
* Class constructor
|
|
*
|
|
* @param array $options Associative array of options
|
|
*
|
|
* @since 1.7.0
|
|
*/
|
|
public function __construct($options = array())
|
|
{
|
|
parent::__construct($options);
|
|
|
|
// Set mime type
|
|
$this->_mime = 'application/xml';
|
|
|
|
// Set document type
|
|
$this->_type = 'xml';
|
|
}
|
|
|
|
/**
|
|
* Render the document.
|
|
*
|
|
* @param boolean $cache If true, cache the output
|
|
* @param array $params Associative array of attributes
|
|
*
|
|
* @return string The rendered data
|
|
*
|
|
* @since 1.7.0
|
|
*/
|
|
public function render($cache = false, $params = array())
|
|
{
|
|
parent::render($cache, $params);
|
|
|
|
$disposition = $this->isDownload ? 'attachment' : 'inline';
|
|
|
|
CmsFactory::getApplication()->setHeader('Content-disposition', $disposition . '; filename="' . $this->getName() . '.xml"', true);
|
|
|
|
return $this->getBuffer();
|
|
}
|
|
|
|
/**
|
|
* Returns the document name
|
|
*
|
|
* @return string
|
|
*
|
|
* @since 1.7.0
|
|
*/
|
|
public function getName()
|
|
{
|
|
return $this->name;
|
|
}
|
|
|
|
/**
|
|
* Sets the document name
|
|
*
|
|
* @param string $name Document name
|
|
*
|
|
* @return XmlDocument instance of $this to allow chaining
|
|
*
|
|
* @since 1.7.0
|
|
*/
|
|
public function setName($name = 'joomla')
|
|
{
|
|
$this->name = $name;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Check if this document is intended for download
|
|
*
|
|
* @return string
|
|
*
|
|
* @since 3.9.0
|
|
*/
|
|
public function isDownload()
|
|
{
|
|
return $this->isDownload;
|
|
}
|
|
|
|
/**
|
|
* Sets the document's download state
|
|
*
|
|
* @param boolean $download If true, this document will be downloaded; if false, this document will be displayed inline
|
|
*
|
|
* @return XmlDocument instance of $this to allow chaining
|
|
*
|
|
* @since 3.9.0
|
|
*/
|
|
public function setDownload($download = false)
|
|
{
|
|
$this->isDownload = $download;
|
|
|
|
return $this;
|
|
}
|
|
}
|