summaryrefslogtreecommitdiff
path: root/program/include/rcube_output.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/rcube_output.php')
-rw-r--r--program/include/rcube_output.php284
1 files changed, 0 insertions, 284 deletions
diff --git a/program/include/rcube_output.php b/program/include/rcube_output.php
deleted file mode 100644
index f7ac3002f..000000000
--- a/program/include/rcube_output.php
+++ /dev/null
@@ -1,284 +0,0 @@
-<?php
-
-/*
- +-----------------------------------------------------------------------+
- | program/include/rcube_output.php |
- | |
- | This file is part of the Roundcube PHP suite |
- | Copyright (C) 2005-2012 The Roundcube Dev Team |
- | |
- | Licensed under the GNU General Public License version 3 or |
- | any later version with exceptions for skins & plugins. |
- | See the README file for a full license statement. |
- | CONTENTS: |
- | Abstract class for output generation |
- | |
- +-----------------------------------------------------------------------+
- | Author: Thomas Bruederli <roundcube@gmail.com> |
- | Author: Aleksander Machniak <alec@alec.pl> |
- +-----------------------------------------------------------------------+
-*/
-
-/**
- * Class for output generation
- *
- * @package Framework
- * @subpackage View
- */
-abstract class rcube_output
-{
- public $browser;
- public $type = 'html';
- public $ajax_call = false;
- public $framed = false;
-
- protected $app;
- protected $config;
- protected $charset = RCMAIL_CHARSET;
- protected $env = array();
- protected $pagetitle = '';
- protected $object_handlers = array();
-
-
- /**
- * Object constructor
- */
- public function __construct($task = null, $framed = false)
- {
- $this->app = rcube::get_instance();
- $this->config = $this->app->config;
- $this->browser = new rcube_browser();
- }
-
-
- /**
- * Magic getter
- */
- public function __get($var)
- {
- // allow read-only access to $env
- if ($var == 'env')
- return $this->env;
-
- return null;
- }
-
- /**
- * Setter for page title
- *
- * @param string $title Page title
- */
- public function set_pagetitle($title)
- {
- $this->pagetitle = $title;
- }
-
-
- /**
- * Setter for output charset.
- * To be specified in a meta tag and sent as http-header
- *
- * @param string $charset Charset name
- */
- public function set_charset($charset)
- {
- $this->charset = $charset;
- }
-
-
- /**
- * Getter for output charset
- *
- * @return string Output charset name
- */
- public function get_charset()
- {
- return $this->charset;
- }
-
-
- /**
- * Getter for the current skin path property
- */
- public function get_skin_path()
- {
- return $this->config->get('skin_path');
- }
-
-
- /**
- * Set environment variable
- *
- * @param string $name Property name
- * @param mixed $value Property value
- */
- public function set_env($name, $value)
- {
- $this->env[$name] = $value;
- }
-
-
- /**
- * Environment variable getter.
- *
- * @param string $name Property name
- *
- * @return mixed Property value
- */
- public function get_env($name)
- {
- return $this->env[$name];
- }
-
-
- /**
- * Delete all stored env variables and commands
- */
- public function reset()
- {
- $this->env = array();
- $this->object_handlers = array();
- $this->pagetitle = '';
- }
-
-
- /**
- * Call a client method
- *
- * @param string Method to call
- * @param ... Additional arguments
- */
- abstract function command();
-
-
- /**
- * Add a localized label to the client environment
- */
- abstract function add_label();
-
-
- /**
- * Invoke display_message command
- *
- * @param string $message Message to display
- * @param string $type Message type [notice|confirm|error]
- * @param array $vars Key-value pairs to be replaced in localized text
- * @param boolean $override Override last set message
- * @param int $timeout Message displaying time in seconds
- */
- abstract function show_message($message, $type = 'notice', $vars = null, $override = true, $timeout = 0);
-
-
- /**
- * Redirect to a certain url.
- *
- * @param mixed $p Either a string with the action or url parameters as key-value pairs
- * @param int $delay Delay in seconds
- */
- abstract function redirect($p = array(), $delay = 1);
-
-
- /**
- * Send output to the client.
- */
- abstract function send();
-
-
- /**
- * Register a template object handler
- *
- * @param string Object name
- * @param string Function name to call
- * @return void
- */
- public function add_handler($obj, $func)
- {
- $this->object_handlers[$obj] = $func;
- }
-
-
- /**
- * Register a list of template object handlers
- *
- * @param array Hash array with object=>handler pairs
- * @return void
- */
- public function add_handlers($arr)
- {
- $this->object_handlers = array_merge($this->object_handlers, $arr);
- }
-
-
- /**
- * Send HTTP headers to prevent caching a page
- */
- public function nocacheing_headers()
- {
- if (headers_sent()) {
- return;
- }
-
- header("Expires: ".gmdate("D, d M Y H:i:s")." GMT");
- header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
-
- // Request browser to disable DNS prefetching (CVE-2010-0464)
- header("X-DNS-Prefetch-Control: off");
-
- // We need to set the following headers to make downloads work using IE in HTTPS mode.
- if ($this->browser->ie && rcube_utils::https_check()) {
- header('Pragma: private');
- header("Cache-Control: private, must-revalidate");
- }
- else {
- header("Cache-Control: private, no-cache, must-revalidate, post-check=0, pre-check=0");
- header("Pragma: no-cache");
- }
- }
-
- /**
- * Send header with expire date 30 days in future
- *
- * @param int Expiration time in seconds
- */
- public function future_expire_header($offset = 2600000)
- {
- if (headers_sent())
- return;
-
- header("Expires: " . gmdate("D, d M Y H:i:s", time()+$offset) . " GMT");
- header("Cache-Control: max-age=$offset");
- header("Pragma: ");
- }
-
-
- /**
- * Show error page and terminate script execution
- *
- * @param int $code Error code
- * @param string $message Error message
- */
- public function raise_error($code, $message)
- {
- // STUB: to be overloaded by specific output classes
- fputs(STDERR, "Error $code: $message\n");
- exit(-1);
- }
-
-
- /**
- * Convert a variable into a javascript object notation
- *
- * @param mixed Input value
- *
- * @return string Serialized JSON string
- */
- public static function json_serialize($input)
- {
- $input = rcube_charset::clean($input);
-
- // sometimes even using rcube_charset::clean() the input contains invalid UTF-8 sequences
- // that's why we have @ here
- return @json_encode($input);
- }
-
-}