summaryrefslogtreecommitdiff
path: root/program/lib/Roundcube/rcube_output.php
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2012-11-27 12:13:33 +0100
committerThomas Bruederli <thomas@roundcube.net>2012-11-27 12:13:33 +0100
commit60226a75d8e4a3ee9504da6eab6d8f329bb32e7b (patch)
tree4194c1f4b32fea06964029e9ce06bb18ccb05da6 /program/lib/Roundcube/rcube_output.php
parent10da75f3645ff2121bbaf9d603f2e1465eddab78 (diff)
Separate the very application-specific output classes from the Roundcube framework; add autoloader for rmail* classes
Diffstat (limited to 'program/lib/Roundcube/rcube_output.php')
-rw-r--r--program/lib/Roundcube/rcube_output.php123
1 files changed, 55 insertions, 68 deletions
diff --git a/program/lib/Roundcube/rcube_output.php b/program/lib/Roundcube/rcube_output.php
index 3f881fe06..ca8d83ef3 100644
--- a/program/lib/Roundcube/rcube_output.php
+++ b/program/lib/Roundcube/rcube_output.php
@@ -28,22 +28,17 @@
abstract class rcube_output
{
public $browser;
- public $type = 'html';
- public $ajax_call = false;
- public $framed = false;
protected $app;
protected $config;
- protected $charset = RCUBE_CHARSET;
+ protected $charset = RCMAIL_CHARSET;
protected $env = array();
- protected $pagetitle = '';
- protected $object_handlers = array();
/**
* Object constructor
*/
- public function __construct($task = null, $framed = false)
+ public function __construct()
{
$this->app = rcube::get_instance();
$this->config = $this->app->config;
@@ -63,16 +58,6 @@ abstract class rcube_output
return null;
}
- /**
- * Setter for page title
- *
- * @param string $title Page title
- */
- public function set_pagetitle($title)
- {
- $this->pagetitle = $title;
- }
-
/**
* Setter for output charset.
@@ -98,15 +83,6 @@ abstract class rcube_output
/**
- * 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
@@ -137,27 +113,10 @@ abstract class rcube_output
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
@@ -185,31 +144,6 @@ abstract class rcube_output
/**
- * 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()
@@ -266,6 +200,59 @@ abstract class rcube_output
/**
+ * Create an edit field for inclusion on a form
+ *
+ * @param string col field name
+ * @param string value field value
+ * @param array attrib HTML element attributes for field
+ * @param string type HTML element type (default 'text')
+ *
+ * @return string HTML field definition
+ */
+ public static function get_edit_field($col, $value, $attrib, $type = 'text')
+ {
+ static $colcounts = array();
+
+ $fname = '_'.$col;
+ $attrib['name'] = $fname . ($attrib['array'] ? '[]' : '');
+ $attrib['class'] = trim($attrib['class'] . ' ff_' . $col);
+
+ if ($type == 'checkbox') {
+ $attrib['value'] = '1';
+ $input = new html_checkbox($attrib);
+ }
+ else if ($type == 'textarea') {
+ $attrib['cols'] = $attrib['size'];
+ $input = new html_textarea($attrib);
+ }
+ else if ($type == 'select') {
+ $input = new html_select($attrib);
+ $input->add('---', '');
+ $input->add(array_values($attrib['options']), array_keys($attrib['options']));
+ }
+ else if ($attrib['type'] == 'password') {
+ $input = new html_passwordfield($attrib);
+ }
+ else {
+ if ($attrib['type'] != 'text' && $attrib['type'] != 'hidden') {
+ $attrib['type'] = 'text';
+ }
+ $input = new html_inputfield($attrib);
+ }
+
+ // use value from post
+ if (isset($_POST[$fname])) {
+ $postvalue = rcube_utils::get_input_value($fname, rcube_utils::INPUT_POST, true);
+ $value = $attrib['array'] ? $postvalue[intval($colcounts[$col]++)] : $postvalue;
+ }
+
+ $out = $input->show($value);
+
+ return $out;
+ }
+
+
+ /**
* Convert a variable into a javascript object notation
*
* @param mixed Input value