Your IP : 216.73.216.190


Current Path : /proc/1908984/root/proc/2603263/cwd/
Upload File :
Current File : //proc/1908984/root/proc/2603263/cwd/Response.tar

JsonResponse.php000064400000005143152344375460007725 0ustar00<?php
/**
 * Joomla! Content Management System
 *
 * @copyright  (C) 2013 Open Source Matters, Inc. <https://www.joomla.org>
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */

namespace Joomla\CMS\Response;

defined('JPATH_PLATFORM') or die;

/**
 * JSON Response class.
 *
 * This class serves to provide the Joomla Platform with a common interface to access
 * response variables for e.g. Ajax requests.
 *
 * @since  3.1
 */
class JsonResponse
{
	/**
	 * Determines whether the request was successful
	 *
	 * @var    boolean
	 * @since  3.1
	 */
	public $success = true;

	/**
	 * The main response message
	 *
	 * @var    string
	 * @since  3.1
	 */
	public $message = null;

	/**
	 * Array of messages gathered in the \JApplication object
	 *
	 * @var    array
	 * @since  3.1
	 */
	public $messages = null;

	/**
	 * The response data
	 *
	 * @var    mixed
	 * @since  3.1
	 */
	public $data = null;

	/**
	 * Constructor
	 *
	 * @param   mixed    $response        The Response data
	 * @param   string   $message         The main response message
	 * @param   boolean  $error           True, if the success flag shall be set to false, defaults to false
	 * @param   boolean  $ignoreMessages  True, if the message queue shouldn't be included, defaults to false
	 *
	 * @since   3.1
	 */
	public function __construct($response = null, $message = null, $error = false, $ignoreMessages = false)
	{
		$this->message = $message;

		// Get the message queue if requested and available
		$app = \JFactory::getApplication();

		if (!$ignoreMessages && $app !== null && is_callable(array($app, 'getMessageQueue')))
		{
			$messages = $app->getMessageQueue();

			// Build the sorted messages list
			if (is_array($messages) && count($messages))
			{
				foreach ($messages as $message)
				{
					if (isset($message['type']) && isset($message['message']))
					{
						$lists[$message['type']][] = $message['message'];
					}
				}
			}

			// If messages exist add them to the output
			if (isset($lists) && is_array($lists))
			{
				$this->messages = $lists;
			}
		}

		// Check if we are dealing with an error
		if ($response instanceof \Exception || $response instanceof \Throwable)
		{
			// Prepare the error response
			$this->success = false;
			$this->message = $response->getMessage();
		}
		else
		{
			// Prepare the response data
			$this->success = !$error;
			$this->data    = $response;
		}
	}

	/**
	 * Magic toString method for sending the response in JSON format
	 *
	 * @return  string  The response in JSON format
	 *
	 * @since   3.1
	 */
	public function __toString()
	{
		return json_encode($this);
	}
}
ResponseAjax.php000064400000003451152412547220007666 0ustar00<?php

namespace Nextend\Framework\Response;

use Nextend\Framework\Application\AbstractApplicationType;
use Nextend\Framework\Notification\Notification;
use Nextend\Framework\PageFlow;

class ResponseAjax {

    /**
     * @var AbstractApplicationType
     */
    private $appType;

    private $isError = false;

    private $response = array(
        'data'         => null,
        'notification' => array()
    );

    public function __construct($appType) {
        $this->appType = $appType;
    }

    public function error($showNotification = true) {
        $this->isError = true;
        $this->respond(null, $showNotification);
    }

    public function respond($data = null, $showNotification = true) {
        $this->response['data'] = $data;

        self::fix_output_buffer();

        if ($showNotification) {
            $this->response['notification'] = Notification::showAjax();
        }
        header("Content-Type: application/json");
        if ($this->isError) {
            header("HTTP/1.0 403 Forbidden");
        }
        echo json_encode($this->response);

        PageFlow::exitApplication();
    }

    public function redirect($url) {

        self::fix_output_buffer();

        $this->response['redirect'] = $url;
        echo json_encode($this->response);

        PageFlow::exitApplication();
    }

    private static function fix_output_buffer() {

        $ob_list_handlers       = ob_list_handlers();
        $ob_list_handlers_count = count($ob_list_handlers);

        $exclude = array(
            'ob_gzhandler',
            'zlib output compression'
        );

        if ($ob_list_handlers_count && !in_array($ob_list_handlers[$ob_list_handlers_count - 1], $exclude)) {
            ob_clean();
        }
    }
}