From 47124c2279382714afd8dbe4a867a867ea179199 Mon Sep 17 00:00:00 2001
From: thomascube
Date: Sat, 12 Apr 2008 13:54:45 +0000
Subject: Changed codebase to PHP5 with autoloader + added some new classes
from the devel-vnext branch
---
program/include/rcube_html_page.php | 256 ++++++++++++++++++++++++++++++++++++
1 file changed, 256 insertions(+)
create mode 100644 program/include/rcube_html_page.php
(limited to 'program/include/rcube_html_page.php')
diff --git a/program/include/rcube_html_page.php b/program/include/rcube_html_page.php
new file mode 100644
index 000000000..42036f63c
--- /dev/null
+++ b/program/include/rcube_html_page.php
@@ -0,0 +1,256 @@
+ |
+ +-----------------------------------------------------------------------+
+
+ $Id: $
+
+*/
+
+/**
+ * Class for HTML page creation
+ *
+ * @package HTML
+ */
+class rcube_html_page
+{
+ protected $scripts_path = '';
+ protected $script_files = array();
+ protected $external_scripts = array();
+ protected $scripts = array();
+ protected $charset = 'UTF-8';
+
+ protected $script_tag_file = "\n";
+ protected $script_tag = "\n";
+ protected $default_template = "\n\n\n";
+ protected $tag_format_external_script = "\n";
+
+ protected $title = '';
+ protected $header = '';
+ protected $footer = '';
+ protected $body = '';
+
+
+ /** Constructor */
+ public function __construct() {}
+
+ /**
+ * Link an external script file
+ *
+ * @param string File URL
+ * @param string Target position [head|foot]
+ */
+ public function include_script($file, $position='head')
+ {
+ static $sa_files = array();
+
+ if (in_array($file, $sa_files)) {
+ return;
+ }
+ if (!is_array($this->script_files[$position])) {
+ $this->script_files[$position] = array();
+ }
+ $this->script_files[$position][] = $file;
+ }
+
+ /**
+ * Add inline javascript code
+ *
+ * @param string JS code snippet
+ * @param string Target position [head|head_top|foot]
+ */
+ public function add_script($script, $position='head')
+ {
+ if (!isset($this->scripts[$position])) {
+ $this->scripts[$position] = "\n".rtrim($script);
+ } else {
+ $this->scripts[$position] .= "\n".rtrim($script);
+ }
+ }
+
+ /**
+ * Add HTML code to the page header
+ */
+ public function add_header($str)
+ {
+ $this->header .= "\n".$str;
+ }
+
+ /**
+ * Add HTML code to the page footer
+ * To be added right befor
') {
+ $hpos++;
+ }
+ $hpos++;
+ }
+ $__page_header = "\n$__page_title\n$__page_header\n\n";
+ }
+
+ // add page hader
+ if ($hpos) {
+ $output = substr($output,0,$hpos) . $__page_header . substr($output,$hpos,strlen($output));
+ }
+ else {
+ $output = $__page_header . $output;
+ }
+
+ // find page body
+ if ($bpos = strpos(strtolower($output), '') {
+ $bpos++;
+ }
+ $bpos++;
+ }
+ else {
+ $bpos = strpos(strtolower($output), '')+7;
+ }
+
+ // add page body
+ if ($bpos && $__page_body) {
+ $output = substr($output,0,$bpos) . "\n$__page_body\n" . substr($output,$bpos,strlen($output));
+ }
+
+ // find and add page footer
+ $output_lc = strtolower($output);
+ if (($fpos = strrpos($output_lc, '