[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-doc-cvs
Subject:    [DOC-CVS] cvs: phd(PHD_ENTERPRISE) / render.php  /formats bigxhtml.php php.php  /include PhDConfig.c
From:       "Hannes Magnusson" <bjori () php ! net>
Date:       2008-07-28 22:47:59
Message-ID: cvsbjori1217285279 () cvsserver
[Download RAW message or body]

bjori		Mon Jul 28 22:47:59 2008 UTC

  Added files:                 (Branch: PHD_ENTERPRISE)
    /phd	render.php 
    /phd/formats	bigxhtml.php php.php 
    /phd/include	PhDConfig.class.php PhDIndex.class.php 
                	PhDObjectStorage.class.php PhDRender.class.php 
  Log:
  Add these files to the correct branch
  
  
["bjori-20080728224759.txt" (text/plain)]

http://cvs.php.net/viewvc.cgi/phd/render.php?view=markup&rev=1.1
Index: phd/render.php
+++ phd/render.php

http://cvs.php.net/viewvc.cgi/phd/formats/bigxhtml.php?view=markup&rev=1.1
Index: phd/formats/bigxhtml.php
+++ phd/formats/bigxhtml.php
<?php
class PhDBigXHTMLFormat extends PhDXHTMLFormat {
    private $myelementmap = array(
        'link'                  => 'format_link',
        'xref'                  => 'format_xref',
        'title'                 => array(
            /* DEFAULT */          false,
            'info'              => array(
                /* DEFAULT */      false,
                'article'       => 'format_container_chunk_top_title',
                'appendix'      => 'format_container_chunk_top_title',
                'book'          => 'format_container_chunk_top_title',
                'chapter'       => 'format_container_chunk_top_title',
                'part'          => 'format_container_chunk_top_title',
                'set'           => 'format_container_chunk_top_title',
            ),
            'article'           => 'format_container_chunk_top_title',
            'appendix'          => 'format_container_chunk_top_title',
            'book'              => 'format_container_chunk_top_title',
            'chapter'           => 'format_container_chunk_top_title',
            'part'              => 'format_container_chunk_top_title',
            'set'               => 'format_container_chunk_top_title',
        ),
        'reference'             => 'format_container_chunk_below',
        'question'              => array(
            /* DEFAULT */          false,
            'questions'         => 'format_phd_question', // From the PhD namespace
        ),

 
    );
    private $mytextmap = array(
    );
    private $bigfp;
    protected $flags;


    public function __construct() {
        parent::__construct();
    }
    public function appendData($data) {
        $id = "BIGHTML ID";
        if ($this->flags & PhDRender::CLOSE) {
            fwrite($this->bigfp, $data);

            /* Append footer */
            fwrite($this->bigfp, $this->footer($id));
            $this->flags ^= PhDRender::CLOSE;
        } elseif ($this->flags & PhDRender::OPEN) {
            /* Prepend header */
            fwrite($this->bigfp, $this->header($id));

            fwrite($this->bigfp, $data);
            $this->flags ^= PhDRender::OPEN;
        } else {
            fwrite($this->bigfp, $data);
        }

    }
    public function header($id) {
        return "\n";
    }
    public function footer($id) {
        return "\n<hr />\n";
    }
    public function open() {
        static $i = 0;
        $i++;
        $this->bigfp = fopen(PhDConfig::get("output_dir") . "bightml$i.html", "w+");
        // FIXME: Use correct lang attribute and insert <title> of the DB file
        fwrite($this->bigfp, 
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
</head>
<body>
');

    }
    public function close() {
        fwrite($this->bigfp, "</body>\n</html>");
        fclose($this->bigfp);
    }
    public function getDefaultElementMap() {
        return $this->myelementmap;
    }
    public function getDefaultTextMap() {
        return $this->mytextmap;
    }
    public function update($event, $val = null) {
        switch($event) {
        case PhDRender::CHUNK:
            $this->flags = $val;
            break;

        case PhDRender::STANDALONE:
            if ($val) {
                $this->registerElementMap(parent::getDefaultElementMap());
                $this->registerTextMap(parent::getDefaultTextMap());
            } else {
                $this->registerElementMap(static::getDefaultElementMap());
                $this->registerTextMap(static::getDefaultTextMap());
            }
            break;

        case PhDRender::INIT:
            if ($val) {
                if (!is_resource($this->bigfp)) {
                    $this->open();
                }
            } else {
                $this->close();
            }
            break;
        }
    }
    public function createLink($for, &$desc = null, $type = self::SDESC) {
        $retval = '#' . $for;
        if ($desc !== null) {
            $rsl = sqlite_array_query($this->sqlite, "SELECT sdesc, ldesc FROM ids \
WHERE docbook_id='$for'", SQLITE_ASSOC);  $retval = '#' . $for;

            if ($type === self::SDESC) {
                $desc = $rsl[0]["sdesc"] ?: $rsl[0]["ldesc"];
            } else {
                $desc = $rsl[0]["ldesc"] ?: $rsl[0]["sdesc"];
            }
        }

        return $retval;
    }

}

/*
 * vim600: sw=4 ts=4 fdm=syntax syntax=php et
 * vim<600: sw=4 ts=4
 */


http://cvs.php.net/viewvc.cgi/phd/formats/php.php?view=markup&rev=1.1
Index: phd/formats/php.php
+++ phd/formats/php.php
<?php
/*  $Id: php.php,v 1.1 2007/08/05 14:49:55 bjori Exp $ */

class PHPPhDFormat extends XHTMLPhDFormat {
    protected $CURRENT_ID = "";
    protected $ext;

    public function __construct(PhDReader $reader, array $IDs, array $IDMap, $ext = \
"php") {  parent::__construct($reader, $IDs, $IDMap, $ext);
    }
    public function format_function($open, $name) {
        $func = $this->readContent($name);
        $link = str_replace(array("_", "::", "->"), "-", $func);

        if (!substr_compare($this->CURRENT_ID, $link, -strlen($link)) || !($filename \
= PhDFormat::getFilename("function.$link"))) {  return sprintf("<b>%s()</b>", $func);
        }

        return sprintf('<a href="%s.%s" class="function">%s()</a>', $filename, \
$this->ext, $func);  }
    public function format_container_chunk($open, $name) {
        $this->CURRENT_ID = $id = PhDFormat::getID();
        if ($open) {
            return "<div>";
        }
        $chunks = PhDFormat::getContainer($id);
        $content = "";
        if (count($chunks) > 1) {
            $content = '<ul class="chunklist chunklist_'.$name.'">';
            if ($name == "reference") {
                foreach($chunks as $chunkid => $junk) {
                    if ($chunkid == "parent") { continue; }
                    $content .= sprintf('<li><a href="%s.%s">%s</a> — %s</li>', \
$chunkid, $this->ext, PhDFormat::getDescription($chunkid, false), \
PhDFormat::getDescription($chunkid, true));  }
            } else {
                foreach($chunks as $chunkid => $junk) {
                    if ($chunkid == "parent") { continue; }
                    $content .= sprintf('<li><a href="%s.%s">%s</a></li>', $chunkid, \
$this->ext, PhDFormat::getDescription($chunkid, true));  }
            }
            $content .= "</ul>\n";
        }
        $content .= "</div>\n";
        
        return $content;
    }
}
/*
* vim600: sw=4 ts=4 fdm=syntax syntax=php et
* vim<600: sw=4 ts=4
*/


http://cvs.php.net/viewvc.cgi/phd/include/PhDConfig.class.php?view=markup&rev=1.1
Index: phd/include/PhDConfig.class.php
+++ phd/include/PhDConfig.class.php
<?php
define('VERBOSE_INDEXING',               0x01);
define('VERBOSE_FORMAT_RENDERING',       0x02);
define('VERBOSE_THEME_RENDERING',        0x04);
define('VERBOSE_RENDER_STYLE',           0x08);
define('VERBOSE_PARTIAL_READING',        0x10);
define('VERBOSE_PARTIAL_CHILD_READING',  0x20);
define('VERBOSE_TOC_WRITING',            0x40);
define('VERBOSE_CHUNK_WRITING',          0x80);

define('VERBOSE_ALL',                    0xFF);


class PhDConfig {
	private static $opts = array(
		"output_format"       => array(
		),
		"output_theme"        => array(
		),
		"chunk_extra"         => array(
		),
		"index"               => true,
		"xml_root"            => __DIR__,
		"xml_file"            => false,
		"language"            => "en",
		"fallback_language"   => "en",
		"build_log_file"      => false,
		"verbose"             => VERBOSE_ALL,
		"date_format"         => "H:i:s",
		"render_ids"          => array(
		),
		"skip_ids"            => array(
		),
		"output_dir"          => __DIR__,
		"lang_dir"            => __DIR__,
	);

	public static function init(array $a) {
		self::$opts = array_merge(self::$opts, (array)$a);
	}
	public static function get($opt) {
		if (!is_string($opt)) {
			throw new UnexpectedValueException("Excpecting a string");
		}
		if (!isset(self::$opts[$opt])) {
			throw new UnexpectedValueException("Unknown option: $opt");
		}
		return self::$opts[$opt];
	}
}



http://cvs.php.net/viewvc.cgi/phd/include/PhDIndex.class.php?view=markup&rev=1.1
Index: phd/include/PhDIndex.class.php
+++ phd/include/PhDIndex.class.php
<?php
class PhDIndex extends PhDFormat {
	private $myelementmap = array(
        'article'               => 'format_container_chunk',
        'appendix'              => 'format_container_chunk',
        'bibliography'          => array(
            /* DEFAULT */          false,
            'article'           => 'format_chunk',
            'book'              => 'format_chunk',
            'part'              => 'format_chunk',
        ),
        'book'                  => 'format_container_chunk',
        'chapter'               => 'format_container_chunk',
        'colophon'              => 'format_chunk',
        'glossary'              => array(
            /* DEFAULT */          false,
            'article'           => 'format_chunk',
            'book'              => 'format_chunk',
            'part'              => 'format_chunk',
        ),
        'index'                 => array(
            /* DEFAULT */          false,
            'article'           => 'format_chunk',
            'book'              => 'format_chunk',
            'part'              => 'format_chunk',
        ),

        'legalnotice'           => 'format_legalnotice_chunk',
        'part'                  => 'format_container_chunk',
        'preface'               => 'format_chunk',
        'refentry'              => 'format_chunk',
        'reference'             => 'format_container_chunk',
        'sect1'                 => 'format_section_chunk',
        'section'               => array(
            /* DEFAULT */          false,
            'sect1'                => 'format_section_chunk',
            'preface'              => 'format_section_chunk',
            'chapter'              => 'format_section_chunk',
            'appendix'             => 'format_section_chunk',
            'article'              => 'format_section_chunk',
            'part'                 => 'format_section_chunk',
            'reference'            => 'format_section_chunk',
            'refentry'             => 'format_section_chunk',
            'index'                => 'format_section_chunk',
            'bibliography'         => 'format_section_chunk',
            'glossary'             => 'format_section_chunk',
            'colopone'             => 'format_section_chunk',
            'book'                 => 'format_section_chunk',
            'set'                  => 'format_section_chunk',
            'setindex'             => 'format_section_chunk',
            'legalnotice'          => 'format_section_chunk',
        ),
        'set'                   => 'format_container_chunk',
        'setindex'              => 'format_chunk',



		'title'                 => 'format_ldesc',
		'refpurpose'            => 'format_ldesc',
		'refname'               => 'format_refname',
		'titleabbrev'           => 'format_sdesc',
	);
	private $mytextmap = array(
	);
	private $chunks    = array();

	public function transformFromMap($open, $tag, $name, $attrs, $props) {
	}
	public function TEXT($value) {
	}
	public function CDATA($value) {
	}
	public function createLink($for, &$desc = null, $desc = PhDFormat::SDESC) {
	}
	public function appendData($data) {
	}
    public function update($event, $value = null) {
        switch($event) {
        case PhDRender::CHUNK:
            $this->flags = $value;
            break;

        case PhDRender::STANDALONE:
            if ($value) {
                $this->registerElementMap(static::getDefaultElementMap());
                $this->registerTextMap(static::getDefaultTextMap());
            }
            break;
		case PhDRender::INIT:
			if ($value) {
				if (file_exists("index.sqlite")) {
					unlink("index.sqlite");
				}
				$db = sqlite_open("index.sqlite");

				sqlite_exec($db, 'PRAGMA default_synchronous=OFF');
				sqlite_exec($db, 'PRAGMA count_changes=OFF');
				sqlite_exec($db, 'PRAGMA cache_size=100000');

				$create = <<<SQL
CREATE TABLE ids (
	docbook_id TEXT PRIMARY KEY,
	filename TEXT,
	parent_id TEXT,
	sdesc TEXT,
	ldesc TEXT,
	element TEXT
);
SQL;
				sqlite_exec($db, 'PRAGMA default_synchronous=OFF');
				sqlite_exec($db, 'PRAGMA count_changes=OFF');
				sqlite_exec($db, 'PRAGMA cache_size=100000');
				sqlite_exec($db, $create);

				$this->db = $db;

				$this->chunks = array();
			} else {
				//print_r($this->chunks);
			}
        }
    }
    public function getDefaultElementMap() {
        return $this->myelementmap;
    }
    public function getDefaultTextMap() {
        return $this->mytextmap;
    }
	public function UNDEF($open, $name, $attrs, $props) {
		if ($open) {
            if(!isset($attrs[PhDReader::XMLNS_XML]["id"])) {
				return false;
			}
			$id = $attrs[PhDReader::XMLNS_XML]["id"];
			$this->storeInfo($name, $id, $this->currentchunk);

			return false;
		}

		if(!isset($attrs[PhDReader::XMLNS_XML]["id"])) {
			return false;
		}

		$this->appendID();
		return false;
	}
	protected function storeInfo($elm, $id, $filename) {
		$this->nfo[$id] = array(
			"parent"   => "",
			"filename" => $filename,
			"sdesc"    => "",
			"ldesc"    => "",
			"element"  => $elm,
			"children" => array(),
		);
		$this->ids[] = $id;
		$this->currentid = $id;
	}
	public function appendID() {
		static $rand = 0;

		$lastchunkid = array_pop($this->ids);
		$parentid = end($this->ids);

		$this->currentid = $parentid;
		$a = $this->nfo[$lastchunkid];
		if (is_array($a["sdesc"])) {
			$array = true;
			$sdesc = array_shift($a["sdesc"]);
		} else {
			$array = false;
			$sdesc = $a["sdesc"];
		}
		$this->commit .= sprintf(
			"INSERT INTO ids (docbook_id, filename, parent_id, sdesc, ldesc, element) \
VALUES('%s', '%s', '%s', '%s', '%s', '%s');\n",  sqlite_escape_string($lastchunkid),
			sqlite_escape_string($a["filename"]),
			sqlite_escape_string($this->currentchunk),
			sqlite_escape_string($sdesc),
			sqlite_escape_string($a["ldesc"]),
			sqlite_escape_string($a["element"])
		);
		if ($array === true && !empty($a["sdesc"])) {
			foreach($a["sdesc"] as $sdesc) {
				++$rand;
				$this->commit .= sprintf(
					"INSERT INTO ids (docbook_id, filename, parent_id, sdesc, ldesc, element) \
VALUES('%s', '%s', '', '%s', '%s', '%s');\n",  "phdgen-" . $rand,
					sqlite_escape_string($a["filename"]),
					sqlite_escape_string($sdesc),
					sqlite_escape_string($a["ldesc"]),
					sqlite_escape_string($a["element"])
				);
			}
		}
	}
    public function format_section_chunk($open, $name, $attrs, $props) {
        static $a = array();
        if ($open) {
            $a[] = $props["sibling"];
            if ($props["sibling"] === $name) {
                return $this->format_chunk($open, $name, $attrs, $props);
            }
            return $this->UNDEF($open, $name, $attrs, $props);
        }
        $x = array_pop($a);
        if ($x == $name) {
                return $this->format_chunk($open, $name, $attrs, $props);
        }
        $a[] = $x;
        return $this->UNDEF($open, $name, $attrs, $props);
    }
    public function format_container_chunk($open, $name, $attrs, $props) {
		return $this->format_chunk($open, $name, $attrs, $props);
    }
    public function format_chunk($open, $name, $attrs, $props) {
        if ($open) {
            if(isset($attrs[PhDReader::XMLNS_XML]["id"])) {
                $id = $attrs[PhDReader::XMLNS_XML]["id"];
            } else {
                $id = uniqid("phd");
            }
			$this->chunks[] = $id;
			$this->currentchunk = $id;
			$this->storeInfo($name, $id, $id);

            $this->notify(PhDRender::CHUNK, PhDRender::OPEN);

			return false;
        }
		array_pop($this->chunks);
		$this->currentchunk = end($this->chunks);

        $this->notify(PhDRender::CHUNK, PhDRender::CLOSE);

		$this->appendID();

		return false;
    }
	public function format_legalnotice_chunk($open, $name, $attrs, $props) {
		return $this->format_chunk($open, $name, $attrs, $props);
	}
	public function format_ldesc($open, $name, $attrs, $props) {
		if ($open) {
			if (empty($this->nfo[$this->currentid]["ldesc"])) {
				/* FIXME: How can I mark that node with "reparse" flag? */
				$s = $this->getReader()->readInnerXml();
				$this->nfo[$this->currentid]["ldesc"] = $s;
			}
		}
	}
	public function format_sdesc($open, $name, $attrs, $props) {
		if ($open) {
			if (empty($this->nfo[$this->currentid]["sdesc"])) {
				/* FIXME: How can I mark that node with "reparse" flag? */
				$s = $this->getReader()->readInnerXml();
				$this->nfo[$this->currentid]["sdesc"] = $s;
			}

		}
	}
	public function format_refname($open, $name, $attrs, $props) {
		if ($open) {
			$s = $this->getReader()->readInnerXml();
			$s = str_replace(array("_", "::", "->"), array("-", "-", "-"), $s);
			$this->nfo[$this->currentid]["sdesc"][] = strtolower($s);
		}
	}
	public function commit() {
		var_dump(sqlite_exec($this->db, 'BEGIN TRANSACTION; '.$this->commit.' COMMIT'));
		$this->commit = null;
	}
}


http://cvs.php.net/viewvc.cgi/phd/include/PhDObjectStorage.class.php?view=markup&rev=1.1
                
Index: phd/include/PhDObjectStorage.class.php
+++ phd/include/PhDObjectStorage.class.php
<?php
class PhDObjectStorage extends SplObjectStorage {
	protected static $r = array();

	public function attach($obj, $inf = array()) {
		if (!($obj instanceof PhDFormat)) {
			throw new InvalidArgumentException("Only classess inheriting PhDFormat \
supported");  }
		if (empty($inf)) {
			$inf = array(
				XMLReader::ELEMENT => $obj->getElementMap(),
				XMLReader::TEXT    => $obj->getTextMap(),
			);
		}
		parent::attach($obj, $inf);
	}
	final protected static function setReader(PhDReader $r) {
		self::$r[] = $r;
	}
	final protected function getReader() {
		return end(self::$r);
	}
	final protected function popReader() {
		return array_pop(self::$r);
	}
}


http://cvs.php.net/viewvc.cgi/phd/include/PhDRender.class.php?view=markup&rev=1.1
Index: phd/include/PhDRender.class.php
+++ phd/include/PhDRender.class.php
<?php
class PhDRender extends PhDObjectStorage {
	const CHUNK        = 0x001;
	const OPEN         = 0x002;
	const CLOSE        = 0x004;
	const STANDALONE   = 0x008;
	const INIT         = 0x010;

	private   $STACK      = array();

	public function __construct() { /* {{{ */
	} /* }}} */

	public function notXPath($tag, $depth) { /* {{{ */
		do {
			if (isset($tag[$this->STACK[--$depth]])) {
				$tag = $tag[$this->STACK[$depth]];
			} else {
				$tag = $tag[0];
			}
		} while (is_array($tag));
		return $tag;
	} /* }}} */

	public function attach($obj, $inf = array()) { /* {{{ */
		if (!($obj instanceof PhDFormat)) {
			throw new InvalidArgumentException("All formats *MUST* inherit PhDFormat");
		}
		$obj->notify(PhDRender::STANDALONE, true);

		return parent::attach($obj, $inf);
	} /* }}} */

	public function render(PhDReader $r) { /* {{{ */
		PhDObjectStorage::setReader($r);

		foreach($this as $format) {
			$format->notify(PhDRender::INIT, true);
		}

		$lastdepth = -1;
		while($r->read()) {
			$type = $r->nodeType;
			$data = $retval = $name = $open = false;

			switch($type) {
			case XMLReader::ELEMENT: /* {{{ */
				$open  = true;
				/* break intentionally omitted */
			case XMLReader::END_ELEMENT:
				$name  = $r->name;
				$depth = $r->depth;
				$attrs = array(
					PhDReader::XMLNS_DOCBOOK => array(),
					PhDReader::XMLNS_XML     => array(),
				);

				if ($r->hasAttributes) {
					$r->moveToFirstAttribute();
					do {
						$k = $r->namespaceURI;
						$attrs[!empty($k) ? $k : PhDReader::XMLNS_DOCBOOK][$r->localName] = $r->value;
					} while ($r->moveToNextAttribute());
					$r->moveToElement();
				}

				$props    = array(
					"empty"    => $r->isEmptyElement,
					"isChunk"  => false,
					"lang"     => $r->xmlLang,
					"ns"       => $r->namespaceURI,
					"sibling"  => $lastdepth >= $depth ? $this->STACK[$depth] : "",
					"depth"    => $depth,
				);

				$this->STACK[$depth] = $name;

				foreach($this as $format) {
					$map = $this[$format][XMLReader::ELEMENT];

					if (isset($map[$name]) === false) {
						$data = $format->UNDEF($open, $name, $attrs, $props);
						$format->appendData($data);
						continue;
					}

					$tag = $map[$name];
					if (is_array($tag)) {
						$tag = $this->notXPath($tag, $depth);
					}

					if ($tag === false) {
						$data = $format->UNDEF($open, $name, $attrs, $props);
						$format->appendData($data);
						continue;
					}

					if (strncmp($tag, "format_", 7) !== 0) {
						$data = $retval = $format->transformFromMap($open, $tag, $name, $attrs, \
$props);  } else {
						$data = $retval = $format->{$tag}($open, $name, $attrs, $props);
					}
					$format->appendData($data);

					foreach($format as $theme) {
						$map = $format[$theme][XMLReader::ELEMENT];
						if (isset($map[$name])) {
							$tag = $map[$name];

							if (is_array($tag)) {
								$tag = $this->notXPath($tag, $depth);
							}

							if ($tag !== false) {
								$retval = $theme->{$tag}($open, $name, $attrs, $props);

								if ($retval !== false) {
									$data = $retval;
								}
							}
						}
						$theme->appendData($data);
					}
				}

				$lastdepth = $depth;
				break;
			/* }}} */

			case XMLReader::TEXT: /* {{{ */
				$value = $r->value;
				$eldepth = $r->depth - 1;
				$name  = $this->STACK[$eldepth];

				foreach($this as $format) {
					$map = $this[$format][XMLReader::TEXT];
					if (isset($map[$name])) {
						$tag = $map[$name];

						if (is_array($tag)) {
							$tag = $this->notXPath($tag, $eldepth);
						}

						if ($tag !== false) {
							$data = $retval = $format->{$tag}($value, $name);
						} else {
							$data = $retval = $format->TEXT($value);
						}
					} else {
						$data = $retval = $format->TEXT($value);
					}

					if ($data === false) {
						$format->appendData($value);
					} else {
						$format->appendData($data);
					}

					foreach($format as $theme) {
						$map = $format[$theme][XMLReader::TEXT];
						if (isset($map[$name])) {
							$tag = $map[$name];

							if (is_array($tag)) {
								$tag = $this->notXPath($tag, $eldepth);
							}

							if ($tag !== false) {
								$retval = $format->{$tag}($value, $name);
								if ($retval !== false) {
									$data = $retval;
								}
							}
						}
						$theme->appendData($data);
					}
				}
				break;
			/* }}} */

			case XMLReader::CDATA: /* {{{ */
				/* Different formats may want to escape the CDATA sections differently */
				$value  = $r->value;
				foreach($this as $format) {
					$retval = $format->CDATA($value);
					$format->appendData($retval);
					foreach($format as $theme) {
						$theme->appendData($retval);
					}
				}
				break;
			/* }}} */

			case XMLReader::WHITESPACE: /* {{{ */
			case XMLReader::SIGNIFICANT_WHITESPACE:
				/* WS is always WS */
				$retval  = $r->value;
				foreach($this as $format) {
					$format->appendData($retval);
					foreach($format as $theme) {
						$theme->appendData($retval);
					}
				}
				break;
			/* }}} */

			}
		}

		/* Closing time */
		foreach($this as $format) {
			//$format->notify(PhDRender::INIT, false);
		}
		$r->close();

		PhDObjectStorage::popReader();

	} /* }}} */

}



-- 
PHP Documentation Commits Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic