joomla-platform / libraries / joomla / document / json / json.php

<?php
/**
 * @package     Joomla.Platform
 * @subpackage  Document
 *
 * @copyright   Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

/**
 * JDocumentJSON class, provides an easy interface to parse and display JSON output
 *
 * @package     Joomla.Platform
 * @subpackage  Document
 * @since       11.1
 */

jimport('joomla.document.document');

class JDocumentJSON extends JDocument
{
    /**
     * Document name
     *
     * @var     string
     */
    protected $_name = 'joomla';

    /**
     * Class constructor
     *
     * @param   array   $options Associative array of options
     */
    public function __construct($options = array())
    {
        parent::__construct($options);

        //set mime type
        $this->_mime = 'application/json';

        //set document type
        $this->_type = 'json';
    }

    /**
     * Render the document.
     *
     * @param boolean   $cache      If true, cache the output
     * @param array $params     Associative array of attributes
     * @return  The rendered data
     */
    public function render($cache = false, $params = array())
    {
        JResponse::allowCache(false);
        JResponse::setHeader('Content-disposition', 'attachment; filename="'.$this->getName().'.json"', true);

        parent::render();

        return $this->getBuffer();
    }

    /**
     * Get the document head data
     *
     * @return  array   The document head data in array form
     */
    public function getHeadData()
    {
        return array();
    }

    /**
     * Set the document head data
     *
     * @param   array   $data   The document head data in array form
     */
    public function setHeadData($data)
    {
        // Do nothing.
    }

    /**
     * Returns the document name
     *
     * @return string
     */
    public function getName() {
        return $this->_name;
    }

    /**
     * Sets the document name
     *
     * @param   string  $name   Document name
     * @return  void
     */
    public function setName($name = 'joomla') {
        $this->_name = $name;
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.