+++ /dev/null
-<?php\r
-/**\r
-* Builds Indexlists with the result from the \r
-*\r
-* @author Ulf Wendel <ulf.wendel@redsys.de>\r
-* @version $Id: PhpdocIndexer.php,v 1.2 2000/12/03 22:37:37 uw Exp $\r
-*/\r
-class PhpdocIndexer extends PhpdocObject {\r
-\r
- /**\r
- * Array of all packages.\r
- *\r
- * @var array\r
- */\r
- var $packages = array();\r
- \r
- /**\r
- * Current classtree.\r
- *\r
- * @var array\r
- */\r
- var $classtree = array();\r
- \r
- /**\r
- * Current modulegroup.\r
- *\r
- * @var array\r
- */\r
- var $modulegroup = array();\r
- \r
- /**\r
- * Array of all elements (functions, variables, constant, included files, classes, packages).\r
- *\r
- * @var array\r
- */\r
- var $elements = array();\r
- \r
- /**\r
- * Array of fields that get added to the elementlist\r
- *\r
- * @var array\r
- */ \r
- var $elementFields = array("functions", "variables", "consts", "uses");\r
- \r
- /**\r
- * Adds a class to the index lists (elements, packages, classtree).\r
- *\r
- * @param array \r
- * @access public\r
- * @see addModule()\r
- */\r
- function addClass(&$class) {\r
- \r
- $package = isset($class["package"]) ? $class["package"] : "No Package specified";\r
- $this->packages[$package]["classes"][] = $class["name"];\r
- $this->classtree[$class["name"]] = (isset($class["subclasses"])) ? $class["subclasses"] : array();\r
- $this->addElements($class, "class");\r
- \r
- } // end func addClass\r
- \r
- /**\r
- * Adds a module to the index lists (elements, packages, classtree).\r
- * \r
- * @param array\r
- * @access public\r
- * @see addClass()\r
- */\r
- function addModule(&$module) {\r
- \r
- $package = isset($module["package"]) ? $module["package"] : "No Package specified";\r
- $this->packages[$package]["modules"][] = $module["name"];\r
- $this->modulegroup[$module["group"]][] = $module["name"];\r
- $this->addElements($module, "module");\r
- \r
- } // end func addModule\r
-\r
- /**\r
- * Returns the current classtree and resets the internal classtree field.\r
- *\r
- * @access public\r
- * @return array $classtree\r
- */\r
- function getClasstree() {\r
- \r
- $data = $this->classtree;\r
- $this->classtree = array();\r
- return $data;\r
- \r
- } // end func getClasstree \r
- \r
- /**\r
- * Returns the current modulegroup and resets the internal modulegroup field.\r
- * \r
- * @access public\r
- * @return array $modulegroup\r
- */\r
- function getModulegroup() {\r
- \r
- $data = $this->modulegroup;\r
- $this->modulegroup = array();\r
- return $data;\r
- \r
- } // end func getModulegroup\r
-\r
- /**\r
- * Returns the package list and resets the internal package field.\r
- *\r
- * @access public\r
- * @return array $packages\r
- */\r
- function getPackages() {\r
- \r
- reset($this->packages);\r
- while (list($package, )=each($this->packages))\r
- $this->elements[substr($package, 0, 1)][$package][] = array(\r
- "type" => "package",\r
- "sdesc" => "",\r
- "source" => "",\r
- "sourcetype" => ""\r
- ); \r
- $data = $this->packages;\r
- $this->packages = array();\r
- \r
- return $data;\r
- } // end func getPackages\r
- \r
- /**\r
- * Returns the element index list and resets the internal elements field.\r
- * \r
- * @access public\r
- * @return array $elements\r
- */\r
- function getElementlist() {\r
- \r
- $data = $this->elements;\r
- $this->elements = array();\r
- return $data;\r
- } // end func getElementlist\r
- \r
- /**\r
- * Adds an element to the elementlist.\r
- * @param array \r
- * @param string Element type: class, module.\r
- */\r
- function addElements(&$elements, $type) {\r
- \r
- $index = substr($elements["name"], 0, 1);\r
- $elname = $elements["name"];\r
- $this->elements[$index][$elname][] = array(\r
- "type" => $type, \r
- "sdesc" => (isset($elements["sdesc"])) ? $elements["sdesc"] : "",\r
- "source" => "",\r
- "sourcetype" => $type\r
- );\r
-\r
- reset($this->elementFields);\r
- while (list($k, $field) = each($this->elementFields)) {\r
- if (!isset($elements[$field])) \r
- continue;\r
- \r
- reset($elements[$field]);\r
- while (list($name, $data) = each($elements[$field])) {\r
- \r
- \r
- if ("variables" == $field) {\r
- \r
- $index = substr($data["name"], 1, 1);\r
- $name = $data["name"];\r
- \r
- } else if ("uses" == $field) {\r
-\r
- $index = substr($data["file"], 0, 1); \r
- $name = $data["file"];\r
- \r
- } else {\r
- \r
- $index = substr($data["name"], 0, 1);\r
- $name = $data["name"];\r
- \r
- }\r
- \r
- $this->elements[$index][$name][] = array(\r
- "type" => $field,\r
- "sdesc" => (isset($data["sdesc"])) ? $data["sdesc"] : "",\r
- "source" => $elname,\r
- "sourcetype" => $type\r
- );\r
- \r
- }\r
- \r
- }\r
- \r
- } // end func addElements\r
- \r
-} // end class PhpdocIndexer\r
-?>
\ No newline at end of file