+++ /dev/null
-<?php\r
-/**\r
-* Creates XML index files.\r
-*\r
-* @version $Id: PhpdocXMLIndexExporter.php,v 1.2 2000/12/03 22:37:38 uw Exp $\r
-*/\r
-class PhpdocXMLIndexExporter extends PhpdocXMLExporter {\r
-\r
- /**\r
- * Chapter tag attributes\r
- *\r
- * @var array\r
- */\r
- var $chapterAttributes = array( "name" => "CDATA" );\r
- \r
- /**\r
- * Element tag attributes.\r
- *\r
- * @var array()\r
- */\r
- var $elementAttributes = array(\r
- "type" => "CDATA",\r
- "source" => "CDATA", \r
- "sourcetype" => "CDATA" \r
- );\r
- /**\r
- * Just call the parent class constructor\r
- */\r
- function PhpdocXMLIndexExporter() {\r
- $this->PhpdocXMLExporter();\r
- } // end constructor\r
- \r
- /**\r
- * Exports a modulegroup.\r
- *\r
- * @param array\r
- * @access public\r
- */\r
- function exportModulegroup(&$modulegroup) {\r
- \r
- $this->xmlwriter->free();\r
- \r
- $this->xmlwriter->addXML('<?xml version="1.0"?>');\r
- $this->xmlwriter->startElement("phpdoc");\r
-\r
- reset($modulegroup);\r
- list($group, $modules) = each($modulegroup);\r
- $attribs = array( "name" => array( "type" => "CDATA", "value" => $group) );\r
- $this->xmlwriter->startElement("modulegroup", "", $attribs);\r
- \r
- reset($modules);\r
- while (list($k, $module)=each($modules))\r
- $this->xmlwriter->addElement("module", "", array( "name" => array( "type" => "CDATA", "value" => $module )) );\r
- \r
- $this->xmlwriter->endElement("modulegroup");\r
- $this->xmlwriter->endElement("phpdoc");\r
- \r
- $group = $this->nameToUrl($group);\r
- $this->xmlwriter->export($this->path."modulegroup_$group.xml");\r
- $this->xmlwriter->free();\r
- \r
- } // end func exportModulegroup\r
- \r
- /**\r
- * Exports a packagelist\r
- * \r
- * @param array\r
- * @access public\r
- */\r
- function exportPackagelist(&$packagelist) {\r
- \r
- $this->xmlwriter->free();\r
- \r
- $this->xmlwriter->addXML('<?xml version="1.0"?>');\r
- $this->xmlwriter->startElement("phpdoc");\r
- $this->xmlwriter->startElement("packagelist");\r
- \r
- reset($packagelist);\r
- while (list($package, $elementlist)=each($packagelist)) {\r
- \r
- $attribs = array( "name" => array("type" => "CDATA", "value" => $package) );\r
- $this->xmlwriter->startElement("package", "", $attribs);\r
- \r
- reset($elementlist);\r
- while (list($type, $elements) = each($elementlist)) {\r
- \r
- $container = ("classes" == $type) ? "class" : "module";\r
- while (list($k, $element) = each($elements)) {\r
- \r
- $attribs = array( "name" => array("type" => "CDATA", "value" => $element));\r
- $this->xmlwriter->addElement($container, "", $attribs);\r
- \r
- }\r
- \r
- }\r
- \r
- $this->xmlwriter->endElement("package");\r
- \r
- } \r
- \r
- $this->xmlwriter->endElement("packagelist");\r
- $this->xmlwriter->endElement("phpdoc");\r
- $this->xmlwriter->export($this->path."packagelist.xml");\r
- $this->xmlwriter->free();\r
- \r
- } // end func exportPackagelist\r
- \r
- /**\r
- * Exports a classtree\r
- * \r
- * @param array Classtree\r
- * @param string Name of the baseclass of the classtree\r
- * @access public\r
- */\r
- function exportClasstree(&$classtree, $baseclass) {\r
- \r
- $this->xmlwriter->free();\r
- \r
- $this->xmlwriter->addXML('<?xml version="1.0"?>');\r
- $this->xmlwriter->startElement("phpdoc");\r
- \r
- $attribs = array("baseclass" => array("type" => "CDATA", "value" => $baseclass));\r
- $this->xmlwriter->startElement("classtree", "", $attribs); \r
- \r
- reset($classtree);\r
- while (list($parentclass, $subclasses) = each($classtree)) {\r
- \r
- $attribs = array("name" => array("type" => "CDATA", "value" => $parentclass));\r
- $this->xmlwriter->startElement("class", "", $attribs);\r
- \r
- reset($subclasses);\r
- while (list($subclass, $v) = each($subclasses)) \r
- $this->xmlwriter->addElement("subclass", $subclass);\r
- \r
- $this->xmlwriter->endElement("class");\r
- \r
- }\r
- \r
- $this->xmlwriter->endElement("classtree");\r
- $this->xmlwriter->endElement("phpdoc");\r
- \r
- $baseclass = $this->nameToURL($baseclass);\r
- $this->xmlwriter->export($this->path . "classtree_$baseclass.xml");\r
- $this->xmlwriter->free();\r
- \r
- } // end func exportClasstree\r
- \r
- /**\r
- * Exports a list of all elements\r
- * \r
- * @param array\r
- * @access public\r
- */\r
- function exportElementlist(&$elementlist) {\r
- \r
- $this->xmlwriter->free();\r
- \r
- $this->xmlwriter->addXML('<?xml version="1.0"?>');\r
- $this->xmlwriter->startElement("phpdoc");\r
- $this->xmlwriter->startElement("index"); \r
- \r
- reset($elementlist);\r
- while (list($index, $elements) = each($elementlist)) {\r
- \r
- $attrib = array( "char" => array( "type" => "CDATA", "value" => $index ) );\r
- $this->xmlwriter->startElement("chapter", "", $attrib);\r
-\r
- reset($elements);\r
- while (list($name, $element) = each($elements)) {\r
- \r
- reset($element);\r
- while (list($k, $eldata) = each($element)) {\r
- $attribs = $this->getAttributes($eldata, $this->elementAttributes);\r
- $attribs["name"] = array( "type" => "CDATA", "value" => $name );\r
- $this->xmlwriter->addElement("element", $eldata["sdesc"], $attribs);\r
- }\r
- \r
- }\r
-\r
- $this->xmlwriter->endElement("chapter");\r
- }\r
- \r
- $this->xmlwriter->endElement("index");\r
- $this->xmlwriter->endElement("phpdoc");\r
- \r
- $this->xmlwriter->export($this->path."elementlist.xml");\r
- $this->xmlwriter->free();\r
-\r
- } // end func exportElementlist\r
- \r
-} // end class PhpdocXMLIndexExporter\r
-?>
\ No newline at end of file