--- nfo/php/libs/com.newsblob.phphtmllib/widgets/HTMLPageClass.inc 2003/11/14 21:31:40 1.3
+++ nfo/php/libs/com.newsblob.phphtmllib/widgets/HTMLPageClass.inc 2004/05/06 16:27:41 1.4
@@ -3,7 +3,7 @@
/**
* This contains the HTMLPageClass widget
*
- * $Id: HTMLPageClass.inc,v 1.3 2003/11/14 21:31:40 jonen Exp $
+ * $Id: HTMLPageClass.inc,v 1.4 2004/05/06 16:27:41 jonen Exp $
*
* @author Walter A. Boring IV
* @package phpHtmlLib
@@ -174,6 +174,22 @@
*/
var $_indent_style = 0;
+ /**
+ * keeps track of the html
+ * render type.
+ *
+ * @var string
+ */
+ var $_html_render_type = HTML;
+
+ /**
+ * The favicon params
+ * @var array
+ */
+ var $_favicon = array("href" => "/favicon.ico",
+ "type" => "images/x-ico",
+ "enabled" => FALSE);
+
/**
@@ -205,14 +221,15 @@
switch ($html_type) {
case HTML:
default:
- $this->build_doctype("-//W3C//DTD HTML 4.01 Transitional//EN");
- $GLOBALS["HTML_RENDER_TYPE"] = HTML;
+ $this->build_doctype("-//W3C//DTD HTML 4.01 Transitional//EN",
+ "http://www.w3.org/TR/html4/loose.dtd");
+ $this->_html_render_type = $GLOBALS["HTML_RENDER_TYPE"] = HTML;
break;
case XHTML_STRICT:
$this->build_doctype("-//W3C//DTD XHTML 1.0 Strict//EN",
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd");
- $GLOBALS["HTML_RENDER_TYPE"] = XHTML_STRICT;
+ $this->_html_render_type = $GLOBALS["HTML_RENDER_TYPE"] = XHTML_STRICT;
$this->set_html_attributes( array( "xmlns" => "http://www.w3.org/1999/xhtml",
"xml:lang" => "en",
"lang" => "en") );
@@ -222,7 +239,7 @@
case XHTML_TRANSITIONAL:
$this->build_doctype("-//W3C//DTD XHTML 1.0 Transitional//EN",
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd");
- $GLOBALS["HTML_RENDER_TYPE"] = XHTML;
+ $this->_html_render_type = $GLOBALS["HTML_RENDER_TYPE"] = XHTML;
$this->set_html_attributes( array( "xmlns" => "http://www.w3.org/1999/xhtml",
"xml:lang" => "en",
"lang" => "en") );
@@ -233,7 +250,7 @@
case XHTML_FRAMESET:
$this->build_doctype("-//W3C//DTD XHTML 1.0 Frameset//EN",
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd");
- $GLOBALS["HTML_RENDER_TYPE"] = XHTML_FRAMESET;
+ $this->_html_render_type = $GLOBALS["HTML_RENDER_TYPE"] = XHTML_FRAMESET;
break;
}
@@ -465,6 +482,33 @@
return html_meta($content_type, "Content-Type");
}
+ /**
+ * This is used to enable the ability to add the
+ * favicon link in the head of the document.
+ * By default it is off.
+ *
+ * @param boolean TRUE = enable
+ */
+ function set_favicon_flag($flag=TRUE) {
+ $this->_favicon["enabled"] = $flag;
+ }
+
+ /**
+ * This allows you to change the default url/path
+ * for where the favicon.ico lives.
+ * NOTE: calling this method automatically enables the
+ * link in the head to be created.
+ *
+ * @param string the url to the favicon.ico file
+ * @param string the type of the image.
+ * NOTE: Default is image/x-ico
+ */
+ function set_favicon($path, $type="image/x-ico") {
+ $this->_favicon["href"] = $path;
+ $this->_favicon["type"] = $type;
+ $this->set_favicon_flag( TRUE );
+ }
+
//**************************************************
//* BODY tag related functions
//**************************************************
@@ -487,7 +531,7 @@
$js = "";
$js = $arg->get_javascript();
$class_name = get_class($arg);
- if ($js != "" && !$this->_widget_js_auto[$class_name]) {
+ if ($js != "" && !isset($this->_widget_js_auto[$class_name])) {
$this->add_head_js( str_replace(chr(9),'', $js) );
$this->_widget_js_auto[$class_name] = TRUE;
}
@@ -594,6 +638,12 @@
if ($this->_title) {
$this->_head->add( $this->_title );
}
+
+ if ($this->_favicon["enabled"]) {
+ $this->_head->add( html_link($this->_favicon["href"],
+ "shortcut icon",
+ $this->_favicon["type"]));
+ }
if ( $this->_head_style->count_content() ) {
$this->_head->add( $this->_head_style );
@@ -637,6 +687,10 @@
*/
function render() {
+ //make sure the render type is correctly
+ //set
+ $GLOBALS["HTML_RENDER_TYPE"] = $this->_html_render_type;
+
//lets use ourself to render the debug page!
if ($this->_text_debug) {
$page = new HTMLPageClass;