cvs: php4 /pear/PHPDoc/apidoc/keep empty.html index2.html phpdoc.css phpdoc.dtd /pear/PHPDoc/renderer/html PhpdocHTMLClassRenderer.php
PhpdocHTMLDocumentRenderer.php PhpdocHTMLIndexRenderer.php PhpdocHTMLModuleRenderer.php PhpdocHTMLRenderer.php PhpdocHTMLRendererManager.php
PhpdocHTMLWarningRenderer.php /pear/PHPDoc/renderer/html/templates class.html classtree.html elementlist.html frame_packageelementlist.html
frame_packagelist.html

From: Date: Sun, 08 Oct 2000 10:05:13 +0000
Subject: cvs: php4 /pear/PHPDoc/apidoc/keep empty.html index2.html phpdoc.css phpdoc.dtd /pear/PHPDoc/renderer/html PhpdocHTMLClassRenderer.php
PhpdocHTMLDocumentRenderer.php PhpdocHTMLIndexRenderer.php PhpdocHTMLModuleRenderer.php PhpdocHTMLRenderer.php PhpdocHTMLRendererManager.php
PhpdocHTMLWarningRenderer.php /pear/PHPDoc/renderer/html/templates class.html classtree.html elementlist.html frame_packageelementlist.html
frame_packagelist.html
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-1952@lists.php.net to get a copy of this message
sbergmann Sun Oct 8 03:05:13 2000 EDT Added files: /php4/pear/PHPDoc/apidoc/keep empty.html index2.html phpdoc.css phpdoc.dtd /php4/pear/PHPDoc/renderer/html PhpdocHTMLClassRenderer.php PhpdocHTMLDocumentRenderer.php PhpdocHTMLIndexRenderer.php PhpdocHTMLModuleRenderer.php PhpdocHTMLRenderer.php PhpdocHTMLRendererManager.php PhpdocHTMLWarningRenderer.php /php4/pear/PHPDoc/renderer/html/templates class.html classtree.html elementlist.html frame_packageelementlist.html frame_packagelist.html Log: Initial commit for Ulf Wendel's PHPDoc. I hope I haven't forgot a directory or file along the way... Index: php4/pear/PHPDoc/apidoc/keep/empty.html +++ php4/pear/PHPDoc/apidoc/keep/empty.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- Generated with PHPDoc, http://www.phpdoc.de --> <html> <head> <title>Empty</title> <link href="phpdoc.css" rel="stylesheet" type="text/css"> </head> <body> <h1>:)</h1> </body> </html> Index: php4/pear/PHPDoc/apidoc/keep/index2.html +++ php4/pear/PHPDoc/apidoc/keep/index2.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>PHPDoc 1.0beta</title> </head> <!-- frames --> <frameset cols="20%,*"> <frameset rows="20%,*"> <frame src="frame_packagelist.html" name="packagelist" scrolling="Auto" marginwidth="0" marginheight="0"> <frame src="empty.html" name="packageelements" frameborder="0" scrolling="Auto" marginwidth="0" marginheight="0"> </frameset> <frame src="phpdoc_packagelist.html" name="main" frameborder="0" scrolling="Auto" marginwidth="0" marginheight="0"> </frameset> <body> Sorry, frames required. </body> </html> Index: php4/pear/PHPDoc/apidoc/keep/phpdoc.css +++ php4/pear/PHPDoc/apidoc/keep/phpdoc.css BODY { background-color : #F0F0F0; color : #000000; font-family : Arial, Tahoma, Helvetica, sans-serif; font-size : 10pt; margin-left : 1em; margin-right : 0; } A:LINK, A:VISITED { color : #000099; } A:HOVER { background-color : #FFFFFF; color : #00009F; } H1 { color : Black; font-family : Verdana, Tahoma, Arial, Helvetica, sans-serif; font-size : 16pt; padding-bottom : 5px; padding-top : 5px; padding-left : 5px; } H2 { color : Black; font-family : Verdana, Tahoma, Arial, Helvetica, sans-serif; font-size : 14pt; margin-top : 2em; } H3 { color : Navy; font-family : Verdana, Tahoma, Arial, Helvetica, sans-serif; font-size : 12pt; margin-top :1em; } H4 { color : Navy; font-family : Verdana, Tahoma, Arial, Helvetica, sans-serif; font-size : 11pt; background-color : #E6E6FA; padding-bottom : 2px; padding-top : 2px; padding-left : 2px; } H5 { color : Navy; font-family : Verdana, Tahoma, Arial, Helvetica, sans-serif; font-size : 10pt; font-weight : 900; margin-bottom : -1em; } H6 { color : #000000; font-family : Arial, Helvetica, sans-serif; font-size : 10pt; font-weight : 800; margin-bottom : -1em; } BLOCKQUOTE { margin-left : 0; } CAPTION { font-family : Verdana, Tahoma, Arial, Helvetica, sans-serif; font-weight : 800; } TH { background-color : #FFFFFF; } TD { background-color : #F0F0F0; font-size : 10pt; } CODE { font-size: 8pt; } Index: php4/pear/PHPDoc/apidoc/keep/phpdoc.dtd +++ php4/pear/PHPDoc/apidoc/keep/phpdoc.dtd <!ENTITY % name 'name CDATA #REQUIRED'> <!ENTITY % undoc 'undoc (true | false) "false"'> <!ENTITY % access 'access (public | private) "private"'> <!ENTITY % abstract 'abstract (true | false) "false"'> <!ENTITY % static 'static (true | false) "false"'> <!ENTITY % final 'final (true | false) "false"'> <!ENTITY % type 'type CDATA'> <!ENTITY % file 'file CDATA'> <!ENTITY % package 'package CDATA'> <!ENTITY % group 'group CDATA'> <!ELEMENT phpdoc (class|module)*> <!ELEMENT class (file, doc?, function*, variable*, uses*, constant*, inherited*, overriden*, path*, baseclass*, subclasses*)> <!ATTLIST class %name; extends CDATA %undoc; %access; %abstract; %static; %final; %package;> <!ELEMENT module (file, doc?, function*, uses*, constant*)> <!ATTLIST module %name; %group; %undoc; %access; %package;> <!ELEMENT variable (#PCDATA, doc?)> <!ATTLIST variable %name; %access; %type; %static; %final;> <!ELEMENT path (parent?)> <!ELEMENT parent (#PCDATA)> <!ELEMENT subclasses (subclass?)> <!ELEMENT subclass (#PCDATA)> <!ELEMENT doc ( link | author | see | parameter | return | throws | global | inherited | overriden | description | shortdescription | version | since | deprecated | copyright | exclude | brother | magic )*> <!ELEMENT function (#PCDATA)> <!ATTLIST function %name; %undoc; %access; %abstract; %static;> <!ELEMENT constant (#PCDATA)> <!ATTLIST constant %name; %undoc; %access; case CDATA> <!ELEMENT uses (#PCDATA)> <!ATTLIST uses %type; %file; %undoc;> <!ELEMENT baseclass (#PCDATA)> <!ELEMENT link (#PCDATA)> <!ATTLIST link url CDATA> <!ELEMENT author (PANIK)> <!ATTLIST author email CDATA> <!ELEMENT see (#PCDATA)> <!ATTLIST see type CDATA #REQUIRED group CDATA> <!ELEMENT parameter (#PCDATA?)> <!ATTLIST parameter %name; %type; value CDATA %undoc;> <!ELEMENT return (#PCDATA)> <!ATTLIST return name CDATA %type; #REQUIRED> <!ELEMENT throws (#PCDATA)> <!ELEMENT global (#PCDATA)> <!ATTLIST global name CDATA %type; #REQUIRED> <!ELEMENT inherited (element)*> <!ATTLIST inherited type CDATA src CDATA> <!ELEMENT element (#PCDATA)> <!ELEMENT overriden (element)*> <!ATTLIST overriden type CDATA src CDATA> <!ELEMENT description (#PCDATA)> <!ELEMENT shortdescription (#PCDATA)> <!ELEMENT version (#PCDATA)> <!ELEMENT since (#PCDATA)> <!ELEMENT deprecated (#PCDATA)> <!ELEMENT copyright (#PCDATA)> <!ELEMENT exclude (#PCDATA)> <!ELEMENT brother (#PCDATA)> <!ELEMENT magic (#PCDATA)> <!ELEMENT file (#PCDATA)> Index: php4/pear/PHPDoc/renderer/html/PhpdocHTMLClassRenderer.php +++ php4/pear/PHPDoc/renderer/html/PhpdocHTMLClassRenderer.php <?php /** * Renders classes. */ class PhpdocHTMLClassRenderer extends PhpdocHTMLDocumentRenderer { /** * Internal array of "&nbsp;" strings to format HTML output. * @var array $indent */ var $indent = array(); /** * Array of variables found in the xml document. * @var array $variables */ var $variables = array(); /** * Sets the xml and template root directory. * * @param string XML file path * @param string Template file path * @param string Name of the current application * @see setPath(), setTemplateRoot() */ function PhpdocHTMLClassRenderer($path, $templateRoot, $application) { $this->setPath($path); $this->setTemplateRoot($templateRoot); $this->application = $application; $this->accessor = new PhpdocClassAccessor; $this->tpl = new IntegratedTemplate($this->templateRoot); $this->fileHandler = new PhpdocFileHandler; } // end constructor /** * Renders a class * @param string XML source file * @param string Name of the HTML target file. * @access public */ function renderClass($xmlfile, $htmlfile="") { $this->tpl->loadTemplatefile("class.html"); if (""==$htmlfile) $htmlfile = substr($xmlfile, 6, -4).".html"; $this->accessor->loadXMLFile($this->path.$xmlfile); $this->renderSubclasses(); $this->renderInherited(); $this->renderFunctions(); $this->renderVariables(); $this->renderUses(); $this->renderConstants(); $class = $this->accessor->getClassdata(); $tplvars = array(); $tplvars["CLASS_FILE"] = $class["file"]["value"]; $tplvars["CLASS_NAME"] = $class["name"]; $tplvars["CLASS_ACCESS"] = $class["access"]; $tplvars["CLASS_PACKAGE"] = $class["package"]; if (""!=$class["extends"]) $tplvars["CLASS_EXTENDS"] = sprintf('extends <a href="%s.html">%s</a>', $class["extends"], $class["extends"] ); $tplvars["CLASS_UNDOC"] = ("true" == $class["undoc"]) ? $this->undocumented : ""; $tplvars["CLASS_ABSTRACT"]= ("true" == $class["abstract"]) ? "abstract" : ""; $tplvars["CLASS_STATIC"] = ("true" == $class["static"]) ? "static" : ""; $tplvars["CLASS_FINAL"] = ("true" == $class["final"]) ? "final" : ""; $tplvars["CLASS_TREE"] = $this->getClasstree($class["name"]); if (isset($class["doc"]["link"])) $this->renderLinks($class["doc"]["link"], "class_"); if (isset($class["doc"]["author"])) $this->renderAuthors($class["doc"]["author"], "class_"); if (isset($class["doc"]["see"])) $this->renderSee($class["doc"]["see"], "class_"); $fields = array( "version", "deprecated", "copyright" , "since", "magic"); reset($fields); while (list($k, $field)=each($fields)) if (isset($class["doc"][$field])) { $this->tpl->setCurrentBlock("class_".strtolower($field)); $this->tpl->setVariable(strtoupper($field), $class["doc"][$field]["value"]); $this->tpl->parseCurrentBlock(); } $fields = array( "description", "shortdescription" ); reset($fields); while (list($k, $field)=each($fields)) if (isset($class["doc"][$field])) $tplvars["CLASS_".strtoupper($field)] = $this->encode($class["doc"][$field]["value"]); $this->tpl->setCurrentBlock("__global__"); $this->tpl->setVariable($tplvars); $this->tpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path.$htmlfile, $this->tpl->get() ); $this->tpl->free(); } // end func renderClass /** * Renders a list of inherited elements. * @see renderInheritedElements() */ function renderInherited() { $this->renderInheritedElements( $this->accessor->getInheritedFunctions(), "inheritedfunctions", "function" ); $this->renderInheritedElements( $this->accessor->getInheritedVariables(), "inheritedvariables", "variable" ); $this->renderInheritedElements( $this->accessor->getInheritedConstants(), "inheritedconstants", "constant" ); $this->renderInheritedElements( $this->accessor->getInheritedUses(), "inheriteduses", "uses" ); } // end func renderInherited /** * Renders a list of a certain inherited element. * @see renderInheritedElements() */ function renderInheritedElements($inherited, $block, $type) { if (0==count($inherited)) return; $this->tpl->setCurrentBlock($block); reset($inherited); while (list($source, $elements)=each($inherited)) { $value = ""; reset($elements); while (list($k, $element)=each($elements)) $value.= sprintf('<a href="%s.html#%s_%s">%s</a>, ', $source, $type, $element, $element ); $value = substr($value, 0, -2); $this->tpl->setVariable("SOURCE", $source); $this->tpl->setVariable("ELEMENTS", $value); $this->tpl->parseCurrentBlock(); } } // end func renderInheritedElements /** * Renders a list of direct known subclasses. */ function renderSubclasses() { $subclasses = $this->accessor->getSubclasses(); if (0==count($subclasses)) return; $elements = ""; reset($subclasses); while (list($k, $subclass)=each($subclasses)) $elements.= sprintf('<a href="%s.html">%s</a>, ', $subclass, $subclass); $elements = substr($elements, 0, -2); if (""!=$elements) { $this->tpl->setCurrentBlock("subclasses"); $this->tpl->setVariable("ELEMENTS", $elements); $this->tpl->parseCurrentBlock(); } } // end func renderSubclasses /** * Adds a summary and a detailed list of all variables to the template. * @see renderVariableSummary(), renderVariableDetail() */ function renderVariables() { $this->variables["private"] = $this->accessor->getVariablesByAccess("private"); $this->variables["public"] = $this->accessor->getVariablesByAccess("public"); if (0==count($this->variables["private"]) && 0==count($this->variables["public"])) return; $this->renderVariableSummary(); $this->renderVariableDetail(); $this->variables = array(); } // end func renderVariables /** * Adds a summary of all variables to the template. * * The function assumes that there is a block named "variablesummary" and * within it a block names "variablesummay_loop" in the template. * * @see renderVariableDetail() */ function renderVariableSummary() { reset($this->accessModifiers); while (list($k, $access)=each($this->accessModifiers)) { if (0==count($this->variables[$access])) continue; $this->tpl->setCurrentBlock("variablesummary_loop"); reset($this->variables[$access]); while (list($name, $variable)=each($this->variables[$access])) { $this->tpl->setVariable("NAME", $name); $this->tpl->setVariable("TYPE", $variable["type"]); if (isset($variable["doc"]["shortdescription"])) $this->tpl->setVariable("SHORTDESCRIPTION", $this->encode($variable["doc"]["shortdescription"]["value"])); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("variablesummary"); $this->tpl->setVariable("ACCESS", ucfirst($access)); $this->tpl->parseCurrentBlock(); } } // end func renderVariableSummary /** * Adds a detailed list of all variables to the template. * * The function assumes that there is a block named "variabledetails" * and within it a block names "variablesdetails_loop" in the template. * * @see renderVariableSummary() */ function renderVariableDetail() { reset($this->accessModifiers); while (list($k, $access)=each($this->accessModifiers)) { if (0==count($this->variables[$access])) continue; reset($this->variables[$access]); while (list($name, $variable)=each($this->variables[$access])) { $tplvars = array(); $tplvars["NAME"] = $variable["name"]; $tplvars["ACCESS"] = $variable["access"]; $tplvars["TYPE"] = $variable["type"]; $tplvars["VALUE"] = htmlentities($variable["value"]); if ("true"==$variable["undoc"]) $tplvars["UNDOC"] = $this->undocumented; if ("true"==$variable["static"]) $tplvars["STATIC"] = "static"; if ("true"==$variable["final"]) $tplvars["FINAL"] = "final"; if (isset($variable["doc"]["shortdescription"])) $tplvars["SHORTDESCRIPTION"] = $this->encode($variable["doc"]["shortdescription"]["value"]); if (isset($variable["doc"]["description"])) $tplvars["DESCRIPTION"] = $this->encode($variable["doc"]["description"]["value"]); $this->renderCommonDocfields("variabledetails_", $variable); $this->tpl->setCurrentBlock("variabledetails_loop"); $this->tpl->setVariable($tplvars); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("variabledetails"); $this->tpl->setVariable("ACCESS", ucfirst($access) ); $this->tpl->parseCurrentBlock(); } } // end func renderVariableDetail /** * Returns a html string that shows the class tree. * @param string name of the current class * @return string HTML that shows the tree */ function getClasstree($class) { $path = $this->accessor->getClasstree(); $level = 0; $num = count($path)-1; for ($i = $num; $i>=0; $i--) { $indent = $this->getIndent($level); if ($level>0) $value.= sprintf("%s |<br>%s+-- ", $indent, $indent); $value.= sprintf('<a href="%s.html">%s</a><br>', $path[$i], $path[$i] ); $level++; } $indent = $this->getIndent($level); if ($level>0) $value.= sprintf("%s |<br>%s+-- ", $indent, $indent); $value.= sprintf('%s<br>', $class); return $value; } // end func getClasstree /** * Returns a certain number of "&nbsp;"s. * @param int number of "&nbsp;" required. * @see $indent * @return string A string with the requested number of nunbreakable html spaces */ function getIndent($level) { if (!isset($this->indent[$level])) { $html = ""; for ($i=0; $i<$level; $i++) $html.= "&nbsp;&nbsp;"; $this->indent[$level] = $html; } return $this->indent[$level]; } // end func getIndent } // end class PhpdocHTMLClassRenderer ?> Index: php4/pear/PHPDoc/renderer/html/PhpdocHTMLDocumentRenderer.php +++ php4/pear/PHPDoc/renderer/html/PhpdocHTMLDocumentRenderer.php <?php /** * Provides functioninality to render modules and classes. */ class PhpdocHTMLDocumentRenderer extends PhpdocHTMLRenderer { /** * Message displayed if an object lacks documentation. * @var string $undocumented * @access public */ var $undocmented = "Warning: documentation is missing."; /** * Array of functions found in the xml document. * @var array $functions */ var $functions = array(); /** * Array of included files. * @var array $uses */ var $uses = array(); /** * Array of constants. * @var array $constants */ var $constants = array(); /** * Array of access modifiers. * @var array $accessModifiers */ var $accessModifiers = array("public", "private"); /** * Array of doc container fields that get mapped directly to templateblocks. * @var array $simpleDocfields * @see renderVariableDetail() */ var $simpleDocfields = array( "VERSION" => "version", "SINCE" => "since", "DEPRECATED" => "deprecated", "COPYRIGHT" => "copyright", "MAGIC" => "magic" ); /** * Known types for @include. * @var array $usesTypes * @see renderUses() */ var $usesTypes = array( "include", "include_once", "require", "require_once" ); /** * Adds a summary and a detailed list of all constants to the template. * @see renderConstantSummary(), renderConstantDetail() */ function renderConstants() { $this->constants["public"] = $this->accessor->getConstantsByAccess("public"); $this->constants["private"] = $this->accessor->getConstantsByAccess("private"); if (0==count($this->constants["public"]) && 0==count($this->constants["private"])) return; $this->renderConstantSummary(); $this->renderConstantDetail(); $this->constants = array(); } // end func renderConstants /** * Adds a summary of all constants to the template. * * The function assumes that there is a block called "constantssummary" and * withing this block a bock called "constantssummary_loop" in the template. * * @see renderConstantDetail() */ function renderConstantSummary() { reset($this->accessModifiers); while (list($k, $access)=each($this->accessModifiers)) { if (0==count($this->constants[$access])) continue; $this->tpl->setCurrentBlock("constantssummary_loop"); reset($this->constants[$access]); while (list($name, $const)=each($this->constants[$access])) { $this->tpl->setVariable("NAME", $name); $this->tpl->setVariable("VALUE", htmlentities($const["value"])); if (isset($const["doc"]["shortdescription"])) $this->tpl->setVariable("SHORTDESCRIPTION", $this->encode($const["doc"]["shortdescription"]["value"])); if ("true" == $const["undoc"]) $this->tpl->setVariable("UNDOC", $this->undocumented); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("constantssummary"); $this->tpl->setVariable("ACCESS", ucfirst($access)); $this->tpl->parseCurrentBlock(); } } // end func renderConstantSummary /** * Adds a detailed list of all constants to the template. * * The function assumes that there is a block named "constantdetails" and * withing it another block named "constantdetails_loop". * * @see renderConstantSummary() */ function renderConstantDetail() { reset($this->accessModifiers); while (list($k, $access)=each($this->accessModifiers)) { if (0==count($this->constants[$access])) continue; reset($this->constants[$access]); while (list($name, $constant)=each($this->constants[$access])) { $tplvars = array(); $tplvars["NAME"] = $name; $tplvars["CASE"] = $constant["case"]; $tplvars["VALUE"] = htmlentities($constant["value"]); if ("true" == $constant["undoc"]) $tplvars["UNDOC"] = $this->undocumented; if (isset($constant["doc"]["shortdescription"])) $tplvars["SHORTDESCRIPTION"] = $this->encode($constant["doc"]["shortdescription"]["value"]); if (isset($constant["doc"]["description"])) $tplvars["DESCRIPTION"] = $this->encode($constant["doc"]["description"]["value"]); $this->renderCommonDocfields("constantdetails_", $constant); $this->tpl->setCurrentBlock("constantdetails_loop"); $this->tpl->setVariable($tplvars); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("constantdetails"); $this->tpl->setVariable("ACCESS", ucfirst($access)); $this->tpl->parseCurrentBlock(); } } // end func renderConstantsDetail /** * Adds a summary and a detailed list of included files to the template. * @see renderUsesSummary(), renderUsesDetail() */ function renderUses() { $found = false; reset($this->usesTypes); while (list($k, $type)=each($this->usesTypes)) { $this->uses[$type] = $this->accessor->getUsesByType($type); if (!$found && 0!=count($this->uses[$type])) $found = true; } if (!$found) return; $this->renderUsesSummary(); $this->renderUsesDetail(); $this->uses = array(); } // end func renderUses /** * Adds a detailed list of all @included files to the template. * * The function assumes that there is a block names "usesdetail" and within the block * a block names "usesdetail_loop" in the template. * * @see renderUsesSummary() */ function renderUsesDetail() { reset($this->usesTypes); while (list($k, $type)=each($this->usesTypes)) { if (0==count($this->uses[$type])) continue; reset($this->uses[$type]); while (list($file, $uses)=each($this->uses[$type])) { $tplvars = array(); $tplvars["FILE"] = $uses["file"]; $tplvars["TYPE"] = $type; if ("true"==$uses["undoc"]) $tplvars["UNDOC"] = $this->undocumented; if (isset($uses["doc"]["shortdescription"])) $tplvars["SHORTDESCRIPTION"] = $this->encode($uses["doc"]["shortdescription"]["value"]); if (isset($uses["doc"]["description"])) $tplvars["DESCRIPTION"] = $this->encode($uses["doc"]["description"]["value"]); $this->renderCommonDocfields("usesdetails_", $uses); $this->tpl->setCurrentBlock("usesdetails_loop"); $this->tpl->setVariable($tplvars); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("usesdetails"); $this->tpl->setVariable("TYPE", $type); $this->tpl->parseCurrentBlock(); } } // end func renderUsesDetail /** * Adds a summary of all @included files to the template. * * The function assumes that there is a block names "usessummary" and within * the block another block names "usessummary_loop" in the template. * * @see renderUsesDetail() */ function renderUsesSummary() { reset($this->usesTypes); while (list($k, $type)=each($this->usesTypes)) { if (0==count($this->uses[$type])) continue; $this->tpl->setCurrentBlock("usessummary_loop"); reset($this->uses[$type]); while (list($file, $uses)=each($this->uses[$type])) { $this->tpl->setVariable("FILE", $file); if (isset($uses["doc"]["shortdescription"])) $this->tpl->setVariable("SHORTDESCRIPTION", $this->encode($uses["doc"]["shortdescription"]["value"])); if ("true"==$uses["undoc"]) $this->tpl->setVariable("UNDOC", $this->undocumented); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("usessummary"); $this->tpl->setVariable("TYPE", $type); $this->tpl->parseCurrentBlock(); } } // end func renderUsesSummary /** * Adds a summary and a detailed list of all functions to the template. * @see renderFunctionSummary(), renderFunctionDetail(), $functions */ function renderFunctions() { $this->functions["private"] = $this->accessor->getFunctionsByAccess("private"); $this->functions["public"] = $this->accessor->getFunctionsByAccess("public"); if (0==count($this->functions["private"]) && 0==count($this->functions["public"])) return; $this->renderFunctionSummary(); $this->renderFunctionDetail(); $this->functions = array(); } // end func renderFunctions /** * Adds a function summary to the template. * * The function assumes that there is ablock names "functionsummary" and * within it a block names "functionsummary_loop" in the template. * * @see renderFunctionDetail(), renderFunctions(), $functions, $accessModifiers */ function renderFunctionSummary() { reset($this->accessModifiers); while (list($k, $access)=each($this->accessModifiers)) { if (0==count($this->functions[$access])) continue; $this->tpl->setCurrentBlock("functionsummary_loop"); reset($this->functions[$access]); while (list($name, $function)=each($this->functions[$access])) { $this->tpl->setVariable("NAME", $name); if (isset($function["doc"]["parameter"])) $this->tpl->setVariable("PARAMETER", $this->getParameter($function["doc"]["parameter"])); if (isset($function["doc"]["shortdescription"])) $this->tpl->setVariable("SHORTDESCRIPTION", $this->encode($function["doc"]["shortdescription"]["value"])); if (isset($function["doc"]["return"])) $this->tpl->setVariable("RETURNTYPE", $function["doc"]["return"]["type"]); else $this->tpl->setVariable("RETURNTYPE", "void"); if ("true"==$function["undoc"]) $this->tpl->setVariable("UNDOC", $this->undocumented); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("functionsummary"); $this->tpl->setVariable("ACCESS", ucfirst($access) ); $this->tpl->parseCurrentBlock(); } } // end func renderFunctionSummary /** * Adds a detailed list of functions to the template. * * The function assumes that there is a block named "functiondetails" and * within it a bloc "functiondetails_loop" in the template. * * @see renderFunctions(), renderFunctionSummary(), $functions, $accessModifiers */ function renderFunctionDetail() { reset($this->accessModifiers); while (list($k, $access)=each($this->accessModifiers)) { if (0==count($this->functions[$access])) continue; reset($this->functions[$access]); while (list($name, $function)=each($this->functions[$access])) { $tplvars = array(); $tplvars["NAME"] = $function["name"]; $tplvars["ACCESS"] = $function["access"]; if ("true"==$function["undoc"]) $tplvars["UNDOC"] = $this->undocumented; if ("true"==$function["abstract"]) $tplvars["ABSTRACT"] = "abstract"; if ("true"==$function["static"]) $tplvars["STATIC"] = "static"; if (isset($function["doc"]["shortdescription"])) $tplvars["SHORTDESCRIPTION"] = $this->encode($function["doc"]["shortdescription"]["value"]); if (isset($function["doc"]["description"])) $tplvars["DESCRIPTION"] = $this->encode($function["doc"]["description"]["value"]); $this->renderCommonDocfields("functiondetails_", $function); if (isset($function["doc"]["parameter"])) { $tplvars["PARAMETER"] = $this->getParameter($function["doc"]["parameter"]); $this->renderParameterDetail($function["doc"]["parameter"]); } if (isset($function["doc"]["throws"])) $this->renderThrows($function["doc"]["throws"], "functiondetails_"); if (isset($function["doc"]["global"])) $this->renderGlobals($function["doc"]["global"], "functiondetails_"); if (isset($function["doc"]["return"])) { $tplvars["RETURNTYPE"] = $function["doc"]["return"]["type"]; $this->tpl->setCurrentBlock("functiondetails_return"); $this->tpl->setVariable("TYPE", $function["doc"]["return"]["type"]); $this->tpl->setVariable("DESCRIPTION", $this->encode($function["doc"]["return"]["value"])); if (isset($function["doc"]["return"]["name"])) $this->tpl->setVariable("NAME", $function["doc"]["return"]["name"]); $this->tpl->parseCurrentBlock(); } else { $tplvars["RETURNTYPE"] = "void"; } $this->tpl->setCurrentBlock("functiondetails_loop"); $this->tpl->setVariable($tplvars); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("functiondetails"); $this->tpl->setVariable("ACCESS", ucfirst($access) ); $this->tpl->parseCurrentBlock(); } } // end func renderFunctionDetail /** * Renders a detailed list of function parameters. * * The function assumes that there is a block named "functiondetails_parameter" in * the template and within it a block named "functiondetails_parameter_loop". * * @param array Parameter */ function renderParameterDetail($parameter) { if (!isset($parameter[0])) $parameter = array($parameter); $this->tpl->setCurrentBlock("functiondetails_parameter_loop"); reset($parameter); while (list($k, $param)=each($parameter)) { $this->tpl->setVariable("NAME", $param["name"]); $this->tpl->setVariable("DESCRIPTION", $this->encode($param["value"])); if (isset($param["type"])) $this->tpl->setVariable("TYPE", $param["type"]); if (isset($param["default"])) $this->tpl->setVariable("DEFAULT", "= >>".htmlentities($param["default"])."<<"); if ("true" == $param["undoc"]) $this->tpl->setVariable("UNDOC", $this->undocumented); $this->tpl->parseCurrentBlock(); } } // end func renderParameterDetail /** * Converts the XML parameter array into formatted string. * @param array XML parameter array * @return string Formatted parameter string */ function getParameter($parameter) { if (!is_array($parameter)) return "void"; $value = ""; if (!isset($parameter[0])) { if (!isset($parameter["default"])) $value.= $parameter["type"]." ".$parameter["name"]; else $value.= "[ ".$parameter["type"]." ".$parameter["name"]." ]"; } else { $flag_optional = false; reset($parameter); while (list($k, $param)=each($parameter)) { if (!isset($param["default"])) { if ($flag_optional) { $value = substr($value, 0, -2)." ], "; $flag_optional = false; } } else { if (!$flag_optional) { $value.= "[ "; $flag_optional = true; } } $value.= $param["type"]." ".$param["name"].", "; } $value = substr($value, 0, -2); if ($flag_optional) $value.= " ]"; } return $value; } // end func getParameter /** * Renders a block with references to other source elements, @see. * @param array XML references array * @param string optional template blockname prefix */ function renderSee($references, $prefix="") { $value = ""; if (!isset($references[0])) { if (isset($references["group"])) $value.= sprintf('<a href="%s.html#%s_%s">%s::%s</a>', $this->nameToUrl($references["group"]), $references["type"], $references["value"], $references["group"], $references["value"] ); else $value.= sprintf('<a href="#%s_%s">%s</a>', $references["type"], $references["value"], $references["value"] ); } else { reset($references); while (list($k, $reference)=each($references)) { if (isset($reference["group"])) $value.= sprintf('<a href="%s.html#%s_%s">%s::%s</a>, ', $this->nameToUrl($reference["group"]), $reference["type"], $reference["value"], $reference["group"], $reference["value"] ); else $value.= sprintf('<a href="#%s_%s">%s</a>, ', $reference["type"], $reference["value"], $reference["value"] ); } $value = substr($value, 0, -2); } $this->tpl->setCurrentBlock(strtolower($prefix)."see"); $this->tpl->setVariable("SEE", $value); $this->tpl->parseCurrentBlock(); } // end func renderSee /** * Renders an author list, @author. * @param array XML author array * @param string optional template blockname prefix */ function renderAuthors($authors, $prefix="") { $value = ""; if (!isset($authors[0])) { if (isset($authors["email"])) $value.= sprintf('%s &lt;<a href="mailto:%s">%s</a>&gt;, ', $authors["value"], $authors["email"], $authors["email"]); else $value.= $authors["email"].", "; } else { reset($authors); while (list($k, $author)=each($authors)) { if (isset($author["email"])) $value.= sprintf('%s &lt;<a href="mailto:%s">%s</a>&gt;, ', $author["value"], $author["email"], $author["email"]); else $value.= $author["email"].", "; } } $value = substr($value, 0, -2); $this->tpl->setCurrentBlock(strtolower($prefix)."authors"); $this->tpl->setVariable("AUTHOR", $value); $this->tpl->parseCurrentBlock(); } // end func renderAuthors /** * Renders a list of external links, @link. * @param array XML link array * @param string optional template blockname prefix */ function renderLinks($links, $prefix="") { $value= ""; if (!isset($links[0])) { $value.= sprintf('<a href="%s">%s</a>%s, ', $links["url"], $links["url"], (""!=$links["description"]) ? " - ".$links["description"] : "" ); } else { reset($links); while (list($k, $link)=each($links)) { $value.= sprintf('<a href="%s">%s</a>%s, ', $link["url"], $link["url"], (""!=$link["description"]) ? " - ".$links["description"] : "" ); } } $value = substr($value, 0, 2); $this->tpl->setCurrentBlock(strtolower($prefix)."links"); $this->tpl->setVariable("LINK", $value); $this->tpl->parseCurrentBlock(); } // end func renderLinks /** * Renders a list of exceptions, @throws. * @param array XML array * @param string optional template blockname prefix */ function renderThrows($throws, $prefix="") { $value = ""; if (!isset($throws[0])) { $value = $throws["value"]; } else { reset($throws); while (list($k, $exception)=each($throws)) $value.= sprintf("%s, ", $exception["value"]); $value = substr($value, 0, -2); } $this->tpl->setCurrentBlock(strtolower($prefix)."throws"); $this->tpl->setVariable("EXCEPTIONS", $value); $this->tpl->parseCurrentBlock(); } // end func renderThrows /** * Renders a list of global elements, @global * @param array XML globals array * @param string optional template blockname prefix */ function renderGlobals($globals, $prefix="") { $prefix = strtolower($prefix); $this->tpl->setCurrentBlock($prefix."globals_loop"); if (!isset($globals[0])) { $this->tpl->setVariable("NAME", $globals["name"]); $this->tpl->setVariable("DESCRIPTION", $this->encode($globals["value"])); if (isset($globals["type"])) $this->tpl->setVariable("TYPE", $globals["type"]); $this->tpl->parseCurrentBlock(); } else { reset($globals); while (list($k, $global)=each($globals)) { $this->tpl->setVariable("NAME", $global["name"]); $this->tpl->setVariable("DESCRIPTION", $this->encode($global["value"])); if (isset($globals["type"])) $this->tpl->setVariable("TYPE", $globals["type"]); $this->tpl->parseCurrentBlock(); } } } // end func renderGlobals /** * Adds some tags to the template that are allowed nearly everywhere. * @param string template blockname prefixs * @param array * @see $simpleDocfields, renderLinks(), renderAuthors(), renderSee() */ function renderCommonDocfields($block, &$data) { reset($this->simpleDocfields); while (list($varname, $field)=each($this->simpleDocfields)) { if (isset($data["doc"][$field])) { $this->tpl->setCurrentBlock($block.$field); $this->tpl->setVariable($varname, htmlentities($data["doc"][$field]["value"])); $this->tpl->parseCurrentBlock(); } } if (isset($data["doc"]["link"])) $this->renderLinks($data["doc"]["link"], $block); if (isset($data["doc"]["author"])) $this->renderAuthors($data["doc"]["author"], $block); if (isset($data["doc"]["see"])) $this->renderSee($data["doc"]["see"], $block); } // end func renderCommonDocfields } // end func PhpdocHTMLDocumentRenderer ?> Index: php4/pear/PHPDoc/renderer/html/PhpdocHTMLIndexRenderer.php +++ php4/pear/PHPDoc/renderer/html/PhpdocHTMLIndexRenderer.php <?php /** * Renders Index lists. */ class PhpdocHTMLIndexRenderer extends PhpdocHTMLRenderer { /** * Some container in the package list. * @var array * @see renderPackagelist() */ var $packageFields = array("class", "module"); /** * Packagelist from the PhpdocIndexAccessor * @var array */ var $packages = array(); /** * Array with classtree informations * @var array */ var $classtree = array(); /** * IntegratedTemplate Object used be renderClasstree() * * @var object IntegratedTemplate * @see renderClasstree() */ var $treeTpl; /** * IntegratedTemplateObject used by renderModulegroup() * * @var object IntegratedTemplate * @see renderModulegroup() */ var $moduleTpl; /** * Sets the xml and template root directory. * * @param string XML file path * @param string Template file path * @param string Name of the application * @see setPath(), setTemplateRoot() */ function PhpdocHTMLIndexRenderer($path, $templateRoot, $application) { $this->setPath($path); $this->setTemplateRoot($templateRoot); $this->application = $application; $this->accessor = new PhpdocIndexAccessor; $this->tpl = new IntegratedTemplate($this->templateRoot); $this->fileHandler = new PhpdocFileHandler; } // end constructor /** * Builds all index files phpdoc needs assuming that the xml files have default names * * @access public * @see renderElementlist(), renderPackagelist(), renderFramelementlist(), renderFramePackageSummary() */ function generate() { $this->renderElementlist("elementlist.xml"); $this->renderFrameElementlist("elementlist.xml"); $this->renderPackagelist("packagelist.xml"); $this->renderFramePackageSummary("packagelist.xml"); $this->renderFrameElementlist("packagelist.xml"); } // end function generate /** * Saves the generated classtree summary to disk. * * @see renderClasstree() * @access public */ function finishClasstree() { if (!is_object($this->treeTpl)) return; $this->treeTpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path."phpdoc_classtree.html", $this->treeTpl->get() ); $this->treeTpl = ""; } // end func finishClasstree /** * Adds a classtree to the classtree summary template. * * @param string XML Classtree file * @see finishClasstree() * @access public */ function addClasstree($xmlfile) { $this->accessor->loadXMLFile($this->path.$xmlfile); if (!is_object($this->treeTpl)) { $this->treeTpl = new IntegratedTemplate($this->templateRoot); $this->treeTpl->loadTemplatefile("classtree.html"); } $this->classtree = $this->accessor->getClasstree(); $this->treeTpl->setCurrentBlock("classtree"); $this->treeTpl->setVariable("BASECLASS", $this->classtree["baseclass"]); $this->treeTpl->setVariable("TREE", "<ul>".$this->buildClasstreeHTML($this->classtree["baseclass"])."</ul>"); $this->treeTpl->parseCurrentBlock(); return true; } // end func addClasstree function finishModulegroup() { if (!is_object($this->moduleTpl)) return; $this->moduleTpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path."phpdoc_modulegroup.html", $this->moduleTpl->get() ); $this->moduleTpl = ""; } // end func finishModulegroups /** * Renders a modulegroup xml file. * @param string XML File */ function addModulegroup($xmlfile) { $this->accessor->loadXMLFile($this->path.$xmlfile); if (!is_object($this->moduleTpl)) { $this->moduleTpl = new IntegratedTemplate($this->templateRoot); $this->moduleTpl->loadTemplateFile("modulegroup.html"); } $modulegroup = $this->accessor->getModulegroup(); $modules = "<ul>"; reset($modulegroup["modules"]); while (list($k, $module)=each($modulegroup["modules"])) $modules.= sprintf('<li><a href="%s.html">%s</a>', $this->nameToUrl($module), $module); $modules.= "</ul>"; $this->moduleTpl->setCurrentBlock("modulegroup"); $this->moduleTpl->setVariable("MODULEGROUP", $modulegroup["group"]); $this->moduleTpl->setVariable("MODULES", $modules); $this->moduleTpl->parseCurrentBlock(); } // end func addModulegroup /** * Renders the element index list. * * @param string XML file * @access public * @see generate() */ function renderElementlist($xmlfile) { $this->accessor->loadXMLFile($this->path.$xmlfile); $this->tpl->loadTemplatefile("elementlist.html"); $chapters = $this->accessor->getChapternames(); if (0!=count($chapters)) { $this->tpl->setCurrentBlock("chaptersummary_loop"); reset($chapters); while (list($k, $chapter)=each($chapters)) { $this->tpl->setVariable("CHAPTER", $chapter); $this->tpl->parseCurrentBlock(); } $chapters = $this->accessor->getChapters(); reset($chapters); while (list($name, $elements)=each($chapters)) { if (!isset($elements["element"][0])) $elements["element"] = array($elements["element"]); $this->tpl->setCurrentBlock("chapter_loop"); reset($elements["element"]); while (list($k, $element)=each($elements["element"])) { switch($element["type"]) { case "package": $desc = "Package"; break; case "class": $desc = sprintf('Class <a href="%s.html">%s</a>.', $this->nameToUrl($element["name"]), $element["name"] ); break; case "module": $desc = sprintf('Module <a href="%s.html">%s</a>.', $this->nameToUrl($element["name"]), $element["name"] ); break; case "functions": $desc = sprintf('Function in %s <a href="%s.html">%s</a>', $element["sourcetype"], $this->nameToUrl($element["source"]), $element["source"] ); break; case "variables": $desc = sprintf('Variable in Class <a href="%s.html">%s</a>', $this->nameToUrl($element["source"]), $element["source"] ); break; case "uses": $desc = sprintf('Included file in %s <a href="%s.html">%s</a>', $element["sourcetype"], $this->nameToUrl($element["source"]), $element["source"] ); break; break; case "consts": $desc = sprintf('Constant defined in %s <a href="%s.html">%s</a>', $element["sourcetype"], $this->nameToUrl($element["source"]), $element["source"] ); break; } $this->tpl->setVariable("ELEMENTNAME", $element["name"]); $this->tpl->setVariable("ELEMENT", $desc); $this->tpl->setVariable("SHORTDESCRIPTION", $element["value"]); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("chapter"); $this->tpl->setVariable("CHAPTER", $name); $this->tpl->parseCurrentBlock(); } } $this->tpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path."phpdoc_elementlist.html", $this->tpl->get() ); $this->tpl->free(); } // end func renderElementlist /** * Renders a complete packagelist. * * @param string XML file * @access public * @see renderFrameElementlist(), renderFramePackagesummary() */ function renderPackagelist($xmlfile) { $this->loadPackagelist($xmlfile); $this->tpl->loadTemplatefile("packagelist.html"); reset($this->packages); while (list($packagename, $package)=each($this->packages)) { reset($this->packageFields); while (list($k, $field)=each($this->packageFields)) { if (!isset($package[$field])) continue; $this->tpl->setCurrentBlock("package_".$field."_loop"); reset($package[$field]); while (list($k, $element)=each($package[$field])) { $this->tpl->setVariable("ELEMENT", sprintf('<a href="%s.html">%s</a>', $this->nameToUrl($element), $element ) ); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("package_".$field); $this->tpl->setVariable("EMPTY", ""); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("package"); $this->tpl->setVariable("PACKAGE_NAME", $packagename); $this->tpl->parseCurrentBlock(); } $this->tpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path."phpdoc_packagelist.html", $this->tpl->get() ); $this->tpl->free(); } // end func renderPackagelist /** * Renders files for the lower left frame with the elements of a certain file. * * @param string This function needs the packagelist.xml to work! * @access public * @see renderFramePackagesummary(), renderPackagelist() */ function renderFrameElementlist($xmlfile) { $this->loadPackagelist($xmlfile); reset($this->packages); while (list($packagename, $package)=each($this->packages)) { $this->tpl->loadTemplatefile("frame_packageelementlist.html"); reset($this->packageFields); while (list($k, $field)=each($this->packageFields)) { if (!isset($package[$field])) continue; $this->tpl->setCurrentBlock("package_".$field."_loop"); reset($package[$field]); while (list($k, $element)=each($package[$field])) { $this->tpl->setVariable("ELEMENT", sprintf('<a href="%s.html" target="main">%s</a>', $this->nameToUrl($element), $element ) ); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("package_".$field); $this->tpl->setVariable("EMPTY", ""); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("package"); $this->tpl->setVariable("PACKAGE_NAME", $packagename); $this->tpl->parseCurrentBlock(); $this->tpl->setVariable("APPNAME", $this->application); $packagename = $this->nameToUrl($packagename); $this->fileHandler->createFile($this->path."packageelementlist_".$packagename.".html", $this->tpl->get() ); } $this->tpl->free(); } // end func renderFrameElementlist /** * Renders a Packagesummary for the frameset. * * @param string XML file. * @access public * @see renderPackagelist(), renderFrameElementlist() */ function renderFramePackagesummary($xmlfile) { $this->loadPackagelist($xmlfile); $this->tpl->loadTemplatefile("frame_packagelist.html"); $this->tpl->setCurrentBlock("package"); reset($this->packages); while (list($packagename, $v)=each($this->packages)) { $this->tpl->setVariable("PACKAGE", sprintf('<a href="packageelementlist_%s.html" target="packageelements">%s</a>', $this->nameToUrl($packagename), $packagename ) ); $this->tpl->parseCurrentBlock(); } $this->tpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path."frame_packagelist.html", $this->tpl->get() ); $this->tpl->free(); } // end func renderFramePackagesummary /** * Imports the packagelist from the PhpdocIndexAccessor if not done previously. * * @param string XMl file. * @see $packages */ function loadPackagelist($xmlfile) { if (0==count($this->packages)) { $this->accessor->loadXMLFile($this->path.$xmlfile); $this->packages = $this->accessor->getPackagelist(); } } // end func loadPackagelist /** * Recursivly builds an HTML class tree using <ul><li></ul>. * * @param string Name of the class the recursive loop starts with * @see renderClasstree() */ function buildClasstreeHTML($class) { $html = ""; if (0==count($this->classtree["classes"][$class])) { $html.= sprintf('<li><a href="%s.html">%s</a>', $this->nameToUrl($class), $class); } else { $html.= sprintf('<li><a href="%s.html">%s</a>', $this->nameToUrl($class), $class); $html.= "<ul>"; reset($this->classtree["classes"][$class]); while (list($k, $subclass)=each($this->classtree["classes"][$class])) $html.= $this->buildClasstreeHTML($subclass); $html.= "</ul>"; } return $html; } // end func buildClasstreeHTML } // end class PhpdocHTMLIndexRenderer ?> Index: php4/pear/PHPDoc/renderer/html/PhpdocHTMLModuleRenderer.php +++ php4/pear/PHPDoc/renderer/html/PhpdocHTMLModuleRenderer.php <?php /** * Renders modules. */ class PhpdocHTMLModuleRenderer extends PhpdocHTMLDocumentRenderer { /** * Sets the xml and template root directory. * * @param string XML file path * @param string Template file path * @param string Name of the current application * @see setPath(), setTemplateRoot() */ function PhpdocHTMLModuleRenderer($path, $templateRoot, $application) { $this->setPath($path); $this->setTemplateRoot($templateRoot); $this->application = $application; $this->accessor = new PhpdocModuleAccessor; $this->tpl = new IntegratedTemplate($this->templateRoot); $this->fileHandler = new PhpdocFileHandler; } // end constructor /** * Renders a module * @param string XML source file * @param string Name of the HTML target file. * @access public */ function renderModule($xmlfile, $htmlfile="") { $this->tpl->loadTemplatefile("module.html"); if (""==$htmlfile) $htmlfile = substr($xmlfile, 7, -4).".html"; $this->accessor->loadXMLFile($this->path.$xmlfile); $module = $this->accessor->getModuledata(); $this->renderFunctions(); $this->renderUses(); $this->renderConstants(); $tplvars = array(); $tplvars["MODULE_FILE"] = $module["file"]["value"]; $tplvars["MODULE_NAME"] = $module["name"]; $tplvars["MODULE_GROUP"] = $module["group"]; $tplvars["MODULE_ACCESS"] = $module["access"]; $tplvars["MODULE_PACKAGE"] = $module["package"]; $tplvars["MODULE_UNDOC"] = ("true" == $module["undoc"]) ? $this->undocumented : ""; if (isset($module["doc"]["link"])) $this->renderLinks($module["doc"]["link"], "class_"); if (isset($module["doc"]["author"])) $this->renderAuthors($module["doc"]["author"], "class_"); if (isset($module["doc"]["see"])) $this->renderSee($module["doc"]["see"], "class_"); $fields = array( "version", "deprecated", "copyright" , "since", "magic"); reset($fields); while (list($k, $field)=each($fields)) if (isset($module["doc"][$field])) { $this->tpl->setCurrentBlock("module_".strtolower($field)); $this->tpl->setVariable(strtoupper($field), $module["doc"][$field]["value"]); $this->tpl->parseCurrentBlock(); } $fields = array( "description", "shortdescription" ); reset($fields); while (list($k, $field)=each($fields)) if (isset($module["doc"][$field])) $tplvars["MODULE_".strtoupper($field)] = $this->encode($module["doc"][$field]["value"]); $this->tpl->setCurrentBlock("__global__"); $this->tpl->setVariable($tplvars); $this->tpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path.$htmlfile, $this->tpl->get() ); $this->tpl->free(); } // end func renderModule } // end class PhpdocHTMLModuleRenderer ?> Index: php4/pear/PHPDoc/renderer/html/PhpdocHTMLRenderer.php +++ php4/pear/PHPDoc/renderer/html/PhpdocHTMLRenderer.php <?php /** * Default HTML Renderer based on templates. */ class PhpdocHTMLRenderer extends PhpdocRendererObject { /** * Template object * @var object IntegratedTemplates $tpl */ var $tpl; /** * XML data accessor object. * @var object PhpdocAccessor */ var $accessor; /** * Rootpath for Templatefiles. * @var string $templateRoot * @see setTemplateRoot() */ var $templateRoot = ""; /** * Directory path prefix. * @var string $path */ var $path = ""; /** * Sets a directory path prefix. * * @param string */ function setPath($path) { if (""!=$path && "/"!=substr($path, -1)) $path.="/"; $this->path = $path; } // end func path /** * Sets the template directory. * * @param string */ function setTemplateRoot($templateRoot) { if (""!=$path && "/"!=substr($templateRoot, -1)) $templateRoot.="/"; $this->templateRoot = $templateRoot; } // end func setTemplateRoot /** * Encodes the given string. * * This function gets used to encode all userdependend * elements of the phpdoc xml files. Use it to * customize your rendering result: beware newlines (nl2br()), * strip tags etc. * * @param string String to encode * @return string $string Encoded string */ function encode($string) { return nl2br(htmlspecialchars($string)); } // end func encode } // end class PhpdocHTMLRenderer ?> Index: php4/pear/PHPDoc/renderer/html/PhpdocHTMLRendererManager.php +++ php4/pear/PHPDoc/renderer/html/PhpdocHTMLRendererManager.php <?php /** * Controls the HTML Renderer objects. * */ class PhpdocHTMLRendererManager extends PhpdocObject { /** * @var object PhpdocHTMLIndexRenderer */ var $indexrenderer; /** * @var object PhpdocHTMLClassRenderer */ var $classrenderer; /** * @var object PhpdocHTMLModuleRenderer */ var $modulerenderer; /** * @var object PhpdocHTMLWarningRenderer */ var $warningrenderer; /** * Creates all necessary renderer objects * * @param string Name of the target directory * @param string Name of the directory with the templates. * @param string Name of the current application */ function PhpdocHTMLRendererManager($target, $template, $application) { $this->indexrenderer = new PhpdocHTMLIndexRenderer($target, $template, $application); $this->indexrenderer->generate(); $this->classrenderer = new PhpdocHTMLClassRenderer($target, $template, $application); $this->modulerenderer = new PhpdocHTMLModuleRenderer($target, $template, $application); $this->warningrenderer = new PhpdocHTMLWarningRenderer($target, $template, $application); } // end constructor /** * Renders the given xml file. * * @param string XML file. * @param string Content of the XML file: class, classtree, * module, modulegroup, warnings, indexdata * @access public */ function render($xmlfile, $type) { switch(strtolower($type)) { case "class": $this->classrenderer->renderClass($xmlfile); break; case "classtree": $this->indexrenderer->addClasstree($xmlfile); break; case "module": $this->modulerenderer->renderModule($xmlfile); break; case "modulegroup": $this->indexrenderer->addModulegroup($xmlfile); break; case "warning": $this->warningrenderer->addWarnings($xmlfile); break; } } // end func render /** * Finishes the rendering process. * * Finish means here: write the classtree and modulegroup overview to disk. * * @access public */ function finish() { $this->indexrenderer->finishClasstree(); $this->indexrenderer->finishModulegroup(); $this->warningrenderer->finishWarnings(); } // end func finish } // end class PhpdocHTMLRendererManager ?> Index: php4/pear/PHPDoc/renderer/html/PhpdocHTMLWarningRenderer.php +++ php4/pear/PHPDoc/renderer/html/PhpdocHTMLWarningRenderer.php <?php /** * Renders files with warnings. */ class PhpdocHTMLWarningRenderer extends PhpdocHTMLRenderer { /** * Sets the xml and template root directory. * * @param string XML file path * @param string Template file path * @param string Name of the application * @see setPath(), setTemplateRoot() */ function PhpdocHTMLWarningRenderer($path, $templateRoot, $application) { $this->setPath($path); $this->setTemplateRoot($templateRoot); $this->application = $application; $this->accessor = new PhpdocWarningAccessor; $this->fileHandler = new PhpdocFileHandler; } // end constructor /** * Saves the generated report. * * @see addWarnings() * @access public */ function finishWarnings() { if (!is_object($this->tpl)) return; $this->tpl->setVariable("APPNAME", $this->application); $this->fileHandler->createFile($this->path."phpdoc_warnings.html", $this->tpl->get() ); $this->tpl = ""; } // end func finishWarnings /** * Adds file with warnings to the warning list. * * @param string XML file * @see finishWarnings() * @access public */ function addWarnings($xmlfile) { $data = $this->accessor->getWarnings($this->path.$xmlfile); if (!is_object($this->tpl)) { $this->tpl = new IntegratedTemplate($this->templateRoot); $this->tpl->loadTemplateFile("warnings.html"); } reset($data); while (list($file, $warnings)=each($data)) { $this->tpl->setCurrentBlock("warning_loop"); reset($warnings); while (list($k, $warning)=each($warnings)) { $this->tpl->setVariable("WARNINGTYPE", $warning["type"]); $this->tpl->setVariable("WARNING", $this->encode($warning["value"])); $this->tpl->setVariable("ELEMENT", htmlentities($warning["name"])); $this->tpl->setVariable("ELEMENTTYPE", $warning["elementtype"]); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("warning"); $this->tpl->setVariable("FILE", $file); $this->tpl->setVariable("NUMWARNINGS", count($warnings)); $this->tpl->parseCurrentBlock(); } return true; } // end func addWarnings } // end class PhpdocHTMLIndexRenderer ?> Index: php4/pear/PHPDoc/renderer/html/templates/class.html +++ php4/pear/PHPDoc/renderer/html/templates/class.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- Generated with PHPDoc, http://www.phpdoc.de --> <html> <head> <title>{APPNAME} - {CLASS_PACKAGE} - Class: {CLASS_NAME}</title> <link href="phpdoc.css" rel="stylesheet" type="text/css"> </head> <body> <table width="100%" border="0"> <tr> <td align="left" valign="top" bgcolor="#B0BAFF"> <table width="100%"> <tr> <td align="left" valign="top"><a href="phpdoc_packagelist.html">Packageindex</a></td> <td align="left" valign="top"><a href="phpdoc_classtree.html">Classtrees</a></td> <td align="left" valign="top"><a href="phpdoc_modulegroup.html">Modulegroups</a></td> <td align="left" valign="top"><a href="phpdoc_elementlist.html">Elementlist</a></td> <td align="left" valign="top"><a href="phpdoc_warnings.html">Report</a></td> <td align="left" valign="top"><a href="phpdoc_xmlfiles.html">XML Files</a></td> </tr> </table> </td> </tr> <tr> <td height="20" align="left" valign="top"><hr></td> </tr> <tr> <td align="left" valign="top"> File: <a href="file://{CLASS_FILE}" target="_new">{CLASS_FILE}</a> <h5>{APPNAME} - {CLASS_PACKAGE}</h5> <h1>{CLASS_NAME}</h1> {CLASS_TREE} <p> {CLASS_SHORTDESCRIPTION}{CLASS_UNDOC} <p> &nbsp; </td> </tr> <tr> <td align="left" valign="top"> <h4>{CLASS_ACCESS} {CLASS_ABSTRACT} {CLASS_STATIC} {CLASS_FINAL} class {CLASS_NAME} {CLASS_EXTENDS}</h4> {CLASS_DESCRIPTION} <p> <table> <!-- BEGIN class_see --><tr><td align="left" valign="top">See Also</td><td align="left" valign="top">{SEE}</td></tr><!-- END class_see --> <!-- BEGIN class_links --><tr><td align="left" valign="top">Links</td><td align="left" valign="top">{LINK}</td></tr><!-- END class_links --> <!-- BEGIN class_authors --><tr><td align="left" valign="top">Authors</td><td align="left" valign="top">{AUTHOR}</td></tr><!-- END class_authors --> <!-- BEGIN class_since --><tr><td align="left" valign="top">Since</td><td align="left" valign="top">{SINCE}</td></tr><!-- END class_since --> <!-- BEGIN class_version --><tr><td align="left" valign="top">Version</td><td align="left" valign="top">{VERSION}</td></tr><!-- END class_version --> <!-- BEGIN class_deprecated --><tr><td align="left" valign="top">Deprecated</td><td align="left" valign="top">{DEPRECATED}</td></tr><!-- END class_deprecated --> <!-- BEGIN class_copyright --><tr><td align="left" valign="top">Copyright</td><td align="left" valign="top">{COPYRIGHT}</td></tr><!-- END class_copyright --> <!-- BEGIN class_magic --><tr><td align="left" valign="top">Magic</td><td align="left" valign="top">{MAGIC}</td></tr><!-- END class_magic --> </table> </td> </tr> <tr> <td height="10" align="left" valign="top">&nbsp;</td> </tr> <!-- BEGIN subclasses --> <tr> <td align="left" valign="top"> <b>Direct known subclasses:</b> {ELEMENTS} </td> </tr> <!-- END subclasses --> <tr> <td height="20" align="left" valign="top"><hr></td> </tr> <!-- BEGIN inheritedfunctions --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td align="left" valign="top"><h3>Methods inherited from {SOURCE}</h3></td> </tr> <tr> <td align="left" valign="top">{ELEMENTS}</td> </tr> </table> </td> </tr> <!-- END inheritedfunctions --> <!-- BEGIN functionsummary --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td colspan="2" align="left" valign="top"><h2>{ACCESS} Method Summary</h2></td> </tr> <!-- BEGIN functionsummary_loop --> <tr> <td align="right" valign="top">{RETURNTYPE}</td> <td align="left" valign="top" width="100%"><a href="#function_{NAME}"><h4>{NAME}({PARAMETER})</h4></a>{SHORTDESCRIPTION}{UNDOC}</td> </tr> <!-- END functionsummary_loop --> </table> </td> </tr> <!-- END functionsummary --> <!-- BEGIN inheritedvariables --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td align="left" valign="top"><h3>Fields inherited from {SOURCE}</h3></td> </tr> <tr> <td align="left" valign="top">{ELEMENTS}</td> </tr> </table> </td> </tr> <!-- END inheritedvariables --> <!-- BEGIN variablesummary --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td colspan="2" align="left" valign="top"><h2>{ACCESS} Field Summary</h2></td> </tr> <!-- BEGIN variablesummary_loop --> <tr> <td align="right" valign="top">{TYPE}</td> <td align="left" valign="top" width="100%"><a href="#variable_{NAME}"><h4>{NAME}</h4></a>{SHORTDESCRIPTION}{UNDOC}</td> </tr> <!-- END variablesummary_loop --> </table> </td> </tr> <!-- END variablesummary --> <!-- BEGIN inheritedconstants --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td align="left" valign="top"><h3>Constants inherited from {SOURCE}</h3></td> </tr> <tr> <td align="left" valign="top">{ELEMENTS}</td> </tr> </table> </td> </tr> <!-- END inheritedconstants --> <!-- BEGIN constantssummary --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td align="left" valign="top" colspan=3><h3>{ACCESS} Constant Summary</h3></td> </tr> <!-- BEGIN constantssummary_loop --> <tr> <td align="left" valign="top"><a href="#constants_{NAME}">{NAME}</a></td> <td align="left" valign="top">>><code>{VALUE}</code><<</td> <td align="left" valign="top" width="100%">{SHORTDESCRIPTION}{UNDOC}</td> </tr> <!-- END constantssummary_loop --> </table> </td> </tr> <!-- END constantssummary --> <!-- BEGIN inheriteduses --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td align="left" valign="top"><h3>Included files inherited from {SOURCE}</h3></td> </tr> <tr> <td align="left" valign="top">{ELEMENTS}</td> </tr> </table> </td> </tr> <!-- END inheriteduses --> <!-- BEGIN usessummary --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td align="left" valign="top" colspan=2><h3>Included files Summary, Type: {TYPE}</h3></td> </tr> <!-- BEGIN usessummary_loop --> <tr> <td align="left" valign="top"><a href="#uses_{FILE}">{FILE}</a></td> <td align="left" valign="top" width="100%"><a href="#uses_{FILE}">{SHORTDESCRIPTION}{UNDOC}</a></td> </tr> <!-- END usessummary_loop --> </table> </td> </tr> <!-- END usessummary --> <!-- BEGIN functiondetails --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td colspan="2" align="left" valign="top"><h2>{ACCESS} Method Details</h2></td> </tr> <!-- BEGIN functiondetails_loop --> <tr><td colspan="2" align="left" valign="top"><a name="function_{NAME}"><h4>{NAME}</h4></a></td></tr> <tr> <td colspan="2" align="left" valign="top"> <b>{ACCESS} {ABSTRACT} {STATIC} {FINAL} {RETURNTYPE} {NAME}( {PARAMETER} )</b><p> </td> </tr> <tr> <td width="10" align="left" valign="top">&nbsp;</td> <td align="left" valign="top"> {DESCRIPTION} <p> {UNDOC} </td> </tr> <!-- BEGIN functiondetails_parameter --> <tr> <td colspan="2" align="left" valign="top">Parameter</td> </tr> <!-- BEGIN functiondetails_parameter_loop --> <tr> <td></td> <td align="left" valign="top"> <table> <tr> <td align="left" valign="top">{TYPE}</td> <td align="left" valign="top">{NAME}</td> <td align="left" valign="top"><code>{DEFAULT}</code></td> </tr> <tr> <td></td> <td colspan="2" align="left" valign="top">{DESCRIPTION}{UNDOC}</td> </tr> </table> </td> </tr> <!-- END functiondetails_parameter_loop --> <!-- END functiondetails_parameter --> <!-- BEGIN functiondetails_return --> <tr> <td align="left" valign="top">Returns</td> <td>{TYPE} {NAME}<p>{DESCRIPTION}</td> </tr> <!-- END functiondetails_return --> <!-- BEGIN functiondetails_throws --> <tr> <td align="left" valign="top">Throws</td> <td align="left" valign="top">{EXCEPTIONS}</td> </tr> <!-- END functiondetails_throws --> <!-- BEGIN functiondetails_globals --> <tr> <td colspan="2" align="left" valign="top">Required global variables</td> </tr> <!-- BEGIN functiondetails_globals_loop --> <tr> <td align="left" valign="top"></td> <td align="left" valign="top"> <table> <tr> <td align="left" valign="top">{TYPE} {NAME}</td> <td align="left" valign="top">{DESCRIPTION}</td> </tr> </table> </td> </tr> <!-- END functiondetails_globals_loop --> <!-- END functiondetails_globals --> <!-- BEGIN functiondetails_version --> <tr> <td align="left" valign="top">Version</td> <td align="left" valign="top">{VERSION}</td> </tr> <!-- END functiondetails_version --> <!-- BEGIN functiondetails_since --> <tr> <td align="left" valign="top">Since</td> <td align="left" valign="top">{SINCE}</td> </tr> <!-- END functiondetails_since --> <!-- BEGIN functiondetails_deprecated --> <tr> <td align="left" valign="top">Deprecated</td> <td align="left" valign="top">{DEPRECATED}</td> </tr> <!-- END functiondetails_deprecated --> <!-- BEGIN functiondetails_copyright --> <tr> <td align="left" valign="top">Copyright</td> <td align="left" valign="top">{COPYRIGHT}</td> </tr> <!-- END functiondetails_copyright --> <!-- BEGIN functiondetails_magic --> <tr> <td align="left" valign="top">Magic</td> <td align="left" valign="top">{MAGIC}</td> </tr> <!-- END functiondetails_magic --> <!-- BEGIN functiondetails_brother --> <tr> <td align="left" valign="top">Brother</td> <td align="left" valign="top">{BROTHER}</td> </tr> <!-- END functiondetails_brother --> <!-- BEGIN functiondetails_see --> <tr> <td align="left" valign="top">See Also</td> <td align="left" valign="top">{SEE}</td> </tr> <!-- END functiondetails_see --> <!-- BEGIN functiondetails_links --> <tr> <td align="left" valign="top">Links</td> <td align="left" valign="top">{LINK}</td> </tr> <!-- END functiondetails_links --> <!-- BEGIN functiondetails_authors --> <tr> <td align="left" valign="top">Author(s)</td> <td align="left" valign="top">{AUTHOR}</td> </tr> <!-- END functiondetails_authors --> <tr> <td colspan="2" align="left" valign="top"><hr></td> </tr> <!-- END functiondetails_loop --> </table> </tr> <!-- END functiondetails --> <!-- BEGIN variabledetails --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td colspan="2" align="left" valign="top"><h2>{ACCESS} Field Details</h2></td> </tr> <!-- BEGIN variabledetails_loop --> <tr><td colspan="2" align="left" valign="top"><a name="variable_{NAME}"><h4>{NAME}</h4></a></td></tr> <tr> <td colspan="2" align="left" valign="top"> <b>{ACCESS} {STATIC} {FINAL} {TYPE} {NAME}</b><p> >><code>{VALUE}</code><< </td> </tr> <!-- BEGIN variabledetails_version --> <tr> <td align="left" valign="top">Version</td> <td align="left" valign="top">{VERSION}</td> </tr> <!-- END variabledetails_version --> <!-- BEGIN variabledetails_since --> <tr> <td align="left" valign="top">Since</td> <td align="left" valign="top">{SINCE}</td> </tr> <!-- END variabledetails_since --> <!-- BEGIN variabledetails_deprecated --> <tr> <td align="left" valign="top">Deprecated</td> <td align="left" valign="top">{DEPRECATED}</td> </tr> <!-- END variabledetails_deprecated --> <!-- BEGIN variabledetails_copyright --> <tr> <td align="left" valign="top">Copyright</td> <td align="left" valign="top">{COPYRIGHT}</td> </tr> <!-- END variabledetails_copyright --> <!-- BEGIN variabledetails_magic --> <tr> <td align="left" valign="top">Magic</td> <td align="left" valign="top">{MAGIC}</td> </tr> <!-- END variabledetails_magic --> <!-- BEGIN variabledetails_brother --> <tr> <td align="left" valign="top">Brother</td> <td align="left" valign="top">{BROTHER}</td> </tr> <!-- END variabledetails_brother --> <!-- BEGIN variabledetails_see --> <tr> <td align="left" valign="top">See Also</td> <td align="left" valign="top">{SEE}</td> </tr> <!-- END variabledetails_see --> <!-- BEGIN variabledetails_links --> <tr> <td align="left" valign="top">Links</td> <td align="left" valign="top">{LINK}</td> </tr> <!-- END variabledetails_links --> <!-- BEGIN variabledetails_authors --> <tr> <td align="left" valign="top">Author(s)</td> <td align="left" valign="top">{AUTHOR}</td> </tr> <!-- END variabledetails_authors --> <tr> <td colspan="2" align="left" valign="top"><hr></td> </tr> <!-- END variabledetails_loop --> </table> </tr> <!-- END variabledetails --> <!-- BEGIN constantdetails --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td colspan="2" align="left" valign="top"><h2>{ACCESS} Constant Details</h2></td> </tr> <!-- BEGIN constantdetails_loop --> <tr> <td colspan="2" align="left" valign="top"> <a name="constant_{NAME}"><h4>{NAME}</h4></a> <code>define( {NAME}, >>{VALUE}<< )</code><br> Case: {CASE} </td> </tr> <!-- BEGIN constantdetails_version --> <tr> <td align="left" valign="top">Version</td> <td align="left" valign="top">{VERSION}</td> </tr> <!-- END constantdetails_version --> <!-- BEGIN constantdetails_since --> <tr> <td align="left" valign="top">Since</td> <td align="left" valign="top">{SINCE}</td> </tr> <!-- END constantdetails_since --> <!-- BEGIN constantdetails_deprecated --> <tr> <td align="left" valign="top">Deprecated</td> <td align="left" valign="top">{DEPRECATED}</td> </tr> <!-- END constantdetails_deprecated --> <!-- BEGIN constantdetails_copyright --> <tr> <td align="left" valign="top">Copyright</td> <td align="left" valign="top">{COPYRIGHT}</td> </tr> <!-- END constantdetails_copyright --> <!-- BEGIN constantdetails_magic --> <tr> <td align="left" valign="top">Magic</td> <td align="left" valign="top">{MAGIC}</td> </tr> <!-- END constantdetails_magic --> <!-- BEGIN constantdetails_brother --> <tr> <td align="left" valign="top">Brother</td> <td align="left" valign="top">{BROTHER}</td> </tr> <!-- END constantdetails_brother --> <!-- BEGIN constantdetails_see --> <tr> <td align="left" valign="top">See Also</td> <td align="left" valign="top">{SEE}</td> </tr> <!-- END constantdetails_see --> <!-- BEGIN constantdetails_links --> <tr> <td align="left" valign="top">Links</td> <td align="left" valign="top">{LINK}</td> </tr> <!-- END constantdetails_links --> <!-- BEGIN constantdetails_authors --> <tr> <td align="left" valign="top">Author(s)</td> <td align="left" valign="top">{AUTHOR}</td> </tr> <!-- END constantdetails_authors --> <tr> <td colspan="2" align="left" valign="top"><hr></td> </tr> <!-- END constantdetails_loop --> </table> </tr> <!-- END constantdetails --> <!-- BEGIN usesdetails --> <tr> <td align="left" valign="top"> <table width="100%" border="0"> <tr> <td colspan="2" align="left" valign="top"><h2>Included Files, Type: {TYPE}</h2></td> </tr> <!-- BEGIN usesdetails_loop --> <tr><td colspan="2" align="left" valign="top"><a name="uses_{FILE}"><h4>{FILE}</h4></a></td></tr> <tr> <td colspan="2" align="left" valign="top"> <b>{TYPE}( {FILE} )</b> </td> </tr> <!-- BEGIN usesdetails_version --> <tr> <td align="left" valign="top">Version</td> <td align="left" valign="top">{VERSION}</td> </tr> <!-- END usesdetails_version --> <!-- BEGIN usesdetails_since --> <tr> <td align="left" valign="top">Since</td> <td align="left" valign="top">{SINCE}</td> </tr> <!-- END usesdetails_since --> <!-- BEGIN usesdetails_deprecated --> <tr> <td align="left" valign="top">Deprecated</td> <td align="left" valign="top">{DEPRECATED}</td> </tr> <!-- END usesdetails_deprecated --> <!-- BEGIN usesdetails_copyright --> <tr> <td align="left" valign="top">Copyright</td> <td align="left" valign="top">{COPYRIGHT}</td> </tr> <!-- END usesdetails_copyright --> <!-- BEGIN usesdetails_magic --> <tr> <td align="left" valign="top">Magic</td> <td align="left" valign="top">{MAGIC}</td> </tr> <!-- END usesdetails_magic --> <!-- BEGIN usesdetails_brother --> <tr> <td align="left" valign="top">Brother</td> <td align="left" valign="top">{BROTHER}</td> </tr> <!-- END usesdetails_brother --> <!-- BEGIN usesdetails_see --> <tr> <td align="left" valign="top">See Also</td> <td align="left" valign="top">{SEE}</td> </tr> <!-- END usesdetails_see --> <!-- BEGIN usesdetails_links --> <tr> <td align="left" valign="top">Links</td> <td align="left" valign="top">{LINK}</td> </tr> <!-- END usesdetails_links --> <!-- BEGIN usesdetails_authors --> <tr> <td align="left" valign="top">Author(s)</td> <td align="left" valign="top">{AUTHOR}</td> </tr> <!-- END usesdetails_authors --> <tr> <td colspan="2" align="left" valign="top"><hr></td> </tr> <!-- END usesdetails_loop --> </table> </tr> <!-- END usesdetails --> <tr> <td height="10" align="left" valign="top"><hr></td> </tr> <tr> <td align="left" valign="top" bgcolor="#C0C0C0"> <table> <tr> <td align="left" valign="top"><a href="phpdoc_packagelist.html">Packageindex</a></td> <td align="left" valign="top"><a href="phpdoc_classtree.html">Classtrees</a></td> <td align="left" valign="top"><a href="phpdoc_modulegroup.html">Modulegroups</a></td> <td align="left" valign="top"><a href="phpdoc_elementlist.html">Elementlist</a></td> <td align="left" valign="top"><a href="phpdoc_warnings.html">Report</a></td> <td align="left" valign="top"><a href="phpdoc_xmlfiles.html">XML Files</a></td> </tr> </table> </td> </tr> <tr> <td align="left" valign="top">PHPDoc 1.0beta</td> </tr> </table> </body> </html> Index: php4/pear/PHPDoc/renderer/html/templates/classtree.html +++ php4/pear/PHPDoc/renderer/html/templates/classtree.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- Generated with PHPDoc, http://www.phpdoc.de --> <html> <head> <title>{APPNAME} - Classtrees</title> <link href="phpdoc.css" rel="stylesheet" type="text/css"> </head> <body> <table width="100%" border="0"> <tr> <td align="left" valign="top" bgcolor="#B0BAFF"> <table width="100%"> <tr> <td align="left" valign="top"><a href="phpdoc_packagelist.html">Packageindex</a></td> <td align="left" valign="top"><a href="phpdoc_classtree.html">Classtrees</a></td> <td align="left" valign="top"><a href="phpdoc_modulegroup.html">Modulegroups</a></td> <td align="left" valign="top"><a href="phpdoc_elementlist.html">Elementlist</a></td> <td align="left" valign="top"><a href="phpdoc_warnings.html">Report</a></td> <td align="left" valign="top"><a href="phpdoc_xmlfiles.html">XML Files</a></td> </tr> </table> </td> </tr> <tr> <td height="20" align="left" valign="top"><hr></td> </tr> <tr> <td align="left" valign="top"><h1>Classtrees</h1></td> </tr <!-- BEGIN classtree --> <tr> <td height="10" align="left" valign="top">&nbsp;</td> </tr> <tr> <td align="left" valign="top"> <h4>{BASECLASS}</h4> {TREE} </td> </tr> <!-- END classtree --> <tr> <td height="10" align="left" valign="top"><hr></td> </tr> <tr> <td align="left" valign="top" bgcolor="#B0BAFF"> <table width="100%"> <tr> <td align="left" valign="top"><a href="phpdoc_packagelist.html">Packageindex</a></td> <td align="left" valign="top"><a href="phpdoc_classtree.html">Classtrees</a></td> <td align="left" valign="top"><a href="phpdoc_modulegroup.html">Modulegroups</a></td> <td align="left" valign="top"><a href="phpdoc_elementlist.html">Elementlist</a></td> <td align="left" valign="top"><a href="phpdoc_warnings.html">Report</a></td> <td align="left" valign="top"><a href="phpdoc_xmlfiles.html">XML Files</a></td> </tr> </table> </td> </tr> <tr> <td align="left" valign="top">PHPDoc 1.0beta</td> </tr> </table> </body> </html> Index: php4/pear/PHPDoc/renderer/html/templates/elementlist.html +++ php4/pear/PHPDoc/renderer/html/templates/elementlist.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- Generated with PHPDoc, http://www.phpdoc.de --> <html> <head> <title>{APPNAME} - Elementlist</title> <link href="phpdoc.css" rel="stylesheet" type="text/css"> </head> <body> <table width="100%" border="0"> <tr> <td align="left" valign="top" bgcolor="#B0BAFF" colspan="2"> <table width="100%"> <tr> <td align="left" valign="top"><a href="phpdoc_packagelist.html">Packageindex</a></td> <td align="left" valign="top"><a href="phpdoc_classtree.html">Classtrees</a></td> <td align="left" valign="top"><a href="phpdoc_modulegroup.html">Modulegroups</a></td> <td align="left" valign="top"><a href="phpdoc_elementlist.html">Elementlist</a></td> <td align="left" valign="top"><a href="phpdoc_warnings.html">Report</a></td> <td align="left" valign="top"><a href="phpdoc_xmlfiles.html">XML Files</a></td> </tr> </table> </td> </tr> <tr> <td colspan="2" align="left" valign="top"> <!-- BEGIN chaptersummary_loop --><a href="#{CHAPTER}">{CHAPTER}</a> <!-- END chaptersummary_loop --> </td> </tr> <!-- BEGIN chapter --> <tr> <td colspan="2" align="left" valign="top"><h4><a name="{CHAPTER}">{CHAPTER}</a></h4></td> </tr> <!-- BEGIN chapter_loop --> <tr> <td>{ELEMENTNAME}</td> <td width="100%" align="left" valign="top"> {ELEMENT}<br> {SHORTDESCRIPTION} </td> </tr> <!-- END chapter_loop --> <!-- END chapter --> <tr> <td colspan="2" align="left" valign="top" bgcolor="Silver"> <table> <tr> <td align="left" valign="top"><a href="phpdoc_packagelist.html">Packageindex</a></td> <td align="left" valign="top"><a href="phpdoc_classtree.html">Classtrees</a></td> <td align="left" valign="top"><a href="phpdoc_modulegroup.html">Modulegroups</a></td> <td align="left" valign="top"><a href="phpdoc_elementlist.html">Elementlist</a></td> <td align="left" valign="top"><a href="phpdoc_warnings.html">Report</a></td> <td align="left" valign="top"><a href="phpdoc_xmlfiles.html">XML Files</a></td> </tr> </table> </td> </tr> <tr> <td colspan="2" align="left" valign="top">PHPDoc 1.0beta</td> </tr> </table> </body> </html> Index: php4/pear/PHPDoc/renderer/html/templates/frame_packageelementlist.html +++ php4/pear/PHPDoc/renderer/html/templates/frame_packageelementlist.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- Generated with PHPDoc, http://www.phpdoc.de --> <html> <head> <link href="phpdoc.css" rel="stylesheet" type="text/css"> <title>{APPNAME} - Frameset Packageelements</title> </head> <body> <table width="100%"> <tr> <td colspan=3 align="left" valign="top"> <h3>Packagelist</h3> </td> </tr> <!-- BEGIN package --> <tr> <td colspan="3" align="left" valign="top"><h4>{PACKAGE_NAME}</h4></td> </tr> <!-- BEGIN package_class --> <tr> <td align="left" valign="top">&nbsp;</td> <td colspan="2" align="left" valign="top"><h5>Classes</h5>{EMPTY}</td> </tr> <!-- BEGIN package_class_loop --> <tr> <td colspan="2" align="left" valign="top">&nbsp;</td> <td align="left" valign="top">{ELEMENT}</td> </tr> <!-- END package_class_loop --> <!-- END package_class --> <!-- BEGIN package_module --> <tr> <td align="left" valign="top">&nbsp;</td> <td colspan="2" align="left" valign="top"><h5>Modules</h5>{EMPTY}</td> </tr> <!-- BEGIN package_module_loop --> <tr> <td colspan="2" align="left" valign="top">&nbsp;</td> <td align="left" valign="top">{ELEMENT}</td> </tr> <!-- END package_module_loop --> <!-- END package_module --> <!-- END package --> </table> </body> </html> Index: php4/pear/PHPDoc/renderer/html/templates/frame_packagelist.html +++ php4/pear/PHPDoc/renderer/html/templates/frame_packagelist.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- Generated with PHPDoc, http://www.phpdoc.de --> <html> <head> <title>{APPNAME} - Frameset Packagelist</title> <link href="phpdoc.css" rel="stylesheet" type="text/css"> </head> <body> <table width="100%"> <tr> <td align="left" valign="top"><h4>Packagelist</h4></td> </tr> <!-- BEGIN package --> <tr> <td align="left" valign="top">{PACKAGE}</td> </tr> <!-- END package --> </table> </body> </html>

« previous php.cvs (#1952) next »