summaryrefslogtreecommitdiff
path: root/it_html_page.class
diff options
context:
space:
mode:
Diffstat (limited to 'it_html_page.class')
-rw-r--r--it_html_page.class215
1 files changed, 0 insertions, 215 deletions
diff --git a/it_html_page.class b/it_html_page.class
deleted file mode 100644
index 1121017..0000000
--- a/it_html_page.class
+++ /dev/null
@@ -1,215 +0,0 @@
-<?php
-/*
-** $Id$
-**
-** ITools - the Internet Tools Library
-**
-** Copyright (C) 1995-2003 by the ITools Authors.
-** This program is free software; you can redistribute it and/or
-** modify it under the terms of either the GNU General Public License
-** or the GNU Lesser General Public License, as published by the Free
-** Software Foundation. See http://www.gnu.org/licenses/ for details.
-**
-** class it_html_page - Fairly generic HTML page Class
-*/
-
-class it_html_page
-{
- /* Public read-only */
- var $title; /* <title> of this page */
- var $doctype; /* Document type, will be reasonably initialized */
- var $encoding; /* If set, generate Content-Type HTTP/meta headers */
-
- var $url; /* Site-relative URL of this page, without GET args */
- var $remote_host; /* IP address of caller (can deal with most proxies) */
-
- /* Private */
- var $headers; /* Header lines to output in <head> context */
- var $meta_headers = array(); /* <meta name=.. content=..> tags in <head> context */
- var $body_tags = array(); /* array of tags in <body statement */
- var $body_start = ""; /* This is output immediately after <body> */
- var $body_end = ""; /* Output immediately before </body> */
- var $head_sent = 0; /* 1 if <head> area already sent to client */
- var $in_body = 0; /* false=in header, true=in body */
- var $in_input_tr = 0; /* For input_text() */
-
-
-
-/**
- * Constructor
- * @param $tags optional array of key => value pairs: title, doctype, encoding
- */
-function it_html_page($tags='')
-{
- /* Set defaults */
- $this->doctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">';
-
- /* Determine the relative URL of this page for self-reference */
- if (isset($_SERVER['SCRIPT_URL']))
- $this->url = $_SERVER['SCRIPT_URL'];
- else
- {
- list($this->url) = explode("?", $_SERVER['REQUEST_URI']);
- $this->url = substr(strrchr($this->url, "/"), 1); /* $$$ what's this?? */
- }
-
- /* This is needed for POST requests to oneself */
- if ($this->url == "")
- $this->url = "./";
-
- /* Determine IP address of caller */
- if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && ereg('^([0-9.]{7,15})', $_SERVER['HTTP_X_FORWARDED_FOR'], $regs))
- $this->remote_host = trim($regs[1]);
- else
- $this->remote_host = $_SERVER['REMOTE_ADDR'];
-
- /* Is this a good idea? */
- $this->add_meta_header('generator', '$Id$');
-
- /* Override defaults with user tags */
- if (is_array($tags))
- foreach($tags as $key => $value)
- $this->$key = $value;
-
- if (isset($this->encoding))
- {
- $ct = 'text/html; charset='.$this->encoding;
- header('Content-Type: '.$ct);
- $this->add_header('<meta http-equiv="Content-Type" content="'.$ct.'">');
- }
-}
-
-
-/**
- * Set the title of the page
- */
-function set_title($title)
-{
- $this->title = $title;
-}
-
-
-/**
- * Add a line to the header area and trim it
- */
-function add_header($header)
-{
- $this->headers .= trim($header)."\n";
-}
-
-
-/**
- * Add a meta header.
- * If a header with the same name exists, overwrite it.
- */
-function add_meta_header($name, $value)
-{
- $this->meta_headers[strtolower($name)] = $value;
-}
-
-
-/**
- * Add a tag=value pair in <body context.
- * If a header with the same name exists, overwrite it.
- */
-function add_body_tag($name, $value)
-{
- $this->body_tags[strtolower($name)] = $value;
-}
-
-
-/**
- * Add a line to the body area after other lines that were added
- */
-function add_body_start($html)
-{
- $this->body_start .= $html;
-}
-
-
-/**
- * Add a line to the body end area before other lines that were added
- */
-function add_body_end($html)
-{
- $this->body_end = $html . $this->body_end;
-}
-
-
-/**
- * Write out HTML <head> section, if not already done.
- */
-function head()
-{
- /* This function can be called multiple times, no harm is done. */
- if (!$this->head_sent)
- {
- $lang = $this->language ? " lang='$this->language'" : "";
-
- if (!$GLOBALS['SENT_PREAMBLE']) /* RELOAD_MAGIC already sent <html><head> */
- echo $this->doctype, "\n<html$lang>\n<head>\n";
-
- # Generate title tag. If empty string, output <title></title> (html-required)
- if (isset($this->title))
- echo '<title>'.$this->title."</title>\n";
-
- echo $this->headers;
-
- while (list($name, $content) = each($this->meta_headers))
- echo "<meta name=\"$name\" content=\"$content\">\n";
-
- echo "</head>\n";
- $this->head_sent = 1;
- }
-}
-
-
-/**
- * Write out HTML <head> section and body start, if not already done.
- * @param ... If parameters are present, output them and call end()
- */
-function body()
-{
- /* Write out header part */
- $this->head();
-
- /* This function can be called multiple times, no harm is done. */
- if (!$this->in_body)
- {
- echo '<body';
-
- while (list($tag, $value) = each($this->body_tags))
- echo " $tag=\"$value\"";
-
- echo ">\n".$this->body_start;
- $this->in_body = 1;
-
- if ($args = func_get_args())
- {
- foreach($args as $arg)
- echo $arg;
- $this->end();
- }
- }
-}
-
-
-/**
- * End a HTML page.
- */
-function end()
-{
- $this->head();
-
- if ($this->in_body)
- {
- echo $this->body_end."</body>\n";
- $this->in_body = 0;
- }
-
- echo "</html>\n";
-}
-
-
-} /* End class it_html_page */
-?>