From 1f09b786730956d01c48a82272617a0f8b2597f0 Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Sat, 19 Nov 2011 11:05:46 +0000 Subject: updating phpDocumentor, part 1: removal of the old version --- .../PhpDocumentor/phpDocumentor/Classes.inc | 1068 ---- .../PhpDocumentor/phpDocumentor/Converter.inc | 5189 ------------------- .../Converters/CHM/default/CHMdefaultConverter.inc | 1755 ------- .../CHM/default/templates/default/options.ini | 577 --- .../default/templates/default/templates/__tags.tpl | 13 - .../default/templates/_class_declaration.tpl | 38 - .../default/templates/_class_description.tpl | 7 - .../templates/default/templates/_class_list.tpl | 1 - .../default/templates/_constant_details.tpl | 33 - .../default/templates/_constant_summary.tpl | 22 - .../default/templates/_constructor_details.tpl | 55 - .../default/templates/_constructor_summary.tpl | 25 - .../default/templates/_destructor_details.tpl | 55 - .../default/templates/_destructor_summary.tpl | 27 - .../templates/default/templates/_footer.tpl | 1 - .../default/templates/_get_constant_type.tpl | 10 - .../templates/default/templates/_header.tpl | 4 - .../default/templates/_inherited_constants.tpl | 34 - .../default/templates/_inherited_methods.tpl | 42 - .../default/templates/_inheritence_tree.tpl | 3 - .../default/templates/_method_details.tpl | 101 - .../default/templates/_method_summary.tpl | 61 - .../templates/default/templates/_sub_classes.tpl | 19 - .../default/templates/default/templates/_tags.tpl | 13 - .../templates/default/templates/basicindex.tpl | 18 - .../default/templates/default/templates/blank.tpl | 5 - .../default/templates/default/templates/class.tpl | 31 - .../templates/default/templates/classleft.tpl | 9 - .../templates/default/templates/classtrees.tpl | 8 - .../default/templates/default/templates/const.tpl | 14 - .../templates/default/templates/contents.hhc.tpl | 1 - .../default/templates/default/templates/define.tpl | 32 - .../templates/default/templates/docblock.tpl | 15 - .../templates/default/templates/elementindex.tpl | 5 - .../default/templates/default/templates/errors.tpl | 21 - .../templates/default/templates/examplesource.tpl | 6 - .../templates/default/templates/fileleft.tpl | 10 - .../templates/default/templates/filesource.tpl | 8 - .../default/templates/default/templates/footer.tpl | 11 - .../templates/default/templates/function.tpl | 48 - .../default/templates/default/templates/global.tpl | 40 - .../default/templates/default/templates/header.tpl | 23 - .../default/templates/default/templates/hhp.tpl | 17 - .../templates/default/templates/include.tpl | 9 - .../templates/default/templates/index.hhk.tpl | 8 - .../default/templates/default/templates/index.tpl | 7 - .../templates/default/templates/media/bg_left.png | Bin 991 -> 0 bytes .../templates/default/templates/media/manual.css | 260 - .../templates/default/templates/media/style.css | 598 --- .../default/templates/media/stylesheet.css | 728 --- .../default/templates/default/templates/method.tpl | 58 - .../templates/default/templates/packages.tpl | 3 - .../default/templates/default/templates/page.tpl | 31 - .../default/templates/pkgelementindex.tpl | 5 - .../default/templates/default/templates/ric.tpl | 6 - .../templates/default/templates/tocentry.tpl | 11 - .../templates/default/templates/todolist.tpl | 14 - .../templates/default/templates/tutorial.tpl | 32 - .../templates/default/templates/tutorial_toc.tpl | 29 - .../templates/default/templates/tutorial_tree.tpl | 5 - .../default/templates/default/templates/var.tpl | 28 - .../Converters/HTML/Smarty/HTMLSmartyConverter.inc | 1779 ------- .../HTML/Smarty/templates/PradoSoft/options.ini | 577 --- .../templates/PradoSoft/templates/__tags.tpl | 13 - .../PradoSoft/templates/_class_declaration.tpl | 38 - .../PradoSoft/templates/_class_description.tpl | 7 - .../templates/PradoSoft/templates/_class_list.tpl | 1 - .../PradoSoft/templates/_constant_details.tpl | 33 - .../PradoSoft/templates/_constant_summary.tpl | 22 - .../PradoSoft/templates/_constructor_details.tpl | 55 - .../PradoSoft/templates/_constructor_summary.tpl | 25 - .../PradoSoft/templates/_destructor_details.tpl | 55 - .../PradoSoft/templates/_destructor_summary.tpl | 27 - .../templates/PradoSoft/templates/_footer.tpl | 1 - .../PradoSoft/templates/_get_constant_type.tpl | 10 - .../templates/PradoSoft/templates/_header.tpl | 4 - .../PradoSoft/templates/_inherited_constants.tpl | 34 - .../PradoSoft/templates/_inherited_methods.tpl | 42 - .../PradoSoft/templates/_inheritence_tree.tpl | 3 - .../PradoSoft/templates/_method_details.tpl | 101 - .../PradoSoft/templates/_method_summary.tpl | 61 - .../templates/PradoSoft/templates/_sub_classes.tpl | 19 - .../Smarty/templates/PradoSoft/templates/_tags.tpl | 13 - .../templates/PradoSoft/templates/basicindex.tpl | 18 - .../Smarty/templates/PradoSoft/templates/blank.tpl | 5 - .../Smarty/templates/PradoSoft/templates/class.tpl | 29 - .../templates/PradoSoft/templates/classleft.tpl | 9 - .../templates/PradoSoft/templates/classtrees.tpl | 8 - .../Smarty/templates/PradoSoft/templates/const.tpl | 14 - .../templates/PradoSoft/templates/define.tpl | 32 - .../templates/PradoSoft/templates/docblock.tpl | 15 - .../templates/PradoSoft/templates/elementindex.tpl | 5 - .../templates/PradoSoft/templates/errors.tpl | 21 - .../PradoSoft/templates/examplesource.tpl | 6 - .../templates/PradoSoft/templates/fileleft.tpl | 10 - .../templates/PradoSoft/templates/filesource.tpl | 8 - .../templates/PradoSoft/templates/footer.tpl | 25 - .../templates/PradoSoft/templates/function.tpl | 48 - .../templates/PradoSoft/templates/global.tpl | 40 - .../templates/PradoSoft/templates/header.tpl | 113 - .../templates/PradoSoft/templates/include.tpl | 9 - .../Smarty/templates/PradoSoft/templates/index.tpl | 7 - .../PradoSoft/templates/media/background.png | Bin 238 -> 0 bytes .../PradoSoft/templates/media/bg_left.png | Bin 991 -> 0 bytes .../templates/PradoSoft/templates/media/empty.png | Bin 206 -> 0 bytes .../templates/PradoSoft/templates/media/manual.css | 260 - .../templates/PradoSoft/templates/media/style.css | 598 --- .../PradoSoft/templates/media/stylesheet.css | 129 - .../templates/PradoSoft/templates/method.tpl | 58 - .../templates/PradoSoft/templates/packages.tpl | 3 - .../Smarty/templates/PradoSoft/templates/page.tpl | 31 - .../PradoSoft/templates/pkgelementindex.tpl | 5 - .../Smarty/templates/PradoSoft/templates/ric.tpl | 6 - .../templates/PradoSoft/templates/todolist.tpl | 14 - .../templates/PradoSoft/templates/tutorial.tpl | 32 - .../templates/PradoSoft/templates/tutorial_toc.tpl | 29 - .../PradoSoft/templates/tutorial_tree.tpl | 5 - .../Smarty/templates/PradoSoft/templates/var.tpl | 28 - .../Converters/HTML/frames/HTMLframesConverter.inc | 1747 ------- .../HTML/frames/templates/default/options.ini | 577 --- .../templates/default/templates/basicindex.tpl | 47 - .../frames/templates/default/templates/blank.tpl | 13 - .../frames/templates/default/templates/class.tpl | 402 -- .../templates/default/templates/classtrees.tpl | 11 - .../frames/templates/default/templates/const.tpl | 18 - .../frames/templates/default/templates/define.tpl | 24 - .../templates/default/templates/docblock.tpl | 14 - .../templates/default/templates/elementindex.tpl | 12 - .../frames/templates/default/templates/errors.tpl | 21 - .../templates/default/templates/examplesource.tpl | 6 - .../templates/default/templates/filesource.tpl | 8 - .../frames/templates/default/templates/footer.tpl | 8 - .../templates/default/templates/function.tpl | 44 - .../frames/templates/default/templates/global.tpl | 26 - .../frames/templates/default/templates/header.tpl | 12 - .../frames/templates/default/templates/include.tpl | 16 - .../frames/templates/default/templates/index.tpl | 24 - .../templates/default/templates/left_frame.tpl | 149 - .../templates/default/templates/media/banner.css | 32 - .../default/templates/media/stylesheet.css | 144 - .../frames/templates/default/templates/method.tpl | 61 - .../frames/templates/default/templates/page.tpl | 211 - .../default/templates/pkgelementindex.tpl | 17 - .../frames/templates/default/templates/ric.tpl | 6 - .../templates/default/templates/todolist.tpl | 14 - .../templates/default/templates/top_frame.tpl | 43 - .../templates/default/templates/tutorial.tpl | 13 - .../templates/default/templates/tutorial_nav.tpl | 41 - .../templates/default/templates/tutorial_toc.tpl | 39 - .../templates/default/templates/tutorial_tree.tpl | 6 - .../frames/templates/default/templates/var.tpl | 44 - .../PhpDocumentor/phpDocumentor/DescHTML.inc | 241 - .../PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc | 701 --- .../PhpDocumentor/phpDocumentor/DocBlockTags.inc | 984 ---- .../PhpDocumentor/phpDocumentor/Errors.inc | 793 --- .../PhpDocumentor/phpDocumentor/EventStack.inc | 78 - .../phpDocumentor/HighlightParser.inc | 2354 --------- .../PhpDocumentor/phpDocumentor/InlineTags.inc | 854 --- .../phpDocumentor/IntermediateParser.inc | 1832 ------- buildscripts/PhpDocumentor/phpDocumentor/Io.inc | 869 ---- .../PhpDocumentor/phpDocumentor/LinkClasses.inc | 206 - .../phpDocumentor/PackagePageElements.inc | 387 -- .../PhpDocumentor/phpDocumentor/Parser.inc | 3185 ------------ .../PhpDocumentor/phpDocumentor/ParserData.inc | 725 --- .../phpDocumentor/ParserDescCleanup.inc | 1456 ------ .../PhpDocumentor/phpDocumentor/ParserDocBlock.inc | 1165 ----- .../PhpDocumentor/phpDocumentor/ParserElements.inc | 1910 ------- .../phpDocumentor/ProceduralPages.inc | 782 --- .../PhpDocumentor/phpDocumentor/Publisher.inc | 84 - .../PhpDocumentor/phpDocumentor/Setup.inc.php | 785 --- .../PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS | 7 - .../phpDocumentor/Smarty-2.6.0/COPYING.lib | 458 -- .../phpDocumentor/Smarty-2.6.0/ChangeLog | 5421 -------------------- .../PhpDocumentor/phpDocumentor/Smarty-2.6.0/FAQ | 284 - .../phpDocumentor/Smarty-2.6.0/INSTALL | 29 - .../PhpDocumentor/phpDocumentor/Smarty-2.6.0/NEWS | 733 --- .../phpDocumentor/Smarty-2.6.0/README | 80 - .../phpDocumentor/Smarty-2.6.0/RELEASE_NOTES | 423 -- .../PhpDocumentor/phpDocumentor/Smarty-2.6.0/TODO | 12 - .../Smarty-2.6.0/libs/Config_File.class.php | 365 -- .../Smarty-2.6.0/libs/Smarty.class.php | 2010 -------- .../Smarty-2.6.0/libs/Smarty_Compiler.class.php | 2123 -------- .../libs/core/core.assemble_plugin_filepath.php | 62 - .../libs/core/core.assign_smarty_interface.php | 43 - .../libs/core/core.create_dir_structure.php | 79 - .../libs/core/core.display_debug_console.php | 60 - .../libs/core/core.get_include_path.php | 44 - .../Smarty-2.6.0/libs/core/core.get_microtime.php | 23 - .../libs/core/core.get_php_resource.php | 80 - .../Smarty-2.6.0/libs/core/core.is_secure.php | 59 - .../Smarty-2.6.0/libs/core/core.is_trusted.php | 50 - .../Smarty-2.6.0/libs/core/core.load_plugins.php | 125 - .../libs/core/core.load_resource_plugin.php | 74 - .../libs/core/core.process_cached_inserts.php | 71 - .../libs/core/core.process_compiled_include.php | 32 - .../libs/core/core.read_cache_file.php | 111 - .../Smarty-2.6.0/libs/core/core.rm_auto.php | 71 - .../Smarty-2.6.0/libs/core/core.rmdir.php | 55 - .../libs/core/core.run_insert_handler.php | 71 - .../libs/core/core.smarty_include_php.php | 50 - .../libs/core/core.write_cache_file.php | 73 - .../libs/core/core.write_compiled_include.php | 59 - .../libs/core/core.write_compiled_resource.php | 37 - .../Smarty-2.6.0/libs/core/core.write_file.php | 48 - .../phpDocumentor/Smarty-2.6.0/libs/debug.tpl | 64 - .../Smarty-2.6.0/libs/plugins/block.strip.php | 35 - .../Smarty-2.6.0/libs/plugins/block.textformat.php | 83 - .../Smarty-2.6.0/libs/plugins/function.assign.php | 38 - .../libs/plugins/function.assign_debug_info.php | 39 - .../libs/plugins/function.config_load.php | 130 - .../Smarty-2.6.0/libs/plugins/function.counter.php | 88 - .../Smarty-2.6.0/libs/plugins/function.cycle.php | 119 - .../Smarty-2.6.0/libs/plugins/function.debug.php | 35 - .../Smarty-2.6.0/libs/plugins/function.eval.php | 48 - .../Smarty-2.6.0/libs/plugins/function.fetch.php | 217 - .../libs/plugins/function.html_checkboxes.php | 135 - .../libs/plugins/function.html_image.php | 143 - .../libs/plugins/function.html_options.php | 118 - .../libs/plugins/function.html_radios.php | 138 - .../libs/plugins/function.html_select_date.php | 243 - .../libs/plugins/function.html_select_time.php | 163 - .../libs/plugins/function.html_table.php | 113 - .../Smarty-2.6.0/libs/plugins/function.mailto.php | 140 - .../Smarty-2.6.0/libs/plugins/function.math.php | 82 - .../Smarty-2.6.0/libs/plugins/function.popup.php | 87 - .../libs/plugins/function.popup_init.php | 39 - .../libs/plugins/function.var_dump.php | 20 - .../libs/plugins/modifier.capitalize.php | 25 - .../Smarty-2.6.0/libs/plugins/modifier.cat.php | 33 - .../libs/plugins/modifier.count_characters.php | 31 - .../libs/plugins/modifier.count_paragraphs.php | 28 - .../libs/plugins/modifier.count_sentences.php | 28 - .../libs/plugins/modifier.count_words.php | 32 - .../libs/plugins/modifier.date_format.php | 43 - .../libs/plugins/modifier.debug_print_var.php | 57 - .../Smarty-2.6.0/libs/plugins/modifier.default.php | 31 - .../Smarty-2.6.0/libs/plugins/modifier.escape.php | 63 - .../libs/plugins/modifier.htmlentities.php | 18 - .../Smarty-2.6.0/libs/plugins/modifier.indent.php | 27 - .../Smarty-2.6.0/libs/plugins/modifier.lower.php | 25 - .../Smarty-2.6.0/libs/plugins/modifier.nl2br.php | 35 - .../libs/plugins/modifier.rawurlencode.php | 18 - .../libs/plugins/modifier.regex_replace.php | 29 - .../Smarty-2.6.0/libs/plugins/modifier.replace.php | 29 - .../Smarty-2.6.0/libs/plugins/modifier.spacify.php | 29 - .../libs/plugins/modifier.string_format.php | 28 - .../Smarty-2.6.0/libs/plugins/modifier.strip.php | 33 - .../libs/plugins/modifier.strip_tags.php | 31 - .../libs/plugins/modifier.truncate.php | 43 - .../Smarty-2.6.0/libs/plugins/modifier.upper.php | 25 - .../libs/plugins/modifier.wordwrap.php | 28 - .../libs/plugins/outputfilter.trimwhitespace.php | 75 - .../libs/plugins/shared.escape_special_chars.php | 30 - .../libs/plugins/shared.make_timestamp.php | 43 - .../Smarty-2.6.0/misc/smarty_icon.README | 6 - .../Smarty-2.6.0/misc/smarty_icon.gif | Bin 1102 -> 0 bytes .../phpDocumentor/TutorialHighlightParser.inc | 491 -- .../PhpDocumentor/phpDocumentor/WordParser.inc | 325 -- .../phpDocumentor/XMLpackagePageParser.inc | 554 -- .../PhpDocumentor/phpDocumentor/clone.inc.php | 13 - .../PhpDocumentor/phpDocumentor/clone5.inc.php | 14 - .../PhpDocumentor/phpDocumentor/common.inc.php | 246 - .../PhpDocumentor/phpDocumentor/find_phpdoc.php | 32 - .../phpDocumentor/phpDocumentorTParser.inc | 2615 ---------- .../phpDocumentor/phpDocumentorTWordParser.inc | 311 -- .../PhpDocumentor/phpDocumentor/phpdoc.inc | 45 - 266 files changed, 60296 deletions(-) delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Classes.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converter.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Errors.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Io.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Parser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/FAQ delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/INSTALL delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/NEWS delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/README delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/RELEASE_NOTES delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/TODO delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/debug.tpl delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/clone.inc.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/clone5.inc.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/common.inc.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/find_phpdoc.php delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTParser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTWordParser.inc delete mode 100644 buildscripts/PhpDocumentor/phpDocumentor/phpdoc.inc (limited to 'buildscripts') diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Classes.inc b/buildscripts/PhpDocumentor/phpDocumentor/Classes.inc deleted file mode 100644 index d4f29745..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Classes.inc +++ /dev/null @@ -1,1068 +0,0 @@ - - * @since 1.0rc1 - * @version $Id: Classes.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $ - */ -/** - * Intermediate class parsing structure. - * - * The {@link phpDocumentor_IntermediateParser} class uses this class and its - * cousin, {@link ProceduralPages} to organize all parsed source code elements. - * Data is fed to each immediately after it is parsed, and at conversion time, - * everything is organized. - * - * The Classes class is responsible for all inheritance, including resolving - * name conflicts between classes, determining which classes extend other - * classes, and is responsible for all inheritance of documentation. - * {@internal - * This structure parses classes, vars and methods by file, and then iterates - * over the class tree to set up inheritance. The {@link Inherit()} - * method is the meat of the class, and processes the class trees from root to - * branch, ensuring that parsing order is unimportant.}} - * @package phpDocumentor - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: Classes.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $ - */ -class Classes -{ - /**#@+ - * @access private - */ - /** - * file being parsed, used in every add function to match up elements with - * the file that contains them - * - * This variable is used during parsing to associate class elements added - * to the data structures that contain them with the file they reside in - * @see addClass(), addMethod(), addVar(), nextFile() - * @var string - */ - var $curfile; - /** - * class being parsed, used to match up methods and vars with their parent - * class - * - * This variable is used during parsing to associate class elements added - * to the data structures that contain them with the file they reside in - * @see addMethod(), addVar() - * @var string - */ - var $curclass; - - /** - * Used when a definite match is made between a parent class and a child - * class - * - * This variable is used in post-parsing. - * - * Format: array(parent => array(parentfile => array(child => childfile))) - * @var array - */ - var $definitechild; - /** - * array of parsed classes organized by the name of the file that contains - * the class. - * - * Format: - * array(filename => array(classname => {@link parserClass})) - * @var array - */ - var $classesbyfile = array(); - /** - * array of file names organized by classes that are in the file. - * - * This structure is designed to handle name conflicts. Two files can - * contain classes with the same name, and this array will record both - * filenames to help control linking and inheritance errors - * - * Format:
-     * array(classname => array(name of file containing classname,
-     *                          name of file 2 containing classname...)
- * @var array - */ - var $classesbynamefile = array(); - /** - * array of parsed methods organized by the file that contains them. - * - * Format:
-     * array(filename => array(classname => array({@link parserMethod} 1, 
-     *                                            {@link parserMethod} 2,...))
- * @var array - */ - var $methodsbyfile = array(); - /** - * array of parsed vars organized by the file that contains them. - * - * Format: - * array(filename => array(classname => array({@link parserVar} 1, {@link parserVar} 2,...)) - * @var array - */ - var $varsbyfile = array(); - /** - * array of parsed class constants organized by the file that contains them. - * - * Format: - * array(filename => array(classname => array({@link parserConst} 1, {@link parserConst} 2,...)) - * @var array - */ - var $constsbyfile = array(); - /** - * keeps track of extend declarations by file, used to find inheritance - * - * Format: - * array(filename => array(classname => parentclassname)) - * @var array - */ - var $extendsbyfile = array(); - /** - * Keeps track of child classes by file. - * Since phpDocumentor can document collections of files that contain name - * conflicts (PHP would give a fatal error), it - * is impossible to assume a class that declares "extends foo" necessarily - * extends the class foo in file X. It could be an - * extended class of class foo in file Y. Because of this, phpDocumentor - * relies on packaging to resolve the name conflict - * This array keeps track of the packages of a child class - * - * Format: - * array(parentclassname => array(filename => array(childclassname => - * array(packagename, packagename))) - * @var array - */ - var $classchildrenbyfile = array(); - /** - * Keeps track of class packages found in a file. - * This is used in {@link getParentClass()} to determine the number of - * packages in a file, in order to resolve inheritance issues - * Format: array(filename => array(packagename1, packagename2,...)) - * @var array - */ - var $classpackagebyfile = array(); - /** - * a tree of class inheritance by name. - * - * format:
-     * array(childname => parentname,
-     *       childname1 => parentname1,
-     *       rootname => 0, ...
-     *      )
- * @var array - * @see Converter::generateSortedClassTreeFromClass() - */ - var $classparents = array(); - /** - * Keeps track of package and subpackage for each class name, organized - * by package - * - * Format:
-     * array(classname => array(path => array(package,subpackage),
-     *                          path2 => array(package,subpackage),...))
- * @var array - */ - var $classpathpackages = array(); - /** - * used to delete duplicates in the same package to avoid documentation errors - * - * Specifically used in {@link Converter::checkKillClass()} - */ - var $killclass = array(); - /** - * array of methods by package and class - * - * format:
-     * array(packagename =>
-     *         array(classname =>
-     *               array(methodname1 => {@link parserMethod} class,
-     *                     methodname2 => {@link parserMethod} class,...)
-     *                      )
-     *              )
-     *      )
- * @var array - * @see Converter - */ - var $methods = array(); - - /** - * array of class variables by package and class - * - * format:
-     * array(packagename =>
-     *         array(classname =>
-     *                array(variablename1 => {@link parserVar} class,
-     *                      variablename2 => {@link parserVar} class,...
-     *                     )
-     *              )
-     *      )
- * @var array - * @see Converter - */ - var $vars = array(); - - /** - * array of class variables by package and class - * - * format:
-     * array(packagename =>
-     *         array(classname =>
-     *                array(constname1 => {@link parserConst} class,
-     *                      constname2 => {@link parserConst} class,...
-     *                     )
-     *              )
-     *      )
- * @var array - * @see Converter - */ - var $consts = array(); - /** - * Reverse class_packages_by_file, used to prevent duplicates - * @var array Format: array(packagename => 1) - */ - var $revcpbf = array(); - /** - * All classes with no parents (no extends clause) are tracked in this array - * by the file that contains them. - * - * Format:
-     * array(classname => array(name of file1 that contains root classname,
-     *                          name of file2 that contains root classname,...))
- * @var array - */ - var $roots = array(); - - /** - * array of all files that contain classes with the same name - * @var array Format: (classname => array(path1, path2,...)) - */ - var $potentialclassconflicts = array(); - - /** - * array of all inter-package name conflicts of classes - * - * This array allows documentation of PHP namespace conflicts that would - * occur should a user try to include these files in the same file - * @var array Format: (classname => array(path1, path2,...)) - */ - var $classconflicts = array(); - /**#@-*/ - /** - * While parsing, add a class to the list of parsed classes - * - * sets up the {@link $classesbyfile, $classesbynamefile, $extendsbyfile}, - * {@link $classchildrenbyfile, $roots} arrays, and sets {@link $curclass} - * @param parserClass &$element element is a {@link parserClass} - * @uses addPackageToFile() marks the current class's package as being - * present in a file - */ - function addClass(&$element) - { - $this->curclass = $element->getName(); - $element->curfile = $this->curfile; - if (isset($this->classesbyfile[$this->curfile][$this->curclass])) - { - addWarning(PDERROR_ELEMENT_IGNORED,'class',$this->curclass,$this->curfile); - $this->curclass = false; - return; - } - $this->classesbyfile[$this->curfile][$this->curclass] = $element; - $this->classesbynamefile[$this->curclass][] = $this->curfile; - $this->extendsbyfile[$this->curfile][$this->curclass] = $element->getExtends(); - $this->classchildrenbyfile[$element->getExtends()][$this->curfile][$this->curclass][] = $element->docblock->package; - if ($element->docblock->getExplicitPackage()) - $this->addPackageToFile($element->docblock->package); - if (!$element->getExtends()) - { - $this->roots[$this->curclass][] = $this->curfile; - } - } - - /** - * While parsing, add a method to the list of parsed methods - * - * sets up the {@link $methodsbyfile} array using {@link $curfile} and - * {@link $curclass} - * @param parserMethod &$element element is a {@link parserMethod} - */ - function addMethod(&$element) - { - if (!$this->curclass) return; - $this->methodsbyfile[$this->curfile][$this->curclass][] = $element; - } - - /** - * While parsing, add a variable to the list of parsed variables - * - * sets up the {@link $varsbyfile} array using {@link $curfile} and {@link $curclass} - * @param parserVar &$element element is a {@link parserVar} - */ - function addVar(&$element) - { - if (!$this->curclass) return; - $this->varsbyfile[$this->curfile][$this->curclass][] = $element; - } - - /** - * While parsing, add a variable to the list of parsed variables - * - * sets up the {@link $constsbyfile} array using {@link $curfile} and {@link $curclass} - * @param parserConst &$element element is a {@link parserConst} - */ - function addConst(&$element) - { - if (!$this->curclass) return; - $this->constsbyfile[$this->curfile][$this->curclass][] = $element; - } - - /** - * Prepare to parse a new file - * - * sets {@link $curfile} to $file and {@link $curclass} to false (no class being parsed) - * @param string $file file currently being parsed - */ - function nextFile($file) - { - $this->curfile = $file; - $this->curclass = false; - } - - /** - * Mark a package as being used in a class - * - * {@source} - * @param string $package package name - */ - function addPackageToFile($package) - { - if (!isset($this->revcpbf[$this->curfile][$package])) - $this->classpackagebyfile[$this->curfile][] = $package; - $this->revcpbf[$this->curfile][$package] = 1; - } - - /** - * Find the parent class of $class, and set up structures to note this fact - * - * Modifies the {@link parserClass} element in {@link $classesbyfile} to use - * the parent's package, and inherit methods/vars - * @param string $class child class to find parent class - * @param string $file file child class is located in - * @uses $definitechild if a match is made between a parent class and parameter - * $class in file $file, then definitechild is set here - * @uses getParentClass() to find the parent class - */ - function setClassParent($class,$file) - { - if (is_array($par = $this->getParentClass($class,$file))) - { -// phpDocumentor_out("$file class $class extends ".$par[1]." file ".$par[0]."\n"); - $this->classesbyfile[$file][$class]->setParent($par[1],$par[0],$this); - $this->definitechild[$par[1]][$par[0]][$class] = $file; - } else - { - $this->classesbyfile[$file][$class]->setParentNoClass($par); - } - } - - /** - * Main processing engine for setting up class inheritance. - * - * This function uses {@link $roots} to traverse the inheritance tree via - * {@link processChild()} and returns the data structures - * phpDocumentor_IntermediateParser needs to convert parsed data - * to output using {@link phpDocumentor_IntermediateParser::Convert()} - * @param phpDocumentor_IntermediateParser - * @uses processChild() set up inheritance - */ - function Inherit(&$render) - { - phpDocumentor_out("\nProcessing Class Inheritance\n\n"); - flush(); - phpDocumentor_out("\nProcessing Root Trees\n\n"); - flush(); - foreach($this->roots as $class => $files) - { - for ($i=0; $iprocessChild($render,$class,$files[$i]); - } - } - if (0) - foreach($this->classesbyfile as $i => $j) - { - foreach($j as $k => $m) - { - var_dump($i,$k); - if ($i == 'iConverter') - { - var_dump($j); - } - } - } - phpDocumentor_out("\nProcessing leftover classes (classes that extend root classes not found in the same package)\n"); - flush(); - foreach($this->classesbyfile as $i => $j) - { - foreach($j as $k => $m) - { - $this->processChild($render,$k,$i,true); - } - } - phpDocumentor_out("done processing leftover classes\n"); - flush(); - $this->setupClassConflicts(); - } - - /** - * Transfers actual conflicts from {@link $potentialClassconflicts} to - * {@link $classconflicts} - * @access private - * @uses $potentialclassconflicts transfers values to {@link $classconflicts} - */ - function setupClassConflicts() - { - foreach($this->potentialclassconflicts as $class => $paths) - { - if (count($paths) - 1) - { //conflict - $package = array(); - foreach($paths as $path) - { - // create a list of conflicting classes in each package - if (isset($this->classpathpackages[$class][$path])) - $package[$this->classpathpackages[$class][$path][0]][] = $path; - } - foreach($package as $pathpackages) - { - // if at least 2 functions exist in the same package, delete all but the first one and add warnings - if (count($pathpackages) - 1) - { - for($i=1; $i < count($pathpackages); $i++) - { - if (isset($this->classesbyfile[$pathpackages[$i]])) - { - addWarning(PDERROR_ELEMENT_IGNORED,'class',$class,$pathpackages[$i]); - $this->killClass($class,$pathpackages[$i]); - $oth = array_flip($paths); - unset($paths[$oth[$pathpackages[$i]]]); - } - } - } - } - $this->classconflicts[$class] = $paths; - } - } - } - - /** - * If a package contains two classes with the same name, this function finds - * that conflict - * - * Returns the {@link $classconflicts} entry for class $class, minus its own path - * @return mixed returns false if no conflicts, or an array of paths containing conflicts - */ - function getConflicts($class) - { - if (!isset($this->classconflicts[$class])) return false; - $a = array(); - foreach($this->classconflicts[$class] as $conflict) - { - $a[$this->classesbyfile[$conflict][$class]->docblock->package] = $this->classesbyfile[$conflict][$class]; - } - return $a; - } - - /** - * sets up {@link $killclass} for use by Converter::checkKillClass() - * @access private - */ - function killClass($class,$path) - { - $this->killclass[$class][$path] = true; - } - - /** - * This function recursively climbs up the class tree, setting inherited - * information like package and adds the elements to phpDocumentor_IntermediateParser. - * - * Using structures defined in {@link Classes}, the function first sets package information, - * and then seeks out child classes. - * It uses 3 tests to determine whether a class is a child class. - *
    - *
  1. child class is in the same file as the parent class and extends parent class
  2. - *
  3. child class is in a different file and specifies the parent's @package in its docblock
  4. - *
  5. child class is in a different file and is in a different @package, with one possible parent class
  6. - *
- * @param phpDocumentor_IntermediateParser &$render - * @param string $class class to process - * @param string $file name of file $class is located in - * @param boolean $furb flag used privately to control informational output while parsing - * (used when processing leftover classes in {@link Inherit()} - * @global string default package, usually "default" - */ - function processChild(&$render,$class,$file,$furb = false) - { - global $phpDocumentor_DefaultPackageName; - if (isset($this->classesbyfile[$file][$class]->processed)) return; - $this->potentialclassconflicts[$class][] = $file; - if ($furb) phpDocumentor_out("Processing $class in file $file\n"); - flush(); - $this->classesbyfile[$file][$class]->processed = true; - $db = $this->classesbyfile[$file][$class]; - $render->addUses($db,$file); - if (!$render->parsePrivate) - { - // if this class has an @access private, and parse private is disabled, remove it - if ($db->docblock->hasaccess) - { - $aaa = $db->docblock->getKeyword('access'); - if (is_object($aaa) && $aaa->getString() == 'private') - { - if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class])) - { - unset($this->varsbyfile[$file][$class]); - } - if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class])) - { - unset($this->methodsbyfile[$file][$class]); - } - if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class])) - { - unset($this->constsbyfile[$file][$class]); - } - $this->classesbyfile[$file][$class]->ignore = true; - // if this is a root class, remove it from the roots array - if (isset($this->roots[$class])) - foreach($this->roots[$class] as $i => $files) - { - // find the file kkey and unset - if ($files == $file) unset($this->roots[$class][$i]); - } - // if this is a child, remove it from the list of child classes of its parent - if ($db->getExtends()) unset($this->classchildrenbyfile[$db->getExtends()][$file]); - return; - } - } - } - if ($render->packageoutput) - { - if (!in_array($db->docblock->package,$render->packageoutput)) - { - if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class])) - { - unset($this->varsbyfile[$file][$class]); - } - if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class])) - { - unset($this->methodsbyfile[$file][$class]); - } - if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class])) - { - unset($this->constsbyfile[$file][$class]); - } - $this->classesbyfile[$file][$class]->ignore = true; - if (isset($this->roots[$class])) - foreach($this->roots[$class] as $i => $files) - { - if ($files == $file) unset($this->roots[$class][$i]); - } - if ($db->getExtends()) unset($this->classchildrenbyfile[$db->getExtends()][$file]); - return; - } - } - $this->setClassParent($class,$file); - $db = $this->classesbyfile[$file][$class]; - if ($furb && !is_array($db->parent)) - { -// debug("furb adding $class $file to roots"); - $this->roots[$class][] = $file; - } - // fix for 591396 - if (!$db->docblock->getExplicitPackage()) - { - $a = $render->proceduralpages->pagepackages[$file]; - if ($a[0] != $phpDocumentor_DefaultPackageName) - { - // inherit page package - $this->classesbyfile[$file][$class]->docblock->package = $a[0]; - } - } - if ($this->classesbyfile[$file][$class]->docblock->package == $render->proceduralpages->pagepackages[$file][0]) - { - if ($this->classesbyfile[$file][$class]->docblock->subpackage == '') - $this->classesbyfile[$file][$class]->docblock->subpackage = $render->proceduralpages->pagepackages[$file][1]; - } - $db = $this->classesbyfile[$file][$class]; - $render->addPackageParent($db); - $render->addPageIfNecessary($file, $db); - if ($access = $db->docblock->getKeyword('access')) - { - if (!is_string($access) && is_object($access)) $access = $access->getString(); - if (!is_string($access)) $access = 'public'; - if (($access == 'private') && (!$render->parsePrivate)) - { - if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class])) - foreach($this->varsbyfile[$file][$class] as $i => $vr) - { - $vr->docblock->addKeyword('access','private'); - $this->varsbyfile[$file][$class][$i] = $vr; - } - if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class])) - foreach($this->methodsbyfile[$file][$class] as $i => $vr) - { - $vr->docblock->addKeyword('access','private'); - $this->methodsbyfile[$file][$class][$i] = $vr; - } - if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class])) - foreach($this->constsbyfile[$file][$class] as $i => $vr) - { - $vr->docblock->addKeyword('access','private'); - $this->constsbyfile[$file][$class][$i] = $vr; - } - } - } - $this->classpathpackages[$class][$file] = array($db->docblock->package,$db->docblock->subpackage); - if ($db->docblock->getExplicitPackage()) - $render->proceduralpages->addClassPackageToFile($file,$db->docblock->package,$db->docblock->subpackage); - $render->addElementToPage($db,$file); - if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class])) - foreach($this->varsbyfile[$file][$class] as $i => $vr) - { - $vr->docblock->package = $db->docblock->package; - $vr->docblock->subpackage = $db->docblock->subpackage; - $render->addElementToPage($vr,$file); - $render->addUses($vr,$file); - $this->varsbyfile[$file][$class][$i] = $vr; - $this->vars[$db->docblock->package][$class][$vr->getName()] = $vr; - } - if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class])) - foreach($this->methodsbyfile[$file][$class] as $i => $vr) - { - $vr->docblock->package = $db->docblock->package; - $vr->docblock->subpackage = $db->docblock->subpackage; - $render->addElementToPage($vr,$file); - $render->addUses($vr,$file); - $this->methodsbyfile[$file][$class][$i] = $vr; - $this->methods[$db->docblock->package][$class][$vr->getName()] = $vr; - } - if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class])) - foreach($this->constsbyfile[$file][$class] as $i => $vr) - { - $vr->docblock->package = $db->docblock->package; - $vr->docblock->subpackage = $db->docblock->subpackage; - $render->addElementToPage($vr,$file); - $render->addUses($vr,$file); - $this->constsbyfile[$file][$class][$i] = $vr; - $this->methods[$db->docblock->package][$class][$vr->getName()] = $vr; - } - $this->classpackages[$class][] = array($db->docblock->package,$db->docblock->subpackage); - if (is_array($db->parent)) - $this->classparents[$db->docblock->package][$class] = $db->parent[1]; - else - $this->classparents[$db->docblock->package][$class] = $db->getExtends(); - if (is_array($db->parent)) - { - $z = $this->getClass($db->parent[1],$db->parent[0]); - $this->classchildren[$z->docblock->package][$db->parent[1]][] = $db; - } - if (isset($this->classchildrenbyfile[$class])) - { - foreach($this->classchildrenbyfile[$class] as $childfile => $other) - { - // test 1, inherits in same file (must be same package) - if ($childfile == $file) - { - foreach($other as $child => $packages) - { -// debug("parent $class same file $child"); - $this->processChild($render,$child,$childfile); - $x = $this->getClass($child,$childfile); - if ($x->docblock->package != $GLOBALS['phpDocumentor_DefaultPackageName']) - { - // child package need root for class trees - if ($x->docblock->package != $db->docblock->package) - { -// debug("adding $child in $childfile 1"); - $this->roots[$child][] = $childfile; - } - } - } - } else - { - // test 2, different file, same package - foreach($other as $child => $packages) - { - for($j=0; $jclassesbyfile[$file][$class]->docblock->package == $packages[$j]) - { - $this->processChild($render,$child,$childfile); -// debug("$childfile diff file $child, parent $class, same package ".$packages[$j]); - } else - { - // test 3, different file, different package, only 1 parent is possible - if (isset($this->classesbynamefile[$child])) - { - // 1 possible parent - if (count($this->classesbynamefile[$class]) == 1) - { -// debug("$childfile diff file $child, diff package, 1 possible parent root $class"); - $this->processChild($render,$child,$childfile); - $x = $this->getClass($child,$childfile); - if ($x->docblock->package != $GLOBALS['phpDocumentor_DefaultPackageName']) - { - // child package need root for class trees - if ($x->docblock->package != $db->docblock->package) - { -// debug("adding roots $child in $childfile 2"); - $this->roots[$child][] = $childfile; - } - } - } - } - } - } - } - } - } - } - } - - /** - * Get the parserClass representation of a class from its name and file - * @return parserClass - * @param string $class classname - * @param string $file file classname is located in - */ - function &getClass($class, $file) - { -// debug("getClass called with class $class file $file"); - return $this->classesbyfile[$file][$class]; - } - - /** - * Used by {@link parserData::getClasses()} to retrieve classes defined in file $path - * - * retrieves the array entry from {@link $classesbyfile} for $path - * @param string $path full path to filename - * @return mixed returns false if no classes defined in the file, otherwise returns an array of {@link parserClass}es - */ - function getClassesInPath($path) - { - if (!isset($this->classesbyfile[$path])) return false; - return $this->classesbyfile[$path]; - } - - /** - * called by {@link parserClass::hasMethods()}. Should not be directly called - * @access private - * @param string $file - * @param string $class - */ - function hasMethods($file,$class) - { - return isset($this->methodsbyfile[$file][$class]); - } - - /** - * called by {@link parserClass::hasConsts()}. Should not be directly called - * @access private - * @param string $file - * @param string $class - */ - function hasConsts($file,$class) - { - return isset($this->constsbyfile[$file][$class]); - } - - /** - * called by {@link parserClass::hasVars()}. Should not be directly called - * @access private - * @param string $file - * @param string $class - */ - function hasVars($file, $class) - { - return isset($this->varsbyfile[$file][$class]); - } - - /** - * called by {@link parserClass::hasMethod()}. Should not be directly called - * @param string $file - * @param string $class - * @param string $name method name - * @access private - */ - function hasMethod($class, $file, $name) - { - if (!$this->hasMethods($file, $class)) return false; - for($i=0; $imethodsbyfile[$file][$class]); $i++) - { - if ($this->methodsbyfile[$file][$class][$i]->getName() == $name) return true; - } - return false; - } - - /** - * called by {@link parserClass::hasVar()}. Should not be directly called - * @param string $file - * @param string $class - * @param string $name var name - * @access private - */ - function hasVar($class, $file, $name) - { - if (!$this->hasVars($file, $class)) return false; - for($i=0; $ivarsbyfile[$file][$class]); $i++) - { - if ($this->varsbyfile[$file][$class][$i]->getName() == $name) return true; - } - return false; - } - - /** - * called by {@link parserClass::hasConst()}. Should not be directly called - * @param string $file - * @param string $class - * @param string $name var name - * @access private - */ - function hasConst($class, $file, $name) - { - if (!$this->hasConsts($file, $class)) return false; - for($i=0; $iconstsbyfile[$file][$class]); $i++) - { - if ($this->constsbyfile[$file][$class][$i]->getName() == $name) return true; - } - return false; - } - - /** - * called by {@link parserClass::getMethods()}. Should not be directly called - * @access private - * @param string $class - * @param string $file - */ - function &getMethods($class, $file) - { - if (!isset($this->methodsbyfile[$file][$class])) return false; - return $this->methodsbyfile[$file][$class]; - } - - /** - * called by {@link parserClass::getVars()}. Should not be directly called - * @access private - * @param string $class - * @param string $file - */ - function &getVars($class, $file) - { - if (!isset($this->varsbyfile[$file][$class])) return false; - return $this->varsbyfile[$file][$class]; - } - - /** - * called by {@link parserClass::getConsts()}. Should not be directly called - * @access private - * @param string $class - * @param string $file - */ - function &getConsts($class, $file) - { - if (!isset($this->constsbyfile[$file][$class])) return false; - return $this->constsbyfile[$file][$class]; - } - - /** - * called by {@link parserClass::getMethod()}. Should not be directly called - * @param string $class - * @param string $file - * @param string $name method name - * @access private - */ - function getMethod($class, $file, $name) - { - if (!$this->hasMethod($class, $file, $name)) return false; - for($i=0; $imethodsbyfile[$file][$class]); $i++) - { - if ($this->methodsbyfile[$file][$class][$i]->getName() == $name) return $this->methodsbyfile[$file][$class][$i]; - } - } - - /** - * called by {@link parserClass::getVar()}. Should not be directly called - * @param string $class - * @param string $file - * @param string $name var name - * @access private - */ - function getVar($class, $file, $name) - { - if (!$this->hasVar($class, $file, $name)) return false; - for($i=0; $ivarsbyfile[$file][$class]); $i++) - { - if ($this->varsbyfile[$file][$class][$i]->getName() == $name) return $this->varsbyfile[$file][$class][$i]; - } - } - - /** - * called by {@link parserClass::getConst()}. Should not be directly called - * @param string $class - * @param string $file - * @param string $name var name - * @access private - */ - function getConst($class, $file, $name) - { - if (!$this->hasConst($class, $file, $name)) return false; - for($i=0; $iconstsbyfile[$file][$class]); $i++) - { - if ($this->constsbyfile[$file][$class][$i]->getName() == $name) return $this->constsbyfile[$file][$class][$i]; - } - } - - /** - * Search for a class in a package - * @return mixed returns false if no class in $package, otherwise returns a {@link parserClass} - * @param string $class classname - * @param string $package package classname is in - */ - function &getClassByPackage($class,$package) - { - if (!isset($this->classesbynamefile[$class])) - { -// addWarning(PDERROR_CLASS_NOT_IN_PACKAGE,$class,$package); // removed, too many warnings, not very useful - return false; - } - for($i=0; $i < count($this->classesbynamefile[$class]); $i++) - { - $cls = $this->classesbyfile[$this->classesbynamefile[$class][$i]][$class]; - $pkg = $cls->getPackage(); - if ($pkg == $package) - return $cls; - } -// addWarning(PDERROR_CLASS_NOT_IN_PACKAGE,$class,$package); - return false; - } - - /** - * Find the parent class of a class in file $file - * uses 3 tests to find the parent classname: - *
    - *
  1. only one class with the parent classname
  2. - *
  3. more than one class, but only one in the same file as the child
  4. - *
  5. only one parent class in the same package as the child
  6. - *
- * @return mixed false if no parent class, a string if no parent class found by that name, - * and an array(file parentclass is in,parentclassname) - */ - function getParentClass($class,$file) - { - if (!isset($this->classesbyfile[$file][$class])) - { - return false; - } - $element = $this->classesbyfile[$file][$class]; - if (!($ex = $element->getExtends())) return false; - // first check to see if there is one and only one class with the parent class's name - if (isset($this->classesbynamefile[$ex])) - { - if (count($this->classesbynamefile[$ex]) == 1) - { - if ($this->classesbyfile[$this->classesbynamefile[$ex][0]][$ex]->ignore) return $ex; - return array($this->classesbynamefile[$ex][0],$ex); - } else - { - // next check to see if there is a parent class in the same file - if (isset($this->classesbyfile[$file][$ex])) - { - if ($this->classesbyfile[$file][$ex]->ignore) return $ex; - return array($file,$ex); - } - // next check to see if there is only one package used in the file, try to resolve it that way - if (isset($this->classpackagebyfile[$file])) - { - if (count($this->classpackagebyfile[$file]) == 1) - { - for($i=0;$iclassesbynamefile[$ex]);$i++) - { - if ($this->classesbyfile[$this->classesbynamefile[$ex][$i]][$ex]->getPackage() == $this->classpackagebyfile[$file][0]) - { - if ($this->classesbyfile[$this->classesbynamefile[$ex][$i]][$ex]->ignore) return $ex; - return array($this->classesbynamefile[$ex][$i],$ex); - } - } - } - } - // name conflict - addWarning(PDERROR_INHERITANCE_CONFLICT, $class, $file, $ex); - return $ex; - } - } else - { - addWarning(PDERROR_PARENT_NOT_FOUND, $class, $ex); - return $ex; - } - } - - /** - * Get a list of all root classes indexed by package. Used to generate - * class trees by {@link Converter} - * @return array array(package => array(rootclassname, rootclassname,...),...) - */ - function getRoots() - { - $roots = array(); - foreach($this->roots as $class => $files) - { - if (count($files)) - { - foreach($files as $i => $boofou) - { - $x = $this->getClass($class,$files[$i]); - $roots[$x->getPackage()][] = $class; - } - } - } - foreach($roots as $package => $root) - { - usort($roots[$package],"strnatcasecmp"); - } - return $roots; - } - - /** - * Get all classes confirmed in parsing to be descended class $parclass in file $file - * @return mixed either false if no children, or array of format - * array(childname => childfile,childname2 => childfile2,...) - * @param string $parclass name of parent class - * @param string $file file parent class is found in - * @see parserClass::getChildClassList() - * @uses $definitechild - */ - function getDefiniteChildren($parclass,$file) - { - if (isset($this->definitechild[$parclass][$file])) return $this->definitechild[$parclass][$file]; - return false; - } -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converter.inc deleted file mode 100644 index 5b499d65..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converter.inc +++ /dev/null @@ -1,5189 +0,0 @@ - - * @since 1.0rc1 - * @version $Id: Converter.inc,v 1.5 2005/11/28 07:27:59 cellog Exp $ - */ -/** - * Smarty template files - */ -include_once("phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php"); -/** - * Base class for all output converters. - * - * The Converter marks the final stage in phpDocumentor. phpDocumentor works - * in this order: - * - *
Parsing => Intermediate Parsing organization => Conversion to output
- * - * A Converter takes output from the {@link phpDocumentor_IntermediateParser} and - * converts it to output. With version 1.2, phpDocumentor includes a variety - * of output converters: - *
    - *
  • {@link HTMLframesConverter}
  • - *
  • {@link HTMLSmartyConverter}
  • - *
  • {@link PDFdefaultConverter}
  • - *
  • {@link CHMdefaultConverter}
  • - *
  • {@link CSVdia2codeConverter}
  • - *
  • {@link XMLDocBookConverter}
  • - *
- * {@internal - * The converter takes output directly from {@link phpDocumentor_IntermediateParser} - * and using {@link walk()} or {@link walk_everything} (depending on the value of - * {@link $sort_absolutely_everything}) it "walks" over an array of phpDocumentor elements.}} - * - * @package Converters - * @abstract - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: Converter.inc,v 1.5 2005/11/28 07:27:59 cellog Exp $ - */ -class Converter -{ - /** - * output format of this converter - * - * in Child converters, this will match the first part of the -o command-line - * as in -o HTML:frames:default "HTML" - * @tutorial phpDocumentor.howto.pkg#using.command-line.output - * @var string - */ - var $outputformat = 'Generic'; - /** - * package name currently being converted - * @var string - */ - var $package = 'default'; - /** - * subpackage name currently being converted - * @var string - */ - var $subpackage = ''; - /** - * set to a classname if currently parsing a class, false if not - * @var string|false - */ - var $class = false; - /**#@+ - * @access private - */ - /** - * the workhorse of linking. - * - * This array is an array of link objects of format: - * [package][subpackage][eltype][elname] = descendant of {@link abstractLink} - * eltype can be page|function|define|class|method|var - * if eltype is method or var, the array format is: - * [package][subpackage][eltype][class][elname] - * @var array - * @see functionLink, pageLink, classLink, defineLink, methodLink, varLink, globalLink - */ - var $links = array(); - - /** - * the workhorse of linking, with allowance for support of multiple - * elements in different files. - * - * This array is an array of link objects of format: - * [package][subpackage][eltype][file][elname] = descendant of {@link abstractLink} - * eltype can be function|define|class|method|var - * if eltype is method or var, the array format is: - * [package][subpackage][eltype][file][class][elname] - * @var array - * @see functionLink, pageLink, classLink, defineLink, methodLink, varLink, globalLink - */ - var $linkswithfile = array(); - /**#@-*/ - /** - * set to value of -po commandline - * @tutorial phpDocumentor.howto.pkg#using.command-line.packageoutput - * @var mixed - */ - var $package_output; - - /** - * name of current page being converted - * @var string - */ - var $page; - - /** - * path of current page being converted - * @var string - */ - var $path; - - /** - * template for the procedural page currently being processed - * @var Smarty - */ - var $page_data; - - /** - * template for the class currently being processed - * @var Smarty - */ - var $class_data; - - /** - * current procedural page being processed - * @var parserPage - */ - var $curpage; - /** - * alphabetical index of all elements sorted by package, subpackage, page, - * and class. - * @var array Format: array(package => array(subpackage => array('page'|'class' => array(path|classname => array(element, element,...))))) - * @uses $sort_absolutely_everything if true, then $package_elements is used, - * otherwise, the {@link ParserData::$classelements} and - * {@link ParserData::$pageelements} variables are used - */ - var $package_elements = array(); - /** - * alphabetical index of all elements - * - * @var array Format: array(first letter of element name => array({@link parserElement} or {@link parserPage},...)) - * @see formatIndex(), HTMLframesConverter::formatIndex() - */ - var $elements = array(); - /** - * alphabetized index of procedural pages by package - * - * @see $leftindex - * @var array Format: array(package => array(subpackage => array({@link pageLink} 1,{@link pageLink} 2,...) - */ - var $page_elements = array(); - /** - * alphabetized index of defines by package - * - * @see $leftindex - * @var array Format: array(package => array(subpackage => array({@link defineLink} 1,{@link defineLink} 2,...) - */ - var $define_elements = array(); - /** - * alphabetized index of classes by package - * - * @see $leftindex - * @var array Format: array(package => array(subpackage => array({@link classLink} 1,{@link classLink} 2,...) - */ - var $class_elements = array(); - /** - * alphabetized index of global variables by package - * - * @see $leftindex - * @var array Format: array(package => array(subpackage => array({@link globalLink} 1,{@link globalLink} 2,...) - */ - var $global_elements = array(); - /** - * alphabetized index of functions by package - * - * @see $leftindex - * @var array Format: array(package => array(subpackage => array({@link functionLink} 1,{@link functionLink} 2,...) - */ - var $function_elements = array(); - /** - * alphabetical index of all elements, indexed by package/subpackage - * - * @var array Format: array(first letter of element name => array({@link parserElement} or {@link parserPage},...)) - * @see formatPkgIndex(), HTMLframesConverter::formatPkgIndex() - */ - var $pkg_elements = array(); - - /** - * alphabetical index of all elements on a page by package/subpackage - * - * The page itself has a link under ###main - * @var array Format: array(package => array(subpackage => array(path => array({@link abstractLink} descendant 1, ...))) - * @see formatLeftIndex() - */ - var $page_contents = array(); - - /** - * This determines whether the {@link $page_contents} array should be sorted by element type as well as alphabetically by name - * @see sortPageContentsByElementType() - * @var boolean - */ - var $sort_page_contents_by_type = false; - /** - * This is used if the content must be passed in the order it should be read, i.e. by package, procedural then classes - * - * This fixes bug 637921, and is used by {@link PDFdefaultConverter} - */ - var $sort_absolutely_everything = false; - /** - * alphabetical index of all methods and vars in a class by package/subpackage - * - * The class itself has a link under ###main - * @var array - * Format:
-     * array(package =>
-     *       array(subpackage =>
-     *             array(path =>
-     *                   array(class =>
-     *                         array({@link abstractLink} descendant 1, ...
-     *                        )
-     *                  )
-     *            )
-     *      )
- * @see formatLeftIndex() - */ - var $class_contents = array(); - /** - * controls processing of elements marked private with @access private - * - * defaults to false. Set with command-line --parseprivate or -pp - * @var bool - */ - var $parseprivate; - /** - * controls display of progress information while parsing. - * - * defaults to false. Set to true for cron jobs or other situations where no visual output is necessary - * @var bool - */ - var $quietmode; - - /** - * directory that output is sent to. -t command-line sets this. - * @tutorial phpDocumentor.howto.pkg#using.command-line.target - */ - var $targetDir = ''; - - /** - * Directory that the template is in, relative to phpDocumentor root directory - * @var string - */ - var $templateDir = ''; - - /** - * Directory that the smarty templates are in - * @var string - */ - var $smarty_dir = ''; - - /** - * Name of the template, from last part of -o - * @tutorial phpDocumentor.howto.pkg#using.command-line.output - * @var string - */ - var $templateName = ''; - - /** - * full path of the current file being converted - */ - var $curfile; - - /** - * All class information, organized by path, and by package - * @var Classes - */ - var $classes; - - /** - * Hierarchy of packages - * - * Every package that contains classes may have parent or child classes - * in other packages. In other words, this code is legal: - * - * - * /** - * * @package one - * * / - * class one {} - * - * /** - * * @package two - * * / - * class two extends one {} - * - * - * In this case, package one is a parent of package two - * @var array - * @see phpDocumentor_IntermediateParser::$package_parents - */ - var $package_parents; - - /** - * Packages associated with categories - * - * Used by the XML:DocBook/peardoc2 converter, and available to others, to - * group many packages into categories - * @see phpDocumentor_IntermediateParser::$packagecategories - * @var array - */ - var $packagecategories; - - /** - * All packages encountered in parsing - * @var array - * @see phpDocumentor_IntermediateParser::$all_packages - */ - var $all_packages; - - /** - * A list of files that have had source code generated - * @var array - */ - var $sourcePaths = array(); - - /** - * Controls which of the one-element-only indexes are generated. - * - * Generation of these indexes for large packages is time-consuming. This is an optimization feature. An - * example of how to use this is in {@link HTMLframesConverter::$leftindex}, and in {@link HTMLframesConverter::formatLeftIndex()}. - * These indexes are intended for use as navigational aids through documentation, but can be used for anything by converters. - * @see $class_elements, $page_elements, $function_elements, $define_elements, $global_elements - * @see formatLeftIndex() - * @var array - */ - var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => true, 'globals' => true); - - /** @access private */ - var $killclass = false; - /** - * @var string - * @see phpDocumentor_IntermediateParser::$title - */ - var $title = 'Generated Documentation'; - - /** - * Options for each template, parsed from the options.ini file in the template base directory - * @tutorial phpDocumentor/tutorials.pkg#conversion.ppage - * @var array - */ - var $template_options; - - /** - * Tutorials and Extended Documentation parsed from a tutorials/package[/subpackage] directory - * @tutorial tutorials.pkg - * @access private - */ - var $tutorials = array(); - - /** - * tree-format structure of tutorials and their child tutorials, if any - * @var array - * @access private - */ - var $tutorial_tree = false; - - /** - * list of tutorials that have already been processed. Used by @link _setupTutorialTree() - * @var array - * @access private - */ - var $processed_tutorials; - - /** - * List of all @todo tags and a link to the element with the @todo - * - * Format: array(package => array(link to element, array(todo {@link parserTag},...)),...) - * @tutorial tags.todo.pkg - * @var array - */ - var $todoList = array(); - - /** - * Initialize Converter data structures - * @param array {@link $all_packages} value - * @param array {@link $package_parents} value - * @param Classes {@link $classes} value - * @param ProceduralPages {@link $proceduralpages} value - * @param array {@link $package_output} value - * @param boolean {@link $parseprivate} value - * @param boolean {@link $quietmode} value - * @param string {@link $targetDir} value - * @param string {@link $templateDir} value - * @param string (@link $title} value - */ - function Converter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $template, $title) - { - $this->all_packages = $allp; - $this->package_parents = $packp; - $this->package = $GLOBALS['phpDocumentor_DefaultPackageName']; - $this->proceduralpages = &$procpages; - $this->package_output = $po; - if (is_array($po)) - { - $a = $po[0]; - $this->all_packages = array_flip($po); - $this->all_packages[$a] = 1; - } - $this->parseprivate = $pp; - $this->quietmode = $qm; - $this->classes = &$classes; - $this->roots = $classes->getRoots(); - $this->title = $title; - $this->setTemplateDir($template); - $this->setTargetdir($targetDir); - } - - /** - * Called by IntermediateParser after creation - * @access private - */ - function setTutorials($tutorials) - { - $this->tutorials = $tutorials; - } - - /** - * @param pkg|cls|proc the tutorial type to search for - * @param tutorial name - * @param string package name - * @param string subpackage name, if any - * @return false|parserTutorial if the tutorial exists, return it - */ - function hasTutorial($type, $name, $package, $subpackage = '') - { - if (isset($this->tutorials[$package][$subpackage][$type][$name . '.' . $type])) - return $this->tutorials[$package][$subpackage][$type][$name . '.' . $type]; - return false; - } - - /** - * Called by {@link walk()} while converting, when the last class element - * has been parsed. - * - * A Converter can use this method in any way it pleases. HTMLframesConverter - * uses it to complete the template for the class and to output its - * documentation - * @see HTMLframesConverter::endClass() - * @abstract - */ - function endClass() - { - } - - /** - * Called by {@link walk()} while converting, when the last procedural page - * element has been parsed. - * - * A Converter can use this method in any way it pleases. HTMLframesConverter - * uses it to complete the template for the procedural page and to output its - * documentation - * @see HTMLframesConverter::endClass() - * @abstract - */ - function endPage() - { - } - - /** - * Called by {@link walk()} while converting. - * - * This method is intended to be the place that {@link $pkg_elements} is - * formatted for output. - * @see HTMLframesConverter::formatPkgIndex() - * @abstract - */ - function formatPkgIndex() - { - } - - /** - * Called by {@link walk()} while converting. - * - * This method is intended to be the place that {@link $elements} is - * formatted for output. - * @see HTMLframesConverter::formatIndex() - * @abstract - */ - function formatIndex() - { - } - - /** - * Called by {@link walk()} while converting. - * - * This method is intended to be the place that any of - * {@link $class_elements, $function_elements, $page_elements}, - * {@link $define_elements}, and {@link $global_elements} is formatted for - * output, depending on the value of {@link $leftindex} - * @see HTMLframesConverter::formatLeftIndex() - * @abstract - */ - function formatLeftIndex() - { - } - - /** - * Called by {@link parserSourceInlineTag::stringConvert()} to allow - * converters to format the source code the way they'd like. - * - * default returns it unchanged (html with xhtml tags) - * @param string output from highlight_string() - use this function to - * reformat the returned data for Converter-specific output - * @return string - * @deprecated in favor of tokenizer-based highlighting. This will be - * removed for 2.0 - */ - function unmangle($sourcecode) - { - return $sourcecode; - } - - /** - * Initialize highlight caching - */ - function startHighlight() - { - $this->_highlightCache = array(false, false); - $this->_appendHighlight = ''; - } - - function getHighlightState() - { - return $this->_highlightCache; - } - - function _setHighlightCache($type, $token) - { - $test = ($this->_highlightCache[0] === $type && $this->_highlightCache[1] == $token); - if (!$test) { - $this->_appendHighlight = $this->flushHighlightCache(); - } else { - $this->_appendHighlight = ''; - } - $this->_highlightCache = array($type, $token); - return $test; - } - - /** - * Return the close text for the current token - * @return string - */ - function flushHighlightCache() - { - $hc = $this->_highlightCache; - $this->_highlightCache = array(false, false); - if ($hc[0]) { - if (!isset($this->template_options[$hc[0]]['/'.$hc[1]])) { - return ''; - } - return $this->template_options[$hc[0]]['/'.$hc[1]]; - } - return ''; - } - - /** - * Used to allow converters to format the source code the way they'd like. - * - * default returns it unchanged. Mainly used by the {@link HighlightParser} - * {@internal - * The method takes information from options.ini, the template options - * file, specifically the [highlightSourceTokens] and [highlightSource] - * sections, and uses them to enclose tokens. - * - * {@source}}} - * @param integer token value from {@link PHP_MANUAL#tokenizer tokenizer constants} - * @param string contents of token - * @param boolean whether the contents are preformatted or need modification - * @return string - */ - function highlightSource($token, $word, $preformatted = false) - { - if ($token !== false) - { - if (!$preformatted) $word = $this->postProcess($word); - if (isset($this->template_options['highlightSourceTokens'][token_name($token)])) - { - if ($this->_setHighlightCache('highlightSourceTokens', token_name($token))) { - return $word; - } - $e = $this->_appendHighlight; - return $e . $this->template_options['highlightSourceTokens'][token_name($token)] . $word; - } else - { - $this->_setHighlightCache(false, false); - $e = $this->_appendHighlight; - return $e . $word; - } - } else - { - if (isset($this->template_options['highlightSource'][$word])) - { - $newword = ($preformatted ? $word : $this->postProcess($word)); - if ($this->_setHighlightCache('highlightSource', $word)) { - return $newword; - } - $e = $this->_appendHighlight; - return $e . $this->template_options['highlightSource'][$word] . $newword; - } else - { - $this->_setHighlightCache(false, false); - $e = $this->_appendHighlight; - return $e . ($preformatted ? $word : $this->postProcess($word)); - } - } - } - - /** - * Used to allow converters to format the source code of DocBlocks the way - * they'd like. - * - * default returns it unchanged. Mainly used by the {@link HighlightParser} - * {@internal - * The method takes information from options.ini, the template options - * file, specifically the [highlightDocBlockSourceTokens] section, and uses - * it to enclose tokens. - * - * {@source}}} - * @param string name of docblock token type - * @param string contents of token - * @param boolean whether the contents are preformatted or need modification - * @return string - */ - function highlightDocBlockSource($token, $word, $preformatted = false) - { - if (empty($word)) { - $this->_setHighlightCache(false, false); - $e = $this->_appendHighlight; - return $e . $word; - } - if (isset($this->template_options['highlightDocBlockSourceTokens'][$token])) - { - if (!$preformatted) $word = $this->postProcess($word); - if ($this->_setHighlightCache('highlightDocBlockSourceTokens', $token)) { - return $word; - } - $e = $this->_appendHighlight; - return $e . $this->template_options['highlightDocBlockSourceTokens'][$token] . $word; - } else { - $this->_setHighlightCache(false, false); - $e = $this->_appendHighlight; - return $e . ($preformatted ? $word : $this->postProcess($word)); - } - } - - /** - * Used to allow converters to format the source code of DocBlocks the way - * they'd like. - * - * default returns it unchanged. Mainly used by the {@link HighlightParser} - * {@internal - * The method takes information from options.ini, the template options - * file, specifically the [highlightDocBlockSourceTokens] section, and uses - * it to enclose tokens. - * - * {@source}}} - * @param string name of docblock token type - * @param string contents of token - * @param boolean whether the contents are preformatted or need modification - * @return string - */ - function highlightTutorialSource($token, $word, $preformatted = false) - { - if (empty($word)) { - $this->_setHighlightCache(false, false); - $e = $this->_appendHighlight; - return $e . $word; - } - if (isset($this->template_options['highlightTutorialSourceTokens'][$token])) - { - if (!$preformatted) $word = $this->postProcess($word); - if ($this->_setHighlightCache('highlightTutorialSourceTokens', $token)) { - return $word; - } - $e = $this->_appendHighlight; - return $e . $this->template_options['highlightTutorialSourceTokens'][$token] . $word; - } else { - $this->_setHighlightCache(false, false); - $e = $this->_appendHighlight; - return $e . ($preformatted ? $word : $this->postProcess($word)); - } - } - - /** - * Called by {@link parserReturnTag::Convert()} to allow converters to - * change type names to desired formatting - * - * Used by {@link XMLDocBookConverter::type_adjust()} to change true and - * false to the peardoc2 values - * @param string - * @return string - */ - function type_adjust($typename) - { - return $typename; - } - - /** - * Used to convert the {@}example} inline tag in a docblock. - * - * By default, this just wraps ProgramExample - * @see XMLDocBookpeardoc2Converter::exampleProgramExample - * @param string - * @param boolean true if this is to highlight a tutorial - * @return string - */ - function exampleProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/, - $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/) - { - return $this->ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath); - } - - /** - * Used to convert the <> tag in a docblock - * @param string - * @param boolean true if this is to highlight a tutorial - * @return string - */ - function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/, - $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/) - { - if (tokenizer_ext) - { - $e = $example; - if (!is_array($example)) - { - $obj = new phpDocumentorTWordParser; - $obj->setup($example); - $e = $obj->getFileSource(); - if (!isset($e[0]) || !is_array($e[0][0]) || $e[0][0][0] != T_OPEN_TAG) - { - $example = "setup($example); - $e = $obj->getFileSource(); - unset($e[0]); - $e = array_values($e); - } - unset($obj); - } - $saveclass = $this->class; - $parser = new phpDocumentor_HighlightParser; - if (!isset($inlinesourceparse)) - { - $example = $parser->parse($e, $this, true); // force php mode - } else - { - if (isset($filesourcepath)) - { - $example = $parser->parse($e, $this, $inlinesourceparse, $class, $linenum, $filesourcepath); - } elseif (isset($linenum)) - { - $example = $parser->parse($e, $this, $inlinesourceparse, $class, $linenum); - } elseif (isset($class)) - { - $example = $parser->parse($e, $this, $inlinesourceparse, $class); - } else - { - $example = $parser->parse($e, $this, $inlinesourceparse); - } - } - $this->class = $saveclass; - } else - { - $example = $this->postProcess($example); - } - - if ($tutorial) - { - return $example; - } - - if (!isset($this->template_options['desctranslate'])) return $example; - if (!isset($this->template_options['desctranslate']['code'])) return $example; - $example = $this->template_options['desctranslate']['code'] . $example; - if (!isset($this->template_options['desctranslate']['/code'])) return $example; - return $example . $this->template_options['desctranslate']['/code']; - } - - /** - * @param string - */ - function TutorialExample($example) - { - $parse = new phpDocumentor_TutorialHighlightParser; - return $parse->parse($example, $this); - } - - /** - * Used to convert the contents of <
  • > in a docblock - * @param string - * @return string - */ - function ListItem($item) - { - if (!isset($this->template_options['desctranslate'])) return $item; - if (!isset($this->template_options['desctranslate']['li'])) return $item; - $item = $this->template_options['desctranslate']['li'] . $item; - if (!isset($this->template_options['desctranslate']['/li'])) return $item; - return $item . $this->template_options['desctranslate']['/li']; - } - - /** - * Used to convert the contents of <
      > or <
        > in a docblock - * @param string - * @return string - */ - function EncloseList($list,$ordered) - { - $listname = ($ordered ? 'ol' : 'ul'); - if (!isset($this->template_options['desctranslate'])) return $list; - if (!isset($this->template_options['desctranslate'][$listname])) return $list; - $list = $this->template_options['desctranslate'][$listname] . $list; - if (!isset($this->template_options['desctranslate']['/'.$listname])) return $list; - return $list . $this->template_options['desctranslate']['/'.$listname]; - } - - /** - * Used to convert the contents of <
        > in a docblock
        -     * @param string
        -     * @return string
        -     */
        -    function PreserveWhiteSpace($string)
        -    {
        -        if (!isset($this->template_options['desctranslate'])) return $string;
        -        if (!isset($this->template_options['desctranslate']['pre'])) return $string;
        -        $string = $this->template_options['desctranslate']['pre'] . $string;
        -        if (!isset($this->template_options['desctranslate']['/pre'])) return $string;
        -        return $string . $this->template_options['desctranslate']['/pre'];
        -    }
        -
        -    /**
        -     * Used to enclose a paragraph in a docblock
        -     * @param string
        -     * @return string
        -     */
        -    function EncloseParagraph($para)
        -    {
        -        if (!isset($this->template_options['desctranslate'])) return $para;
        -        if (!isset($this->template_options['desctranslate']['p'])) return $para;
        -        $para = $this->template_options['desctranslate']['p'] . $para;
        -        if (!isset($this->template_options['desctranslate']['/p'])) return $para;
        -        return $para . $this->template_options['desctranslate']['/p'];
        -    }
        -
        -    /**
        -     * Used to convert the contents of <> in a docblock
        -     * @param string
        -     * @return string
        -     */
        -    function Bolden($para)
        -    {
        -        if (!isset($this->template_options['desctranslate'])) return $para;
        -        if (!isset($this->template_options['desctranslate']['b'])) return $para;
        -        $para = $this->template_options['desctranslate']['b'] . $para;
        -        if (!isset($this->template_options['desctranslate']['/b'])) return $para;
        -        return $para . $this->template_options['desctranslate']['/b'];
        -    }
        -
        -    /**
        -     * Used to convert the contents of <> in a docblock
        -     * @param string
        -     * @return string
        -     */
        -    function Italicize($para)
        -    {
        -        if (!isset($this->template_options['desctranslate'])) return $para;
        -        if (!isset($this->template_options['desctranslate']['i'])) return $para;
        -        $para = $this->template_options['desctranslate']['i'] . $para;
        -        if (!isset($this->template_options['desctranslate']['/i'])) return $para;
        -        return $para . $this->template_options['desctranslate']['/i'];
        -    }
        -
        -    /**
        -     * Used to convert the contents of <> in a docblock
        -     * @param string
        -     * @return string
        -     */
        -    function Varize($para)
        -    {
        -        if (!isset($this->template_options['desctranslate'])) return $para;
        -        if (!isset($this->template_options['desctranslate']['var'])) return $para;
        -        $para = $this->template_options['desctranslate']['var'] . $para;
        -        if (!isset($this->template_options['desctranslate']['/var'])) return $para;
        -        return $para . $this->template_options['desctranslate']['/var'];
        -    }
        -
        -    /**
        -     * Used to convert the contents of <> in a docblock
        -     * @param string
        -     * @return string
        -     */
        -    function Kbdize($para)
        -    {
        -        if (!isset($this->template_options['desctranslate'])) return $para;
        -        if (!isset($this->template_options['desctranslate']['kbd'])) return $para;
        -        $para = $this->template_options['desctranslate']['kbd'] . $para;
        -        if (!isset($this->template_options['desctranslate']['/kbd'])) return $para;
        -        return $para . $this->template_options['desctranslate']['/kbd'];
        -    }
        -
        -    /**
        -     * Used to convert the contents of <> in a docblock
        -     * @param string
        -     * @return string
        -     */
        -    function Sampize($para)
        -    {
        -        if (!isset($this->template_options['desctranslate'])) return $para;
        -        if (!isset($this->template_options['desctranslate']['samp'])) return $para;
        -        $para = $this->template_options['desctranslate']['samp'] . $para;
        -        if (!isset($this->template_options['desctranslate']['/samp'])) return $para;
        -        return $para . $this->template_options['desctranslate']['/samp'];
        -    }
        -
        -    /**
        -     * Used to convert <
        > in a docblock - * @param string - * @return string - */ - function Br($para) - { - if (!isset($this->template_options['desctranslate'])) return $para; - if (!isset($this->template_options['desctranslate']['br'])) return $para; - $para = $this->template_options['desctranslate']['br'] . $para; - return $para; - } - - /** - * This version does nothing - * - * Perform necessary post-processing of string data. For example, the HTML - * Converters should escape < and > to become < and > - * @return string - */ - function postProcess($text) - { - return $text; - } - - /** - * Creates a table of contents for a {@}toc} inline tag in a tutorial - * - * This function should return a formatted table of contents. By default, it - * does nothing, it is up to the converter to format the TOC - * @abstract - * @return string table of contents formatted for use in the current output format - * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...) - */ - function formatTutorialTOC($toc) - { - return ''; - } - - /** - * Write out the formatted source code for a php file - * - * This function provides the primary functionality for the - * {@tutorial tags.filesource.pkg} tag. - * @param string full path to the file - * @param string fully highlighted/linked source code of the file - * @abstract - */ - function writeSource($filepath, $source) - { - debug($source); - return; - } - - /** - * Write out the formatted source code for an example php file - * - * This function provides the primary functionality for the - * {@tutorial tags.example.pkg} tag. - * @param string example title - * @param string example filename (no path) - * @param string fully highlighted/linked source code of the file - * @abstract - */ - function writeExample($title, $path, $source) - { - return; - } - - /** Translate the path info into a unique file name for the highlighted - * source code. - * @param string $pathinfo - * @return string - */ - function getFileSourceName($path) - { - global $_phpDocumentor_options; - $pathinfo = $this->proceduralpages->getPathInfo($path, $this); - $pathinfo['source_loc'] = str_replace($_phpDocumentor_options['Program_Root'].'/','',$pathinfo['source_loc']); - $pathinfo['source_loc'] = str_replace('/','_',$pathinfo['source_loc']); - return "fsource_{$pathinfo['package']}_{$pathinfo['subpackage']}_{$pathinfo['source_loc']}"; - } - - /** Return the fixed path to the source-code file folder. - * @param string $base Path is relative to this folder - * @return string - */ - function getFileSourcePath($base) - { - if (substr($base, -1) != PATH_DELIMITER) { - $base .= PATH_DELIMITER; - } - return $base . '__filesource'; - } - - /** Return the path to the current - * @param string $pathinfo - * @return string - */ - function getCurrentPageURL() - { - return '{$srcdir}' . PATH_DELIMITER . $this->page_dir; - } - - /** - * @return string an output-format dependent link to phpxref-style highlighted - * source code - * @abstract - */ - function getSourceLink($path) - { - return ''; - } - - /** - * @return string Link to the current page being parsed. - * Should return {@link $curname} and a converter-specific extension. - * @abstract - */ - function getCurrentPageLink() - { - } - - /** - * Return a line of highlighted source code with formatted line number - * - * If the $path is a full path, then an anchor to the line number will be - * added as well - * @param integer line number - * @param string highlighted source code line - * @param false|string full path to @filesource file this line is a part of, - * if this is a single line from a complete file. - * @return string formatted source code line with line number - */ - function sourceLine($linenumber, $line, $path = false) - { - if ($path) - { - return $this->getSourceAnchor($path, $linenumber) . - $this->Br(sprintf('%-6u',$linenumber).str_replace("\n",'',$line)); - } else - { - return $this->Br(sprintf('%-6u',$linenumber).str_replace("\n",'',$line)); - } - } - - /** - * Determine whether an element's file has generated source code, used for - * linking to line numbers of source. - * - * Wrapper for {@link $sourcePaths} in this version - * @param string full path to the source code file - * @return boolean - */ - function hasSourceCode($path) - { - return isset($this->sourcePaths[$path]); - } - - /** - * Mark a file as having had source code highlighted - * @param string full path of source file - */ - function setSourcePaths($path) - { - $this->sourcePaths[$path] = true; - } - - /** - * Used to translate an XML DocBook entity like ” from a tutorial by - * reading the options.ini file for the template. - * @param string entity name - */ - function TranslateEntity($name) - { - if (!isset($this->template_options['ppage'])) - { - if (!$this->template_options['preservedocbooktags']) - return ''; - else - return '&'.$name.';'; - } - if (isset($this->template_options['ppage']['&'.$name.';'])) - { - return $this->template_options['ppage']['&'.$name.';']; - } else - { - if (!$this->template_options['preservedocbooktags']) - return ''; - else - return '&'.$name.';'; - } - } - - /** - * Used to translate an XML DocBook tag from a tutorial by reading the - * options.ini file for the template. - * @param string tag name - * @param string any attributes Format: array(name => value) - * @param string the tag contents, if any - * @param string the tag contents, if any, unpost-processed - * @return string - */ - function TranslateTag($name,$attr,$cdata,$unconvertedcdata) - { - if (!isset($this->template_options['ppage'])) - { - if (!$this->template_options['preservedocbooktags']) - return $cdata; - else - return '<'.$name.$this->AttrToString($name,$attr,true).'>'.$cdata.''."\n"; - } - // make sure this template transforms the tag into something - if (isset($this->template_options['ppage'][$name])) - { - // test for global attribute transforms like $attr$role = class, changing - // all role="*" attributes to class="*" in html, for example - foreach($attr as $att => $val) - { - if (isset($this->template_options['$attr$'.$att])) - { - $new = ''; - if (!isset($this->template_options['$attr$'.$att]['close'])) - { - $new .= '<'.$this->template_options['$attr$'.$att]['open']; - if (isset($this->template_options['$attr$'.$att]['cdata!'])) - { - if (isset($this->template_options['$attr$'.$att]['separateall'])) - $new .= $this->template_options['$attr$'.$att]['separator']; - else - $new .= ' '; - $new .= $this->template_options['$attr$'.$att]['$'.$att]; - $new .= $this->template_options['$attr$'.$att]['separator']; - if ($this->template_options['$attr$'.$att]['quotevalues']) $val = '"'.$val.'"'; - $new .= $val.'>'; - } else - { - $new .= '>'.$val; - } - $new .= 'template_options['$attr$'.$att]['open'].'>'; - } else - { - $new .= $this->template_options['$attr$'.$att]['open'] . $val . $this->template_options['$attr$'.$att]['close']; - } - unset($attr[$att]); - $cdata = $new . $cdata; - } - } - - if (!isset($this->template_options['ppage']['/'.$name])) - {// if the close tag isn't specified, we put opening and closing tags around it, with translated attributes - if (isset($this->template_options['ppage'][$name.'/'])) - $cdata = '<'.$this->template_options['ppage'][$name].$this->AttrToString($name,$attr).'/>' . $cdata; - else - $cdata = '<'.$this->template_options['ppage'][$name].$this->AttrToString($name,$attr).'>' . $cdata . - 'template_options['ppage'][$name].'>'; - } else - { // if close tag is specified, use the open and close as literal - if ($name == 'programlisting' && isset($attr['role']) && - ($attr['role'] == 'php' || $attr['role'] == 'tutorial' || $attr['role'] == 'html')) - { // highlight PHP source -// var_dump($unconvertedcdata, $cdata);exit; - if ($attr['role'] == 'php') { - $cdata = $this->ProgramExample($unconvertedcdata, true); - } elseif ($attr['role'] == 'tutorial') { - $cdata = $this->TutorialExample($unconvertedcdata); - } elseif ($attr['role'] == 'html') { - $cdata = $unconvertedcdata; - } - } else - {// normal case below - $cdata = $this->template_options['ppage'][$name].$this->AttrToString($name,$attr). $cdata .$this->template_options['ppage']['/'.$name]; - } - } - return $cdata; - } else - { - if ($this->template_options['preservedocbooktags']) - { - return '<'.$name.$this->AttrToString($name,$attr,true).'>' . $cdata . - ''."\n"; - } else - { - return $cdata; - } - } - } - - /** - * Convert the attribute of a Tutorial docbook tag's attribute list - * to a string based on the template options.ini - * @param string tag name - * @param attribute array - * @param boolean if true, returns attrname="value"... - * @return string - */ - function AttrToString($tag,$attr,$unmodified = false) - { - $ret = ''; - if ($unmodified) - { - $ret = ' '; - foreach($attr as $n => $v) - { - $ret .= $n.' = "'.$v.'"'; - } - return $ret; - } - // no_attr tells us to ignore all attributes - if (isset($this->template_options['no_attr'])) return $ret; - // tagname! tells us to ignore all attributes for this tag - if (isset($this->template_options['ppage'][$tag.'!'])) return $ret; - if (count($attr)) $ret = ' '; - // pass 1, check to see if any attributes add together - $same = array(); - foreach($attr as $n => $v) - { - if (isset($this->template_options['ppage'][$tag.'->'.$n])) - { - $same[$this->template_options['ppage'][$tag.'->'.$n]][] = $n; - } - } - foreach($attr as $n => $v) - { - if (isset($this->template_options['ppage'][$tag.'->'.$n])) - { - if (count($same[$this->template_options['ppage'][$tag.'->'.$n]]) == 1) - { // only 1 attribute translated for this one - // this is useful for equivalent value names - if (isset($this->template_options['ppage'][$tag.'->'.$n.'+'.$v])) $v = $this->template_options['ppage'][$tag.'->'.$n.'+'.$v]; - } else - { // more than 1 attribute combines to make the new attribute - $teststrtemp = array(); - foreach($same[$this->template_options['ppage'][$tag.'->'.$n]] as $oldattr) - { - $teststrtemp[] = $oldattr.'+'.$attr[$oldattr]; - } - $teststrs = array(); - $num = count($same[$this->template_options['ppage'][$tag.'->'.$n]]); - for($i=0;$i<$num;$i++) - { - $started = false; - $a = ''; - for($j=$i;!$started || $j != $i;$j = ($j + $i) % $num) - { - if (!empty($a)) $a .= '|'; - $a .= $teststrtemp[$j]; - } - $teststrs[$i] = $a; - } - $done = false; - foreach($teststrs as $test) - { - if ($done) break; - if (isset($this->template_options['ppage'][$tag.'->'.$test])) - { - $done = true; - $v = $this->template_options['ppage'][$tag.'->'.$test]; - } - } - } - $ret .= $this->template_options['ppage'][$tag.'->'.$n].' = "'.$v.'"'; - } else - { - if (!isset($this->template_options['ppage'][$tag.'!'.$n])) - { - if (isset($this->template_options['ppage']['$attr$'.$n])) - $ret .= $this->template_options['ppage']['$attr$'.$n].' = "'.$v.'"'; - else - $ret .= $n.' = "'.$v.'"'; - } - } - } - return $ret; - } - - /** - * Convert the title of a Tutorial docbook tag section - * to a string based on the template options.ini - * @param string tag name - * @param array - * @param string title text - * @param string - * @return string - */ - function ConvertTitle($tag,$attr,$title,$cdata) - { - if (!isset($this->template_options[$tag.'_title'])) return array($attr,$title.$cdata); - if (isset($this->template_options[$tag.'_title']['tag_attr'])) - { - $attr[$this->template_options[$tag.'_title']['tag_attr']] = urlencode($cdata); - $cdata = ''; - } elseif(isset($this->template_options[$tag.'_title']['cdata_start'])) - { - $cdata = $this->template_options[$tag.'_title']['open'] . $title . - $this->template_options[$tag.'_title']['close'] . $cdata; - } else $cdata = $title.$cdata; - return array($attr,$cdata); - } - - /** - * Return a converter-specific id to distinguish tutorials and their - * sections - * - * Used by {@}id} - * @return string - */ - function getTutorialId($package,$subpackage,$tutorial,$id) - { - return $package.$subpackage.$tutorial.$id; - } - - /** - * Create the {@link $elements, $pkg_elements} and {@link $links} arrays - * @access private - * @todo version 2.0 - faulty package_output logic should be removed - * - * in this version, if the parent file isn't in the package, all - * the procedural elements are simply shunted to another package! - */ - function _createPkgElements(&$pages) - { - if (empty($this->elements)) - { - $this->elements = array(); - $this->pkg_elements = array(); - $this->links = array(); - phpDocumentor_out('Building indexes...'); - flush(); - foreach($pages as $j => $flub) - { - $this->package = $pages[$j]->parent->package; - $this->subpackage = $pages[$j]->parent->subpackage; - $this->class = false; - $this->curfile = $pages[$j]->parent->getFile(); - $this->curname = $this->getPageName($pages[$j]->parent); - $this->curpath = $pages[$j]->parent->getPath(); - $use = true; - if ($this->package_output) - { - if (in_array($this->package,$this->package_output)) - { - $this->addElement($pages[$j]->parent,$pages[$j]); - } else - { - if (count($pages[$j]->classelements)) - { - list(,$pages[$j]->parent->package) = each($this->package_output); - reset($this->package_output); - $pages[$j]->parent->subpackage = ''; - $this->addElement($pages[$j]->parent,$pages[$j]); - } else - { - unset($pages[$j]); - continue; - } - } - } else - { - $this->addElement($pages[$j]->parent,$pages[$j]); - } - if ($use) - for($i=0; $ielements); $i++) - { - $pages[$j]->elements[$i]->docblock->package = $this->package; - $pages[$j]->elements[$i]->docblock->subpackage = $this->subpackage; - $this->proceduralpages->replaceElement($pages[$j]->elements[$i]); - $this->addElement($pages[$j]->elements[$i]); - } - for($i=0; $iclasselements); $i++) - { - if ($this->class) - { - if ($pages[$j]->classelements[$i]->type == 'class') - { - if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue; - $this->package = $pages[$j]->classelements[$i]->docblock->package; - if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue; - $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage; - $this->class = $pages[$j]->classelements[$i]->name; - } else - { - if ($this->killclass) continue; - // force all contained elements to have parent package/subpackage - $pages[$j]->classelements[$i]->docblock->package = $this->package; - $pages[$j]->classelements[$i]->docblock->subpackage = $this->subpackage; - } - } - if ($pages[$j]->classelements[$i]->type == 'class') - { - if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue; - $this->package = $pages[$j]->classelements[$i]->docblock->package; - if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue; - $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage; - $this->class = $pages[$j]->classelements[$i]->name; - } - if (!$this->killclass) $this->addElement($pages[$j]->classelements[$i]); - } - } - phpDocumentor_out("done\n"); - flush(); - } - $this->sortIndexes(); - $this->sortTodos(); - if ($this->sort_page_contents_by_type) $this->sortPageContentsByElementType($pages); - } - - /** - * Process the {@link $tutorials} array - * - * Using the tutorialname.ext.ini files, this method sets up tutorial - * hierarchy. There is some minimal error checking to make sure that no - * tutorial links to itself, even two levels deep as in tute->next->tute. - * - * If all tests pass, it creates the hierarchy - * @uses generateTutorialOrder() - * @uses _setupTutorialTree() - * @access private - */ - function _processTutorials() - { - $parents = $all = array(); - foreach($this->tutorials as $package => $els) - { - if ($this->package_output) - { - if (!in_array($package,$this->package_output)) - { - unset($this->tutorials[$package]); - continue; - } - } - if (!isset($this->pkg_elements[$package])) - { - unset($this->tutorials[$package]); - continue; - } - foreach($els as $subpackage => $els2) - { - foreach($els2 as $type => $tutorials) - { - foreach($tutorials as $tutorial) - { - if ($tutorial->ini) - { - if (isset($tutorial->ini['Linked Tutorials'])) - { - foreach($tutorial->ini['Linked Tutorials'] as $child) - { - $sub = (empty($tutorial->subpackage) ? '' : $tutorial->subpackage . '/'); - $kid = $tutorial->package . '/' . $sub . $child . '.' . $tutorial->tutorial_type; - // parent includes self as a linked tutorial? - $kidlink = $this->getTutorialLink($kid,false,false,array($tutorial->package)); - if (is_object($kidlink) && $this->returnSee($kidlink) == $tutorial->getLink($this)) - { // bad! - addErrorDie(PDERROR_TUTORIAL_IS_OWN_CHILD,$tutorial->name,$tutorial->name.'.ini'); - } - } - $parents[] = $tutorial; - } - } - $all[$package][$subpackage][$type][] = $tutorial; - } - } - } - } - // loop error-checking, use this to eliminate possibility of accidentally linking to a parent as a child - $testlinks = array(); - foreach($parents as $parent) - { - $testlinks[$parent->name]['links'][] = $parent->getLink($this); - $testlinks[$parent->name]['name'][$parent->getLink($this)] = $parent->name; - } - // generate the order of tutorials, and link them together - foreach($parents as $parent) - { - foreach($parent->ini['Linked Tutorials'] as $child) - { - $sub = (empty($parent->subpackage) ? '' : $parent->subpackage . '/'); - $kid = $parent->package . '/' . $sub . $child . '.' . $parent->tutorial_type; - // child tutorials must be in the same package AND subpackage - // AND have the same extension as the parent, makes things clearer for both ends - if (in_array($this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package))),$testlinks[$parent->name]['links'])) - addErrorDie(PDERROR_TUTORIAL_IS_OWN_GRANDPA,$testlinks[$parent->name][$this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package)))],$kid->name,$testlinks[$parent->name][$this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package)))],$kid->name.'.ini'); - if ($this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package))) == $kid) - { - addWarning(PDERROR_CHILD_TUTORIAL_NOT_FOUND, $child . '.' . $parent->tutorial_type, $parent->name .'.ini',$parent->package, $parent->subpackage); - } - } - } - $new = $tree = $roots = array(); - // build a list of all 'root' tutorials (tutorials without parents). - foreach($parents as $i => $parent) - { - if (! $parent->isChildOf($parents)) { - $roots[] = $parent; - } - } - $parents = $roots; - // add the parents and all child tutorials in order to the list of tutorials to process - foreach($parents as $parent) - { - $this->generateTutorialOrder($parent,$all,$new); - } - if (count($all)) - { - // add the leftover tutorials - foreach($all as $package => $els) - { - foreach($els as $subpackage => $els2) - { - foreach($els2 as $type => $tutorials) - { - foreach($tutorials as $tutorial) - { - $new[$package][$subpackage][$type][] = $tutorial; - } - } - } - } - } - // remove the old, unprocessed tutorials, and set it up with the next code - $this->tutorials = array(); - // reset integrity of the tutorial list - $prev = false; - uksort($new, 'tutorialcmp'); -// debug($this->vardump_tree($new));exit; - foreach($new as $package => $els) - { - foreach($els as $subpackage => $els2) - { - foreach($els2 as $type => $tutorials) - { - foreach($tutorials as $tutorial) - { - if ($prev) - { - $this->tutorials[$prevpackage][$prevsubpackage][$prevtype][$prevname]->setNext($tutorial,$this); - $tutorial->setPrev($prev,$this); - } - $this->tutorials[$package][$subpackage][$type][$tutorial->name] = $tutorial; - $prev = $tutorial->getLink($this,true); - $prevpackage = $package; - $prevsubpackage = $subpackage; - $prevtype = $type; - $prevname = $tutorial->name; - } - } - } - } - $this->tutorial_tree = $this->_setupTutorialTree(); - return $new; - } - - /** - * called by {@link phpDocumentor_IntermediateParser::Convert()} to traverse - * the array of pages and their elements, converting them to the output format - * - * The walk() method should be flexible enough such that it never needs - * modification. walk() sets up all of the indexes, and sorts everything in - * logical alphabetical order. It then passes each element individually to - * {@link Convert()}, which then passes to the Convert*() methods. A child - * Converter need not override any of these unless special functionality must - * be added. see {@tutorial Converters/template.vars.cls} for details. - * {@internal - * walk() first creates all of the indexes {@link $elements, $pkg_elements} - * and the left indexes specified by {@link $leftindexes}, - * and then sorts them by calling {@link sortIndexes()}. - * - * Next, it converts all README/CHANGELOG/INSTALL-style files, using - * {@link Convert_RIC}. - * - * After this, it - * passes all package-level docs to Convert(). Then, it calls the index - * sorting functions {@link formatPkgIndex(), formatIndex()} and - * {@link formatLeftIndex()}. - * - * Finally, it converts each procedural page in alphabetical order. This - * stage passes elements from the physical file to Convert() in alphabetical - * order. First, procedural page elements {@link parserDefine, parserInclude} - * {@link parserGlobal}, and {@link parserFunction} are passed to Convert(). - * - * Then, class elements are passed in this order: {@link parserClass}, then - * all of the {@link parserVar}s in the class and all of the - * {@link parserMethod}s in the class. Classes are in alphabetical order, - * and both vars and methods are in alphabetical order. - * - * Finally, {@link ConvertErrorLog()} is called and the data walk is complete.}} - * @param array Format: array(fullpath => {@link parserData} structure with full {@link parserData::$elements} - * and {@link parserData::$class_elements}. - * @param array Format: array({@link parserPackagePage} 1, {@link parserPackagePage} 2,...) - * @uses Converter::_createPkgElements() sets up {@link $elements} and - * {@link $pkg_elements} array, as well as {@link $links} - */ - function walk(&$pages,&$package_pages) - { - if (empty($pages)) - { - die("ERROR: nothing parsed"); - } - $this->_createPkgElements($pages); - if (count($this->ric)) - { - phpDocumentor_out("Converting README/INSTALL/CHANGELOG contents...\n"); - flush(); - foreach($this->ric as $name => $contents) - { - phpDocumentor_out("$name..."); - flush(); - $this->Convert_RIC($name,$contents); - } - phpDocumentor_out("\ndone\n"); - flush(); - } - foreach($package_pages as $i => $perp) - { - if ($this->package_output) - { - if (!in_array($package_pages[$i]->package,$this->package_output)) continue; - } - phpDocumentor_out('Converting package page for package '.$package_pages[$i]->package.'... '); - flush(); - $this->package = $package_pages[$i]->package; - $this->subpackage = ''; - $this->class = false; - $this->Convert($package_pages[$i]); - phpDocumentor_out("done\n"); - flush(); - } - phpDocumentor_out("Converting tutorials/extended docs\n"); - flush(); - // get tutorials into the order they will display, and set next/prev links - $new = $this->_processTutorials(); - foreach($this->tutorials as $package => $els) - { - foreach($els as $subpackage => $els2) - { - foreach($els2 as $type => $tutorials) - { - foreach($tutorials as $tutorial) - { - switch ($type) - { - case 'pkg' : - $a = ''; - if ($tutorial->ini) - $a .= 'Top-level '; - if (!empty($tutorial->subpackage)) - $a .= 'Sub-'; - $ptext = "Converting ${a}Package-level tutorial ".$tutorial->name.'...'; - break; - case 'cls' : - $a = ''; - if ($tutorial->ini) - $a .= 'Top-level '; - $ptext = "Converting ${a}Class-level tutorial " . $tutorial->name ." and associating..."; - $link = Converter::getClassLink(str_replace('.cls','',$tutorial->name), $tutorial->package); - if (is_object($link)) - { - if ($this->sort_absolutely_everything) - { - $addend = 'unsuccessful '; - if (isset($this->package_elements[$tutorial->package][$tutorial->subpackage]['class'][$link->name])) - { - $this->package_elements[$tutorial->package][$tutorial->subpackage]['class'][$link->name][0]->addTutorial($tutorial,$this); - $addend = 'success '; - } - } else - { - $addend = 'unsuccessful '; - if (!isset($this->classes->killclass[str_replace('.cls','',$tutorial->name)]) && !isset($this->classes->killclass[str_replace('.cls','',$tutorial->name)][$tutorial->path])) - { - foreach($pages as $j => $inf) - { - foreach($inf->classelements as $i => $class) - { - if ($class->type == 'class' && $class->name == str_replace('.cls','',$tutorial->name) && $class->path == $link->path) - { - $pages[$j]->classelements[$i]->addTutorial($tutorial,$this); - $addend = 'success '; - } - } - } - } - } - $ptext .= $addend; - } else $ptext .= "unsuccessful "; - break; - case 'proc' : - $a = ''; - if ($tutorial->ini) - $a .= 'Top-level '; - $ptext = "Converting ${a}Procedural-level tutorial ".$tutorial->name." and associating..."; - $link = Converter::getPageLink(str_replace('.proc','',$tutorial->name), $tutorial->package); - if (is_object($link)) - { - $addend = 'unsuccessful '; - if ($this->sort_absolutely_everything) - { - if (isset($this->package_elements[$tutorial->package][$tutorial->subpackage]['page'][$link->path])) - { - $this->package_elements[$tutorial->package][$tutorial->subpackage]['page'][$link->path][0]->addTutorial($tutorial,$this); - $addend = "success "; - } - } else - { - foreach($pages as $j => $info) - { - if ($j == $link->path) - { - $pages[$j]->addTutorial($tutorial,$this); - $addend = "success "; - } - } - } - $ptext .= $addend; - } else $ptext .= "unsuccessful "; - break; - } - phpDocumentor_out($ptext); - flush(); - $this->package = $tutorial->package; - $this->subpackage = $tutorial->subpackage; - $this->Convert($tutorial); - phpDocumentor_out("done\n"); - flush(); - } - } - } - } - phpDocumentor_out("Formatting Package Indexes..."); - flush(); - $this->formatPkgIndex(); - phpDocumentor_out("done\n"); - flush(); - phpDocumentor_out("Formatting Index..."); - flush(); - $this->formatIndex(); - phpDocumentor_out("done\n\n"); - flush(); - phpDocumentor_out("Formatting Left Quick Index..."); - flush(); - $this->formatLeftIndex(); - phpDocumentor_out("done\n\n"); - flush(); - if ($this->sort_absolutely_everything) return $this->walk_everything(); - foreach($pages as $j => $flub) - { - phpDocumentor_out('Converting '.$pages[$j]->parent->getPath()); - flush(); - $this->package = $pages[$j]->parent->package; - $this->subpackage = $pages[$j]->parent->subpackage; - $this->class = false; - $this->curfile = $pages[$j]->parent->getFile(); - $this->curname = $this->getPageName($pages[$j]->parent); - $this->curpath = $pages[$j]->parent->getPath(); - $use = true; - if ($this->package_output) - { - if (in_array($this->package,$this->package_output)) - { - $this->Convert($pages[$j]); - } else - { - $use = false; - } - } else - { - $this->Convert($pages[$j]); - } - phpDocumentor_out(" Procedural Page Elements..."); - flush(); - if ($use) - for($i=0; $ielements); $i++) - { - $a = $pages[$j]->elements[$i]->docblock->getKeyword('access'); - if (is_object($a)) $a = $a->getString(); - if (!$this->parseprivate && ($a == 'private')) - continue; -// phpDocumentor_out(" ".$pages[$j]->elements[$i]->name."\n"); - $pages[$j]->elements[$i]->docblock->package = $this->package; - $pages[$j]->elements[$i]->docblock->subpackage = $this->subpackage; - $this->Convert($pages[$j]->elements[$i]); - } - phpDocumentor_out(" Classes..."); - $this->class = false; - flush(); - for($i=0; $iclasselements); $i++) - { - if ($this->class) - { - if ($pages[$j]->classelements[$i]->type == 'class') - { - if (!$this->killclass) $this->endClass(); - $this->killclass = false; - if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue; - $this->package = $pages[$j]->classelements[$i]->docblock->package; - if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue; - $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage; - $this->class = $pages[$j]->classelements[$i]->name; - } else - { - $a = $pages[$j]->classelements[$i]->docblock->getKeyword('access'); - if (is_object($a)) $a = $a->getString(); - if (!$this->parseprivate && ($a == 'private')) - continue; - if ($this->killclass) continue; - // force all contained elements to have parent package/subpackage - $pages[$j]->classelements[$i]->docblock->package = $this->package; - $pages[$j]->classelements[$i]->docblock->subpackage = $this->subpackage; - } - } - if ($pages[$j]->classelements[$i]->type == 'class') - { - $this->killclass = false; - if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue; - $this->package = $pages[$j]->classelements[$i]->docblock->package; - if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue; - $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage; - $this->class = $pages[$j]->classelements[$i]->name; - } - if ($this->killclass) continue; -// phpDocumentor_out(" ".$pages[$j]->classelements[$i]->name."\n"); - $this->Convert($pages[$j]->classelements[$i]); - } - if (count($pages[$j]->classelements) && !$this->killclass) $this->endClass(); - phpDocumentor_out(" done\n"); - flush(); - $this->endPage(); - } - phpDocumentor_out("\nConverting @todo List..."); - flush(); - if (count($this->todoList)) - { - $this->ConvertTodoList(); - } - phpDocumentor_out("done\n"); - flush(); - phpDocumentor_out("\nConverting Error Log..."); - flush(); - $this->ConvertErrorLog(); - phpDocumentor_out("done\n"); - flush(); - } - - - /** - * Get a tree structure representing the hierarchy of tutorials - * - * Returns an array in format: - *
        -     * array('tutorial' => {@link parserTutorial},
        -     *       'kids' => array( // child tutorials
        -     *                   array('tutorial' => child {@link parserTutorial},
        -     *                         'kids' => array(...)
        -     *                        )
        -     *                      )
        -     *      )
        -     * 
        - * @param parserTutorial|array - * @tutorial tutorials.pkg - * @return array - */ - function getTutorialTree($tutorial) - { - if (is_object($tutorial)) - { - $path = $tutorial->package . '/' . $tutorial->subpackage . '/' . $tutorial->name; - if (isset($this->tutorial_tree[$path])) - $tutorial = $this->tutorial_tree[$path]; - else - return false; - } - $tree = array(); - if (isset($tutorial['tutorial'])) - { - $tree['tutorial'] = $tutorial['tutorial']; - if (isset($tutorial['child'])) - { - foreach($tutorial['child'] as $a => $b) - { - $btut = $b['tutorial']; - $res['tutorial'] = $this->tutorials[$btut->package][$btut->subpackage][$btut->tutorial_type][$btut->name]; - if (isset($b['child'])) - { - $tempres = Converter::getTutorialTree($b); - $res['kids'] = $tempres['kids']; - } - $tree['kids'][] = $res; - } - } - } - return $tree; - } - - /** - * Remove tutorials one by one from $all, and transfer them into $new in the - * order they should be parsed - * @param parserTutorial - * @param array - * @param array - * @access private - */ - function generateTutorialOrder($parent,&$all,&$new) - { - // remove from the list of tutorials to process - foreach($all[$parent->package][$parent->subpackage][$parent->tutorial_type] as $ind => $t) - { - if ($t->name == $parent->name) { - unset($all[$parent->package][$parent->subpackage][$parent->tutorial_type][$ind]); - } - } - // add to the new ordered list of tutorials - $x = &$new[$parent->package][$parent->subpackage][$parent->tutorial_type]; - if (!is_object($x[count($x) - 1]) || $x[count($x) - 1]->name != $parent->name) - { // only add if the parent isn't also a child - $new[$parent->package][$parent->subpackage][$parent->tutorial_type][] = $parent; - // add a new branch to the tree - } - // process all child tutorials, and insert them in order -// debug("processing parent ".$parent->name); - if ($parent->ini) - { - foreach($parent->ini['Linked Tutorials'] as $child) - { - $sub = (empty($parent->subpackage) ? '' : $parent->subpackage . '/'); - $kid = $parent->package . '/' . $sub . $child . '.' . $parent->tutorial_type; - $_klink = $this->getTutorialLink($kid,false,false,array($parent->package)); - if (is_object($_klink)) { - $klink = $this->returnSee($_klink); - } else { - $klink = false; - } - // remove the child from the list of remaining tutorials - foreach($all[$parent->package][$parent->subpackage][$parent->tutorial_type] as $ind => $tute) - { - if ($klink && $tute->getLink($this) == $klink) - { - // set up parent, next and prev links - $tute->setParent($parent, $this); - // remove the child from the list of tutorials to process - foreach($all[$parent->package][$parent->subpackage][$parent->tutorial_type] as $ind => $t) - { - if ($t->name == $tute->name) - unset($all[$parent->package][$parent->subpackage][$parent->tutorial_type][$ind]); - } - // add to the new ordered list of tutorials - $new[$parent->package][$parent->subpackage][$parent->tutorial_type][] = $tute; - if ($tute->ini) - { - // add all the child's child tutorials to the list - $this->generateTutorialOrder($tute,$all,$new); - } - } - } - } - } - return; - } - - /** Returns the path to this tutorial as a string - * @param parserTutorial $pkg - * @param parserTutorial $subpkg - * @param parserTutorial $namepkg - * @return string */ - function _tutorial_path($pkg, $subpkg = 0, $namepkg = 0) - { - if (! $subpkg) - $subpkg = $pkg; - if (! $namepkg) - $namepkg = $pkg; - return $pkg->package.'/'.$subpkg->subpackage.'/'.$namepkg->name; - } - - - /** - * Creates a tree structure of tutorials - * - * Format: - *
        -     * array('package/subpackage/tutorial1.ext' =>
        -     *          array('tutorial' => {@link parserTutorial},
        -     *                'child'    =>
        -     *                    array('package/subpackage/child1tutorial.ext' => ...,
        -     *                          'package/subpackage/child2tutorial.ext' => ...,
        -     *                          ...
        -     *                         )
        -     *       'package/subpackage/tutorial2.ext' => ...,
        -     *       ...
        -     *       )
        -     * 
        - * @return array the tutorial tree - * @access private - */ - function _setupTutorialTree($parent = false) - { - if (! isset($this->processed_tutorials)) - $this->processed_tutorials = array(); - $tree = array(); - if (!$parent) - { - foreach($this->tutorials as $package => $s) - { - foreach($s as $subpackage => $t) - { - foreach($t as $type => $n) - { - foreach($n as $name => $tutorial) - { - if (!$tutorial->parent) - { - $child_path = $this->_tutorial_path($tutorial,$tutorial,$tutorial); - if (! isset($this->processed_tutorials[$child_path])) - { - $this->processed_tutorials[$child_path] = $tutorial; - //debug("parent ".$tutorial->name); - $ret = $this->_setupTutorialTree($tutorial); - if (!count($tree)) - $tree = $ret; - else - $tree = array_merge($tree,$ret); - } - } - } - } - } - } - return $tree; - } - $parent_path = $this->_tutorial_path($parent); - $tree[$parent_path]['tutorial'] = $parent; - // process all child tutorials, and insert them in order - if ($parent->ini) - { - foreach($parent->ini['Linked Tutorials'] as $child) - { - if (isset($this->tutorials[$parent->package][$parent->subpackage][$parent->tutorial_type][$child . '.' . $parent->tutorial_type])) - // remove the child from the list of remaining tutorials - $tute = $this->tutorials[$parent->package][$parent->subpackage][$parent->tutorial_type][$child . '.' . $parent->tutorial_type]; - else - $tute = false; - - if ($tute) - { - $child_path = $this->_tutorial_path($parent,$parent,$tute); - if (! isset($this->processed_tutorials[$child_path])) - { - $this->processed_tutorials[$child_path] = $tute; - if ($tute->name == $child . '.' . $parent->tutorial_type) - { -// echo "Adding [$child_path] to [$parent_path]
        "; - $tree[$parent_path]['child'][$this->_tutorial_path($parent,$parent,$tute)]['tutorial'] = $tute; - if ($tute->ini) - { - // add all the child's child tutorials to the list - if (!isset($tree[$parent_path]['child'])) - $tree[$parent_path]['child'] = $this->_setupTutorialTree($tute); - else - $tree[$parent_path]['child'] = array_merge($tree[$parent_path]['child'],$this->_setupTutorialTree($tute)); - } - } - } - } - } - } - return $tree; - } - - /** - * Debugging function for dumping {@link $tutorial_tree} - * @return string - */ - function vardump_tree($tree,$indent='') - { - if (phpDocumentor_get_class($tree) == 'parsertutorial') return $tree->name.' extends '.($tree->parent? $tree->parent->name : 'nothing'); - $a = ''; - foreach($tree as $ind => $stuff) - { - $x = $this->vardump_tree($stuff,"$indent "); - $a .= $indent.'['.$ind." => \n ".$indent.$x."]\n"; - } - return substr($a,0,strlen($a) - 1); - } - - /** - * @access private - */ - function sort_package_elements($a,$b) - { - if (($a->type == $b->type) && (isset($a->isConstructor) && $a->isConstructor)) return -1; - if (($a->type == $b->type) && (isset($b->isConstructor) && $b->isConstructor)) return 1; - if ($a->type == $b->type) return strnatcasecmp($a->name,$b->name); - if ($a->type == 'class') return -1; - if ($b->type == 'class') return 1; - if ($a->type == 'const') return -1; - if ($b->type == 'const') return 1; - if ($a->type == 'var') return -1; - if ($b->type == 'var') return 1; - if ($a->type == 'page') return -1; - if ($b->type == 'page') return 1; - if ($a->type == 'include') return -1; - if ($b->type == 'include') return 1; - if ($a->type == 'define') return -1; - if ($b->type == 'define') return 1; - if ($a->type == 'global') return -1; - if ($b->type == 'global') return 1; - if ($a->type == 'function') return -1; - if ($b->type == 'function') return 1; - } - - /** - * @access private - */ - function defpackagesort($a,$b) - { - if ($a == $GLOBALS['phpDocumentor_DefaultPackageName']) return -1; - if ($b == $GLOBALS['phpDocumentor_DefaultPackageName']) return 0; - return strnatcasecmp($a,$b); - } - - /** - * @access private - */ - function Pc_sort($a,$b) - { - return strnatcasecmp(key($a),key($b)); - } - - /** - * walk over elements by package rather than page - * - * This method is designed for converters like the PDF converter that need - * everything passed in alphabetical order by package/subpackage and by - * procedural and then class information - * @see PDFdefaultConverter - * @see walk() - */ - function walk_everything() - { - global $hooser; - $hooser = false; - uksort($this->package_elements,array($this,'defpackagesort')); - foreach($this->package_elements as $package => $r) - { - if ($this->package_output) - { - if (!in_array($this->package,$this->package_output)) - { - unset($this->package_elements[$package]); - continue; - } - } - uksort($this->package_elements[$package],'strnatcasecmp'); - } - foreach($this->package_elements as $package => $r) - { - foreach($this->package_elements[$package] as $subpackage => $r) - { - if (isset($r['page'])) - { - uksort($r['page'],'strnatcasecmp'); - foreach($r['page'] as $page => $oo) - { - usort($this->package_elements[$package][$subpackage]['page'][$page],array($this,'sort_package_elements')); - } - } - if (isset($r['class'])) - { - uksort($r['class'],'strnatcasecmp'); - foreach($r['class'] as $page => $oo) - { - usort($r['class'][$page],array($this,'sort_package_elements')); - } - } - $this->package_elements[$package][$subpackage] = $r; - } - } - foreach($this->package_elements as $package => $s) - { - $notyet = false; - foreach($s as $subpackage => $r) - { - $this->package = $package; - $this->subpackage = $subpackage; - if (isset($r['page'])) - { - $this->class = false; - foreach($r['page'] as $page => $elements) - { - if (is_array($elements)) - { - foreach($elements as $element) - { - if ($element->type == 'page') - { - phpDocumentor_out('Converting '.$element->parent->getPath()); - flush(); - $this->curfile = $element->parent->getFile(); - $this->curname = $this->getPageName($element->parent); - $this->curpath = $element->parent->getPath(); - $notyet = true; - } else - { - // force all contained elements to have parent package/subpackage - $element->docblock->package = $this->package; - $element->docblock->subpackage = $this->subpackage; - $a = $element->docblock->getKeyword('access'); - if (is_object($a)) $a = $a->getString(); - if (!$this->parseprivate && ($a == 'private')) - continue; - } - if ($notyet) - { - phpDocumentor_out(" Procedural Page Elements..."); - flush(); - $notyet = false; - } - $this->Convert($element); - } - } - $this->endPage(); - phpDocumentor_out("done\n"); - flush(); - } - } - $start_classes = true; - if (isset($r['class'])) - { - foreach($r['class'] as $class => $elements) - { - foreach($elements as $element) - { - if ($element->type == 'class') - { - if (!$start_classes) - { - if (count($elements) && !$this->killclass) $this->endClass(); - phpDocumentor_out("done\n"); - flush(); - } - $start_classes = false; - $this->class = $element->getName(); - $this->killclass = false; - if ($this->checkKillClass($element->getName(),$element->getPath())) continue; - if (!$this->killclass) - { - phpDocumentor_out('Converting '.$this->class."..."); - flush(); - $notyet = true; - } - } else - { - if ($notyet) - { - phpDocumentor_out("Variables/methods/Class constants...\n"); - flush(); - $notyet = false; - } - $a = $element->docblock->getKeyword('access'); - if (is_object($a)) $a = $a->getString(); - if (!$this->parseprivate && ($a == 'private')) - continue; - if ($this->killclass) continue; - // force all contained elements to have parent package/subpackage - $element->docblock->package = $this->package; - $element->docblock->subpackage = $this->subpackage; - } - if ($this->killclass) continue; - $this->Convert($element); - } - } - if (count($elements) && !$this->killclass) $this->endClass(); - phpDocumentor_out("done\n"); - flush(); - } // if isset($r['class']) - } // foreach($s - } // foreach($this->package_elements) - phpDocumentor_out("\nConverting @todo List..."); - flush(); - if (count($this->todoList)) - { - $this->ConvertTodoList(); - } - phpDocumentor_out("done\n"); - flush(); - phpDocumentor_out("\nConverting Error Log..."); - flush(); - $this->ConvertErrorLog(); - phpDocumentor_out("done\n"); - flush(); - } - - /** - * Convert the phpDocumentor parsing/conversion error log - * @abstract - */ - function ConvertErrorLog() - { - } - - /** - * Convert the list of all @todo tags - * @abstract - */ - function ConvertTodoList() - { - } - - /** - * Sorts the @todo list - do not override or modify this function - * @access private - * @uses _sortTodos passed to {@link usort()} to sort the todo list - */ - function sortTodos() - { - phpDocumentor_out("\nSorting @todo list..."); - flush(); - foreach($this->todoList as $package => $r) - usort($this->todoList[$package],array($this, '_sortTodos')); - phpDocumentor_out("done\n"); - } - - /** @access private */ - function _sortTodos($a, $b) - { - return strnatcasecmp($a[0]->name, $b[0]->name); - } - - /** - * Sorts all indexes - do not override or modify this function - * @uses $leftindex based on the value of leftindex, sorts link arrays - * @uses $class_elements sorts with {@link compareLink} - * @uses $page_elements sorts with {@link compareLink} - * @uses $define_elements sorts with {@link compareLink} - * @uses $global_elements sorts with {@link compareLink} - * @uses $function_elements sorts with {@link compareLink} - * @uses $elements sorts with {@link elementCmp} - * @uses $pkg_elements sorts with {@link elementCmp} after sorting by - * package/subpackage alphabetically - * @access private - */ - function sortIndexes() - { - phpDocumentor_out("\nSorting Indexes..."); - flush(); - uksort($this->elements,'strnatcasecmp'); - if ($this->leftindex['classes']) - { - foreach($this->class_elements as $package => $o1) - { - foreach($o1 as $subpackage => $links) - { - usort($this->class_elements[$package][$subpackage],array($this,'compareLink')); - } - } - } - if ($this->leftindex['pages']) - { - foreach($this->page_elements as $package => $o1) - { - uksort($this->page_elements[$package],'strnatcasecmp'); - foreach($o1 as $subpackage => $links) - { - usort($this->page_elements[$package][$subpackage],array($this,'compareLink')); - } - } - } - if ($this->leftindex['defines']) - { - foreach($this->define_elements as $package => $o1) - { - uksort($this->define_elements[$package],'strnatcasecmp'); - foreach($o1 as $subpackage => $links) - { - usort($this->define_elements[$package][$subpackage],array($this,'compareLink')); - } - } - } - if ($this->leftindex['globals']) - { - foreach($this->global_elements as $package => $o1) - { - uksort($this->global_elements[$package],'strnatcasecmp'); - foreach($o1 as $subpackage => $links) - { - usort($this->global_elements[$package][$subpackage],array($this,'compareLink')); - } - } - } - if ($this->leftindex['functions']) - { - foreach($this->function_elements as $package => $o1) - { - uksort($this->function_elements[$package],'strnatcasecmp'); - foreach($o1 as $subpackage => $links) - { - usort($this->function_elements[$package][$subpackage],array($this,'compareLink')); - } - } - } - foreach($this->elements as $letter => $nothuing) - { - uasort($this->elements[$letter],array($this,"elementCmp")); - } - foreach($this->pkg_elements as $package => $els) - { - uksort($this->pkg_elements[$package],'strnatcasecmp'); - foreach($this->pkg_elements[$package] as $subpackage => $els) - { - if (empty($els)) continue; - uksort($this->pkg_elements[$package][$subpackage],'strnatcasecmp'); - foreach($els as $letter => $yuh) - { - usort($this->pkg_elements[$package][$subpackage][$letter],array($this,"elementCmp")); - } - } - } - phpDocumentor_out("done\n"); - flush(); - } - - /** - * sorts {@link $page_contents} by element type as well as alphabetically - * @see $sort_page_contents_by_element_type - */ - function sortPageContentsByElementType(&$pages) - { - foreach($this->page_contents as $package => $els) - { - foreach($this->page_contents[$package] as $subpackage => $els) - { - if (empty($els)) continue; - foreach($this->page_contents[$package][$subpackage] as $path => $stuff) - { - if (!count($pages[$path]->elements)) continue; - usort($pages[$path]->elements,array($this,'eltypecmp')); - usort($this->page_contents[$package][$subpackage][$path],array($this,'eltypecmp')); - if (isset($this->page_contents[$package][$subpackage][$path][0])) - $this->page_contents[$package][$subpackage][$path]['###main'] = $this->page_contents[$package][$subpackage][$path][0]; - unset($this->page_contents[$package][$subpackage][$path][0]); - } - } - } - } - - /** - * @access private - * @see Converter::sortIndexes() - */ - function compareLink($a, $b) - { - return strnatcasecmp($a->name,$b->name); - } - - /** - * @access private - * @see Converter::sortPageContentsByElementType() - */ - function eltypecmp($a, $b) - { - if ($a->type == 'page') return -1; - if ($b->type == 'page') return 1; - return strnatcasecmp($a->type.$a->name,$b->type.$b->name); - } - - /** - * does a nat case sort on the specified second level value of the array - * - * @param mixed $a - * @param mixed $b - * @return int - * @access private - */ - function elementCmp ($a, $b) - { - return strnatcasecmp($a->getName(), $b->getName()); - } - - /** - * Used to stop conversion of @ignored or private @access classes - * @uses $killclass sets killclass based on the value of {@link Classes::$killclass} - * and {@link $package_output} - * @access private - */ - function checkKillClass($class, $path) - { - $this->killclass = false; - if (isset($this->classes->killclass[$class]) && isset($this->classes->killclass[$class][$path])) $this->killclass = true; - if ($this->package_output) - { - $a = $this->classes->getClass($class, $path); - if (!in_array($a->docblock->package,$this->package_output)) $this->killclass = true; - } - if (PHPDOCUMENTOR_DEBUG && $this->killclass) debug("$class $path killed"); - return $this->killclass; - } - - /** - * @param abstractLink descendant of abstractLink - * @param array|parserTag list of @todos|@todo tag - * @access private - */ - function addTodoLink($link, $todos) - { - $this->todoList[$link->package][] = array($link, $todos); - } - - /** - * Adds all elements to the {@link $elements, $pkg_elements, $links}, - * {@link $linkswithfile} and left indexes - Do not modify or override - * @access private - * @param parserBase any documentable element descendant of parserBase - * except parserTutorial - * @param false|parserPage only used to add a {@link parserPage} if the - * $element passed is a parserPage - * @staticvar string path of current page, used for {@link $page_contents} setup - */ - function addElement(&$element,$pageel=false) - { - static $curpath = ''; - if ($this->package_output) - { - if (!in_array($this->package, $this->package_output)) return; - } - if ($pageel && phpDocumentor_get_class($pageel) == 'parserdata') - { - if (isset($pageel->docblock) && phpDocumentor_get_class($pageel->docblock) == 'parserdocblock') - { - $a = $pageel->docblock->getKeyword('todo'); - if ($a) - { - $this->addTodoLink($this->addLink($element),$a); - } - } - } - if (isset($element->docblock)) - { - $a = $element->docblock->getKeyword('access'); - if (is_object($a)) $a = $a->getString(); - if (!$this->parseprivate && ($a == 'private')) - return; - $a = $element->docblock->getKeyword('todo'); - if ($a) - { - $this->addTodoLink($this->addLink($element),$a); - } - } - $i = 0; - switch($element->type) - { - case 'page' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->package][$element->subpackage]['page'][$element->getPath()][] = $pageel; - } - $link = $this->addLink($element); - $curpath = $element->getPath(); - if ($this->leftindex['pages']) - $this->page_elements[$element->package][$element->subpackage][] = $link; - $this->page_contents[$element->package][$element->subpackage][$curpath]['###main'] = $link; - break; - case 'class' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element; - } - $link = $this->addLink($element); - if ($this->leftindex['classes']) - $this->class_elements[$element->docblock->package][$element->docblock->subpackage][] = $link; - $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class]['###main'] = $link; - break; - case 'include' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element; - } - $link = $this->addLink($element); - break; - case 'define' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element; - } - $link = $this->addLink($element); - if ($this->leftindex['defines']) - $this->define_elements[$element->docblock->package][$element->docblock->subpackage][] = $link; - $this->page_contents[$element->docblock->package][$element->docblock->subpackage][$curpath][] = $link; - break; - case 'global' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element; - } - $link = $this->addLink($element); - $i++; - if ($this->leftindex['globals']) - $this->global_elements[$element->docblock->package][$element->docblock->subpackage][] = $link; - $this->page_contents[$element->docblock->package][$element->docblock->subpackage][$curpath][] = $link; - break; - case 'var' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element; - } - $link = $this->addLink($element); - $i++; - $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class][] = $link; - break; - case 'const' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element; - } - $link = $this->addLink($element); - $i++; - $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class][] = $link; - break; - case 'method' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element; - } - $link = $this->addLink($element); - $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class][] = $link; - break; - case 'function' : - if ($this->sort_absolutely_everything) - { - $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element; - } - $link = $this->addLink($element); - if ($this->leftindex['functions']) - $this->function_elements[$element->docblock->package][$element->docblock->subpackage][] = $link; - $this->page_contents[$element->docblock->package][$element->docblock->subpackage][$curpath][] = $link; - break; - default : - break; - } - if ($element->getType() != 'include') - { - if ($element->getType() == 'var' || $element->getType() == 'method'|| $element->getType() == 'const') - { - $this->links[$this->package][$this->subpackage][$element->getType()][$element->class][$element->getName()] = $link; - $this->linkswithfile[$this->package][$this->subpackage][$element->getType()][$element->getPath()][$element->class][$element->getName()] = $link; - } else - { - if ($element->type == 'page') - { - $this->links[$this->package][$this->subpackage][$element->getType()][$element->getFile()] = $link; - $this->linkswithfile[$this->package][$this->subpackage][$element->getType()][$element->getPath()][$element->getFile()] = $link; - } else - { - $this->links[$this->package][$this->subpackage][$element->getType()][$element->getName()] = $link; - $this->linkswithfile[$this->package][$this->subpackage][$element->getType()][$element->getPath()][$element->getName()] = $link; - } - } - } - if ($element->type == 'page') - { - $this->elements[substr(strtolower($element->getFile()),$i,1)][] = $element; - $this->pkg_elements[$this->package][$this->subpackage][substr(strtolower($element->getFile()),$i,1)][] = $element; - } else - { - $this->elements[substr(strtolower($element->getName()),$i,1)][] = $element; - $this->pkg_elements[$this->package][$this->subpackage][substr(strtolower($element->getName()),$i,1)][] = $element; - } - } - - /** - * returns an abstract link to element. Do not modify or override - * - * This method should only be called in process of Conversion, unless - * $element is a parserPage, or $page is set to true, and $element is - * not a parserPage - * @return abstractLink abstractLink descendant - * @access private - * @param parserElement element to add a new link (descended from - * {@link abstractLink})to the {@link $links} array - * @param string classname for elements that are class-based (this may be - * deprecated in the future, as the classname - * should be contained within the element. if $element is a - * page, this parameter is a package name - * @param string subpackage name for page elements - */ - function addLink(&$element,$page = false) - { - if ($page) - { - // create a fake parserPage to extract the fileAlias for this link - $fakepage = new parserPage; - $fakepage->setPath($element->getPath()); - $fakepage->setFile(basename($element->getPath())); - $this->curname = $this->getPageName($fakepage); - } - switch($element->type) - { - case 'function': - $x = new functionLink; - $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category); - return $x; - break; - case 'define': - $x = new defineLink; - $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category); - return $x; - break; - case 'global': - $x = new globalLink; - $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category); - return $x; - break; - case 'class': - $x = new classLink; - $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category); - return $x; - break; - case 'method': - $x = new methodLink; - $x->addLink($this->class, $element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category); - return $x; - break; - case 'var': - $x = new varLink; - $x->addLink($this->class, $element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category); - return $x; - break; - case 'const': - $x = new constLink; - $x->addLink($this->class, $element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category); - return $x; - break; - case 'page': - $x = new pageLink; - $x->addLink($element->getPath(),$this->getPageName($element),$element->file,$element->package, $element->subpackage, $element->category); - return $x; - break; - } - } - - /** - * Return a tree of all classes that extend this class - * - * The data structure returned is designed for a non-recursive algorithm, - * and is somewhat complex. - * In most cases, the array returned is: - * - *
        -     * array('#root' =>
        -     *         array('link' => {@link classLink} to $class,
        -     *               'parent' => false,
        -     *               'children' => array(array('class' => 'childclass1',
        -     *                                         'package' => 'child1package'),
        -     *                                    array('class' => 'childclass2',
        -     *                                         'package' => 'child2package'),...
        -     *                                  )
        -     *               ),
        -     *       'child1package#childclass1' =>
        -     *         array('link' => {@link classLink} to childclass1,
        -     *               'parent' => '#root',
        -     *               'children' => array(array('class' => 'kidclass',
        -     *                                         'package' => 'kidpackage'),...
        -     *                                  )
        -     *              ),
        -     *       'kidpackage#kidclass' =>
        -     *         array('link' => {@link classLink} to kidclass,
        -     *               'parent' => 'child1package#childclass1',
        -     *               'children' => array() // no children
        -     *              ),
        -     *      ....
        -     *      )
        -     *
        - * - * To describe this format using language, every class in the tree has an - * entry in the first level of the array. The index for all child - * classes that extend the root class is childpackage#childclassname. - * Each entry in the array has 3 elements: link, parent, and children. - *
          - *
        • link - a {@link classLink} to the current class
        • - *
        • parent - a {@link classLink} to the class's parent, or false (except for one special case described below)
        • - *
        • children - an array of arrays, each entry has a 'class' and 'package' index to the child class, - * used to find the entry in the big array
        • - *
        - * - * special cases are when the #root class has a parent in another package, - * or when the #root class extends a class not found - * by phpDocumentor. In the first case, parent will be a - * classLink to the parent class. In the second, parent will be the - * extends clause, as in: - * - * class X extends Y - * { - * ... - * } - * - * in this case, the #root entry will be array('link' => classLink to X, 'parent' => 'Y', children => array(...)) - * - * The fastest way to design a method to process the array returned - * is to copy HTMLframesConverter::getRootTree() into - * your converter and to modify the html to whatever output format you are going to use - * @see HTMLframesConverter::getRootTree() - * @param string class name - * @param string - * @param string - * @return array Format: see docs - */ - function getSortedClassTreeFromClass($class,$package,$subpackage) - { - $my_tree = array(); - $root = $this->classes->getClassByPackage($class,$package); - if (!$root) return false; - $class_children = $this->classes->getDefiniteChildren($class,$root->curfile); - if (!$class_children) - { - // special case: parent class is found, but is not part of this package, class has no children - if (is_array($root->parent)) - { - $x = $root->getParent($this); - if ($x->docblock->package != $package) - { - $v = Converter::getClassLink($root->getName(),$package,$root->getPath()); - return array('#root' => array('link' => $v,'parent' => Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath()), 'children' => array())); - } - } else - { // class has normal situation, no children - if (is_string($root->getParent($this))) - return array('#root' => array('link' => Converter::getClassLink($root->getName(),$package,$root->getPath()), 'parent' => $root->getExtends(),'children' => array())); - else - return array('#root' => array('link' => Converter::getClassLink($root->getName(),$package,$root->getPath()), 'parent' => false, 'children' => array())); - } - } - // special case: parent class is found, but is not part of this package, class has children - if (is_array($root->parent)) - { - $x = $root->getParent($this); - if ($x->docblock->package != $package) - { - $v = Converter::getClassLink($root->getName(),$package,$root->getPath()); - $my_tree = array('#root' => array('link' => $v, 'parent' => Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath()), 'children' => array())); - } else - { - } - } else - $my_tree = array('#root' => array('link' => Converter::getClassLink($root->getName(),$package,$root->getPath()), 'parent' => false, 'children' => array())); - // location of tree walker - $cur = '#root'; - $lastcur = array(array(false,0)); - $childpos = 0; - if (isset($class_children)) - { - do - { - if (!$class_children) - { - list($cur, $childpos) = array_pop($lastcur); - if (isset($my_tree[$cur]['children'][$childpos + 1])) - { - array_push($lastcur, array($cur, $childpos + 1)); - $par = $cur; - $cur = $my_tree[$cur]['children'][$childpos + 1]; - $x = $this->classes->getClassByPackage($cur['class'],$cur['package']); - $childpos = 0; - $cur = $cur['package'] . '#' . $cur['class']; - $my_tree[$cur]['link'] = Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath()); - $my_tree[$cur]['parent'] = $par; - $my_tree[$cur]['children'] = array(); - $class_children = $this->classes->getDefiniteChildren($x->getName(), $x->curfile); - continue; - } else - { - $class_children = false; - continue; - } - } - foreach($class_children as $chileclass => $chilefile) - { - $ch = $this->classes->getClass($chileclass,$chilefile); - $my_tree[$cur]['children'][] = array('class' => $ch->getName(), 'package' => $ch->docblock->package); - } - usort($my_tree[$cur]['children'],'rootcmp'); - if (isset($my_tree[$cur]['children'][$childpos])) - { - array_push($lastcur, array($cur, $childpos)); - $par = $cur; - $cur = $my_tree[$cur]['children'][$childpos]; - $x = $this->classes->getClassByPackage($cur['class'],$cur['package']); - $cur = $cur['package'] . '#' . $cur['class']; - $my_tree[$cur]['link'] = Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath()); - $my_tree[$cur]['parent'] = $par; - $my_tree[$cur]['children'] = array(); - $childpos = 0; - $class_children = $this->classes->getDefiniteChildren($x->getName(), $x->curfile); - } else - { - list($cur, $childpos) = array_pop($lastcur); - } - } while ($cur); - } - return $my_tree; - } - - /** - * do not override - * @return bool true if a link to this class exists in package $package and subpackage $subpackage - * @param string $expr class name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedClass($expr,$package,$subpackage,$file=false) - { - if ($file) - return isset($this->linkswithfile[$package][$subpackage]['class'][$file][$expr]); - return isset($this->links[$package][$subpackage]['class'][$expr]); - } - - /** - * do not override - * @return bool true if a link to this function exists in package $package and subpackage $subpackage - * @param string $expr function name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedFunction($expr,$package,$subpackage,$file=false) - { - if ($file) - return isset($this->linkswithfile[$package][$subpackage]['function'][$file][$expr]); - return isset($this->links[$package][$subpackage]['function'][$expr]); - } - - /** - * do not override - * @return bool true if a link to this define exists in package $package and subpackage $subpackage - * @param string $expr define name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedDefine($expr,$package,$subpackage,$file=false) - { - if ($file) - return isset($this->linkswithfile[$package][$subpackage]['define'][$file][$expr]); - return isset($this->links[$package][$subpackage]['define'][$expr]); - } - - /** - * do not override - * @return bool true if a link to this define exists in package $package and subpackage $subpackage - * @param string $expr define name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedGlobal($expr,$package,$subpackage,$file=false) - { - if ($file) - return isset($this->linkswithfile[$package][$subpackage]['global'][$file][$expr]); - return isset($this->links[$package][$subpackage]['global'][$expr]); - } - - /** - * do not override - * @return bool true if a link to this procedural page exists in package $package and subpackage $subpackage - * @param string $expr procedural page name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedPage($expr,$package,$subpackage,$path=false) - { - if ($path) - return isset($this->linkswithfile[$package][$subpackage]['page'][$path][$expr]); - return isset($this->links[$package][$subpackage]['page'][$expr]); - } - - /** - * do not override - * @return bool true if a link to this method exists in package $package, subpackage $subpackage and class $class - * @param string $expr method name - * @param string $class class name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedMethod($expr,$package,$subpackage,$class,$file=false) - { - if ($file) - return isset($this->linkswithfile[$package][$subpackage]['method'][$file][$class][$expr]); - return isset($this->links[$package][$subpackage]['method'][$class][$expr]); - } - - /** - * do not override - * @return bool true if a link to this method exists in package $package, subpackage $subpackage and class $class - * @param string $expr var name - * @param string $class class name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedVar($expr,$package,$subpackage,$class,$file=false) - { - if ($file) - return isset($this->linkswithfile[$package][$subpackage]['var'][$file][$class][$expr]); - return isset($this->links[$package][$subpackage]['var'][$class][$expr]); - } - - /** - * do not override - * @return bool true if a link to this method exists in package $package, subpackage $subpackage and class $class - * @param string $expr constant name - * @param string $class class name - * @param string $package package to search in - * @param string $subpackage subpackage to search in - * @access private - */ - function isLinkedConst($expr,$package,$subpackage,$class,$file=false) - { - if ($file) - return isset($this->linkswithfile[$package][$subpackage]['const'][$file][$class][$expr]); - return isset($this->links[$package][$subpackage]['const'][$class][$expr]); - } - - /** - * return false or a {@link classLink} to $expr - * @param string $expr class name - * @param string $package package name - * @return mixed returns a {@link classLink} or false if the element is not found in package $package - * @see classLink - */ - function getClassLink($expr,$package,$file=false, $text = false) - { - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedClass($expr,$package,$subpackage,$file)) - { - if ($file) - { - return $this->linkswithfile[$package][$subpackage]['class'][$file][$expr]; - } - return $this->links[$package][$subpackage]['class'][$expr]; - } - } - return false; - } - - /** - * return false or a {@link functionLink} to $expr - * @param string $expr function name - * @param string $package package name - * @return mixed returns a {@link functionLink} or false if the element is not found in package $package - * @see functionLink - */ - function getFunctionLink($expr,$package,$file=false, $text = false) - { - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedFunction($expr,$package,$subpackage,$file)) - { - if ($file) - { - return $this->linkswithfile[$package][$subpackage]['function'][$file][$expr]; - } - return $this->links[$package][$subpackage]['function'][$expr]; - } - } - return false; - } - - /** - * return false or a {@link defineLink} to $expr - * @param string $expr constant name - * @param string $package package name - * @return mixed returns a {@link defineLink} or false if the element is not found in package $package - * @see defineLink - */ - function getDefineLink($expr,$package,$file=false, $text = false) - { - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedDefine($expr,$package,$subpackage,$file)) - { - if ($file) - { - return $this->linkswithfile[$package][$subpackage]['define'][$file][$expr]; - } - return $this->links[$package][$subpackage]['define'][$expr]; - } - } - return false; - } - - /** - * return false or a {@link globalLink} to $expr - * @param string $expr global variable name (with leading $) - * @param string $package package name - * @return mixed returns a {@link defineLink} or false if the element is not found in package $package - * @see defineLink - */ - function getGlobalLink($expr,$package,$file=false, $text = false) - { - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedGlobal($expr,$package,$subpackage,$file)) - { - if ($file) - { - return $this->linkswithfile[$package][$subpackage]['global'][$file][$expr]; - } - return $this->links[$package][$subpackage]['global'][$expr]; - } - } - return false; - } - - /** - * return false or a {@link pageLink} to $expr - * @param string $expr procedural page name - * @param string $package package name - * @return mixed returns a {@link pageLink} or false if the element is not found in package $package - * @see pageLink - */ - function getPageLink($expr,$package,$path = false, $text = false, $packages = false) - { - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedPage($expr,$package,$subpackage,$path)) - { - if ($path) - { - return $this->linkswithfile[$package][$subpackage]['page'][$path][$expr]; - } - return $this->links[$package][$subpackage]['page'][$expr]; - } - } - return false; - } - - /** - * return false or a {@link methodLink} to $expr in $class - * @param string $expr method name - * @param string $class class name - * @param string $package package name - * @return mixed returns a {@link methodLink} or false if the element is not found in package $package, class $class - * @see methodLink - */ - function getMethodLink($expr,$class,$package,$file=false, $text = false) - { - $expr = trim($expr); - $class = trim($class); - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedMethod($expr,$package,$subpackage,$class,$file)) - { - if ($file) - { - return $this->linkswithfile[$package][$subpackage]['method'][$file][$class][$expr]; - } - return $this->links[$package][$subpackage]['method'][$class][$expr]; - } - } - return false; - } - - /** - * return false or a {@link varLink} to $expr in $class - * @param string $expr var name - * @param string $class class name - * @param string $package package name - * @return mixed returns a {@link varLink} or false if the element is not found in package $package, class $class - * @see varLink - */ - function getVarLink($expr,$class,$package,$file=false, $text = false) - { - $expr = trim($expr); - $class = trim($class); - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedVar($expr,$package,$subpackage,$class,$file)) - { - if ($file) - { - return $this->linkswithfile[$package][$subpackage]['var'][$file][$class][$expr]; - } - return $this->links[$package][$subpackage]['var'][$class][$expr]; - } - } - return false; - } - - /** - * return false or a {@link constLink} to $expr in $class - * @param string $expr constant name - * @param string $class class name - * @param string $package package name - * @return mixed returns a {@link varLink} or false if the element is not found in package $package, class $class - * @see constLink - */ - function getConstLink($expr,$class,$package,$file=false, $text = false) - { - $expr = trim($expr); - $class = trim($class); - if (!isset($this->links[$package])) return false; - foreach($this->links[$package] as $subpackage => $notused) - { - if ($this->isLinkedConst($expr,$package,$subpackage,$class,$file)) - { - if ($file) - { - return $this->linkswithfile[$package][$subpackage]['const'][$file][$class][$expr]; - } - return $this->links[$package][$subpackage]['const'][$class][$expr]; - } - } - return false; - } - - /** - * The meat of the @tutorial tag and inline {@}tutorial} tag - * - * Take a string and return an abstract link to the tutorial it represents. - * Since tutorial naming literally works like the underlying filesystem, the - * way to reference the tutorial is similar. Tutorials are located in a - * subdirectory of any directory parsed, which is named 'tutorials/' (we - * try to make things simple when we can :). They are further organized by - * package and subpackage as: - * - * tutorials/package/subpackage - * - * and the files are named *.cls, *.pkg, or *.proc, and so a link to a tutorial - * named file.cls can be referenced (depending on context) as any of: - * - * - * * @tutorial package/subpackage/file.cls - * * @tutorial package/file.cls - * * @tutorial file.cls - * - * - * The first case will only be needed if file.cls exists in both the current - * package, in anotherpackage/file.cls and in anotherpackage/subpackage/file.cls - * and you wish to reference the one in anotherpackage/subpackage. - * The second case is only needed if you wish to reference file.cls in another - * package and it is unique in that package. the third will link to the first - * file.cls it finds using this search method: - * - *
          - *
        1. current package/subpackage
        2. - *
        3. all other subpackages of current package
        4. - *
        5. parent package, if this package has classes that extend classes in - * another package
        6. - *
        7. all other packages
        8. - *
        - * @return tutorialLink|string returns either a link, or the original text, if not found - * @param string the original expression - * @param string package to look in first - * @param string subpackage to look in first - * @param array array of package names to search in if not found in parent packages. - * This is used to limit the search, phpDocumentor automatically searches - * all packages - * @since 1.2 - */ - function getTutorialLink($expr, $package = false, $subpackage = false, $packages = false) - { - // is $expr a comma-delimited list? - if (strpos($expr,',')) - { - $a = explode(',',$expr); - $b = array(); - for($i=0;$ipackage; - if (!$subpackage) $subpackage = $this->subpackage; - if (!isset($this->all_packages[$package])) return $expr; - elseif (isset($packages[$package])) unset($packages[$package]); - $ext = pathinfo($expr, PATHINFO_EXTENSION); - if (isset($this->tutorials[$package][$subpackage][$ext][$expr])) - { - $a = $this->tutorials[$package][$subpackage][$ext][$expr]; - $link = new tutorialLink; - $link->addLink($subsection,$a->path,$a->name,$a->package,$a->subpackage,$a->getTitle($this,$subsection)); - return $link; - } - do - { - if (!is_array($packages)) - { - $packages = $this->all_packages; - if (isset($packages[$package])) unset($packages[$package]); - } - if (isset($this->tutorials[$package])) - { - if (isset($this->tutorials[$package][$subpackage][$ext][$expr])) - { - $a = $this->tutorials[$package][$subpackage][$ext][$expr]; - $link = new tutorialLink; - $link->addLink($subsection,$a->path,$a->name,$a->package,$a->subpackage,$a->getTitle($this)); - return $link; - } else - { - foreach($this->tutorials[$package] as $subpackage => $stuff) - { - if (isset($stuff[$ext][$expr])) - { - $a = $stuff[$ext][$expr]; - $link = new tutorialLink; - $link->addLink($subsection,$a->path,$a->name,$a->package,$a->subpackage,$a->getTitle($this)); - return $link; - } - } - } - } - // try other packages - // look in parent package first, if found - if (isset($this->package_parents[$package])) - { - $p1 = $package; - $package = $this->package_parents[$package]; - } else - { - // no parent package, so start with the first one that's left - list($package,) = @each($packages); - } - if ($package) - { - if (isset($packages[$package])) unset($packages[$package]); - } - } while (count($packages) || $package); - addWarning(PDERROR_TUTORIAL_NOT_FOUND,$expr); - return $expr; - } - - /** - * The meat of the @see tag and inline {@}link} tag - * - * $expr is a string with many allowable formats: - *
          - *
        1. proceduralpagename.ext
        2. - *
        3. constant_name
        4. - *
        5. classname::function()
        6. - *
        7. classname::constantname
        8. (new 1.2.4) - *
        9. classname::$variablename
        10. - *
        11. classname
        12. - *
        13. function functionname()
        14. - *
        15. global $globalvarname
        16. - *
        17. packagename#expr where expr is any of the above
        18. - *
        - * - * New in version 1.1, you can explicitly specify a package to link to that - * is different from the current package. Use the # operator - * to specify a new package, as in tests#bug-540368.php (which should appear - * as a link like: "{@link tests#bug-540368.php}"). This - * example links to the procedural page bug-540368.php in package - * tests. Also, the "function" operator is now used to specifically - * link to a function instead of a method in the current class. - * - * - * class myclass - * { - * // from inside the class definition, use "function conflict()" to refer to procedural function "conflict()" - * function conflict() - * { - * } - * } - * - * function conflict() - * { - * } - * - * - * If classname:: is not present, and the see tag is in a documentation - * block within a class, then the function uses the classname to - * search for $expr as a function or variable within classname, or any of its parent classes. - * given an $expr without '$', '::' or '()' getLink first searches for - * classes, procedural pages, constants, global variables, and then searches for - * methods and variables within the default class, and finally for any function - * - * @param string $expr expression to search for a link - * @param string $package package to start searching in - * @param array $packages list of all packages to search in - * @return mixed getLink returns a descendant of {@link abstractLink} if it finds a link, otherwise it returns a string - * @see getPageLink(), getDefineLink(), getVarLink(), getFunctionLink(), getClassLink() - * @see pageLink, functionLink, defineLink, classLink, methodLink, varLink - */ - function &getLink($expr, $package = false, $packages = false) - { - // is $expr a comma-delimited list? - if (strpos($expr,',')) - { - $a = explode(',',$expr); - $b = array(); - for($i=0;$i_getLink($expr, $package, $packages); - return $a; - } - - /** - * @access private - */ - function &_getLink($expr, $package = false, $packages = false) - { - if (!$package) $package = $this->package; - // - if (!isset($this->all_packages[$package])) return $expr; - elseif (isset($packages[$package])) unset($packages[$package]); - $links = &$this->links; - $class = $this->class; - if (strpos($expr,'function ') === 0) - { // asking for a function, not a method - if ($test = Converter::getFunctionLink(str_replace('function ','',str_replace('()','',$expr)), $package)) return $test; - else return $expr; - } - if (strpos($expr,'global ') === 0) - { // asking for a global variable - if ($test = Converter::getGlobalLink(str_replace('global ','',$expr), $package)) return $test; - else return $expr; - } - if (strpos($expr,'object ') === 0) - { // asking for a class - if ($test = Converter::getClassLink(str_replace('object ','',$expr), $package)) return $test; - else return $expr; - } - if (strpos($expr,'constant ') === 0) - { // asking for a class - if ($test = Converter::getDefineLink(str_replace('constant ','',$expr), $package)) return $test; - else return $expr; - } - // are we in a class? - if ($class) - { - // is $expr simply a word? see if it is the class - if (trim($expr) == $class) - { - if ($test = Converter::getClassLink(trim(str_replace('object ','',$expr)),$package)) return $test; - } - // if not, check to see if it is a method or variable of this class tree - if (!strpos($expr,'::')) - { - // if get is neither get() nor $get, assume get is a function, add () to make get() - if (strpos($expr,'$') !== 0 && !strpos($expr,'()')) //$get = $get.'()'; - { - if ($a = $this->getLinkMethod($expr,$class,$package)) return $a; - if ($a = $this->getLinkConst($expr,$class,$package)) return $a; - if ($a = $this->getLinkVar('$'.$expr,$class,$package)) return $a; - } - if (strpos($expr,'()')) if ($a = $this->getLinkMethod($expr,$class,$package)) return $a; - if (is_numeric(strpos($expr,'$'))) if ($a = $this->getLinkVar($expr,$class,$package)) return $a; - } - } - if ($test = Converter::getClassLink(trim(str_replace('object ','',$expr)),$package)) return $test; - if ($test = Converter::getPageLink(trim($expr),$package)) return $test; - if ($test = Converter::getDefineLink(trim($expr),$package)) return $test; - if ($test = Converter::getGlobalLink(trim($expr),$package)) return $test; -// if (strpos($expr,'.')) - // package specified - - if (!is_array($packages)) - { - $packages = $this->all_packages; - } - do - { - if (isset($packages[$package])) unset($packages[$package]); - if ($test = Converter::getClassLink(str_replace('object ','',$expr),$package)) return $test; - if ($test = Converter::getPageLink($expr,$package)) return $test; - if ($test = Converter::getDefineLink($expr,$package)) return $test; - if ($test = Converter::getGlobalLink($expr,$package)) return $test; - // is $expr in class::method() or class::$variable format? - if (strpos($expr,'function ') === 0) - { // asking for a function, not a method - if ($test = Converter::getFunctionLink(str_replace('function','',str_replace('()','',$expr)), $package)) return $test; - else return $expr; - } - $test = $this->_getDoubleColon($expr, $package, $packages, $class, $links); - if (!is_string($test)) return $test; - if (strpos($test, 'parent::') === 0) return $test; - // $expr does not have :: - if (is_numeric(@strpos('$',$expr))) - { - // default to current class, whose name is contained in $this->render->parent - if ($test = Converter::getVarLink($expr, $class, $package)) return $test; - } - // $expr is a function? (non-method) - if (@strpos($expr,'()')) - { - // otherwise, see if it is a method - if ($class) - { - if ($test = Converter::getMethodLink(str_replace('()','',$expr), $class, $package)) return $test; - } - // extract the function name, use it to retrieve the file that the function is in - // $page = $this->func_page[str_replace('function ','',str_replace('()','',$expr))]; - // return the link - if ($test = Converter::getFunctionLink(str_replace('function ','',str_replace('()','',$expr)), $package)) return $test; - } - // $expr is just a word. First, test to see if it is a function of the current package - if ($test = Converter::getFunctionLink(str_replace('function ','',str_replace('()','',$expr)), $package)) return $test; - // try other packages - // look in parent package first, if found - if (isset($this->package_parents[$package]) && in_array($this->package_parents[$package], $packages)) - { - $p1 = $package; - $package = $this->package_parents[$package]; - if ($package) - { - if (isset($packages[$package])) unset($packages[$package]); - } - continue; - } - // no parent package, so start with the first one that's left - $package = @array_shift(@array_keys($packages)); - if ($package && isset($packages[$package])) - { - unset($packages[$package]); - } - } while (count($packages) || $package); - $funcs = get_defined_functions(); - // feature 564991, link to php manual - if (in_array(str_replace(array('(',')'),array('',''),$expr),$funcs['internal'])) - { - return 'http://www.php.net/'.str_replace(array('(',')'),array('',''),$expr); - } - // no links found - return $expr; - } - - /** - * Split up getLink to make it easier to debug - * @access private - */ - function _getDoubleColon(&$expr, &$package, &$packages, $class, $links) - { - if (@strpos($expr,'::')) - { - $class_method = explode('::',$expr); - if ($class_method[0] == 'parent') - { - // can only have parent in the same package as the class! subtle bug - $package = $this->package; - $packages = array(); - $cl = $this->classes->getClassByPackage($class,$package); - if (!$cl) - { // this is possible if an example file has parent::method() - return $expr; - } - $par = $cl->getParent($this); - $phpparent = false; - if (is_object($par)) - { - $package = $par->docblock->package; - $phpparent = $par->getName(); - } else - { - addWarning(PDERROR_CLASS_PARENT_NOT_FOUND,$class,$package,$class_method[1]); - return $expr; - } - if ($phpparent) $class_method[0] = $phpparent; - } - if (strpos($class_method[1],'()')) - { - // strip everything but the function name, return a link - if ($test = Converter::getMethodLink(str_replace('()','',$class_method[1]), $class_method[0], $package)) return $test; - } - if ($test = Converter::getVarLink($class_method[1], $class_method[0], $package)) return $test; - if ($test = Converter::getConstLink($class_method[1], $class_method[0], $package)) return $test; - } - return $expr; - } - - /** - * cycle through parent classes to retrieve a link to a method - * do not use or override, used by getLink - * @access private - */ - function &getLinkMethod($expr, $class, $package) - { - $links = &$this->links; - do - { - // is $expr in class::method() or class::$variable format? - if (@strpos($expr,'::')) - { - $class_method = explode('::',$expr); - if ($class_method[0] == 'parent') - { - $cl = $this->classes->getClassByPackage($class,$package); - $par = $cl->getParent($this); - $phpparent = false; - if (is_object($par)) - { - $package = $par->docblock->package; - $phpparent = $par->getName(); - } else addWarning(PDERROR_CLASSPARENT_NOTFOUND,$class,$package,$class_method[1]); - if ($phpparent) $class_method[0] = $phpparent; - } else - { - $cl = $this->classes->getClassByPackage($class,$package); - } - if (strpos($class_method[1],'()')) - { - // strip everything but the function name, return a link - if ($test = Converter::getMethodLink(str_replace('function ','',str_replace('()','',$class_method[1])), $class_method[0], $package)) return $test; - } - } - if ($test = Converter::getMethodLink(str_replace('()','',$expr), $class, $package)) return $test; - $cl = $this->classes->getClassByPackage($class,$package); - if ($cl) - { - $par = $cl->getParent($this); - if (is_object($par)) - { - $package = $par->docblock->package; - $class = $par->getName(); - } else $class = $par; - } else $class = false; - } while ($class); - // no links found - return false; - } - - /** - * cycle through parent classes to retrieve a link to a var - * do not use or override, used by getLink - * @access private - */ - function &getLinkVar($expr, $class, $package) - { - $links = &$this->links; - do - { - // is $expr in class::method() or class::$variable format? - if (@strpos($expr,'::')) - { - $class_method = explode('::',$expr); - if ($class_method[0] == 'parent') - { - $cl = $this->classes->getClassByPackage($class,$package); - $phpparent = false; - $par = $cl->getParent($this); - if (is_object($par)) - { - $package = $par->docblock->package; - $phpparent = $par->getName(); - } else addWarning(PDERROR_CLASSPARENT_NOTFOUND,$class,$package,$class_method[1]); - if ($phpparent) $class_method[0] = $phpparent; - } else - { - $cl = $this->classes->getClassByPackage($class,$package); - } - if ($test = Converter::getVarLink($class_method[1], $class_method[0], $package)) return $test; - if ($test = Converter::getVarLink('$'.$class_method[1], $class_method[0], $package)) return $test; - } - if ($test = Converter::getVarLink($expr, $class, $package)) return $test; - if ($test = Converter::getVarLink('$'.$expr, $class, $package)) return $test; - $cl = $this->classes->getClassByPackage($class,$package); - if ($cl) - { - $par = $cl->getParent($this); - if (is_object($par)) - { - $package = $par->docblock->package; - $class = $par->getName(); - } else $class = $par; - } else $class = false; - } while ($class); - // no links found - $class = false; - return $class; - } - - /** - * cycle through parent classes to retrieve a link to a class constant - * do not use or override, used by getLink - * @access private - * @since 1.2.4 - */ - function &getLinkConst($expr, $class, $package) - { - $links = &$this->links; - do - { - // is $expr in class::method() or class::$variable format? - if (@strpos($expr,'::')) - { - $class_method = explode('::',$expr); - if ($class_method[0] == 'parent') - { - $cl = $this->classes->getClassByPackage($class,$package); - $phpparent = false; - $par = $cl->getParent($this); - if (is_object($par)) - { - $package = $par->docblock->package; - $phpparent = $par->getName(); - } else addWarning(PDERROR_CLASSPARENT_NOTFOUND,$class,$package,$class_method[1]); - if ($phpparent) $class_method[0] = $phpparent; - } else - { - $cl = $this->classes->getClassByPackage($class,$package); - } - if ($test = Converter::getConstLink($class_method[1], $class_method[0], $package)) return $test; - } - if ($test = Converter::getConstLink($expr, $class, $package)) return $test; - $cl = $this->classes->getClassByPackage($class,$package); - if ($cl) - { - $par = $cl->getParent($this); - if (is_object($par)) - { - $package = $par->docblock->package; - $class = $par->getName(); - } else $class = $par; - } else $class = false; - } while ($class); - // no links found - return false; - } - - /** - * take URL $link and text $text and return a link in the format needed for the Converter - * @param string URL - * @param string text to display - * @return string link to $link - * @abstract - */ - function returnLink($link,$text) - { - } - - /** - * take {@link abstractLink} descendant and text $eltext and return a link - * in the format needed for the Converter - * @param abstractLink - * @param string - * @return string link to $element - * @abstract - */ - function returnSee(&$link, $eltext = false) - { - } - - /** - * take {@link abstractLink} descendant and text $eltext and return a - * unique ID in the format needed for the Converter - * @param abstractLink - * @return string unique identifier of $element - * @abstract - */ - function getId(&$link) - { - } - - /** - * Convert README/INSTALL/CHANGELOG file contents to output format - * @param README|INSTALL|CHANGELOG - * @param string contents of the file - * @abstract - */ - function Convert_RIC($name, $contents) - { - } - - /** - * Convert all elements to output format - * - * This will call ConvertXxx where Xxx is {@link ucfirst}($element->type). - * It is expected that a child converter defines a handler for every - * element type, even if that handler does nothing. phpDocumentor will - * terminate with an error if a handler doesn't exist. - * {@internal - * Since 1.2.0 beta 3, this function has been moved from child converters - * to the parent, because it doesn't really make sense to put it in the - * child converter, and we can add error handling. - * - * {@source}}} - * @throws {@link PDERROR_NO_CONVERT_HANDLER} - * @param mixed {@link parserElement} descendant or {@link parserPackagePage} or {@link parserData} - */ - function Convert(&$element) - { - $handler = 'convert'.ucfirst($element->type); - if (method_exists($this,$handler)) - { - $this->$handler($element); - } else - { - addErrorDie(PDERROR_NO_CONVERTER_HANDLER,$element->type,$handler,phpDocumentor_get_class($this)); - } - } - /**#@+ - * Conversion Handlers - * - * All of the convert* handlers set up template variables for the Smarty - * template.{@internal In addition, the {@link newSmarty()} method is - * called to retrieve the global Smarty template}} - */ - /** - * Default Tutorial Handler - * - * Sets up the tutorial template, and its prev/next/parent links - * {@internal - * Retrieves the title using {@link parserTutorial::getTitle()} and uses the - * {@link parserTutorial::prev, parserTutorial::next, parserTutorial::parent} - * links to set up those links.}} - * @param parserTutorial - */ - function &convertTutorial(&$element) - { - $this->package = $element->package; - $this->subpackage = $element->subpackage; - $x = $element->Convert($this); - $template = &$this->newSmarty(); - $template->assign('contents',$x); - $template->assign('title',$element->getTitle($this)); - $template->assign('nav',$element->parent || $element->prev || $element->next); - if ($element->parent) - { - $template->assign('up',$this->getId($element->parent)); - $template->assign('uptitle',$element->parent->title); - } - if ($element->prev) - { - $template->assign('prev',$this->getId($element->prev)); - $template->assign('prevtitle',$element->prev->title); - } - if ($element->next) - { - $template->assign('next',$this->getId($element->next)); - $template->assign('nexttitle',$element->next->title); - } - return $template; - } - /** - * Default Class Handler - * - * Sets up the class template. - * {@internal special methods - * {@link generateChildClassList(), generateFormattedClassTree()}, - * {@link getFormattedConflicts, getFormattedInheritedMethods}, - * and {@link getFormattedInheritedVars} are called to complete vital - * template setup.}} - */ - function convertClass(&$element) - { - $this->class = $element->getName(); - $this->class_data = &$this->newSmarty(); - $this->class_data->assign("class_name",$element->getName()); - $this->class_data->assign("vars",array()); - $this->class_data->assign("methods",array()); - $this->class_data->assign("consts",array()); - $this->class_data->assign("is_interface", $element->isInterface()); - $this->class_data->assign("implements", $this->getFormattedImplements($element)); - $this->class_data->assign("package",$element->docblock->package); - $this->class_data->assign("line_number",$element->getLineNumber()); - $this->class_data->assign("source_location",$element->getSourceLocation($this)); - $this->class_data->assign("page_link",$this->getCurrentPageLink()); - $docblock = $this->prepareDocBlock($element, false); - $this->class_data->assign("sdesc",$docblock['sdesc']); - $this->class_data->assign("desc",$docblock['desc']); - $this->class_data->assign("access", $docblock['access']); - $this->class_data->assign("abstract", $docblock['abstract']); - $this->class_data->assign("tags",$docblock['tags']); - $this->class_data->assign("api_tags",$docblock['api_tags']); - $this->class_data->assign("info_tags",$docblock['info_tags']); - $this->class_data->assign("utags",$docblock['utags']); - if ($this->hasSourceCode($element->getPath())) { - $this->class_data->assign("class_slink",$this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true)); - } - - else - $this->class_data->assign("class_slink",false); - $this->class_data->assign("children", $this->generateChildClassList($element)); - $this->class_data->assign("class_tree", $this->generateFormattedClassTree($element)); - $this->class_data->assign("conflicts", $this->getFormattedConflicts($element,"classes")); - $inherited_methods = $this->getFormattedInheritedMethods($element); - if (!empty($inherited_methods)) - { - $this->class_data->assign("imethods",$inherited_methods); - } else - { - $this->class_data->assign("imethods",false); - } - $inherited_vars = $this->getFormattedInheritedVars($element); - if (!empty($inherited_vars)) - { - $this->class_data->assign("ivars",$inherited_vars); - } else - { - $this->class_data->assign("ivars",false); - } - $inherited_consts = $this->getFormattedInheritedConsts($element); - if (!empty($inherited_consts)) - { - $this->class_data->assign("iconsts",$inherited_consts); - } else - { - $this->class_data->assign("iconsts",false); - } - } - - - /** - * Converts method for template output - * - * This function must be called by a child converter with any extra - * template variables needed in the parameter $addition - * @param parserMethod - */ - function convertMethod(&$element, $additions = array()) - { - $fname = $element->getName(); - $docblock = $this->prepareDocBlock($element); - $returntype = 'void'; - if ($element->isConstructor) $returntype = $element->class; - if ($element->docblock->return) - { - $a = $element->docblock->return->Convert($this); - $returntype = $element->docblock->return->converted_returnType; - } - $params = $param_i = array(); - if (count($element->docblock->params)) - foreach($element->docblock->params as $param => $val) - { - $a = $val->Convert($this); - $params[] = $param_i[$param] = array("var" => $param,"datatype" => $val->converted_returnType,"data" => $a); - } - - if ($element->docblock->hasaccess) - $acc = $element->docblock->tags['access'][0]->value; - else - $acc = 'public'; - - - if ($this->hasSourceCode($element->getPath())) - $additions["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true); - $this->class_data->append('methods',array_merge( - array('sdesc' => $docblock['sdesc'], - 'desc' => $docblock['desc'], - 'access' => $docblock['access'], - 'abstract' => $docblock['abstract'], - 'tags' => $docblock['tags'], - 'api_tags' => $docblock['api_tags'], - 'info_tags' => $docblock['info_tags'], - 'utags' => $docblock['utags'], - 'constructor' => $element->isConstructor, - 'access' => $acc, - 'function_name' => $fname, - 'function_return' => $returntype, - 'function_call' => $element->getFunctionCall(), - 'ifunction_call' => $element->getIntricateFunctionCall($this, $param_i), - 'descmethod' => $this->getFormattedDescMethods($element), - 'method_overrides' => $this->getFormattedOverrides($element), - 'line_number' => $element->getLineNumber(), - 'id' => $this->getId($element), - 'params' => $params), - $additions)); - } - - /** - * Converts class variables for template output. - * - * This function must be called by a child converter with any extra - * template variables needed in the parameter $addition - * @param parserVar - */ - function convertVar(&$element, $additions = array()) - { - $docblock = $this->prepareDocBlock($element); - $b = 'mixed'; - - if ($element->docblock->hasaccess) - $acc = $element->docblock->tags['access'][0]->value; - else - $acc = 'public'; - - if ($element->docblock->var) - { - $b = $element->docblock->var->converted_returnType; - } - if ($this->hasSourceCode($element->getPath())) - $additions["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true); - $this->class_data->append('vars',array_merge( - array('sdesc' => $docblock['sdesc'], - 'desc' => $docblock['desc'], - 'abstract' => $docblock['abstract'], - 'utags' => $docblock['utags'], - 'tags' => $docblock['tags'], - 'api_tags' => $docblock['api_tags'], - 'info_tags' => $docblock['info_tags'], - 'var_name' => $element->getName(), - 'var_default' => $this->postProcess($element->getValue()), - 'var_type' => $b, - 'access' => $acc, - 'line_number' => $element->getLineNumber(), - 'descvar' => $this->getFormattedDescVars($element), - 'var_overrides' => $this->getFormattedOverrides($element), - 'id' => $this->getId($element)), - $additions)); - } - - /** - * Converts class constants for template output. - * - * This function must be called by a child converter with any extra - * template variables needed in the parameter $addition - * @param parserConst - */ - function convertConst(&$element, $additions = array()) - { - $docblock = $this->prepareDocBlock($element); - - if ($element->docblock->hasaccess) - $acc = $element->docblock->tags['access'][0]->value; - else - $acc = 'public'; - - if ($this->hasSourceCode($element->getPath())) - $additions["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true); - $this->class_data->append('consts',array_merge( - array('sdesc' => $docblock['sdesc'], - 'desc' => $docblock['desc'], - 'access' => $docblock['access'], - 'abstract' => $docblock['abstract'], - 'utags' => $docblock['utags'], - 'tags' => $docblock['tags'], - 'api_tags' => $docblock['api_tags'], - 'info_tags' => $docblock['info_tags'], - 'const_name' => $element->getName(), - 'const_value' => $this->postProcess($element->getValue()), - 'access' => $acc, - 'line_number' => $element->getLineNumber(), - 'id' => $this->getId($element)), - $additions)); - } - - /** - * Default Page Handler - * - * {@internal In addition to setting up the smarty template with {@link newSmarty()}, - * this class uses {@link getSourceLocation()} and {@link getClassesOnPage()} - * to set template variables. Also used is {@link getPageName()}, to get - * a Converter-specific name for the page.}} - * @param parserPage - */ - function convertPage(&$element) - { - $this->page_data = &$this->newSmarty(true); - $this->page = $this->getPageName($element->parent); - $this->path = $element->parent->getPath(); - $this->curpage = &$element->parent; - $this->page_data->assign("source_location",$element->parent->getSourceLocation($this)); - $this->page_data->assign("functions",array()); - $this->page_data->assign("includes",array()); - $this->page_data->assign("defines",array()); - $this->page_data->assign("globals",array()); - $this->page_data->assign("classes",$this->getClassesOnPage($element)); - $this->page_data->assign("name", $element->parent->getFile()); - if ($t = $element->getTutorial()) - { - $this->page_data->assign("tutorial",$this->returnSee($t)); - } else - { - $this->page_data->assign("tutorial",false); - } - if ($element->docblock) - { - $docblock = $this->prepareDocBlock($element, false); - $this->page_data->assign("sdesc",$docblock['sdesc']); - $this->page_data->assign("desc",$docblock['desc']); - $this->page_data->assign("tags",$docblock['tags']); - $this->page_data->assign("api_tags",$docblock['api_tags']); - $this->page_data->assign("info_tags",$docblock['info_tags']); - $this->page_data->assign("utags",$docblock['utags']); - } - } - - /** - * Converts global variables for template output - * - * This function must be called by a child converter with any extra - * template variables needed in the parameter $addition - * {@internal - * In addition to using {@link prepareDocBlock()}, this method also - * uses utility functions {@link getGlobalValue(), getFormattedConflicts()}}} - * @param parserGlobal - * @uses postProcess() on global_value template value, makes it displayable - * @param array any additional template variables should be in this array - */ - function convertGlobal(&$element, $addition = array()) - { - $docblock = $this->prepareDocBlock($element); - $value = $this->getGlobalValue($element->getValue()); - if ($this->hasSourceCode($element->getPath())) - $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true); - $this->page_data->append('globals',array_merge( - array('sdesc' => $docblock['sdesc'], - 'desc' => $docblock['desc'], - 'tags' => $docblock['tags'], - 'api_tags' => $docblock['api_tags'], - 'info_tags' => $docblock['info_tags'], - 'utags' => $docblock['utags'], - 'global_name' => $element->getName(), - 'global_type' => $element->getDataType($this), - 'global_value' => $this->postProcess($value), - 'line_number' => $element->getLineNumber(), - 'global_conflicts' => $this->getFormattedConflicts($element,"global variables"), - 'id' => $this->getId($element)), - $addition)); - } - - /** - * Converts defines for template output - * - * This function must be called by a child converter with any extra - * template variables needed in the parameter $addition - * {@internal - * In addition to using {@link prepareDocBlock()}, this method also - * uses utility functions {@link getGlobalValue(), getFormattedConflicts()}}} - * @param parserDefine - * @uses postProcess() on define_value template value, makes it displayable - * @param array any additional template variables should be in this array - */ - function convertDefine(&$element, $addition = array()) - { - $docblock = $this->prepareDocBlock($element); - if ($this->hasSourceCode($element->getPath())) - $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true); - $this->page_data->append('defines',array_merge( - array('sdesc' => $docblock['sdesc'], - 'desc' => $docblock['desc'], - 'tags' => $docblock['tags'], - 'api_tags' => $docblock['api_tags'], - 'info_tags' => $docblock['info_tags'], - 'utags' => $docblock['utags'], - 'define_name' => $element->getName(), - 'line_number' => $element->getLineNumber(), - 'define_value' => $this->postProcess($element->getValue()), - 'define_conflicts' => $this->getFormattedConflicts($element,"defines"), - 'id' => $this->getId($element)), - $addition)); - } - - - /** - * Converts includes for template output - * - * This function must be called by a child converter with any extra - * template variables needed in the parameter $addition - * @see prepareDocBlock() - * @param parserInclude - */ - function convertInclude(&$element, $addition = array()) - { - $docblock = $this->prepareDocBlock($element); - $per = $this->getIncludeValue($element->getValue(), $element->getPath()); - - if ($this->hasSourceCode($element->getPath())) - $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true); - $this->page_data->append('includes',array_merge( - array('sdesc' => $docblock['sdesc'], - 'desc' => $docblock['desc'], - 'tags' => $docblock['tags'], - 'api_tags' => $docblock['api_tags'], - 'info_tags' => $docblock['info_tags'], - 'utags' => $docblock['utags'], - 'include_name' => $element->getName(), - 'line_number' => $element->getLineNumber(), - 'include_value' => $per), - $addition)); - } - - /** - * Converts function for template output - * - * This function must be called by a child converter with any extra - * template variables needed in the parameter $addition - * @see prepareDocBlock() - * @param parserFunction - */ - function convertFunction(&$element, $addition = array()) - { - $docblock = $this->prepareDocBlock($element); - $fname = $element->getName(); - $params = $param_i = array(); - if (count($element->docblock->params)) - foreach($element->docblock->params as $param => $val) - { - $a = $val->Convert($this); - $params[] = $param_i[$param] = array("var" => $param,"datatype" => $val->converted_returnType,"data" => $a); - } - $returntype = 'void'; - if ($element->docblock->return) - { - $a = $element->docblock->return->Convert($this); - $returntype = $element->docblock->return->converted_returnType; - } - - if ($this->hasSourceCode($element->getPath())) - $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true); - $this->page_data->append('functions',array_merge( - array('sdesc' => $docblock['sdesc'], - 'desc' => $docblock['desc'], - 'tags' => $docblock['tags'], - 'api_tags' => $docblock['api_tags'], - 'info_tags' => $docblock['info_tags'], - 'utags' => $docblock['utags'], - 'function_name' => $fname, - 'function_return' => $returntype, - 'function_conflicts' => $this->getFormattedConflicts($element,"functions"), - 'ifunction_call' => $element->getIntricateFunctionCall($this, $param_i), - 'function_call' => $element->getFunctionCall(), - 'line_number' => $element->getLineNumber(), - 'id' => $this->getId($element), - 'params' => $params), - $addition)); - } - /**#@-*/ - - /** - * convert the element's DocBlock for output - * - * This function converts all tags and descriptions for output - * @param mixed any descendant of {@link parserElement}, or {@link parserData} - * @param array used to translate tagnames into other tags - * @param boolean set to false for pages and classes, the only elements allowed to specify @package - * @return array - * - * Format: - *
        -     * array('sdesc' => DocBlock summary
        -     *       'desc' => DocBlock detailed description
        -     *       'tags' => array('keyword' => tagname, 'data' => tag description)
        -     *                 known tags
        -     *       'api_tags' => array('keyword' => tagname, 'data' => tag description)
        -     *                 known api documentation tags
        -     *       'info_tags' => array('keyword' => tagname, 'data' => tag description)
        -     *                 known informational tags
        -     *     [ 'utags' => array('keyword' => tagname, 'data' => tag description
        -     *                 unknown tags ]
        -     *     [ 'vartype' => type from @var/@return tag ]
        -     *     [ 'var_descrip' => description from @var/@return tag ]
        -     *      )
        -     * 
        - */ - function prepareDocBlock(&$element, $names = array(),$nopackage = true) - { - $tagses = $element->docblock->listTags(); - $tags = $ret = $api_tags = $info_tags = array(); - $api_tags_arr = array("abstract", "access", "deprecated", "example", "filesource", - "global", "internal", "name", "return", "see", "static", - "staticvar", "uses", "var"); - if (!$nopackage) - { - $tags[] = array('keyword' => 'package','data' => $element->docblock->package); - if (!empty($element->docblock->subpackage)) $tags[] = array('keyword' => 'subpackage','data' => $element->docblock->subpackage); - } - if ($element->docblock->var) - { - $a = $element->docblock->var->Convert($this); - $ret['vartype'] = $element->docblock->var->converted_returnType; - if (!empty($a)) - { - $tags[] = array('keyword' => 'var', 'data' => $a); - $ret["var_descrip"] = $a; - } - } - if ($element->docblock->return) - { - $a = $element->docblock->return->Convert($this); - $ret['vartype'] = $element->docblock->return->converted_returnType; - if (!empty($a)) - { - $tags[] = $api_tags[] = array('keyword' => 'return', 'data' => $a); - $ret["var_descrip"] = $a; - } - } - if ($element->docblock->funcglobals) - foreach($element->docblock->funcglobals as $global => $val) - { - if ($a = $this->getGlobalLink($global,$element->docblock->package)) - { - $global = $a; - } - $b = Converter::getLink($val[0]); - if (is_object($b) && phpDocumentor_get_class($b) == 'classlink') - { - $val[0] = $this->returnSee($b); - } - $tags[] = $api_tags[] = array('keyword' => 'global','data' => $val[0].' '.$global.': '.$val[1]->Convert($this)); - } - if ($element->docblock->statics) - foreach($element->docblock->statics as $static => $val) - { - $a = $val->Convert($this); - $tags[] = $api_tags[] = array('keyword' => 'staticvar','data' => $val->converted_returnType.' '.$static.': '.$a); - } - foreach($tagses as $tag) - { - if (isset($names[$tag->keyword])) $tag->keyword = $names[$tag->keyword]; - if ($tag->keyword) - $tags[] = array("keyword" => $tag->keyword,"data" => $tag->Convert($this)); - if (in_array($tag->keyword, $api_tags_arr)) - $api_tags[] = array("keyword" => $tag->keyword,"data" => $tag->Convert($this)); - else - $info_tags[] = array("keyword" => $tag->keyword,"data" => $tag->Convert($this)); - } - $utags = array(); - foreach($element->docblock->unknown_tags as $keyword => $tag) - { - foreach($tag as $t) - $utags[] = array('keyword' => $keyword, 'data' => $t->Convert($this)); - } - $ret['abstract'] = FALSE; - $ret['access'] = 'public'; - foreach($tags as $tag) - { - if ($tag['keyword'] == 'access') - $ret['access'] = $tag['data']; - if ($tag['keyword'] == 'abstract') - $ret['abstract'] = TRUE; - } - $ret['sdesc'] = $element->docblock->getSDesc($this); - $ret['desc'] = $element->docblock->getDesc($this); - $ret['tags'] = $tags; - $ret['api_tags'] = $api_tags; - $ret['info_tags'] = $info_tags; - $ret['utags'] = $utags; - return $ret; - } - - /** - * gets a list of all classes declared on a procedural page represented by - * $element, a {@link parserData} class - * @param parserData &$element - * @return array links to each classes documentation - * - * Format: - *
        -     * array('name' => class name,
        -     *       'sdesc' => summary of the class
        -     *       'link' => link to the class's documentation)
        -     * 
        - */ - function getClassesOnPage(&$element) - { - global $_phpDocumentor_setting; - $a = $element->getClasses($this); - $classes = array(); - foreach($a as $package => $clas) - { - if (isset($_phpDocumentor_setting['packageoutput'])) - { - $packages = explode(',',$_phpDocumentor_setting['packageoutput']); - if (!in_array($package, $packages)) continue; - } - for($i=0; $iparseprivate || ! ($clas[$i]->docblock && $clas[$i]->docblock->hasaccess && $clas[$i]->docblock->tags['access'][0]->value == 'private')) - { - $sdesc = ''; - $r = array(); - $sdesc = $clas[$i]->docblock->getSDesc($this); - if ($clas[$i]->docblock->hasaccess) - $r['access'] = $clas[$i]->docblock->tags['access'][0]->value; - else - $r['access'] = 'public'; - if (isset ($clas[$i]->docblock->tags['abstract'])) - $r['abstract'] = TRUE; - else - $r['abstract'] = FALSE; - $r['name'] = $clas[$i]->getName(); - $r['sdesc'] = $sdesc; - $r['link'] = $this->getClassLink($clas[$i]->getName(),$package,$clas[$i]->getPath()); - $classes[] = $r; - } - } - } - return $classes; - } - - /** - * returns an array containing the class inheritance tree from the root - * object to the class. - * - * This method must be overridden, or phpDocumentor will halt with a fatal - * error - * @return string Converter-specific class tree for an individual class - * @param parserClass class variable - * @abstract - */ - - function generateFormattedClassTree($class) - { - addErrorDie(PDERROR_CONVERTER_OVR_GFCT,phpDocumentor_get_class($this)); - } - - /** - * returns an array containing the class inheritance tree from the root - * object to the class. - * - * This method must be overridden, or phpDocumentor will halt with a fatal - * error - * @return string Converter-specific class tree for an individual class - * @param parserClass class variable - * @abstract - */ - - function getFormattedImplements($el) - { - $ret = array(); - foreach ($el->getImplements() as $interface) - { - $ret[] = $this->returnSee($this->getLink($interface)); - } - return $ret; - } - - /** - * @param mixed {@link parserClass, parserFunction, parserDefine} or - * {@link parserGlobal} - * @param string type to display. either 'class','function','define' - * or 'global variable' - * @return array links to conflicting elements, or empty array - * @uses parserClass::getConflicts() - * @uses parserFunction::getConflicts() - * @uses parserDefine::getConflicts() - * @uses parserGlobal::getConflicts() - */ - function getFormattedConflicts(&$element,$type) - { - $conflicts = $element->getConflicts($this); - $r = array(); - if (!$conflicts) return false; - foreach($conflicts as $package => $class) - { - $r[] = $class->getLink($this,$class->docblock->package); - } - if (!empty($r)) $r = array('conflicttype' => $type, 'conflicts' => $r); - return $r; - } - - /** - * Get a list of methods in child classes that override this method - * @return array empty array or array(array('link'=>link to method, - * 'sdesc'=>short description of the method),...) - * @uses parserMethod::getOverridingMethods() - * @param parserMethod - */ - function getFormattedDescMethods(&$element) - { - $meths = $element->getOverridingMethods($this); - $r = array(); - for($i=0; $igetLink($this); - $ms['sdesc'] = $meths[$i]->docblock->getSDesc($this); - $r[] = $ms; - } - return $r; - } - - /** - * Get a list of vars in child classes that override this var - * @return array empty array or array('link'=>link to var, - * 'sdesc'=>short description of the method - * @uses parserVar::getOverridingVars() - * @param parserVar - */ - function getFormattedDescVars(&$element) - { - $vars = $element->getOverridingVars($this); - $r = array(); - for($i=0; $igetLink($this); - $vs['sdesc'] = $vars[$i]->docblock->getSDesc($this); - $r[] = $vs; - } - return $r; - } - - /** - * Get the method this method overrides, if any - * @return array|false array('link'=>link to overridden method, - * 'sdesc'=>short description - * @see parserMethod::getOverrides() - * @param parserMethod - */ - function getFormattedOverrides(&$element) - { - $ovr = $element->getOverrides($this); - if (!$ovr) return false; - $sdesc = $ovr->docblock->getSDesc($this); - return array('link' => $ovr->getLink($this),'sdesc' => $sdesc); - } - - /** - * returns a list of child classes - * - * @param parserClass class variable - * @uses parserClass::getChildClassList() - */ - - function generateChildClassList($class) - { - $kids = $class->getChildClassList($this); - $list = array(); - if (count($kids)) - { - for($i=0; $igetLink($this); - $lt['sdesc'] = $kids[$i]->docblock->getSDesc($this); - - if ($kids[$i]->docblock->hasaccess) - $lt['access'] = $kids[$i]->docblock->tags['access'][0]->value; - else - $lt['access'] = 'public'; - - $lt['abstract'] = isset ($kids[$i]->docblock->tags['abstract'][0]); - - $list[] = $lt; - } - } else return false; - return $list; - } - - /** - * Return template-enabled list of inherited variables - * - * uses parserVar helper function getInheritedVars and generates a - * template-enabled list using getClassLink() - * @param parserVar $child class method - * @see getClassLink(), parserVar::getInheritedVars() - * @return array Format: - *
        -     * array(
        -     *   array('parent_class' => link to parent class's documentation,
        -     *         'ivars' =>
        -     *            array(
        -     *              array('name' => inherited variable name,
        -     *                    'link' => link to inherited variable's documentation,
        -     *                    'default' => default value of inherited variable,
        -     *                    'sdesc' => summary of inherited variable),
        -     *              ...),
        -     *   ...)
        -     * 
        - */ - - function getFormattedInheritedVars($child) - { - $package = $child->docblock->package; - $subpackage = $child->docblock->subpackage; - $ivars = $child->getInheritedVars($this); - $results = array(); - if (!count($ivars)) return $results; - foreach($ivars as $parent => $vars) - { - $file = $vars['file']; - $vars = $vars['vars']; - $par = $this->classes->getClass($parent,$file); - $package = $par->docblock->package; - usort($vars,array($this,"sortVar")); - $result['parent_class'] = $this->getClassLink($parent,$package); - foreach($vars as $var) - { - $info = array(); - - if ($var->docblock->hasaccess) - $info['access'] = $var->docblock->tags['access'][0]->value; - else - $info['access'] = 'public'; - - $info['abstract'] = isset ($var->docblock->tags['abstract'][0]); - - $info['name'] = $var->getName(); - $info['link'] = $var->getLink($this); - $info['default'] = $this->postProcess($var->getValue()); - if ($var->docblock) - $info['sdesc'] = $var->docblock->getSDesc($this); - $result["ivars"][] = $info; - } - $results[] = $result; - $result = array(); - } - return $results; - } - - /** - * Return template-enabled list of inherited methods - * - * uses parserMethod helper function getInheritedMethods and generates a - * template-enabled list using getClassLink() - * @param parserMethod $child class method - * @see getClassLink(), parserMethod::getInheritedMethods() - * @return array Format: - *
        -     * array(
        -     *   array('parent_class' => link to parent class's documentation,
        -     *         'ivars' =>
        -     *            array(
        -     *              array('name' => inherited variable name,
        -     *                    'link' => link to inherited variable's documentation,
        -     *                    'function_call' => {@link parserMethod::getIntricateFunctionCall()}
        -     *                                       returned array,
        -     *                    'sdesc' => summary of inherited variable),
        -     *              ...),
        -     *   ...)
        -     * 
        - */ - - function getFormattedInheritedMethods($child) - { - $package = $child->docblock->package; - $subpackage = $child->docblock->subpackage; - $imethods = $child->getInheritedMethods($this); - $results = array(); - if (!count($imethods)) return $results; - foreach($imethods as $parent => $methods) - { - $file = $methods['file']; - $methods = $methods['methods']; - $par = $this->classes->getClass($parent,$file); - $package = $par->docblock->package; - usort($methods,array($this,"sortMethod")); - $result['parent_class'] = $this->getClassLink($parent,$package); - foreach($methods as $method) - { - $info = array(); - - if ($method->docblock->hasaccess) - $info['access'] = $method->docblock->tags['access'][0]->value; - else - $info['access'] = 'public'; - - $info['abstract'] = isset ($method->docblock->tags['abstract'][0]); - - if ($method->isConstructor) $info['constructor'] = 1; - $info['link'] = $method->getLink($this); - $info['name'] = $method->getName(); - if ($method->docblock) - $info['sdesc'] = $method->docblock->getSDesc($this); - $params = array(); - if (count($method->docblock->params)) - foreach($method->docblock->params as $param => $val) - { - $a = $val->Convert($this); - $params[$param] = array("var" => $param,"datatype" => $val->converted_returnType,"data" => $a); - } - - $info['function_call'] = $method->getIntricateFunctionCall($this,$params); - $result["imethods"][] = $info; - } - $results[] = $result; - $result = array(); - } - return $results; - } - - /** - * Return template-enabled list of inherited class constants - * - * uses parserConst helper function getInheritedConsts and generates a - * template-enabled list using getClassLink() - * @param parserConst $child class constant - * @see getClassLink(), parserMethod::getInheritedConsts() - * @return array Format: - *
        -     * array(
        -     *   array('parent_class' => link to parent class's documentation,
        -     *         'ivars' =>
        -     *            array(
        -     *              array('name' => inherited constant name,
        -     *                    'link' => link to inherited constant's documentation,
        -     *                    'value' => constant value,
        -     *                    'sdesc' => summary of inherited constant),
        -     *              ...),
        -     *   ...)
        -     * 
        - */ - - function getFormattedInheritedConsts($child) - { - $package = $child->docblock->package; - $subpackage = $child->docblock->subpackage; - $ivars = $child->getInheritedConsts($this); - $results = array(); - if (!count($ivars)) return $results; - foreach($ivars as $parent => $vars) - { - $file = $vars['file']; - $vars = $vars['consts']; - $par = $this->classes->getClass($parent,$file); - $package = $par->docblock->package; - usort($vars,array($this,"sortVar")); - $result['parent_class'] = $this->getClassLink($parent,$package); - foreach($vars as $var) - { - $info = array(); - - if ($var->docblock->hasaccess) - $info['access'] = $var->docblock->tags['access'][0]->value; - else - $info['access'] = 'public'; - - $info['name'] = $var->getName(); - $info['link'] = $var->getLink($this); - $info['value'] = $this->postProcess($var->getValue()); - if ($var->docblock) - $info['sdesc'] = $var->docblock->getSDesc($this); - $result["iconsts"][] = $info; - } - $results[] = $result; - $result = array(); - } - return $results; - } - - /** - * Return a Smarty template object to operate with - * - * This returns a Smarty template with pre-initialized variables for use. - * If the method "SmartyInit()" exists, it is called. - * @return Smarty - */ - function &newSmarty() - { - $templ = new Smarty; - $templ->use_sub_dirs = false; - $templ->template_dir = realpath($this->smarty_dir . PATH_DELIMITER . 'templates'); - $templ->compile_dir = realpath($this->smarty_dir . PATH_DELIMITER . 'templates_c'); - $templ->config_dir = realpath($this->smarty_dir . PATH_DELIMITER . 'configs'); - $templ->assign("date",date("r",time())); - $templ->assign("maintitle",$this->title); - $templ->assign("package",$this->package); - $templ->assign("phpdocversion",PHPDOCUMENTOR_VER); - $templ->assign("phpdocwebsite",PHPDOCUMENTOR_WEBSITE); - $templ->assign("subpackage",$this->subpackage); - if (method_exists($this,'SmartyInit')) return $this->SmartyInit($templ); - return $templ; - } - - /** - * do all necessary output - * @see Converter - * @abstract - */ - function Output($title) - { - phpDocumentor_out("WARNING: Generic Converter::Output was used, no output will be generated"); - } - - /** - * Set the template directory with a different template base directory - * @tutorial phpDocumentor.howto.pkg#using.command-line.templatebase - * @param string template base directory - * @param string template name - */ - function setTemplateBase($base, $dir) - { - // remove trailing /'s from the base path, if any - $base = str_replace('\\','/',$base); - while ($base{strlen($base) - 1} == '/') $base = substr($base,0,strlen($base) - 1); - $this->templateName = substr($dir,0,strlen($dir) - 1); - $this->templateDir = $base . "/Converters/" . $this->outputformat . "/" . $this->name . "/templates/" . $dir; - if (!is_dir($this->templateDir)) - { - addErrorDie(PDERROR_TEMPLATEDIR_DOESNT_EXIST, $this->templateDir); - } - - $this->smarty_dir = $this->templateDir; - if (file_exists($this->templateDir . PATH_DELIMITER . 'options.ini')) - { - // retrieve template options, allow array creation - $this->template_options = phpDocumentor_parse_ini_file($this->templateDir . PATH_DELIMITER . 'options.ini',true); - } - } - - /** - * sets the template directory based on the {@link $outputformat} and {@link $name} - * Also sets {@link $templateName} to the $dir parameter - * @param string subdirectory - */ - function setTemplateDir($dir) - { - if ('@DATA-DIR@' != '@'.'DATA-DIR@') { - $templateBase = str_replace('\\', '/', '@DATA-DIR@/PhpDocumentor/phpDocumentor'); - } else { - $templateBase = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . '/phpDocumentor'; - } - $this->setTemplateBase($templateBase, $dir); - } - - /** - * Get the absolute path to the converter's base directory - * @return string - */ - function getConverterDir() - { - if (/*@donotremove*/0) { - return str_replace('\\', '/', "@DATA-DIR@/PhpDocumentor/phpDocumentor/Converters/") . $this->outputformat . "/" . $this->name; - } else { - return str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) ."/phpDocumentor/Converters/" . $this->outputformat . "/" . $this->name; - } - } - - /** - * Parse a global variable's default value for class initialization. - * - * If a global variable's default value is "new class" as in: - * - * $globalvar = new Parser - * - * This method will document it not as "new Parser" but instead as - * "new {@link Parser}". For examples, see {@link phpdoc.inc}. - * Many global variables are classes, and phpDocumentor links to their - * documentation - * @return string default global variable value with link to class if - * it's "new Class" - * @param string default value of a global variable. - */ - function getGlobalValue($value) - { - if (strpos($value,'new') === 0) - { - preg_match('/new([^(]*)(.*)/',$value,$newval); - if (isset($newval[1])) - { - $a = Converter::getLink(trim($newval[1])); - if (!isset($newval[2])) $newval[2] = ''; - if ($a && phpDocumentor_get_class($a) == 'classlink') $value = 'new '.$this->returnSee($a).$newval[2]; - } - } - return $value; - } - - /** - * Parse an include's file to see if it is a file documented in this project - * - * Although not very smart yet, this method will try to look for the - * included file file.ext: - * - * - * include ("file.ext"); - * - * - * If it finds it, it will return a link to the file's documentation. As of - * 1.2.0rc1, phpDocumentor is smarty enough to find these cases: - *
          - *
        • absolute path to file
        • - *
        • ./file.ext or ../file.ext
        • - *
        • relpath/to/file.ext if relpath is a subdirectory of the base parse - * directory
        • - *
        - * For examples, see {@link Setup.inc.php} includes. - * Every include auto-links to the documentation for the file that is included - * @return string included file with link to docs for file, if found - * @param string file included by include statement. - * @param string path of file that has the include statement - */ - function getIncludeValue($value, $ipath) - { - preg_match('/"([^"\']*\.[^"\']*)"/',$value,$match); - if (!isset($match[1])) - preg_match('/\'([^"\']*\.[^"\']*)\'/',$value,$match); - if (isset($match[1])) - { - $fancy_per = $this->proceduralpages->pathMatchesParsedFile($match[1],$ipath); - if ($fancy_per) - { - $link = $this->addLink($fancy_per); - if (is_object($link) && phpDocumentor_get_class($link) == 'pagelink' && - isset($this->all_packages[$link->package])) - { - $value = $this->returnSee($link,$value); - } - } else - { - $per = Converter::getLink($match[1]); - if (is_object($per) && phpDocumentor_get_class($per) == 'pagelink') - $value = $this->returnSee($per); - } - } - return $value; - } - - /** - * Recursively creates all subdirectories that don't exist in the $dir path - * @param string $dir - */ - function createParentDir($dir) - { - if (empty($dir)) return; - $tmp = explode(SMART_PATH_DELIMITER,$dir); - array_pop($tmp); - $parent = implode(SMART_PATH_DELIMITER,$tmp); - if ($parent != '' && !file_exists($parent)) - { - $test = @mkdir($parent,0775); - if (!$test) - { - $this->createParentDir($parent); - $test = @mkdir($parent,0775); - phpDocumentor_out("Creating Parent Directory $parent\n"); - } else - { - phpDocumentor_out("Creating Parent Directory $parent\n"); - } - } - } - - /** - * Sets the output directory for generated documentation - * @param string $dir the output directory - */ - function setTargetDir($dir) - { - if (strlen($dir) > 0) - { - $this->targetDir = $dir; - // if directory does exist create it, this should have more error checking in the future - if (!file_exists($dir)) - { - $tmp = str_replace(array("/","\\"),SMART_PATH_DELIMITER,$dir); - if (substr($tmp,-1) == SMART_PATH_DELIMITER) - { - $tmp = substr($tmp,0,(strlen($tmp)-1)); - } - $this->createParentDir($tmp); - phpDocumentor_out("Creating Directory $dir\n"); - mkdir($dir,0775); - } - else if (!is_dir($dir)) - { - echo "Output path: '$dir' is not a directory\n"; - die(); - } - } else { - echo "a target directory must be specified\n try phpdoc -h\n"; - die(); - } - } - - /** - * Writes a file to target dir - * @param string - * @param string - * @param boolean true if the data is binary and not text - */ - function writeFile($file,$data,$binary = false) - { - if (!file_exists($this->targetDir)) - { - mkdir($this->targetDir,0775); - } - $string = ''; - if ($binary) $string = 'binary file '; - phpDocumentor_out(" Writing $string".$this->targetDir . PATH_DELIMITER . $file . "\n"); - flush(); - $write = 'w'; - if ($binary) $write = 'wb'; - $fp = fopen($this->targetDir . PATH_DELIMITER . $file,$write); - set_file_buffer( $fp, 0 ); - fwrite($fp,$data,strlen($data)); - fclose($fp); - } - - /** - * Copies a file from the template directory to the target directory - * thanks to Robert Hoffmann for this fix - * @param string - */ - function copyFile($file, $subdir = '') - { - if (!file_exists($this->targetDir)) - { - mkdir($this->targetDir,0775); - } - copy($this->templateDir . $subdir . PATH_DELIMITER . $file, $this->targetDir . PATH_DELIMITER . $file); - } - - /** - * Return parserStringWithInlineTags::Convert() cache state - * @see parserStringWithInlineTags::Convert() - * @abstract - */ - function getState() - { - return true; - } - - /** - * Compare parserStringWithInlineTags::Convert() cache state to $state - * @param mixed - * @see parserStringWithInlineTags::Convert() - * @abstract - */ - function checkState($state) - { - return true; - } - -} - -/** - * @access private - * @see Converter::getSortedClassTreeFromClass() - */ -function rootcmp($a, $b) -{ - return strnatcasecmp($a['class'],$b['class']); -} - -/** - * @access private - * @global string used to make the first tutorials converted the default package tutorials - */ -function tutorialcmp($a, $b) -{ - global $phpDocumentor_DefaultPackageName; - if ($a == $phpDocumentor_DefaultPackageName) return -1; - if ($b == $phpDocumentor_DefaultPackageName) return 1; - return strnatcasecmp($a, $b); -} - -/** - * smart htmlentities, doesn't entity the allowed tags list - * Since version 1.1, this function uses htmlspecialchars instead of - * htmlentities, for international support - * This function has been replaced by functionality in {@link ParserDescCleanup.inc} - * @param string $s - * @return string browser-displayable page - * @deprecated As of v1.2, No longer needed, as valid tags are parsed out of the source, - * and everything else is {@link Converter::postProcess()} handled - */ -function adv_htmlentities($s) -{ - return; - global $phpDocumentor___html,$_phpDocumentor_html_allowed; - $result = htmlspecialchars($s); - $entities = array_flip(get_html_translation_table(HTML_SPECIALCHARS)); - $result = strtr($result,$phpDocumentor___html); - $matches = array(); - preg_match_all('/(<img.*>)/U',$result,$matches); - for($i=0;$igetName(); - return '_'.$element->parent->getName(); - } -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc deleted file mode 100644 index 87674ac0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc +++ /dev/null @@ -1,1755 +0,0 @@ - - * @since 1.0rc1 - * @version $Id: CHMdefaultConverter.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -/** - * Generates files that MS HTML Help Worshop can use to create a MS Windows - * compiled help file (CHM) - * - * The free MS HTML Help compiler takes the project file (phpdoc.hhp) and reads - * the table of contents file specified in the project (which is always contents.hhc - * in phpDocumentor). When the converter reaches stable state, it will also - * output an index file index.hhk. The free download for MS HTML Help Workshop - * is available below - * @link http://www.microsoft.com/downloads/release.asp?releaseid=33071 MS HTML Help Workshop download - * @package Converters - * @subpackage CHMdefault - * @author Greg Beaver - * @since 1.0rc1 - * @version $Revision: 1.1 $ - */ -class CHMdefaultConverter extends Converter -{ - /** - * CHMdefaultConverter wants elements sorted by type as well as alphabetically - * @see Converter::$sort_page_contents_by_type - * @var boolean - */ - var $sort_page_contents_by_type = true; - /** @var string */ - var $outputformat = 'CHM'; - /** @var string */ - var $name = 'default'; - /** - * indexes of elements by package that need to be generated - * @var array - */ - var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => false, 'globals' => false); - - /** - * output directory for the current procedural page being processed - * @var string - */ - var $page_dir; - - /** - * target directory passed on the command-line. - * {@link $targetDir} is malleable, always adding package/ and package/subpackage/ subdirectories onto it. - * @var string - */ - var $base_dir; - - /** - * output directory for the current class being processed - * @var string - */ - var $class_dir; - - /** - * array of converted package page names. - * Used to link to the package page in the left index - * @var array Format: array(package => 1) - */ - var $package_pages = array(); - - /** - * controls formatting of parser informative output - * - * Converter prints: - * "Converting /path/to/file.php... Procedural Page Elements... Classes..." - * Since CHMdefaultConverter outputs files while converting, it needs to send a \n to start a new line. However, if there - * is more than one class, output is messy, with multiple \n's just between class file output. This variable prevents that - * and is purely cosmetic - * @var boolean - */ - var $juststarted = false; - - /** - * contains all of the template procedural page element loop data needed for the current template - * @var array - */ - var $current; - - /** - * contains all of the template class element loop data needed for the current template - * @var array - */ - var $currentclass; - var $wrote = false; - var $ric_set = array(); - /** - * Table of Contents entry for index.hhk - * @var array - */ - var $KLinks = array(); - - /** - * sets {@link $base_dir} to $targetDir - * @see Converter() - */ - function CHMdefaultConverter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title) - { - Converter::Converter($allp, $packp, $classes, $procpages,$po, $pp, $qm, $targetDir, $templateDir, $title); - $this->base_dir = $targetDir; - } - - /** - * @deprecated in favor of PHP 4.3.0+ tokenizer-based source highlighting - */ - function unmangle($sourcecode) - { - $sourcecode = str_replace('','
        ',$sourcecode);
        -        $sourcecode = str_replace('','
        ',$sourcecode); - $sourcecode = str_replace('
        ',"\n",$sourcecode); - $sourcecode = str_replace(' ',' ',$sourcecode); - $sourcecode = str_replace('<','<',$sourcecode); - $sourcecode = str_replace('>','>',$sourcecode); - $sourcecode = str_replace('&','&',$sourcecode); - return $sourcecode; - } - - /** - * @param string full path to the source file - * @param string fully highlighted source code - */ - function writeSource($path, $value) - { - $templ = &$this->newSmarty(); - $pathinfo = $this->proceduralpages->getPathInfo($path, $this); - $templ->assign('source',$value); - $templ->assign('package',$pathinfo['package']); - $templ->assign('subpackage',$pathinfo['subpackage']); - $templ->assign('name',$pathinfo['name']); - $templ->assign('source_loc',$pathinfo['source_loc']); - $templ->assign('docs',$pathinfo['docs']); - $templ->assign("subdir",'../'); - $templ->register_outputfilter('CHMdefault_outputfilter'); - $this->setTargetDir($this->getFileSourcePath($this->base_dir)); - //$this->addSourceTOC($pathinfo['name'],$this->getFileSourceName($path),$pathinfo['package'],$pathinfo['subpackage'], true); - phpDocumentor_out("\n"); - $this->setSourcePaths($path); - $this->writefile($this->getFileSourceName($path).'.html',$templ->fetch('filesource.tpl')); - } - - function writeExample($title, $path, $source) - { - $templ = &$this->newSmarty(); - $templ->assign('source',$source); - if (empty($title)) - { - $title = 'example'; - addWarning(PDERROR_EMPTY_EXAMPLE_TITLE, $path, $title); - } - $templ->assign('title',$title); - $templ->assign('file',$path); - $templ->assign("subdir",'../'); - $templ->register_outputfilter('CHMdefault_outputfilter'); - $pathinfo = $this->proceduralpages->getPathInfo($path, $this); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . '__examplesource'); - //$this->addSourceTOC($title,'exsource_'.$path,$pathinfo['package'],$pathinfo['subpackage'], false); - phpDocumentor_out("\n"); - $this->writefile('exsource_'.$path.'.html',$templ->fetch('examplesource.tpl')); - } - - function getExampleLink($path, $title) - { - return $this->returnLink('{$subdir}__examplesource' . PATH_DELIMITER . 'exsource_'.$path.'.html',$title); - } - - function getSourceLink($path) - { - // fix 1171583 - $x = str_replace(PATH_DELIMITER, '', $this->getFileSourcePath('{$subdir}')) . - PATH_DELIMITER; - return $this->returnLink($x . - $this->getFileSourceName($path).'.html','Source Code for this file'); - } - - /** - * Used to convert the <> tag in a docblock - * @param string - * @param boolean - * @return string - */ - function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/, - $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/) - { - return $this->PreserveWhiteSpace(parent::ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath)); - } - - /** - * @param string - */ - function TutorialExample($example) - { - $trans = $this->template_options['desctranslate']; - $this->template_options['desctranslate'] = array(); - $example = '
          ' . parent::TutorialExample($example) - .'
        '; - $this->template_options['desctranslate'] = $trans; - if (!isset($this->template_options['desctranslate'])) return $example; - if (!isset($this->template_options['desctranslate']['code'])) return $example; - $example = $this->template_options['desctranslate']['code'] . $example; - if (!isset($this->template_options['desctranslate']['/code'])) return $example; - return $example . $this->template_options['desctranslate']['/code']; - } - - /** - * Retrieve a Converter-specific anchor to a segment of a source code file - * parsed via a {@tutorial tags.filesource.pkg} tag. - * @param string full path to source file - * @param string name of anchor - * @param string link text, if this is a link - * @param boolean returns either a link or a destination based on this - * parameter - * @return string link to an anchor, or the anchor - */ - function getSourceAnchor($sourcefile,$anchor,$text = '',$link = false) - { - if ($link) { - $x = str_replace(PATH_DELIMITER, '', $this->getFileSourcePath('{$subdir}')) . - PATH_DELIMITER; - return $this->returnLink($x . - $this->getFileSourceName($sourcefile).'.html#a'.$anchor, $text); - } else - return ''; - } - - function getCurrentPageLink() - { - return $this->curname . '.html'; - } - - /** - * Uses htmlspecialchars() on the input - */ - function postProcess($text) - { - return htmlspecialchars($text); - } - - /** - * Use the template tutorial_toc.tpl to generate a table of contents for HTML - * @return string table of contents formatted for use in the current output format - * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...) - */ - function formatTutorialTOC($toc) - { - $template = &$this->newSmarty(); - $template->assign('toc',$toc); - return $template->fetch('tutorial_toc.tpl'); - } - - function &SmartyInit(&$templ) - { - if (!isset($this->package_index)) - foreach($this->all_packages as $key => $val) - { - if (isset($this->pkg_elements[$key])) - { - if (!isset($start)) $start = $key; - $this->package_index[] = array('link' => "li_$key.html", 'title' => $key); - } - } - $templ->assign("packageindex",$this->package_index); - $templ->assign("subdir",''); - return $templ; - } - - - /** - * Writes out the template file of {@link $class_data} and unsets the template to save memory - * @see registerCurrentClass() - * @see parent::endClass() - */ - function endClass() - { - $a = '../'; - if (!empty($this->subpackage)) $a .= '../'; - if ($this->juststarted) - { - $this->juststarted = false; - phpDocumentor_out("\n"); - flush(); - } - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); - $this->class_data->assign("subdir",$a); - $this->class_data->register_outputfilter('CHMdefault_outputfilter'); - $this->addTOC($this->class,$this->class,$this->package,$this->subpackage, true); - $this->writefile($this->class . '.html',$this->class_data->fetch('class.tpl')); - unset($this->class_data); - } - - /** - * Writes out the template file of {@link $page_data} and unsets the template to save memory - * @see registerCurrent() - * @see parent::endPage() - */ - function endPage() - { - $this->package = $this->curpage->package; - $this->subpackage = $this->curpage->subpackage; - $a = '../'; - if (!empty($this->subpackage)) $a .= '../'; - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->page_data->assign("package",$this->package); - $this->page_data->assign("subdir",$a); - $this->page_data->register_outputfilter('CHMdefault_outputfilter'); - //$this->addTOC($this->curpage->file,$this->page,$this->package,$this->subpackage); - $this->writefile($this->page . '.html',$this->page_data->fetch('page.tpl')); - unset($this->page_data); - } - - /** - * @param string - * @param string - * @return string <a href="'.$link.'">'.$text.''.$text.''; - } - - /** - * CHMdefaultConverter chooses to format both package indexes and the complete index here - * - * This function formats output for the elementindex.html and pkgelementindex.html template files. It then - * writes them to the target directory - * @see generateElementIndex(), generatePkgElementIndex() - */ - function formatPkgIndex() - { - list($package_indexes,$packages,$mletters) = $this->generatePkgElementIndexes(); - for($i=0;$inewSmarty(); - $this->package = $package_indexes[$i]['package']; - $this->subpackage = ''; - $template->assign("index",$package_indexes[$i]['pindex']); - $template->assign("package",$package_indexes[$i]['package']); - $template->assign("letters",$mletters[$package_indexes[$i]['package']]); - $template->assign("title","Package ".$package_indexes[$i]['package']." Element Index"); - $template->assign("subdir",'../'); - $template->register_outputfilter('CHMdefault_outputfilter'); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $package_indexes[$i]['package']); - $this->addTOC($package_indexes[$i]['package']." Alphabetical Index",'elementindex_'.$package_indexes[$i]['package'],$package_indexes[$i]['package'],''); - $this->writefile('elementindex_'.$package_indexes[$i]['package'].'.html',$template->fetch('pkgelementindex.tpl')); - } - phpDocumentor_out("\n"); - flush(); - } - - /** - * CHMdefaultConverter uses this function to format template index.html and packages.html - * - * This function generates the package list from {@link $all_packages}, eliminating any - * packages that don't have any entries in their package index (no files at all, due to @ignore - * or other factors). Then it uses the default package name as the first package index to display. - * It sets the right pane to be either a blank file with instructions on making package-level docs, - * or the package-level docs for the default package. - * @global string Used to set the starting package to display - */ - function formatIndex() - { - global $phpDocumentor_DefaultPackageName; - list($elindex,$mletters) = $this->generateElementIndex(); - $template = &$this->newSmarty(); - $template->assign("index",$elindex); - $template->assign("letters",$mletters); - $template->assign("title","Element Index"); - $template->assign("date",date("r",time())); - $template->register_outputfilter('CHMdefault_outputfilter'); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - $this->addTOC("Alphabetical Index Of All Elements",'elementindex',"Index",''); - $this->writefile('elementindex.html',$template->fetch('elementindex.tpl')); - usort($this->package_index,"CHMdefault_pindexcmp"); - $index = &$this->newSmarty(); - foreach($this->all_packages as $key => $val) - { - if (isset($this->pkg_elements[$key])) - { - if (!isset($start)) $start = $key; - if (!isset($this->package_pages[$key])) $this->writeNewPPage($key); - } - } - $this->setTargetDir($this->base_dir); - // Created index.html - if (isset($this->pkg_elements[$phpDocumentor_DefaultPackageName])) $start = $phpDocumentor_DefaultPackageName; - $this->package = $start; - $this->subpackage = ''; - $setalready = false; - if (isset($this->tutorials[$start]['']['pkg'])) - { - foreach($this->tutorials[$start]['']['pkg'] as $tute) - { - if ($tute->name == $start . '.pkg') - { - $setalready = true; - $this->addTOC("Start page",$start.'/tutorial_'.$tute->name,"Index",''); - } - } - } - if (!$setalready) - { - if (isset($this->package_pages[$start])) - { - $this->addTOC("Start page",'package_'.$start,"Index",''); - } - else - { - $index->assign("blank","blank"); - $blank = &$this->newSmarty(); - $blank->assign('package',$phpDocumentor_DefaultPackageName); - $this->addTOC("Start page",'blank',"Index",''); - $this->writefile("blank.html",$blank->fetch('blank.tpl')); - Converter::writefile('index.html',$blank->fetch('tutorial.tpl')); - } - } - phpDocumentor_out("\n"); - flush(); - - unset($index); - } - - function writeNewPPage($key) - { - return; - $template = &$this->newSmarty(); - $this->package = $key; - $this->subpackage = ''; - $template->assign("date",date("r",time())); - $template->assign("title",$this->title); - $template->assign("package",$key); - $template->register_outputfilter('CHMdefault_outputfilter'); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - - //$this->addTOC("$key Index","li_$key",$key,''); - $this->writefile("li_$key.html",$template->fetch('index.tpl')); - unset($template); - } - - /** - * Generate indexes for li_package.html and classtree output files - * - * This function generates the li_package.html files from the template file left.html. It does this by - * iterating through each of the $page_elements, $class_elements and $function_elements arrays to retrieve - * the pre-sorted {@link abstractLink} descendants needed for index generation. Conversion of these links to - * text is done by {@link returnSee()}. The {@link $local} parameter is set to false to ensure that paths are correct. - * - * Then it uses {@link generateFormattedClassTrees()} to create class trees from the template file classtrees.html. Output - * filename is classtrees_packagename.html. This function also unsets {@link $elements} and {@link $pkg_elements} to free - * up the considerable memory these two class vars use - * @see $page_elements, $class_elements, $function_elements - */ - function formatLeftIndex() - { - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - if (0)//!isset($this->left)) - { - debug("Nothing parsed, check the command-line"); - die(); - } - foreach($this->all_packages as $package => $rest) - { - if (!isset($this->pkg_elements[$package])) continue; - - // Create class tree page - $template = &$this->newSmarty(); - $template->assign("classtrees",$this->generateFormattedClassTrees($package)); - $template->assign("package",$package); - $template->assign("date",date("r",time())); - $template->register_outputfilter('CHMdefault_outputfilter'); - $this->addTOC("$package Class Trees","classtrees_$package",$package,''); - $this->writefile("classtrees_$package.html",$template->fetch('classtrees.tpl')); - phpDocumentor_out("\n"); - flush(); - } - // free up considerable memory - unset($this->elements); - unset($this->pkg_elements); - } - - /** - * This function takes an {@link abstractLink} descendant and returns an html link - * - * @param abstractLink a descendant of abstractlink should be passed, and never text - * @param string text to display in the link - * @param boolean this parameter is not used, and is deprecated - * @param boolean determines whether the returned text is enclosed in an tag - */ - function returnSee(&$element, $eltext = false, $with_a = true) - { - if (!$element) return false; - if (!$with_a) return $this->getId($element, false); - if (!$eltext) - { - $eltext = ''; - switch($element->type) - { - case 'tutorial' : - $eltext = strip_tags($element->title); - break; - case 'method' : - case 'var' : - case 'const' : - $eltext .= $element->class.'::'; - case 'page' : - case 'define' : - case 'class' : - case 'function' : - case 'global' : - default : - $eltext .= $element->name; - if ($element->type == 'function' || $element->type == 'method') $eltext .= '()'; - break; - } - } - return ''.$eltext.''; - } - - function getId($element, $fullpath = true) - { - if (phpDocumentor_get_class($element) == 'parserdata') - { - $element = $this->addLink($element->parent); - $elp = $element->parent; - } elseif (is_a($element, 'parserbase')) - { - $elp = $element; - $element = $this->addLink($element); - } - $c = ''; - if (!empty($element->subpackage)) - { - $c = '/'.$element->subpackage; - } - $b = '{$subdir}'; - switch ($element->type) - { - case 'page' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->fileAlias.'.html'; - return 'top'; - break; - case 'define' : - case 'global' : - case 'function' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->fileAlias.'.html#'.$element->type.$element->name; - return $element->type.$element->name; - break; - case 'class' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->name.'.html'; - return 'top'; - break; - case 'method' : - case 'var' : - case 'const' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->class.'.html#'.$element->type.$element->name; - return $element->type.$element->name; - break; - case 'tutorial' : - $d = ''; - if ($element->section) - { - $d = '#'.$element->section; - } - return $b.$element->package.$c.'/tutorial_'.$element->name.'.html'.$d; - } - } - - function ConvertTodoList() - { - $todolist = array(); - foreach($this->todoList as $package => $alltodos) - { - foreach($alltodos as $todos) - { - $converted = array(); - $converted['link'] = $this->returnSee($todos[0]); - if (!is_array($todos[1])) - { - $converted['todos'][] = $todos[1]->Convert($this); - } else - { - foreach($todos[1] as $todo) - { - $converted['todos'][] = $todo->Convert($this); - } - } - $todolist[$package][] = $converted; - } - } - $templ = &$this->newSmarty(); - $templ->assign('todos',$todolist); - $templ->register_outputfilter('CHMdefault_outputfilter'); - $this->setTargetDir($this->base_dir); - $this->addTOC('Todo List','todolist','Index','',false,true); - $this->addKLink('Todo List', 'todolist', '', 'Development'); - $this->writefile('todolist.html',$templ->fetch('todolist.tpl')); - } - - /** - * Convert README/INSTALL/CHANGELOG file contents to output format - * @param README|INSTALL|CHANGELOG - * @param string contents of the file - */ - function Convert_RIC($name, $contents) - { - $template = &$this->newSmarty(); - $template->assign('contents',$contents); - $template->assign('name',$name); - $this->setTargetDir($this->base_dir); - $this->addTOC($name,'ric_'.$name,'Index','',false,true); - $this->addKLink($name, 'ric_'.$name, '', 'Development'); - $this->writefile('ric_'.$name . '.html',$template->fetch('ric.tpl')); - $this->ric_set[$name] = true; - } - - /** - * Create errors.html template file output - * - * This method takes all parsing errors and warnings and spits them out ordered by file and line number. - * @global ErrorTracker We'll be using it's output facility - */ - function ConvertErrorLog() - { - global $phpDocumentor_errors; - $allfiles = array(); - $files = array(); - $warnings = $phpDocumentor_errors->returnWarnings(); - $errors = $phpDocumentor_errors->returnErrors(); - $template = &$this->newSmarty(); - foreach($warnings as $warning) - { - $file = '##none'; - $linenum = 'Warning'; - if ($warning->file) - { - $file = $warning->file; - $allfiles[$file] = 1; - $linenum .= ' on line '.$warning->linenum; - } - $files[$file]['warnings'][] = array('name' => $linenum, 'listing' => $warning->data); - } - foreach($errors as $error) - { - $file = '##none'; - $linenum = 'Error'; - if ($error->file) - { - $file = $error->file; - $allfiles[$file] = 1; - $linenum .= ' on line '.$error->linenum; - } - $files[$file]['errors'][] = array('name' => $linenum, 'listing' => $error->data); - } - $i=1; - $af = array(); - foreach($allfiles as $file => $num) - { - $af[$i++] = $file; - } - $allfiles = $af; - usort($allfiles,'strnatcasecmp'); - $allfiles[0] = "Post-parsing"; - foreach($allfiles as $i => $a) - { - $allfiles[$i] = array('file' => $a); - } - $out = array(); - foreach($files as $file => $data) - { - if ($file == '##none') $file = 'Post-parsing'; - $out[$file] = $data; - } - $template->assign("files",$allfiles); - $template->assign("all",$out); - $template->assign("title","phpDocumentor Parser Errors and Warnings"); - $this->setTargetDir($this->base_dir); - $this->writefile("errors.html",$template->fetch('errors.tpl')); - unset($template); - phpDocumentor_out("\n\nTo view errors and warnings, look at ".$this->base_dir. PATH_DELIMITER . "errors.html\n"); - flush(); - } - - function getCData($value) - { - return '
        '.htmlentities($value).'
        '; - } - - function getTutorialId($package,$subpackage,$tutorial,$id) - { - return $id; - } - - /** - * Converts package page and sets its package as used in {@link $package_pages} - * @param parserPackagePage - */ - function convertPackagepage(&$element) - { - phpDocumentor_out("\n"); - flush(); - $this->package = $element->package; - $this->subpackage = ''; - $contents = $element->Convert($this); - $this->package_pages[$element->package] = str_replace('{$subdir}','../',$contents); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package); - $this->addTOC($element->package." Tutorial",'package_'.$element->package,$element->package,''); - $this->writeFile('package_'.$element->package.'.html',str_replace('{$subdir}','../',$contents)); - $this->setTargetDir($this->base_dir); - Converter::writefile('index.html',str_replace('{$subdir}','',$contents)); - $this->addKLink($element->package." Tutorial", 'package_'.$element->package, '', 'Tutorials'); - } - - /** - * @param parserTutorial - */ - function convertTutorial(&$element) - { - phpDocumentor_out("\n"); - flush(); - $template = &parent::convertTutorial($element); - $a = '../'; - if ($element->subpackage) $a .= '../'; - $template->assign('subdir',$a); - $template->register_outputfilter('CHMdefault_outputfilter'); - $contents = $template->fetch('tutorial.tpl'); - if ($element->package == $GLOBALS['phpDocumentor_DefaultPackageName'] && empty($element->subpackage) && ($element->name == $element->package . '.pkg')) - { - $template->assign('subdir',''); - $this->setTargetDir($this->base_dir); - Converter::writefile('index.html',$template->fetch('tutorial.tpl')); - } - $a = ''; - if ($element->subpackage) $a = PATH_DELIMITER . $element->subpackage; - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package . $a); - $this->addTOC($a = strip_tags($element->getTitle($this)), 'tutorial_'.$element->name, - $element->package, $element->subpackage, false, true); - $this->writeFile('tutorial_'.$element->name.'.html',$contents); - $this->addKLink($element->getTitle($this), $element->package . $a . PATH_DELIMITER . 'tutorial_'.$element->name, - '', 'Tutorials'); - } - - /** - * Converts class for template output - * @see prepareDocBlock(), generateChildClassList(), generateFormattedClassTree(), getFormattedConflicts() - * @see getFormattedInheritedMethods(), getFormattedInheritedVars() - * @param parserClass - */ - function convertClass(&$element) - { - parent::convertClass($element); - $this->class_dir = $element->docblock->package; - if (!empty($element->docblock->subpackage)) $this->class_dir .= PATH_DELIMITER . $element->docblock->subpackage; - $a = '../'; - if ($element->docblock->subpackage != '') $a = "../$a"; - - $this->class_data->assign('subdir',$a); - $this->class_data->assign("title","Docs For Class " . $element->getName()); - $this->class_data->assign("page",$element->getName() . '.html'); - $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER . $this->class, '', 'Classes'); - } - - - /** - * Converts class variables for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertVar(&$element) - { - parent::convertVar($element, array('var_dest' => $this->getId($element,false))); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); - $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Properties'); - } - - /** - * Converts class constants for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertConst(&$element) - { - parent::convertConst($element, array('const_dest' => $this->getId($element,false))); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); - $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Constants'); - } - - /** - * Converts class methods for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertMethod(&$element) - { - parent::convertMethod($element, array('method_dest' => $this->getId($element,false))); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); - $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Methods'); - } - - /** - * Converts function for template output - * @see prepareDocBlock(), parserFunction::getFunctionCall(), getFormattedConflicts() - * @param parserFunction - */ - function convertFunction(&$element) - { - $funcloc = $this->getId($this->addLink($element)); - parent::convertFunction($element,array('function_dest' => $this->getId($element,false))); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Functions'); - } - - /** - * Converts include elements for template output - * @see prepareDocBlock() - * @param parserInclude - */ - function convertInclude(&$element) - { - parent::convertInclude($element, array('include_file' => '_'.strtr($element->getValue(),array('"' => '', "'" => '','.' => '_')))); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->addKLink(str_replace('"', '', $element->getValue()), $this->page_dir . PATH_DELIMITER . $this->page, '', ucfirst($element->name)); - } - - /** - * Converts defines for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertDefine(&$element) - { - parent::convertDefine($element, array('define_link' => $this->getId($element,false))); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Constants'); - } - - /** - * Converts global variables for template output - * @param parserGlobal - */ - function convertGlobal(&$element) - { - parent::convertGlobal($element, array('global_link' => $this->getId($element,false))); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Global Variables'); - } - - /** - * converts procedural pages for template output - * @see prepareDocBlock(), getClassesOnPage() - * @param parserData - */ - function convertPage(&$element) - { - parent::convertPage($element); - $this->juststarted = true; - $this->page_dir = $element->parent->package; - if (!empty($element->parent->subpackage)) $this->page_dir .= PATH_DELIMITER . $element->parent->subpackage; - // registering stuff on the template - $this->page_data->assign("page",$this->getPageName($element) . '.html'); - $this->page_data->assign("title","Docs for page ".$element->parent->getFile()); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->addKLink($element->parent->file, $this->page_dir . PATH_DELIMITER . $this->page, '', 'Files'); - } - - function getPageName(&$element) - { - if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName(); - return '_'.$element->parent->getName(); - } - - /** - * returns an array containing the class inheritance tree from the root object to the class - * - * @param parserClass class variable - * @return array Format: array(root,child,child,child,...,$class) - * @uses parserClass::getParentClassTree() - */ - - function generateFormattedClassTree($class) - { - $tree = $class->getParentClassTree($this); - $out = ''; - if (count($tree) - 1) - { - $result = array($class->getName()); - $parent = $tree[$class->getName()]; - $distance[] = ''; - while ($parent) - { - $x = $parent; - if (is_object($parent)) - { - $subpackage = $parent->docblock->subpackage; - $package = $parent->docblock->package; - $x = $parent; - $x = $parent->getLink($this); - if (!$x) $x = $parent->getName(); - } - $result[] = - $x; - $distance[] = - "\n%s|\n" . - "%s--"; - if (is_object($parent)) - $parent = $tree[$parent->getName()]; - elseif (isset($tree[$parent])) - $parent = $tree[$parent]; - } - $nbsp = ' '; - for($i=count($result) - 1;$i>=0;$i--) - { - $my_nbsp = ''; - for($j=0;$jarray_reverse($result),'distance'=>array_reverse($distance)); - } else - { - return array('classes'=>$class->getName(),'distance'=>array('')); - } - } - - /** @access private */ - function sortVar($a, $b) - { - return strnatcasecmp($a->getName(),$b->getName()); - } - - /** @access private */ - function sortMethod($a, $b) - { - if ($a->isConstructor) return -1; - if ($b->isConstructor) return 1; - return strnatcasecmp($a->getName(),$b->getName()); - } - - /** - * returns a template-enabled array of class trees - * - * @param string $package package to generate a class tree for - * @see $roots, HTMLConverter::getRootTree() - */ - function generateFormattedClassTrees($package) - { - if (!isset($this->roots[$package])) return array(); - $roots = $trees = array(); - $roots = $this->roots[$package]; - for($i=0;$i $roots[$i],'class_tree' => "
          \n".$this->getRootTree($this->getSortedClassTreeFromClass($roots[$i],$package,''),$package)."
        \n"); - } - return $trees; - } - - /** - * return formatted class tree for the Class Trees page - * - * @param array $tree output from {@link getSortedClassTreeFromClass()} - * @see Classes::$definitechild, generateFormattedClassTrees() - * @return string - */ - function getRootTree($tree,$package) - { - if (!$tree) return ''; - $my_tree = ''; - $cur = '#root'; - $lastcur = array(false); - $kids = array(); - $dopar = false; - if ($tree[$cur]['parent']) - { - $dopar = true; - if (!is_object($tree[$cur]['parent'])) - { -// debug("parent ".$tree[$cur]['parent']." not found"); - $my_tree .= '
      • ' . $tree[$cur]['parent'] .'
          '; - } - else - { -// debug("parent ".$this->returnSee($tree[$cur]['parent'])." in other package"); - $my_tree .= '
        • ' . $this->returnSee($tree[$cur]['parent']); - if ($tree[$cur]['parent']->package != $package) $my_tree .= ' (Different package)
            '; - } - } - do - { -// fancy_debug($cur,$lastcur,$kids); - if (count($tree[$cur]['children'])) - { -// debug("$cur has children"); - if (!isset($kids[$cur])) - { -// debug("set $cur kids"); - $kids[$cur] = 1; - $my_tree .= '
          • '.$this->returnSee($tree[$cur]['link']); - $my_tree .= '
              '."\n"; - } - array_push($lastcur,$cur); - list(,$cur) = each($tree[$cur]['children']); -// var_dump('listed',$cur); - if ($cur) - { - $cur = $cur['package'] . '#' . $cur['class']; -// debug("set cur to child $cur"); -// $my_tree .= '
            • '.$this->returnSee($tree[$cur]['link']); - continue; - } else - { -// debug("end of children for $cur"); - $cur = array_pop($lastcur); - $cur = array_pop($lastcur); - $my_tree .= '
          • '."\n"; - if ($dopar && ($cur == '#root' || !$cur)) $my_tree .= '
        • '; - } - } else - { -// debug("$cur has no children"); - $my_tree .= '
        • '.$this->returnSee($tree[$cur]['link'])."
        • "; - if ($dopar && $cur == '#root') $my_tree .= '
      • '; - $cur = array_pop($lastcur); - } - } while ($cur); - return $my_tree; - } - /** - * Generate indexing information for given element - * - * @param parserElement descendant of parserElement - * @see generateElementIndex() - * @return array - */ - function getIndexInformation($elt) - { - $Result['type'] = $elt->type; - $Result['file_name'] = $elt->file; - $Result['path'] = $elt->getPath(); - - if (isset($elt->docblock)) - { - $Result['description'] = $elt->docblock->getSDesc($this); - - if ($elt->docblock->hasaccess) - $Result['access'] = $elt->docblock->tags['access'][0]->value; - else - $Result['access'] = 'public'; - - $Result['abstract'] = isset ($elt->docblock->tags['abstract'][0]); - } - else - $Result['description'] = ''; - - $aa = $Result['description']; - if (!empty($aa)) $aa = "
            $aa"; - - switch($elt->type) - { - case 'class': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Class'; - $Result['link'] = $this->getClassLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', class '.$Result['link']."$aa"; - break; - case 'define': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Constant'; - $Result['link'] = $this->getDefineLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', constant '.$Result['link']."$aa"; - break; - case 'global': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Global'; - $Result['link'] = $this->getGlobalLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', global variable '.$Result['link']."$aa"; - break; - case 'function': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Function'; - $Result['link'] = $this->getFunctionLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName().'()'); - $Result['listing'] = 'in file '.$elt->file.', function '.$Result['link']."$aa"; - break; - case 'method': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Method'; - $Result['link'] = $this->getMethodLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName().'()' - ); - if ($elt->isConstructor) $Result['constructor'] = 1; - $Result['listing'] = 'in file '.$elt->file.', method '.$Result['link']."$aa"; - break; - case 'var': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Variable'; - $Result['link'] = $this->getVarLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', variable '.$Result['link']."$aa"; - break; - case 'const': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Variable'; - $Result['link'] = $this->getConstLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', class constant '.$Result['link']."$aa"; - break; - case 'page': - $Result['name'] = $elt->getFile(); - $Result['title'] = 'Page'; - $Result['link'] = $this->getPageLink($elt->getFile(), - $elt->package, - $elt->getPath(), - $elt->getFile()); - $Result['listing'] = 'procedural page '.$Result['link']; - break; - case 'include': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Include'; - $Result['link'] = $elt->getValue(); - $Result['listing'] = 'include '.$Result['name']; - break; - } - - return $Result; - } - /** - * Generate alphabetical index of all elements - * - * @see $elements, walk() - */ - function generateElementIndex() - { - $elementindex = array(); - $letters = array(); - $used = array(); - foreach($this->elements as $letter => $nutoh) - { - foreach($this->elements[$letter] as $i => $yuh) - { - if ($this->elements[$letter][$i]->type != 'include') - { - if (!isset($used[$letter])) - { - $letters[]['letter'] = $letter; - $elindex['letter'] = $letter; - $used[$letter] = 1; - } - - $elindex['index'][] = $this->getIndexInformation($this->elements[$letter][$i]); - } - } - if (isset($elindex['index'])) - { - $elementindex[] = $elindex; - } else - { - unset($letters[count($letters) - 1]); - } - $elindex = array(); - } - return array($elementindex,$letters); - } - - function setTemplateDir($dir) - { - Converter::setTemplateDir($dir); - $this->smarty_dir = $this->templateDir; - } - - function copyMediaRecursively($media,$targetdir,$subdir = '') - { - if (!is_array($media)) { - return; - } - foreach($media as $dir => $files) - { - if ($dir === '/') - { - $this->copyMediaRecursively($files,$targetdir); - } else - { - if (!is_numeric($dir)) - { - // create the subdir - phpDocumentor_out("creating $targetdir/$dir\n"); - Converter::setTargetDir($targetdir . PATH_DELIMITER . $dir); - if (!empty($subdir)) $subdir .= PATH_DELIMITER; - $this->copyMediaRecursively($files,"$targetdir/$dir",$subdir . $dir); - } else - { - // copy the file - phpDocumentor_out("copying $targetdir/".$files['file']."\n"); - $this->copyFile($files['file'],$subdir); - } - } - } - } - - /** - * calls the converter setTargetDir, and then copies any template images and the stylesheet if they haven't been copied - * @see Converter::setTargetDir() - */ - function setTargetDir($dir) - { - Converter::setTargetDir($dir); - if ($this->wrote) return; - $this->wrote = true; - $template_images = array(); - $stylesheets = array(); - $tdir = $dir; - $dir = $this->templateDir; - $this->templateDir = $this->templateDir.'templates/'; - $info = new Io; - $this->copyMediaRecursively($info->getDirTree($this->templateDir.'media',$this->templateDir),$tdir); - } - - /** - * Generate alphabetical index of all elements by package and subpackage - * - * @param string $package name of a package - * @see $pkg_elements, walk(), generatePkgElementIndexes() - */ - function generatePkgElementIndex($package) - { -// var_dump($this->pkg_elements[$package]); - $elementindex = array(); - $letters = array(); - $letterind = array(); - $used = array(); - $subp = ''; - foreach($this->pkg_elements[$package] as $subpackage => $els) - { - if (empty($els)) continue; - if (!empty($subpackage)) $subp = " (subpackage: $subpackage)"; else $subp = ''; - foreach($els as $letter => $yuh) - { - foreach($els[$letter] as $i => $yuh) - { - if ($els[$letter][$i]->type != 'include') - { - if (!isset($used[$letter])) - { - $letters[]['letter'] = $letter; - $letterind[$letter] = count($letters) - 1; - $used[$letter] = 1; - } - $elindex[$letter]['letter'] = $letter; - - $elindex[$letter]['index'][] = $this->getIndexInformation($els[$letter][$i]); - } - } - } - } - ksort($elindex); - usort($letters,'CHMdefault_lettersort'); - if (isset($elindex)) - { - while(list($letter,$tempel) = each($elindex)) - { - if (!isset($tempel)) - { - unset($letters[$letterind[$tempel['letter']]]); - } else - $elementindex[] = $tempel; - } - } else $letters = array(); - return array($elementindex,$letters); - } - - /** - * - * @see generatePkgElementIndex() - */ - function generatePkgElementIndexes() - { - $packages = array(); - $package_names = array(); - $pkg = array(); - $letters = array(); - foreach($this->pkg_elements as $package => $trash) - { - $pkgs['package'] = $package; - $pkg['package'] = $package; - list($pkg['pindex'],$letters[$package]) = $this->generatePkgElementIndex($package); - if (count($pkg['pindex'])) - { - $packages[] = $pkg; - $package_names[] = $pkgs; - } - unset($pkgs); - unset($pkg); - } - foreach($packages as $i => $package) - { - $pnames = array(); - for($j=0;$jreturnSee($a, $text, $with_a); - } - - /** - * @param string name of function - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the function's documentation - * @see parent::getFunctionLink() - */ - function getFunctionLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getFunctionLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of define - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the define's documentation - * @see parent::getDefineLink() - */ - function getDefineLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getDefineLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of global variable - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the global variable's documentation - * @see parent::getGlobalLink() - */ - function getGlobalLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getGlobalLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of procedural page - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the procedural page's documentation - * @see parent::getPageLink() - */ - function getPageLink($expr,$package, $path = false,$text = false) - { - $a = Converter::getPageLink($expr,$package,$path); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of method - * @param string class containing method - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the method's documentation - * @see parent::getMethodLink() - */ - function getMethodLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getMethodLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of var - * @param string class containing var - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the var's documentation - * @see parent::getVarLink() - */ - function getVarLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getVarLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of class constant - * @param string class containing class constant - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the var's documentation - * @see parent::getVarLink() - */ - function getConstLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getConstLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * does a nat case sort on the specified second level value of the array - * - * @param mixed $a - * @param mixed $b - * @return int - */ - function rcNatCmp ($a, $b) - { - $aa = strtoupper($a[$this->rcnatcmpkey]); - $bb = strtoupper($b[$this->rcnatcmpkey]); - - return strnatcasecmp($aa, $bb); - } - - /** - * does a nat case sort on the specified second level value of the array. - * this one puts constructors first - * - * @param mixed $a - * @param mixed $b - * @return int - */ - function rcNatCmp1 ($a, $b) - { - $aa = strtoupper($a[$this->rcnatcmpkey]); - $bb = strtoupper($b[$this->rcnatcmpkey]); - - if (strpos($aa,'CONSTRUCTOR') === 0) - { - return -1; - } - if (strpos($bb,'CONSTRUCTOR') === 0) - { - return 1; - } - if (strpos($aa,strtoupper($this->class)) === 0) - { - return -1; - } - if (strpos($bb,strtoupper($this->class)) === 0) - { - return -1; - } - return strnatcasecmp($aa, $bb); - } - - /** - * Write a file to disk, and add it to the {@link $hhp_files} list of files - * to include in the generated CHM - * - * {@source} - */ - function writefile($file,$contents) - { - $this->addHHP($this->targetDir . PATH_DELIMITER . $file); - Converter::writefile($file,$contents); - } - - /** - * @uses $hhp_files creates the array by adding parameter $file - */ - function addHHP($file) - { - $file = str_replace($this->base_dir . PATH_DELIMITER, '', $file); - $file = str_replace('\\',PATH_DELIMITER,$file); - $file = str_replace('//',PATH_DELIMITER,$file); - $file = str_replace(PATH_DELIMITER,'\\',$file); - $this->hhp_files[]['name'] = $file; - } - - function generateTOC() - { - $comppack = ''; - $templ = &$this->newSmarty(); - foreach($this->TOC as $package => $TOC1) - { - $comp_subs = ''; - $comp_subs1 = false; - foreach($TOC1 as $subpackage => $files) - { - $comp_types = ''; - $comp = ''; - $templ1 = &$this->newSmarty(); - $templ1->assign('entry', array()); - $type = 'Classes'; - //foreach($types as $type => $files) - //{ - foreach($files as $file) - { - //use book icon for classes - if ($type == 'Classes') { - $templ1->append('entry', array('paramname' => $file[0],'outputfile' => $file[1],'isclass' => 1)); - } else { - $templ1->append('entry', array('paramname' => $file[0],'outputfile' => $file[1])); - } - } - $templ = &$this->newSmarty(); - $templ->assign('tocsubentries',$templ1->fetch('tocentry.tpl')); - $templ->assign('entry', array(array('paramname' => $type))); - $comp_types .= $templ->fetch('tocentry.tpl'); - //} - if (!empty($subpackage)) - { - $templ = &$this->newSmarty(); - $templ->assign('tocsubentries',$comp_types); - $templ->assign('entry', array(array('paramname' => $subpackage))); - $comp_subs .= $templ->fetch('tocentry.tpl'); - } else - { - $comp_subs1 = $comp_types; - } - } - if ($comp_subs1) - $templ->assign('tocsubentries',$comp_subs1); - if (!empty($comp_subs)) - $templ->assign('entry', array(array('paramname' => $package, 'tocsubentries' => $comp_subs))); - else - $templ->assign('entry', array(array('paramname' => $package))); - $comppack .= $templ->fetch('tocentry.tpl'); - } - return $comppack; - } - - function addSourceTOC($name, $file, $package, $subpackage, $source = false) - { - $file = str_replace($this->base_dir . PATH_DELIMITER, '', $this->targetDir) - . PATH_DELIMITER . $file . '.html'; - $file = str_replace('\\',PATH_DELIMITER,$file); - $file = str_replace('//',PATH_DELIMITER,$file); - $file = str_replace(PATH_DELIMITER,'\\',$file); - $sub = $source ? 'Source Code' : 'Examples'; - $this->TOC[$package][$subpackage][$sub][] = array($name, $file); - } - - function addTOC($name,$file,$package,$subpackage,$class = false,$tutorial = false) - { - $file = str_replace($this->base_dir . PATH_DELIMITER, '', $this->targetDir) - . PATH_DELIMITER . $file . '.html'; - $file = str_replace('\\',PATH_DELIMITER,$file); - $file = str_replace('//',PATH_DELIMITER,$file); - $file = str_replace(PATH_DELIMITER,'\\',$file); - $file = str_replace($this->base_dir . '\\', '', $file); - $sub = $class ? 'Classes' : 'Files'; - if ($tutorial) $sub = 'Manual'; - if($class) - $this->TOC[$package][$subpackage][] = array($name,$file); - } - - /** - * Add an item to the index.hhk file - * @param string $name index entry name - * @param string $file filename containing index - * @param string $bookmark html anchor of location in file, if any - * @param string $group group this entry with a string - * @uses $KLinks tracks the index - * @author Andrew Eddie - */ - function addKLink($name, $file, $bookmark='', $group='') - { - $file = $file . '.html'; - $file = str_replace('\\',PATH_DELIMITER,$file); - $file = str_replace('//',PATH_DELIMITER,$file); - $file = str_replace(PATH_DELIMITER,'\\',$file); -// debug("added $name, $file, $bookmark, $group "); - $link = $file; - $link .= $bookmark ? "#$bookmark" :''; - if ($group) { - $this->KLinks[$group]['grouplink'] = $file; - $this->KLinks[$group][] = array($name,$link); - } - $this->KLinks[] = array($name,$link); - } - - /** - * Get the table of contents for index.hhk - * @return string contents of tocentry.tpl generated from $KLinks - * @author Andrew Eddie - */ - function generateKLinks() - { - $templ = &$this->newSmarty(); - $templ->assign('entry', array()); - foreach($this->KLinks as $group=>$link) - { - if (isset($link['grouplink'])) { - $templg = &$this->newSmarty(); - $templg->assign('entry', array()); - foreach($link as $k=>$sublink) - { - if ($k != 'grouplink') { - $templg->append('entry', array('paramname' => $sublink[0],'outputfile' => $sublink[1])); - } - } - $templ->append('entry', array('paramname' => $group, 'outputfile' => $link['grouplink'], 'tocsubentries' => $templg->fetch('tocentry.tpl') )); - } else { - $templ->append('entry', array('paramname' => $link[0],'outputfile' => $link[1])); - } - } - return $templ->fetch('tocentry.tpl'); - } - - /** - * Create the phpdoc.hhp, contents.hhc files needed by MS HTML Help Compiler - * to create a CHM file - * - * The output function generates the table of contents (contents.hhc) - * and file list (phpdoc.hhp) files used to create a .CHM by the - * free MS HTML Help compiler. - * {@internal - * Using {@link $hhp_files}, a list of all separate .html files - * is created in CHM format, and written to phpdoc.hhp. This list was - * generated by {@link writefile}. - * - * Next, a call to the table of contents: - * - * {@source 12 2} - * - * finishes things off}} - * @todo use to directly call html help compiler hhc.exe - * @link http://www.microsoft.com/downloads/release.asp?releaseid=33071 - * @uses generateTOC() assigns to the toc template variable - */ - function Output() - { - $templ = &$this->newSmarty(); - $templ->assign('files',$this->hhp_files); - $this->setTargetDir($this->base_dir); - Converter::writefile('phpdoc.hhp',$templ->fetch('hhp.tpl')); - $templ = &$this->newSmarty(); - $templ->assign('toc',$this->generateTOC()); - Converter::writefile('contents.hhc',$templ->fetch('contents.hhc.tpl')); - $templ->assign('klinks',$this->generateKLinks()); - Converter::writefile('index.hhk',$templ->fetch('index.hhk.tpl')); - phpDocumentor_out("NOTE: to create the documentation.chm file, you must now run Microsoft Help Workshop on phpdoc.hhp\n"); - phpDocumentor_out("To get the free Microsoft Help Workshop, browse to: http://go.microsoft.com/fwlink/?LinkId=14188\n"); - flush(); - } -} - -/** - * @access private - * @global string name of the package to set as the first package - */ -function CHMdefault_pindexcmp($a, $b) -{ - global $phpDocumentor_DefaultPackageName; - if ($a['title'] == $phpDocumentor_DefaultPackageName) return -1; - if ($b['title'] == $phpDocumentor_DefaultPackageName) return 1; - return strnatcasecmp($a['title'],$b['title']); -} - -/** @access private */ -function CHMdefault_lettersort($a, $b) -{ - return strnatcasecmp($a['letter'],$b['letter']); -} - -/** @access private */ -function CHMdefault_outputfilter($src, &$smarty) -{ - return str_replace('{$subdir}',$smarty->_tpl_vars['subdir'],$src); -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini deleted file mode 100644 index 4566db60..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini +++ /dev/null @@ -1,577 +0,0 @@ -preservedocbooktags = false - -;; used to highlight the {@source} inline tag, @filesource tag, and @example tag -[highlightSourceTokens] -;; format: -;; T_CONSTANTNAME = open -;; /T_CONSTANTNAME = close - -T_INCLUDE = -/T_INCLUDE = -T_INCLUDE_ONCE = -/T_INCLUDE_ONCE = -T_REQUIRE_ONCE = -/T_REQUIRE_ONCE = -T_REQUIRE_ONCE = -/T_REQUIRE_ONCE = - -T_CONSTANT_ENCAPSED_STRING = -/T_CONSTANT_ENCAPSED_STRING = -T_STRING_VARNAME = -/T_STRING_VARNAME = - -T_STRING = -/T_STRING = - -T_DNUMBER = -/T_DNUMBER = -T_LNUMBER = -/T_LNUMBER = - -T_VARIABLE = -/T_VARIABLE = - -T_COMMENT = -/T_COMMENT = -T_ML_COMMENT = -/T_ML_COMMENT = - -T_OBJECT_OPERATOR = -/T_OBJECT_OPERATOR = - -T_ABSTRACT = -/T_ABSTRACT = -T_CLONE = -/T_CLONE = -T_HALT_COMPILER = -/T_HALT_COMPILER = -T_ARRAY = -/T_ARRAY = -T_AS = -/T_AS = -T_BREAK = -/T_BREAK = -T_CLASS = -/T_CLASS = -T_CASE = -/T_CASE = -T_CONST = -/T_CONST = -T_CONTINUE = -/T_CONTINUE = -T_DECLARE = -/T_DECLARE = -T_DEFAULT = -/T_DEFAULT = -T_ELSE = -/T_ELSE = -T_ELSEIF = -/T_ELSEIF = -T_EMPTY = -/T_EMPTY = -T_ENDDECLARE = -/T_ENDDECLARE = -T_ENDFOR = -/T_ENDFOR = -T_ENDSWITCH = -/T_ENDSWITCH = -T_ENDFOREACH = -/T_ENDFOREACH = -T_ENDIF = -/T_ENDIF = -T_ENDWHILE = -/T_ENDWHILE = -T_EXIT = -/T_EXIT = -T_EXTENDS = -/T_EXTENDS = -T_FINAL = -/T_FINAL = -T_FOR = -/T_FOR = -T_FOREACH = -/T_FOREACH = -T_FUNCTION = -/T_FUNCTION = -T_GLOBAL = -/T_GLOBAL = -T_IF = -/T_IF = -T_IMPLEMENTS = -/T_IMPLEMENTS = -T_INTERFACE = -/T_INTERFACE = -T_LOGICAL_AND = -/T_LOGICAL_AND = -T_LOGICAL_OR = -/T_LOGICAL_OR = -T_LOGICAL_XOR = -/T_LOGICAL_XOR = -T_NEW = -/T_NEW = -T_PRIVATE = -/T_PRIVATE = -T_PROTECTED = -/T_PROTECTED = -T_PUBLIC = -/T_PUBLIC = -T_RETURN = -/T_RETURN = -T_STATIC = -/T_STATIC = -T_SWITCH = -/T_SWITCH = -T_VAR = -/T_VAR = -T_WHILE = -/T_WHILE = - -T_DOUBLE_COLON = -/T_DOUBLE_COLON = - -T_OPEN_TAG = -/T_OPEN_TAG = -T_OPEN_TAG_WITH_ECHO = -/T_OPEN_TAG_WITH_ECHO = -T_CLOSE_TAG = -/T_CLOSE_TAG = - - -[highlightSource] -;; this is for highlighting things that aren't tokens like "&" -;; format: -;; word = open -;; /word = close -@ = -/@ = -& = -/& = -[ = -/[ = -] = -/] = -! = -/! = -";" = -/; = -( = -/( = -) = -/) = -, = -/, = -{ = -/{ = -} = -/} = -""" = -/" = - -[highlightDocBlockSourceTokens] -;; this is for docblock tokens, using by phpDocumentor_HighlightParser -;; tagphptype is for "string" in @param string description, for example -docblock = -/docblock = -tagphptype = -/tagphptype = -tagvarname = -/tagvarname = -coretag = -/coretag = -tag = -/tag = -inlinetag = -/inlinetag = -internal = -/internal = -closetemplate = -/closetemplate = -docblocktemplate = -/docblocktemplate = - -[highlightTutorialSourceTokens] -;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser -;; -opentag = -/opentag = -;; -closetag = -/closetag = -;; -attribute = -/attribute = -;; -attributevalue = -/attributevalue = -;; &entity; -entity = -/entity = -;; -comment = -/comment = -;; {@inline tag} -itag = -/itag = - -;; used for translation of html in DocBlocks -[desctranslate] -ul =
          -/ul =
        -ol =
          -/ol =
        -li =
      • -/li =
      • -code =
        -/code = 
        -var = -/var = -samp = -/samp = -kbd = -/kbd = -pre =
        -/pre = 
        -p =

        -/p =

        -b = -/b = -i = -/i = -br =
        - -[ppage] -;; this is the DocBook package page translation section. All DocBook tags -;; that have a corresponding html tag must be listed here. Entities should -;; also be listed here -;; -;; examples: -;; 1) -;; tagname = newtagname -;; -;; This is the simplest case, where all attributes will be added into the -;; starting tag and the ending tag will be html/xml style -;; becomes and -;; becomes -;; -;; -;; 2) -;; tagname = newtagname -;; tagname->attr = newattrname -;; -;; in this case, everything will be like the first case, except tags like: -;; will become -;; -;; -;; 3) -;; tagname = newtagname -;; tagname->attr = newattrname -;; tagname->attr+value = newvalue -;; -;; in this case, the value is also translated to another. This can be useful -;; for instances such as focus="middle" changing to align="center" or something -;; of that nature. -;; will become -;; -;; -;; 4) -;; tagname = newtagname -;; tagname->attr1 = newattrname -;; tagname->attr2 = newattrname -;; tagname->attr1+value|attr2+value = newvalue -;; -;; in this case, two attributes combine to make one new attribute, and the combined -;; value is translated into a new value -;; will become -;; -;; -;; 5) -;; tagname = newtagname -;; tagname!attr = dummy -;; -;; here, the attribute will be ignored. dummy is not used and may be any value -;; will become -;; -;; -;; 6) -;; tagname = newtagname -;; tagname! = dummy -;; -;; here, all attributes will be ignored. dummy is not used and may be any value -;; will become -;; -;; -;; 7) -;; tagname = newtagname -;; tagname/ = 1 -;; -;; here, the tag will be translated as a single tag with no closing tag, and all -;; attributes -;; {text text} will become -;; -;; -;; 8) -;; tagname = -;; /tagname = closetagtext -;; -;; in this case, the text will be inserted exactly as entered for -;; and closetagtext for -;; will become -;; closetagtext -;; -;; 9) -;; $attr$my_attribute = newattrname -;; -;; tagname = newtagname -;; -;; in this case, all occurences of my_attribute in any tag will be changed to -;; newattrname. This is useful for changing things like role="php" to -;; class="php," for example. Note that the text "$attr$" MUST be on the line -;; start for phpDocumentor to recognize it. -;; -;; 10) -;; &entity; = translation text -;; " = " -;; " = """ -;; < = < -;; -;; Use this to control translation of entities to their appropriate values - -  =   -" = " -” = ” -“ = “ -& = & -< = < -> = > -© = © - -$attr$role = class - -abbrev = abbr - -blockquote = blockquote - -arg = span -arg->choice = class - -author = -/author = -author! = 0 - -authorblurb =
        -/authorblurb =
        - -authorgroup =

        Authors

        -/authorgroup =
        -authorgroup! = 0 - -caution = -/caution = -caution! = 0 - -cmdsynopsis =
        -/cmdsynopsis =
        - -command = -/command = - -copyright =
        -/copyright =
        - -emphasis = strong - -example =
        -/example = 
        -example! = 0 - -function = -/function = () - -formalpara = p - -graphic = img -graphic->fileref = src -graphic/ = - -important = strong - -informalequation = blockquote - -informalexample = div - -inlineequation = em - -itemizedlist = ul - -listitem = li - -literal = code - -literallayout = span - -option = " " -/option = - -orderedlist = ol - -para = p - -programlisting =
        -/programlisting = 
        -programlisting! = 0 - -refentry = div - -refnamediv =
        -/refnamediv =
        -refnamediv! = 0 - -refname =

        -/refname =

        - -refpurpose =

        -/refpurpose =

        - -refsynopsisdiv =
        -/refsynopsisdiv =
        -refsynopsisdiv! = 0 - -refsect1 = span - -refsect2 = -/refsect2 =
        - -refsect3 = -/refsect3 =
        - -releaseinfo =
        ( -/releaseinfo = )
        - -simpara = -/simpara =
        -simpara! = 0 - -subscript = sub - -superscript = super - -table = table - -table->colsep = rules -table->rowsep = rules -table->colsep+1|rowsep+1 = all -table->colsep+1|rowsep+0 = cols -table->colsep+0|rowsep+1 = rows - -table->frame = frame -table->frame+all = border -table->frame+none = void -table->frame+sides = vsides -table->frame+top = above -table->frame+topbot = hsides - -thead = thead - -tfoot = tfoot - -tbody = tbody - -colspec = col - -tgroup = colgroup -tgroup/ = 1 -tgroup->cols = span - -row = tr - -entry = td -entry->morerows = colspan -entry->morerows+1 = 2 -entry->morerows+2 = 3 -entry->morerows+3 = 4 -entry->morerows+4 = 5 -entry->morerows+5 = 6 -entry->morerows+6 = 7 -entry->morerows+7 = 8 -entry->morerows+8 = 9 -entry->morerows+9 = 10 -entry->morerows+10 = 11 -;; add more if you need more colspans - -warning = -/warning = -warning! = 0 - -;; now begins the attributes that should be tags in cdata -[$attr$id] -open = a -;close = /a -cdata! = true -quotevalues = true -separator = "=" -;separateall = true -$id = name - -;; now begins the sections that deal with -[refsynopsisdiv_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h1 class="title"> -close = </h1> - -[refsect1_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h2 class="title"> -close = </h2> - -[refsect2_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h3 class="title"> -close = </h3> - -[refsect3_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h4 class="title"> -close = </h4> - -[para_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <div class="title"> -close = </div> - -[formalpara_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <div class="title"> -close = </div> - -[example_title] -;tag_attr = true -;attr_name = title -;cdata_start = true -cdata_end = true -open = </td></tr><tr><td><strong> -close = </strong> - -[table_title] -;tag_attr = true -;attr_name = true -cdata_start = true -open = <caption> -close = </caption> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list"> - {section name=tag loop=$tags} - {if $tags[tag].keyword != "abstract" && - $tags[tag].keyword != "access" && - $tags[tag].keyword != "static" && - $tags[tag].keyword != "version" - } - - <strong>{$tags[tag].keyword|capitalize}:</strong> - {$tags[tag].data}<br /> - {/if} - {/section} -</div> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl deleted file mode 100644 index d7fe2f82..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl +++ /dev/null @@ -1,38 +0,0 @@ -<hr size="1" noshade="noshade"/> -<div class="class-declaration"> - {if count($tags) > 0} - {section name=tag loop=$tags} - {if $tags[tag].keyword == "abstract"} - abstract - {/if} - {/section} - {/if} - - {if $is_interface} - interface - {else} - class - {/if} - - <strong>{$class_name}</strong> - - {if count($class_tree) > 1} - {section name=tree loop=$class_tree.classes} - {if $smarty.section.tree.last} - extends {$class_tree.classes[$smarty.section.tree.index_prev]} - {/if} - {/section} - {/if} - - {if $implements} - <br/> - implements - {foreach item="interface" from=$implements} - {if !$smarty.foreach.interface.first} - , {$interface} - {else} - {$interface} - {/if} - {/foreach} - {/if} -</div> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl deleted file mode 100644 index 12025c1c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl +++ /dev/null @@ -1,7 +0,0 @@ -<div class="class-description"> - <p>{$sdesc}</p> - - {if $desc != ""}{$desc}{/if} -</div> - -{include file="_tags.tpl" tags=$tags} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl deleted file mode 100644 index d6a1d398..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl +++ /dev/null @@ -1 +0,0 @@ -{eval var=$compiledclassindex} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl deleted file mode 100644 index bca71e17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl +++ /dev/null @@ -1,33 +0,0 @@ -{if $consts} - <hr size="1" noshade="noshade"/> - <a name="constant-details"></a> - <table class="constant-details" cellspacing="1"> - <tr> - <th>Constant Details</th> - </tr> - {section name=const loop=$consts} - <tr> - <td> - <a name="{$consts[const].const_dest}"></a> - - <h3>{$consts[const].const_name}</h3> - - <p>{$consts[const].sdesc}</p> - - {if $consts[const].desc} - {$consts[const].desc} - {/if} - - <div class="tag-list"> - <h4 class="tag">Type:</h4> - <div class="tag-data">{include file="_get_constant_type.tpl" const=$consts[const].const_value}</div> - <h4 class="tag">Value:</h4> - <div class="tag-data">{$consts[const].const_value}</div> - </div> - {include file="_tags.tpl" tags=$consts[const].tags} - <p/> - </td> - </tr> - {/section} - </table> -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl deleted file mode 100644 index 8049c4b0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{if $consts || $iconsts} - <hr size="1" noshade="noshade"/> - <a name="constant-summary"></a> - <table class="constant-summary" cellspacing="1"> - <tr> - <th colspan="3">Constant Summary</th> - </tr> - {section name=const loop=$consts} - <tr> - <td class="type" nowrap="nowrap">{strip}{include file="_get_constant_type.tpl" const=$consts[const].const_value}{/strip}</td> - <td class="name"><a href="{$consts[const].id}">{$consts[const].const_name}</a></td> - <td class="description" width="100%"> - {$consts[const].sdesc} - - {if $consts[const].desc} - {$consts[const].desc} - {/if} - </td> - </tr> - {/section} - </table> -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl deleted file mode 100644 index ec4fd0a2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__construct"} - <hr size="1" noshade="noshade"/> - <a name="sec-method"></a> - <table class="method-details" cellspacing="1"> - <tr> - <th colspan="3">Constructor Details</th> - </tr> - <tr> - <td class="method-data"> - <a name="{$methods[method].method_dest}"></a> - - <h2>{$methods[method].function_name}</h2> - - <table class="method-detail" cellspacing="0"> - <tr> - <td nowrap="nowrap">{strip} - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].access == "public"} - public  - {/if} - - {if $methods[method].abstract == "1"} - abstract  - {/if} - - {if $methods[method].static == "1"} - static  - {/if} - - <strong>{$methods[method].function_name}</strong> - {/strip}</td> - <td nowrap="nowrap">{strip} - {$methods[method].ifunction_call.params} - {/strip}</td> - </tr> - </table> - - <p>{$methods[method].sdesc}</p> - - {if $methods[method].desc} - {$methods[method].desc} - {/if} - - {include file="_tags.tpl" tags=$methods[method].tags} - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl deleted file mode 100644 index 8819f63e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__construct"} - <hr size="1" noshade="noshade"/> - <a name="constructor-summary"></a> - <table class="method-summary" cellspacing="1"> - <tr> - <th colspan="2">Constructor Summary</th> - </tr> - <tr> - <td class="type" nowrap="nowrap" width="1%">{$methods[method].access}</td> - <td> - <div class="declaration"> - <a href="{$methods[method].id}">{$methods[method].function_name}</a> - {$methods[method].ifunction_call.params} - </div> - <div class="description"> - {$methods[method].sdesc} - </div> - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl deleted file mode 100644 index 3cb5534a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__destruct"} - <hr size="1" noshade="noshade"/> - <a name="sec-method"></a> - <table class="method-details" cellspacing="1"> - <tr> - <th colspan="3">Destructor Details</th> - </tr> - <tr> - <td class="method-data"> - <a name="{$methods[method].method_dest}"></a> - - <h2>{$methods[method].function_name}</h2> - - <table class="method-detail" cellspacing="0"> - <tr> - <td nowrap="nowrap">{strip} - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].access == "public"} - public  - {/if} - - {if $methods[method].abstract == "1"} - abstract  - {/if} - - {if $methods[method].static == "1"} - static  - {/if} - - <strong>{$methods[method].function_name}</strong> - {/strip}</td> - <td nowrap="nowrap">{strip} - {build_argument_list args=$methods[method].ifunction_call.params style="vertical"} - {/strip}</td> - </tr> - </table> - - <p>{$methods[method].sdesc}</p> - - {if $methods[method].desc} - {$methods[method].desc} - {/if} - - {include file="_tags.tpl" tags=$methods[method].tags} - </td> - </tr> - </table> - {/if} - {/section} -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl deleted file mode 100644 index 53e8f1d2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__destruct"} - <hr size="1" noshade="noshade"/> - <a name="desructor-summary"></a> - <table class="method-summary" cellspacing="1"> - <tr> - <th colspan="2">Destructor Summary</th> - </tr> - <tr> - <td class="type" nowrap="nowrap" width="1%">{strip} - {$methods[method].access} - {/strip}</td> - <td> - <div class="declaration">{strip} - <a href="{$methods[method].id}">{$methods[method].function_name}</a> - {$methods[method].ifunction_call.params} - {/strip}</div> - <div class="description"> - {$methods[method].sdesc} - </div> - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl deleted file mode 100644 index 0c2eddc2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl +++ /dev/null @@ -1 +0,0 @@ -</div> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl deleted file mode 100644 index 48301da4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{if is_numeric(strtolower(trim($const)))} - int -{elseif strtolower(trim($const)) == "true" || - strtolower(trim($const)) == "false"} - bool -{elseif strtolower(trim($const)) == "null"} - null -{else} - string -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl deleted file mode 100644 index f92571a4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl +++ /dev/null @@ -1,4 +0,0 @@ -<div id="bar" nowrap="nowrap"> - {include file="_class_list.tpl"} -</div> -<div id="content1"> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl deleted file mode 100644 index 66c37633..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl +++ /dev/null @@ -1,34 +0,0 @@ -{if $iconsts} - {section name=iconst loop=$iconsts} - <table class="inherited-constants" cellspacing="1"> - <tr> - <th>Constants Inherited From {$iconsts[iconst].parent_class}</th> - </tr> - <tr> - <td> - {assign var="_consts" value=""} - - {section name=_const loop=$iconsts[iconst].iconsts} - {if $_consts != ""}, - {* append var="_consts" value=", "*} - {/if} - <a href="{$href}">{$iconsts[iconst].iconsts[_const].name}</a>{if !$smarty.section.name.last},{/if} - {* - {extract_attribute attribute="href" - element=$iconsts[iconst].iconsts[_const].link - var="href" append="no"} - - {append var="_consts" value="<a href=\""} - {append var="_consts" value=$href} - {append var="_consts" value="\">"} - {append var="_consts" value=$iconsts[iconst].iconsts[_const].name} - {append var="_consts" value="</a>"} - *} -{/section} - - {*$_consts*} - </td> - </tr> - </table> - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl deleted file mode 100644 index 55aafb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl +++ /dev/null @@ -1,42 +0,0 @@ -{if $imethods} - {section name=imethod loop=$imethods} - {if count($imethods[imethod].imethods) > 1 || - ($imethods[imethod].imethods[0].name != "__construct" && - $imethods[imethod].imethods[0].name != "__destruct" && - $imethods[imethod].imethods[0].abstract != "1")} - <table class="inherited-methods" cellspacing="1"> - <tr> - <th>Methods Inherited From {$imethods[imethod].parent_class}</th> - </tr> - <tr> - <td> - {* assign var="_methods" value="" *} - - {section name=_method loop=$imethods[imethod].imethods} - {if $imethods[imethod].imethods[_method].name != "__construct" && - $imethods[imethod].imethods[_method].abstract != "1"} - {* - {if $_methods != ""} - {append var="_methods" value=", "} - {/if} - - {extract_attribute attribute="href" - element=$imethods[imethod].imethods[_method].link - var="href" append="no"} - - {append var="_methods" value="<a href=\""} - {append var="_methods" value=$href} - {append var="_methods" value="\">"} - {append var="_methods" value=$imethods[imethod].imethods[_method].name} - {append var="_methods" value="</a>"} - *} - {$imethods[imethod].imethods[_method].link}{if !$smarty.section._method.last},{/if} - {/if} - {/section} - - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl deleted file mode 100644 index 471c7972..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl +++ /dev/null @@ -1,3 +0,0 @@ -<div class="inheritence-tree"> - <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre> -</div> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl deleted file mode 100644 index b5ddfb10..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl +++ /dev/null @@ -1,101 +0,0 @@ -{if $methods && (count($methods) > 1 || - ($methods[0].function_name != "__construct" && - $methods[0].function_name != "__destruct"))} - - <hr size="1" noshade="noshade"/> - <a name="method-details"></a> - <table class="method-details" cellspacing="1"> - <tr> - <th>Method Details</th> - </tr> - {section name=method loop=$methods} - {if $methods[method].function_name != "__construct" && - $methods[method].function_name != "__destruct"} - - <tr> - <td class="method-data"> - - <a name="{$methods[method].method_dest}"></a> - - <h2>{$methods[method].function_name}</h2> - - <table class="method-detail" cellspacing="0"> - <tr> - <td nowrap="nowrap">{strip} - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].access == "public"} - public  - {/if} - - {if $methods[method].abstract == 1} - abstract  - {/if} - - {if $methods[method].static == 1} - static  - {/if} - - {$methods[method].function_return}  - - - <strong>{$methods[method].function_name}</strong> - {/strip}</td> - <td width="100%">{strip} - ( - {if $methods[method].ifunction_call.params} - {foreach item=param name="method" from=$methods[method].ifunction_call.params} - {$param.type} {$param.name} {if !$smarty.foreach.method.last}, {/if} - {/foreach} - - {/if} - ) - {/strip}</td> - </tr> - </table> - - <p>{$methods[method].sdesc}</p> - - {if $methods[method].desc} - {$methods[method].desc} - {/if} - {* $methods[method]|print_r *} - <div class="tag-list"><table class="method-summary" cellspacing="1"> - {if $methods[method].ifunction_call.params} - <tr><th colspan="3" class="small">Input</th></tr> - {foreach item=param name="method" from=$methods[method].ifunction_call.params} - <tr><td valign="top">{$param.type}</td><td valign="top"><strong>{$param.name}</strong><td valign="top">{$param.description}</td></tr> - {/foreach} - {/if} - {if $methods[method].tags} - <tr><th colspan="3" class="small">Output</th></tr> - - {foreach item=param name="method" from=$methods[method].tags} - {if $param.keyword == "return"} - <tr><td valign="top"> - {$methods[method].function_return} - </td><td valign="top" colspan="2">{$param.data}</td></tr> - {/if} - {/foreach} - {/if} - {if $methods[method].tags} - <tr><th colspan="3" class="small">Exception</th></tr> - - {foreach item=param name="method" from=$methods[method].tags} - {if $param.keyword == "throws"} - <tr><td valign="top">{$param.keyword}</td><td valign="top" colspan="2">{$param.data}</td></tr> - {/if} - {/foreach} - {/if} - </table></div> - - {* include file="_tags.tpl" tags=$methods[method].tags *} - <p/> - </td> - </tr> - {/if} - {/section} - </table> -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl deleted file mode 100644 index 8fefd671..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl +++ /dev/null @@ -1,61 +0,0 @@ -{if $methods || $imethods} - <hr size="1" noshade="noshade"/> - <a name="method-summary"></a> - <table class="method-summary" cellspacing="1"> - <tr> - <th colspan="2">Method Summary</th> - </tr> - {section name=method loop=$methods} - {if $methods[method].function_name != "__construct" && - $methods[method].function_name != "__destruct"} - {* - {if trim(substr($methods[method].function_call, 0, 1)) == "&"} - {assign var="ref" value="true"} - {assign var="css" value=" class=\"reference\""} - {else} - {assign var="ref" value="false"} - {assign var="css" value=""} - {/if} - *} - <tr> - <td class="type" nowrap="nowrap" width="1%"> - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].abstract == 1} - abstract  - {/if} - - {if $methods[method].static == 1} - static  - {/if} - - {$methods[method].function_return} -{* - {if $ref == "true"} -  & - {/if} -*} - </td> - <td> - <div class="declaration"> - <a href="{$methods[method].id}">{$methods[method].function_name}</a> - ({strip} - {if $methods[method].ifunction_call.params} - {foreach item=param name="method" from=$methods[method].ifunction_call.params} - {$param.type} {$param.name}{if !$smarty.foreach.method.last}, {/if} - {/foreach} - - {/if} - {/strip}) - </div> - <div class="description"> - {$methods[method].sdesc} - </div> - </td> - </tr> - {/if} - {/section} - </table> -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl deleted file mode 100644 index e605b314..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl +++ /dev/null @@ -1,19 +0,0 @@ -{if $children} - <div class="sub-classes"> - {if $is_interface} - <h4>Direct Known Sub-interfaces:</h4> - {else} - <h4>Direct Known Sub-classes:</h4> - {/if} - - <div><small> - {section name=child loop=$children} - {if !$smarty.section.child.first} - , {$children[child].link} - {else} - {$children[child].link} - {/if} - {/section} - </small></div> - </div> -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list"> - {section name=tag loop=$tags} - {if $tags[tag].keyword != "abstract" && - $tags[tag].keyword != "access" && - $tags[tag].keyword != "static" && - $tags[tag].keyword != "version" - } - - <strong>{$tags[tag].keyword|capitalize}:</strong> - {$tags[tag].data}<br /> - {/if} - {/section} -</div> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl deleted file mode 100644 index 37e94343..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{section name=letter loop=$letters} - [ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> ] -{/section} - -{section name=index loop=$index} - <hr /> - <a name="{$index[index].letter}"></a> - <div> - <h2>{$index[index].letter}</h2> - <dl> - {section name=contents loop=$index[index].index} - <dt><b>{$index[index].index[contents].name}</b></dt> - <dd>{$index[index].index[contents].listing}</dd> - {/section} - </dl> - </div> - <a href="{$indexname}.html#top">top</a><br> -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl deleted file mode 100644 index b503c142..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl +++ /dev/null @@ -1,5 +0,0 @@ -<div align="center"><h1>{$maintitle}</h1></div> -<b>Welcome to {$package}!</b><br /> -<br /> -This documentation was generated by <a href="{$phpdocwebsite}">phpDocumentor v{$phpdocversion}</a><br /> - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl deleted file mode 100644 index 49e8c142..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{include file="header.tpl" eltype="class" hasel=true contents=$classcontents} - -<h1><a href="../../../classdoc/{$class_name}.html">{if $is_interface}Interface{else}Class{/if} {$class_name}</a> -<span style="font-size:11pt">(<a href="../../../classdoc/{$class_name}.html">Class Overview</a>)</span> -</h1> - -{*inheritence tree*} -<div class="inheritence-tree"> - <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre> -</div> - -{include file="_sub_classes.tpl"} -{include file="_class_description.tpl"} -{include file="_inherited_constants.tpl"} - -{include file="_constructor_summary.tpl"} -{* include file="_destructor_summary.tpl" *} - -{include file="_method_summary.tpl"} - -{include file="_inherited_methods.tpl"} -{include file="_constant_summary.tpl"} -{include file="_constructor_details.tpl"} - -{* include file="_destructor_details.tpl" *} - -{include file="_method_details.tpl"} - -{include file="_constant_details.tpl"} - -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl deleted file mode 100644 index c07fc33a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{foreach key=subpackage item=files from=$classleftindex} - <div class="package"> - {if $subpackage != ""}{$subpackage}<br />{/if} - {section name=files loop=$files} - {if $subpackage != ""}  {/if} - {if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}<br /> - {/section} - </div> -{/foreach} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl deleted file mode 100644 index 4020e3a8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{include file="header.tpl" noleftindex=true} -<h1>{$title}</h1> -{section name=classtrees loop=$classtrees} -<hr /> -<div class="classtree">Root class {$classtrees[classtrees].class}</div><br> -{$classtrees[classtrees].class_tree} -{/section} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl deleted file mode 100644 index 88856c4b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{section name=consts loop=$consts} -{if $show == 'summary'} - var {$consts[consts].const_name}, {$consts[consts].sdesc}<br> -{else} - <a name="{$consts[consts].const_dest}"></a> - <p></p> - <h4>{$consts[consts].const_name} = <span class="value">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":" "|replace:"\t":"   "}</span></h4> - <p>[line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}]</p> - {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags} - - <br /> - <div class="top">[ <a href="#top">Top</a> ]</div><br /> -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl deleted file mode 100644 index a1c71a0d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl +++ /dev/null @@ -1 +0,0 @@ -{$toc} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl deleted file mode 100644 index 04ce5b48..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{if count($defines) > 0} -{section name=def loop=$defines} -{if $show == 'summary'} -define constant <a href="{$defines[def].id}">{$defines[def].define_name}</a> = {$defines[def].define_value}, {$defines[def].sdesc}<br> -{else} - <hr /> - <a name="{$defines[def].define_link}"></a> - <h3>{$defines[def].define_name} <span class="smalllinenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</span></h3> - <div class="tags"> - <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border"> - <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code"> - <code>{$defines[def].define_name} = {$defines[def].define_value}</code> - </td></tr></table> - </td></tr></table> - - {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags} - <br /> - {if $defines[def].define_conflicts.conflict_type} - <p><b>Conflicts with defines:</b> - {section name=me loop=$defines[def].define_conflicts.conflicts} - {$defines[def].define_conflicts.conflicts[me]}<br /> - {/section} - </p> - {/if} -{* original {if $defines[def].define_conflicts != "" - <b>Conflicts:</b> {$defines[def].define_conflicts<br /><br /> - {/if *} - </div> - <div class="top">[ <a href="#top">Top</a> ]</div><br /><br /> -{/if} -{/section} -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl deleted file mode 100644 index 09a603f8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{if $sdesc != ''}{$sdesc|default:''}<br /><br />{/if} -{if $desc != ''}{$desc|default:''}<br />{/if} -{if count($tags) > 0} -<br /><br /> -<h4>Tags:</h4> -<div class="tags"> -<table border="0" cellspacing="0" cellpadding="0"> -{section name=tag loop=$tags} - <tr> - <td><b>{$tags[tag].keyword}:</b>  </td><td>{$tags[tag].data}</td> - </tr> -{/section} -</table> -</div> -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl deleted file mode 100644 index 175a5136..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl" noleftindex=true} -<a name="top"></a> -<h1>Index of all elements</h1> -{include file="basicindex.tpl" indexname="elementindex"} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl deleted file mode 100644 index 1576a822..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{include file="header.tpl" noleftindex=true} -{section name=files loop=$files} -<a href="#{$files[files].file}">{$files[files].file}</a><br> -{/section} -{foreach key=file item=issues from=$all} -<a name="{$file}"></a> -<h1>{$file}</h1> -{if count($issues.warnings)} -<h2>Warnings:</h2><br> -{section name=warnings loop=$issues.warnings} -<b>{$issues.warnings[warnings].name}</b> - {$issues.warnings[warnings].listing}<br> -{/section} -{/if} -{if count($issues.errors)} -<h2>Errors:</h2><br> -{section name=errors loop=$issues.errors} -<b>{$issues.errors[errors].name}</b> - {$issues.errors[errors].listing}<br> -{/section} -{/if} -{/foreach} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl deleted file mode 100644 index fb85654b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl" title=$title} -<h1 align="center">{$title}</h1> -<div class="php"> -{$source} -</div> -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl deleted file mode 100644 index 50f108d7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{foreach key=subpackage item=files from=$fileleftindex} - {if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if} - <div class="package"> - {section name=files loop=$files} - {if $files[files].link != ''}<a href="{$files[files].link}">{/if} - {$files[files].title} - {if $files[files].link != ''}</a>{/if}<br> - {/section} - </div><br /> -{/foreach} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl deleted file mode 100644 index b23076a0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{capture name="tutle"}File Source for {$name}{/capture} -{include file="header.tpl" title=$smarty.capture.tutle} -<h1 align="center">Source for file {$name}</h1> -<p>Documentation is available at {$docs}</p> -<div class="php"> -{$source} -</div> -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl deleted file mode 100644 index 0b744c20..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl +++ /dev/null @@ -1,11 +0,0 @@ - - -<div id="footer"> - Copyright © 2006 by Prado Software Group. -</div> - -</div><!-- page --> - - -</body> -</html> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl deleted file mode 100644 index 098aeb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl +++ /dev/null @@ -1,48 +0,0 @@ -{section name=func loop=$functions} -{if $show == 'summary'} -function {$functions[func].id}, {$functions[func].sdesc}<br /> -{else} - <hr /> - <a name="{$functions[func].function_dest}"></a> - <h3>{$functions[func].function_name} <span class="smalllinenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</span></h3> - <div class="function"> - <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border"> - <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code"> - <code>{$functions[func].function_return} {if $functions[func].ifunction_call.returnsref}&{/if}{$functions[func].function_name}( -{if count($functions[func].ifunction_call.params)} -{section name=params loop=$functions[func].ifunction_call.params} -{if $smarty.section.params.iteration != 1}, {/if}{if $functions[func].ifunction_call.params[params].default != ''}[{/if}{$functions[func].ifunction_call.params[params].type} {$functions[func].ifunction_call.params[params].name}{if $functions[func].ifunction_call.params[params].default != ''} = {$functions[func].ifunction_call.params[params].default|escape:"html"}]{/if} -{/section} -{/if})</code> - </td></tr></table> - </td></tr></table><br /> - - {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags} - <br /><br /> - {if $functions[func].function_conflicts.conflict_type} - <p><b>Conflicts with functions:</b> - {section name=me loop=$functions[func].function_conflicts.conflicts} - {$functions[func].function_conflicts.conflicts[me]}<br /> - {/section} - </p> - {/if} -{* original {if $functions[func].function_conflicts != "" - <b>Conflicts:</b> {$functions[func].function_conflicts<br /><br /> - {/if *} - - {if count($functions[func].params) > 0} - <h4>Parameters</h4> - <table border="0" cellspacing="0" cellpadding="0"> - {section name=params loop=$functions[func].params} - <tr> - <td class="type">{$functions[func].params[params].datatype}  </td> - <td><b>{$functions[func].params[params].var}</b>  </td> - <td>{$functions[func].params[params].data}</td> - </tr> - {/section} - </table> - {/if} - <div class="top">[ <a href="#top">Top</a> ]</div><br /><br /> - </div> -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl deleted file mode 100644 index 1053f748..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl +++ /dev/null @@ -1,40 +0,0 @@ -{if count($globals) > 0} -{section name=glob loop=$globals} -{if $show == 'summary'} -global variable <a href="{$globals[glob].id}">{$globals[glob].global_name}</a> = {$globals[glob].global_value}, {$globals[glob].sdesc}<br> -{else} - <hr /> - <a name="{$globals[glob].global_link}"></a> - <h4><i>{$globals[glob].global_type}</i> {$globals[glob].global_name} <span class="smalllinenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</span></h4> - <div class="tags"> - {if $globals[glob].sdesc != ""} - {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags} - {/if} - - <table border="0" cellspacing="0" cellpadding="0"> - <tr> - <td><b>Default value:</b>  </td> - <td>{$globals[glob].global_value|replace:" ":" "|replace:"\n":"<br />\n"|replace:"\t":"   "}</td> - </tr> - {if $globals[glob].global_conflicts.conflict_type} - <tr> - <td><b>Conflicts with globals:</b>  </td> - <td> - {section name=me loop=$globals[glob].global_conflicts.conflicts} - {$globals[glob].global_conflicts.conflicts[me]}<br /> - {/section} - </td> - </tr> - {/if} -{* original {if $globals[glob].global_conflicts != "" - <tr> - <td><b>Conflicts:</b>  </td> - <td>{$globals[glob].global_conflicts</td> - </tr> - {/if *} - </table> - </div><br /><br /> - <div class="top">[ <a href="#top">Top</a> ]</div><br /><br /> -{/if} -{/section} -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl deleted file mode 100644 index 83b0c66b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl +++ /dev/null @@ -1,23 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > - -<head> -<title>PRADO API Manual: {$title} - - - - - - - - - - - - - - - - -
        diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl deleted file mode 100644 index a68f02b1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS] -Compatibility=1.1 or later -Compiled file=documentation.chm -Contents file=contents.hhc -Default topic=index.html -Display compile progress=No -Index file=Index.hhk -Language=0x409 English (United States) - - -[FILES] -{section name=files loop=$files} -{$files[files].name} -{/section} - -[INFOTYPES] - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl deleted file mode 100644 index cff067db..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{if count($includes) > 0} -

        Includes:

        -
        -{section name=includes loop=$includes} -{$includes[includes].include_name}({$includes[includes].include_value}) [line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]
        -{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags} -{/section} -
        -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl deleted file mode 100644 index 8b31a11d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - -{$klinks} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl deleted file mode 100644 index 60c74b47..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl +++ /dev/null @@ -1,7 +0,0 @@ -{include file="header.tpl"} -{if $contents} -{$contents} -{else} -{include file="blank.tpl"} -{/if} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png deleted file mode 100644 index 19fdf05d..00000000 Binary files a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png and /dev/null differ diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css deleted file mode 100644 index 8aaa937d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css +++ /dev/null @@ -1,260 +0,0 @@ -/* thanks to symfony for a great base template for phpdoc */ -/* symfony-project.com */ - -#page -{ - width: 99%; -} - -div.credit -{ - font-size: 10px; - color: #888; -} - -.inherited-methods -{ - background-color: #ddd; - font-size: 1.0em; - margin-top: 10px; - width: 100%; -} - -.inherited-methods td -{ - background-color: #FFFFFF; - font-family: "courier new", courier; - font-size: 1.1em; - padding: 5px; -} - -.inherited-methods th -{ - background-color: #F0F0F0; - font-weight: bold; - padding: 5px; - text-align: left; -} - -.method-detail -{ - font-size: 1.0em; -} - -.method-detail a -{ - font-weight: bold; -} - -.method-detail td -{ - font-family: "courier new", courier; - font-size: 1.1em; - padding-top: 10px; - vertical-align: top; -} - -.method-details -{ - background-color: #ddd; - font-size: 1.0em; - width: 100%; -} - -.method-details td -{ - background-color: #FFFFFF; -} - -.method-details td.method-data -{ - padding: 5px; -} - -.method-details h2 -{ - color: #750000; -} - -.method-details th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.method-summary -{ - background-color: #aaa; - font-size: 1.0em; - width: 100%; -} - -.method-summary td -{ - background-color: #FFFFFF; - padding: 5px; -} - -.method-summary td a -{ - font-weight: bold; -} - -.method-summary td.type -{ - font-family: "courier new", courier; - font-size: 1.0em; - text-align: right; - vertical-align: top; -} - -.method-summary div.declaration -{ - font-family: "courier new", courier; - font-size: 1.1em; -} - -.method-summary th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.method-summary th.small -{ - font-size: 1.0em; -} - -.method-summary tr.reference td { - background-color: #FFEDED; -} - - -.constant-details -{ - background-color: #ddd; - font-size: 1.0em; - width: 100%; -} - -.constant-details h3 -{ - color: #750000; -} - -.constant-details td -{ - background-color: #FFFFFF; - padding: 5px; -} - -.constant-details th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.constant-summary -{ - background-color: #ddd; - font-size: 1.0em; - width: 100%; -} - -.constant-summary td -{ - background-color: #FFFFFF; - padding: 5px; -} - -.constant-summary td.name a -{ - font-family: "courier new", courier; - font-size: 1.0em; - font-weight: bold; -} - -.constant-summary td.type -{ - font-family: "courier new", courier; - font-size: 1.0em; -} - -.constant-summary th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.inherited-constants -{ - background-color: #eee; - font-size: 1.0em; - margin-top: 10px; - width: 100%; -} - -.inherited-constants td -{ - background-color: #FFFFFF; - font-family: "courier new", courier; - font-size: 1.1em; - padding: 5px; -} - -.inherited-constants th -{ - background-color: #F0F0F0; - font-weight: bold; - padding: 5px; - text-align: left; -} - -.class-declaration -{ - font-family: "courier new", courier; - font-size: 1.1em; -} - -.class-description -{ - background-color: #F0F0F0; - margin-top: 10px; - padding: 1px 8px 1px 8px; - margin-bottom: 5px; -} - -.inheritence-tree pre -{ - margin-bottom: 0; -} - -.sub-classes h4 -{ - margin: 10px 0 0 0; -} - -.sub-classes div -{ - font-family: "courier new", courier; - font-size: 1.1em; - margin: 5px 0 0 40px; -} - -.sub-classes div small -{ - font-size: 1.0em; -} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css deleted file mode 100644 index 918d43e4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css +++ /dev/null @@ -1,598 +0,0 @@ -/** - * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov - * http://decart.no - */ - -body -{ - text-align: center; -} - -body, div, span, p, input -{ - font-family: Verdana, sans-serif, Arial; - font-size: 10pt; - color: #333333; -} - -h1, h2, h3, h4 -{ - font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS; - padding: 0px; - margin: 0px; - margin-bottom: 10px; - color: #821B18; - font-weight: normal; -} - -h2 -{ - font-size: 18px; -} - -h3 -{ - font-size: 16px; -} - -div -{ - text-align: left; -} - -.instructions -{ - background-color: #EEEEEE; -} - -img -{ - border: none; -} - -a -{ - color: #CD2C27; - text-decoration: none; -} - -a:hover -{ - color: #821B18; - text-decoration: underline; -} - -#page -{ - margin: 0 auto; - padding: 0; - position: relative; -} - -#header -{ - position: relative; - height: 98px; -} - -#logo -{ - height: 99px; -} - -/* main page */ - -div.intro -{ - height: 190px; - background-image: url('bigmantis.jpg'); - background-repeat: no-repeat; - background-position: top right; - background-color: #fff; -} - -div.statements -{ - height: 135px; - background-image: url('statementsbg.gif'); - background-repeat: repeat-x; - position: relative; - border-bottom : 1px solid #EEE; -} - -div.statements div -{ - position: absolute; - width: 250px; - top: 20px; -} - -div.statements div p -{ - font-size: 13px; - color: #818181; -} - -div.statements div.whatis -{ - left: 20px; -} - -div.statements div.whatreq -{ - left: 290px; -} - -div.statements div.cani -{ - left: 600px; - width: 210px; -} - -/* navbar */ -#navbar -{ - border-bottom: 2px solid #E9EEEF; - height: 30px; - margin-bottom: 20px; -} - -#navbar ul -{ - margin-left: 0; - padding-left: 0; - display: inline; -} - -#navbar ul li -{ - margin-left: 0px; - list-style: none; - display: inline; -} - -#navbar ul li a -{ - display: block; - float: left; - font-size: 14px; - font-weight: bold; - padding-right: 14px; - padding-top: 5px; - color: #CD2B26; - text-decoration: none; - height: 29px; -} - -#navbar ul li a.active, #navbar ul li a.hover -{ - color: #821B18; -} - -/* infobar */ -div#infobar -{ - float: right; - width: 200px; - padding-left: 20px; - border-left: 2px solid #E9EEEF; -} - -div#infobar div -{ - margin-bottom: 20px; -} - -div#infobar div#featured img -{ - margin-top: 10px; -} - -/* articles */ - -div#articles -{ - width: 560px; - float: left; -} - -/* article */ - -div.article -{ - margin-bottom: 40px; -} - -div.article .date -{ - color: #9F9291; -} - -div.article .more -{ - margin-right: 10px; - display: block; - text-align: right; -} - -.logo -{ - position: absolute; - margin-left: 15px; - margin-top: 0px; - z-index: 1; -} - -#main -{ - padding: 20px; - padding-top: 20px; - background-color: #fff; -} - -div.mantis -{ - height: 190px; - background-color: #fff; - border-bottom: 1px solid #DCDCDC; -} - -div.releases -{ - float: left; - width: 240px; - height: 190px; -} - -div.releases div.official -{ - width: 190px; - position: relative; - left: 52px; - top: 128px; - font-size: 8pt; - color: #6D6D6D; -} - -div.releases div.official a -{ - display: block; -} - -div.whyprado -{ - display: block; - float: left; -} - -div.whyprado ul.list -{ - margin-top: 40px; - margin-left: 40px; -} - -div.whyprado ul.list li -{ - display: block; - margin: 5px; - padding: 0px; - font-size: 18px; - background-repeat: no-repeat; - background-position: bottom left; - padding-left: 30px; - list-style: none; -} - - -#footer -{ - border-top: 1px solid #e9eeef; - background-color: #fff; - clear: both; - color: #A7A7A7; - font-size: 8pt; - text-align: center; - padding-top: 10px; - padding-bottom: 30px; - background-repeat: repeat-x; - background-position: bottom; -} - -#features -{ - margin-left: 610px; - padding: 10px; - padding-left: 10px; - padding-right: 10px; - background-color: #BEDD75; - color: #344A1E; - font-size: 9pt; -} - -#features ul -{ - margin: 10px; - padding: 0px; -} - -#features ul li -{ - font-size: 8pt; - padding: 0px; - margin: 0px; - margin-top: 8px; -} - -#features h3 -{ - margin: 0px; - padding: 0px; - font-size: 10pt; - color: #292E1D; - text-align: center; - border-bottom: 1px solid silver; -} - -#news -{ - float: left; - width: 590px; -} - -.newstitle -{ - font-size: 12pt; - font-weight: bold; - color: #555; - margin-top: 10px; - margin-bottom: 0px; - border-bottom: 1px solid silver; -} - -.newscontentmore -{ - margin-right: 10px; - display: block; - color: #50811A; - text-align: right; -} - -.newscontentmore:hover -{ - color: red; -} - -.newstime -{ - margin: 0px; - font-size:0.8em; - color:#aaa; - padding-left:10px; - text-align: right; -} - -.newscontent -{ - margin-top: 5px; -} - -#leftpanel -{ - float: left; - width: 550px; -} - -#topics -{ - border: 1px solid #804040; - margin-left: 610px; - padding-bottom: 10px; -} - -#topicsheader -{ - text-align:center; - font-weight:bold; - background-color:#804040; - color:#FFFFBC; - padding: 3px; - margin-bottom:0px; -} - -.topicitem -{ - padding: 5px; -} - -.topicitem a:hover -{ - text-decoration: underline; -} - -.topicitem p -{ - margin: 0px; - font-size:0.8em; - color:#aaa; - padding-left:10px; - white-space:nowrap; -} - -.reference -{ -} - -.reference img -{ - margin: 10px; -} - -.reference h3 -{ -} - - -.download -{ - width: 100%; - background-color: #aaa; -} - -.download td -{ - background-color: #FFFFFF; - padding: 5px; - font-size: 9pt; -} - -.download td a -{ - font-weight: bold; -} - -.download td.type -{ - font-family: "courier new", courier; - text-align: right; - vertical-align: top; -} - -.download div.declaration -{ - font-family: "courier new", courier; -} - - -.download th -{ - background-color: #F0F0F0; - font-weight: bold; - padding: 5px; - text-align: left; -} - -.download th.small -{ - font-size: 1.0em; -} - -.download tr.reference td { - background-color: #FFEDED; -} - - -.doc-title -{ - font-size: 14pt; - font-weight: bold; - margin-top: 10px; - margin-bottom: 10px; -} - -.doc-subtitle -{ - font-size: 11pt; - font-weight: bold; - background-color: #EEE; - padding: 5px; - margin-top: 20px; -} - -.doc-namespace -{ - font-size: 8pt; -} - - -.doc-menu -{ -} - -.doc-classes -{ -} - -.doc-ancestors -{ - font-size: 8pt; -} - -.doc-properties -{ - font-size: 9pt; -} - -.doc-properties table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-properties td, .doc-properties th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-events -{ - font-size: 9pt; -} - -.doc-events table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-events td, .doc-events th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-methods -{ - font-size: 9pt; -} - -.doc-methods table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-methods td, .doc-methods th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-derived -{ -} - -.doc-inherited -{ -} - -.doc-native td -{ - background-color: lightyellow; -} - -.forum-topic -{ - padding: 10px; - border:1px solid silver; - margin-bottom: 10px; -} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css deleted file mode 100644 index 7dc9d148..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css +++ /dev/null @@ -1,728 +0,0 @@ -BODY, DIV, SPAN, PRE, CODE, TD, TH { - line-height: 140%; - font-size: 10pt; - font-family: verdana,arial,sans-serif; -} - -H1 { - font-size: 12pt; -} - -H4 { - font-size: 10pt; - font-weight: bold; -} - -P.label { - margin-bottom: 5px; -} -P.dt { - margin-top: 0px; - margin-bottom: 0px; -} -P.indent { - margin-top: 0px; - margin-left: 20px; - margin-bottom: 0px; -} -P.method { - background-color: #f0f0f0; - padding: 2px; - border: 1px #cccccc solid; -} - -A { - text-decoration: none; -} - -A:link{ - color: #336699; -} - -A:visited { - color: #003366; -} - -A:active, A:hover { - color: #6699CC; -} - -A:hover{ - text-decoration: underline; -} - -SPAN.type { - color: #336699; - font-size: xx-small; - font-weight: normal; - } - -PRE { - background-color: #EEEEEE; - padding: 10px; - border-width: 1px; - border-color: #336699; - border-style: solid; -} - -HR { - color: #336699; - background-color: #336699; - border-width: 0px; - height: 1px; - filter: Alpha (opacity=100,finishopacity=0,style=1); -} - -DIV.sdesc { - font-weight: bold; - background-color: #EEEEEE; - padding: 10px; - border-width: 1px; - border-color: #336699; - border-style: solid; -} - -DIV.desc { - font-family: monospace; - background-color: #EEEEEE; - padding: 10px; - border-width: 1px; - border-color: #336699; - border-style: solid; -} - -SPAN.code { - font-family: monospace; -} - -CODE.varsummarydefault{ - padding: 1px; - border-width: 1px; - border-style: dashed; - border-color: #336699; -} - -UL.tute { - margin: 0px; - padding: 0px; - padding-left: 5px; - } - -LI.tute { - line-height: 140%; - font-size: 10pt; - text-indent: -15px; - padding-bottom: 2px; - padding-left: 14px; -} - -.small{ - font-size: 9pt; -} - - -.tute-tag { color: #009999 } -.tute-attribute-name { color: #0000FF } -.tute-attribute-value { color: #0099FF } -.tute-entity { font-weight: bold; } -.tute-comment { font-style: italic } -.tute-inline-tag { color: #636311; font-weight: bold } - -/** - * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov - * http://decart.no - */ - -body -{ - text-align: center; -} - -body, div, span, p, input -{ - font-family: Verdana, sans-serif, Arial; - font-size: 10pt; - color: #333333; -} - -h1, h2, h3, h4 -{ - font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS; - padding: 0px; - margin: 0px; - margin-bottom: 10px; - color: #821B18; - font-weight: normal; -} - -h2 -{ - font-size: 18px; -} - -h3 -{ - font-size: 16px; -} - -div -{ - text-align: left; -} - -.instructions -{ - background-color: #EEEEEE; -} - -img -{ - border: none; -} - -a -{ - color: #CD2C27; - text-decoration: none; -} - -a:hover -{ - color: #821B18; - text-decoration: underline; -} - -#page -{ - margin: 0 auto; - padding: 0; - position: relative; -} - -#header -{ - position: relative; - height: 98px; -} - -#logo -{ - height: 99px; -} - -/* main page */ - -div.intro -{ - height: 190px; - background-image: url('bigmantis.jpg'); - background-repeat: no-repeat; - background-position: top right; - background-color: #fff; -} - -div.statements -{ - height: 135px; - background-image: url('statementsbg.gif'); - background-repeat: repeat-x; - position: relative; - border-bottom : 1px solid #EEE; -} - -div.statements div -{ - position: absolute; - width: 250px; - top: 20px; -} - -div.statements div p -{ - font-size: 13px; - color: #818181; -} - -div.statements div.whatis -{ - left: 20px; -} - -div.statements div.whatreq -{ - left: 290px; -} - -div.statements div.cani -{ - left: 600px; - width: 210px; -} - -/* navbar */ -#navbar -{ - border-bottom: 2px solid #E9EEEF; - height: 30px; - margin-bottom: 20px; -} - -#navbar ul -{ - margin-left: 0; - padding-left: 0; - display: inline; -} - -#navbar ul li -{ - margin-left: 0px; - list-style: none; - display: inline; -} - -#navbar ul li a -{ - display: block; - float: left; - font-size: 14px; - font-weight: bold; - padding-right: 14px; - padding-top: 5px; - color: #CD2B26; - text-decoration: none; - height: 29px; -} - -#navbar ul li a.active, #navbar ul li a.hover -{ - color: #821B18; -} - -/* infobar */ -div#infobar -{ - float: right; - width: 200px; - padding-left: 20px; - border-left: 2px solid #E9EEEF; -} - -div#infobar div -{ - margin-bottom: 20px; -} - -div#infobar div#featured img -{ - margin-top: 10px; -} - -/* articles */ - -div#articles -{ - width: 560px; - float: left; -} - -/* article */ - -div.article -{ - margin-bottom: 40px; -} - -div.article .date -{ - color: #9F9291; -} - -div.article .more -{ - margin-right: 10px; - display: block; - text-align: right; -} - -.logo -{ - position: absolute; - margin-left: 15px; - margin-top: 0px; - z-index: 1; -} - -#main -{ - padding: 20px; - padding-top: 20px; - background-color: #fff; -} - -div.mantis -{ - height: 190px; - background-color: #fff; - border-bottom: 1px solid #DCDCDC; -} - -div.releases -{ - float: left; - width: 240px; - height: 190px; -} - -div.releases div.official -{ - width: 190px; - position: relative; - left: 52px; - top: 128px; - font-size: 8pt; - color: #6D6D6D; -} - -div.releases div.official a -{ - display: block; -} - -div.whyprado -{ - display: block; - float: left; -} - -div.whyprado ul.list -{ - margin-top: 40px; - margin-left: 40px; -} - -div.whyprado ul.list li -{ - display: block; - margin: 5px; - padding: 0px; - font-size: 18px; - background-repeat: no-repeat; - background-position: bottom left; - padding-left: 30px; - list-style: none; -} - - -#footer -{ - border-top: 1px solid #e9eeef; - background-color: #fff; - clear: both; - color: #A7A7A7; - font-size: 8pt; - text-align: center; - padding-top: 10px; - padding-bottom: 30px; - background-repeat: repeat-x; - background-position: bottom; -} - -#features -{ - margin-left: 610px; - padding: 10px; - padding-left: 10px; - padding-right: 10px; - background-color: #BEDD75; - color: #344A1E; - font-size: 9pt; -} - -#features ul -{ - margin: 10px; - padding: 0px; -} - -#features ul li -{ - font-size: 8pt; - padding: 0px; - margin: 0px; - margin-top: 8px; -} - -#features h3 -{ - margin: 0px; - padding: 0px; - font-size: 10pt; - color: #292E1D; - text-align: center; - border-bottom: 1px solid silver; -} - -#news -{ - float: left; - width: 590px; -} - -.newstitle -{ - font-size: 12pt; - font-weight: bold; - color: #555; - margin-top: 10px; - margin-bottom: 0px; - border-bottom: 1px solid silver; -} - -.newscontentmore -{ - margin-right: 10px; - display: block; - color: #50811A; - text-align: right; -} - -.newscontentmore:hover -{ - color: red; -} - -.newstime -{ - margin: 0px; - font-size:0.8em; - color:#aaa; - padding-left:10px; - text-align: right; -} - -.newscontent -{ - margin-top: 5px; -} - -#leftpanel -{ - float: left; - width: 550px; -} - -#topics -{ - border: 1px solid #804040; - margin-left: 610px; - padding-bottom: 10px; -} - -#topicsheader -{ - text-align:center; - font-weight:bold; - background-color:#804040; - color:#FFFFBC; - padding: 3px; - margin-bottom:0px; -} - -.topicitem -{ - padding: 5px; -} - -.topicitem a:hover -{ - text-decoration: underline; -} - -.topicitem p -{ - margin: 0px; - font-size:0.8em; - color:#aaa; - padding-left:10px; - white-space:nowrap; -} - -.reference -{ -} - -.reference img -{ - margin: 10px; -} - -.reference h3 -{ -} - - -.download -{ - width: 100%; - background-color: #aaa; -} - -.download td -{ - background-color: #FFFFFF; - padding: 5px; - font-size: 9pt; -} - -.download td a -{ - font-weight: bold; -} - -.download td.type -{ - font-family: "courier new", courier; - text-align: right; - vertical-align: top; -} - -.download div.declaration -{ - font-family: "courier new", courier; -} - - -.download th -{ - background-color: #F0F0F0; - font-weight: bold; - padding: 5px; - text-align: left; -} - -.download th.small -{ - font-size: 1.0em; -} - -.download tr.reference td { - background-color: #FFEDED; -} - - -.doc-title -{ - font-size: 14pt; - font-weight: bold; - margin-top: 10px; - margin-bottom: 10px; -} - -.doc-subtitle -{ - font-size: 11pt; - font-weight: bold; - background-color: #EEE; - padding: 5px; - margin-top: 20px; -} - -.doc-namespace -{ - font-size: 8pt; -} - - -.doc-menu -{ -} - -.doc-classes -{ -} - -.doc-ancestors -{ - font-size: 8pt; -} - -.doc-properties -{ - font-size: 9pt; -} - -.doc-properties table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-properties td, .doc-properties th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-events -{ - font-size: 9pt; -} - -.doc-events table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-events td, .doc-events th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-methods -{ - font-size: 9pt; -} - -.doc-methods table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-methods td, .doc-methods th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-derived -{ -} - -.doc-inherited -{ -} - -.doc-native td -{ - background-color: lightyellow; -} - -.forum-topic -{ - padding: 10px; - border:1px solid silver; - margin-bottom: 10px; -} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl deleted file mode 100644 index 07cb76e5..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl +++ /dev/null @@ -1,58 +0,0 @@ -{section name=methods loop=$methods} -{if $show == 'summary'} -method {$methods[methods].function_call}, {$methods[methods].sdesc}
        -{else} -
        - -

        {if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_name} [line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]

        -
        -
        -
        - {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name}( -{if count($methods[methods].ifunction_call.params)} -{section name=params loop=$methods[methods].ifunction_call.params} -{if $smarty.section.params.iteration != 1}, {/if} -{if $methods[methods].ifunction_call.params[params].default != ''}[{/if}{$methods[methods].ifunction_call.params[params].type} -{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].default != ''} = {$methods[methods].ifunction_call.params[params].default}]{/if} -{/section} -{/if}) -
        -

        - - {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}

        - -{if $methods[methods].descmethod} -

        Overridden in child classes as:
        - {section name=dm loop=$methods[methods].descmethod} -

        -
        {$methods[methods].descmethod[dm].link}
        -
        {$methods[methods].descmethod[dm].sdesc}
        -
        - {/section}

        -{/if} -{* original {if $methods[methods].descmethod != "" - {$methods[methods].descmethod

        - {/if *} -{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})

        {/if} -{* original {if $methods[methods].method_overrides != "" - {$methods[methods].method_overrides

        - {/if *} - - {if count($methods[methods].params) > 0} -

        Parameters:

        -
        - - {section name=params loop=$methods[methods].params} - - - - - - {/section} -
        {$methods[methods].params[params].datatype}  {$methods[methods].params[params].var}  {$methods[methods].params[params].data}
        -

        - {/if} -
        [ Top ]
        -
        -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl deleted file mode 100644 index b48b6719..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl +++ /dev/null @@ -1,3 +0,0 @@ -{section name=packages loop=$packages} -{$packages[packages].title} -{/section} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl deleted file mode 100644 index 6dd8683d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents} - -
        -
        - -{if $classes} -
        -{if $tutorial} -Main Tutorial: {$tutorial} -{/if} -

        Classes:

        -{section name=classes loop=$classes} -
        {$classes[classes].link}
        -
        {$classes[classes].sdesc}
        -{/section} -


        -{/if} - -

        Page Details:

        -{include file="docblock.tpl" type="page"} -

        -{include file="include.tpl"} -

        -{include file="global.tpl"} -

        -{include file="define.tpl"} -
        -{include file="function.tpl"} - -{include file="footer.tpl"} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl deleted file mode 100644 index 753ad7cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl"} - -

        Element index for package {$package}

        -{include file="basicindex.tpl" indexname=elementindex_$package} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl deleted file mode 100644 index c4cb83f9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl"} -

        {$name}

        -
        -{$contents|htmlentities}
        -
        -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl deleted file mode 100644 index 87f68ebb..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl +++ /dev/null @@ -1,11 +0,0 @@ -
          -{section name=entry loop=$entry} -
        • - -{if $entry[entry].isclass} -{/if}{if $entry[entry].outputfile} -{/if} - {if $entry[entry].tocsubentries}{$entry[entry].tocsubentries}{/if} -{/section} - {$tocsubentries} -
        diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl deleted file mode 100644 index 5ab0bca2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{include file="header.tpl" title="Todo List"} -

        Todo List

        -{foreach from=$todos key=todopackage item=todo} -

        {$todopackage}

        -{section name=todo loop=$todo} -

        {$todo[todo].link}

        -
          -{section name=t loop=$todo[todo].todos} -
        • {$todo[todo].todos[t]}
        • -{/section} -
        -{/section} -{/foreach} -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl deleted file mode 100644 index 22c71c3b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{include file="header.tpl" title=$title} -{if $nav} - - - - - - -
        {if $prev}{/if}Prev{if $prev}{/if}{if $next}{/if}Next{if $next}{/if}
        -{/if} -{$contents} -{if $nav} - - - - - - - - - - - - -
        {if $prev}{/if} -Prev{if $prev}{/if}{if $up}Up{else} {/if}{if $next}{/if}Next{if $next}{/if}
        {if $prevtitle}{$prevtitle}{/if}{if $uptitle}{$uptitle}{/if}{if $nexttitle}{$nexttitle}{/if}
        -{/if} -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl deleted file mode 100644 index 1db34438..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl +++ /dev/null @@ -1,29 +0,0 @@ -{if count($toc)} -

        Table of Contents

        -
          -{section name=toc loop=$toc} -{if $toc[toc].tagname == 'refsect1'} -{assign var="context" value="refsect1"} -{$toc[toc].link}
          -{/if} -{if $toc[toc].tagname == 'refsect2'} -{assign var="context" value="refsect2"} -   {$toc[toc].link}
          -{/if} -{if $toc[toc].tagname == 'refsect3'} -{assign var="context" value="refsect3"} -      {$toc[toc].link}
          -{/if} -{if $toc[toc].tagname == 'table'} -{if $context == 'refsect2'}   {/if} -{if $context == 'refsect3'}   {/if} -Table: {$toc[toc].link} -{/if} -{if $toc[toc].tagname == 'example'} -{if $context == 'refsect2'}   {/if} -{if $context == 'refsect3'}   {/if} -Table: {$toc[toc].link} -{/if} -{/section} -
        -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl deleted file mode 100644 index faf7bcef..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl deleted file mode 100644 index c76929fe..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl +++ /dev/null @@ -1,28 +0,0 @@ -{section name=vars loop=$vars} -{if $show == 'summary'} - var {$vars[vars].var_name}, {$vars[vars].sdesc}
        -{else} - -

        -

        {$vars[vars].var_name} = {$vars[vars].var_default|replace:"\n":"
        \n"|replace:" ":" "|replace:"\t":"   "}

        -

        [line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]

        - {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags} - -
        -
        - - - - - - {if $vars[vars].var_overrides != ""} - - - - - {/if} -
        Type:  {$vars[vars].var_type}
        Overrides:  {$vars[vars].var_overrides}
        -


        -
        [ Top ]

        -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc deleted file mode 100644 index 09f5af73..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc +++ /dev/null @@ -1,1779 +0,0 @@ - - * @since 1.0rc1 - * @version $Revision: 1.1 $ - */ -/** - * HTML output converter. - * This Converter takes output from the {@link Parser} and converts it to HTML-ready output for use with {@link Smarty}. - * - * @package Converters - * @subpackage HTMLSmarty - * @see parserDocBlock, parserInclude, parserPage, parserClass, parserDefine, parserFunction, parserMethod, parserVar - * @author Greg Beaver - * @since 1.0rc1 - * @version $Revision: 1.1 $ - */ -class HTMLSmartyConverter extends Converter -{ - /** - * Smarty Converter wants elements sorted by type as well as alphabetically - * @see Converter::$sort_page_contents_by_type - * @var boolean - */ - var $sort_page_contents_by_type = true; - /** @var string */ - var $outputformat = 'HTML'; - /** @var string */ - var $name = 'Smarty'; - /** - * indexes of elements by package that need to be generated - * @var array - */ - var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => false, 'globals' => false); - - /** - * output directory for the current procedural page being processed - * @var string - */ - var $page_dir; - - /** - * target directory passed on the command-line. - * {@link $targetDir} is malleable, always adding package/ and package/subpackage/ subdirectories onto it. - * @var string - */ - var $base_dir; - - /** - * output directory for the current class being processed - * @var string - */ - var $class_dir; - - /** - * array of converted package page names. - * Used to link to the package page in the left index - * @var array Format: array(package => 1) - */ - var $package_pages = array(); - - /** - * controls formatting of parser informative output - * - * Converter prints: - * "Converting /path/to/file.php... Procedural Page Elements... Classes..." - * Since HTMLdefaultConverter outputs files while converting, it needs to send a \n to start a new line. However, if there - * is more than one class, output is messy, with multiple \n's just between class file output. This variable prevents that - * and is purely cosmetic - * @var boolean - */ - var $juststarted = false; - - /** - * contains all of the template procedural page element loop data needed for the current template - * @var array - */ - var $current; - - /** - * contains all of the template class element loop data needed for the current template - * @var array - */ - var $currentclass; - var $wrote = false; - var $ric_set = array(); - - /** - * sets {@link $base_dir} to $targetDir - * @see Converter() - */ - - /**#@+ - * @access private - */ - var $_classleft_cache = false; - var $_classcontents_cache = false; - var $_pagecontents_cache = false; - var $_pageleft_cache = false; - var $_done_package_index = false; - var $_ric_done = false; - var $_wrote_tdir = false; - var $ric_contents = array(); - /**#@-*/ - - function HTMLSmartyConverter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title) - { - Converter::Converter($allp, $packp, $classes, $procpages,$po, $pp, $qm, $targetDir, $templateDir, $title); - $this->base_dir = $targetDir; - } - - function writeSource($path, $value) - { - $templ = &$this->newSmarty(); - $pathinfo = $this->proceduralpages->getPathInfo($path, $this); - $templ->assign('source',$value); - $templ->assign('package',$pathinfo['package']); - $templ->assign('subpackage',$pathinfo['subpackage']); - $templ->assign('name',$pathinfo['name']); - $templ->assign('source_loc',$pathinfo['source_loc']); - $templ->assign('docs',$pathinfo['docs']); - $templ->assign("subdir",'../'); - $templ->register_outputfilter('HTMLSmarty_outputfilter'); - $this->setTargetDir($this->getFileSourcePath($this->base_dir)); - phpDocumentor_out("\n"); - $this->setSourcePaths($path); - $this->writefile($this->getFileSourceName($path).'.html',$templ->fetch('filesource.tpl')); - } - - function writeExample($title, $path, $source) - { - $templ = &$this->newSmarty(); - $templ->assign('source',$source); - if (empty($title)) - { - $title = 'example'; - addWarning(PDERROR_EMPTY_EXAMPLE_TITLE, $path, $title); - } - $templ->assign('title',$title); - $templ->assign('file',$path); - $templ->assign("subdir",'../'); - $templ->register_outputfilter('HTMLSmarty_outputfilter'); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . '__examplesource'); - phpDocumentor_out("\n"); - $this->writefile('exsource_'.$path.'.html',$templ->fetch('examplesource.tpl')); - } - - function getExampleLink($path, $title) - { - return $this->returnLink('{$subdir}__examplesource' . PATH_DELIMITER . 'exsource_'.$path.'.html',$title); - } - - function getSourceLink($path) - { - return $this->returnLink($this->getFileSourcePath('{$subdir}') . - PATH_DELIMITER . $this->getFileSourceName($path).'.html','Source Code for this file'); - } - - /** - * Return a line of highlighted source code with formatted line number - * - * If the $path is a full path, then an anchor to the line number will be - * added as well - * @param integer line number - * @param string highlighted source code line - * @param false|string full path to @filesource file this line is a part of, - * if this is a single line from a complete file. - * @return string formatted source code line with line number - */ - function sourceLine($linenumber, $line, $path = false) - { - $extra = ''; - if (strlen(str_replace("\n", '', $line)) == 0) { - $extra = ' '; - } - if ($path) - { - return '
      • ' . $this->getSourceAnchor($path, $linenumber) . - str_replace("\n",'',$line) . $extra . - "
      • \n"; - } else - { - return '
      • ' . str_replace("\n",'',$line) . "$extra
      • \n"; - } - } - - /** - * Used to convert the <> tag in a docblock - * @param string - * @param boolean - * @return string - */ - function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/, - $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/) - { - $trans = $this->template_options['desctranslate']; - $this->template_options['desctranslate'] = array(); - $example = '
          ' . parent::ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath) - .'
        '; - $this->template_options['desctranslate'] = $trans; - if (!isset($this->template_options['desctranslate'])) return $example; - if (!isset($this->template_options['desctranslate']['code'])) return $example; - $example = $this->template_options['desctranslate']['code'] . $example; - if (!isset($this->template_options['desctranslate']['/code'])) return $example; - return $example . $this->template_options['desctranslate']['/code']; - } - - /** - * @param string - */ - function TutorialExample($example) - { - $trans = $this->template_options['desctranslate']; - $this->template_options['desctranslate'] = array(); - $example = '
          ' . parent::TutorialExample($example) - .'
        '; - $this->template_options['desctranslate'] = $trans; - if (!isset($this->template_options['desctranslate'])) return $example; - if (!isset($this->template_options['desctranslate']['code'])) return $example; - $example = $this->template_options['desctranslate']['code'] . $example; - if (!isset($this->template_options['desctranslate']['/code'])) return $example; - return $example . $this->template_options['desctranslate']['/code']; - } - - /** - * Retrieve a Converter-specific anchor to a segment of a source code file - * parsed via a {@tutorial tags.filesource.pkg} tag. - * @param string full path to source file - * @param string name of anchor - * @param string link text, if this is a link - * @param boolean returns either a link or a destination based on this - * parameter - * @return string link to an anchor, or the anchor - */ - function getSourceAnchor($sourcefile,$anchor,$text = '',$link = false) - { - if ($link) - return $this->returnLink($this->getFileSourcePath('{$subdir}') . - PATH_DELIMITER . $this->getFileSourceName($sourcefile).'.html#a'.$anchor, $text); - else - return ''; - } - - function getCurrentPageLink() - { - return $this->curname . '.html'; - } - - function unmangle($sourcecode) - { - $sourcecode = str_replace(' ',' ',$sourcecode); - $sourcecode = str_replace('&','&',$sourcecode); - $sourcecode = str_replace('
        ',"
        ",$sourcecode); - $sourcecode = str_replace('','
        ',$sourcecode);
        -        $sourcecode = str_replace('','
        ',$sourcecode); - $sourcecode = str_replace('<','<',$sourcecode); - $sourcecode = str_replace('>','>',$sourcecode); - return $sourcecode; - } - - /** - * Uses htmlspecialchars() on the input - */ - function postProcess($text) - { - return htmlspecialchars($text); - } - - /** - * Use the template tutorial_toc.tpl to generate a table of contents for HTML - * @return string table of contents formatted for use in the current output format - * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...) - */ - function formatTutorialTOC($toc) - { - $template = &$this->newSmarty(); - $template->assign('toc',$toc); - return $template->fetch('tutorial_toc.tpl'); - } - - function &SmartyInit(&$templ) - { - $this->makeLeft(); - $templ->assign("ric",$this->ric_set); - $templ->assign("packageindex",$this->package_index); - $templ->assign('hastodos',count($this->todoList)); - $templ->assign('todolink','todolist.html'); - $templ->assign("subdir",''); - return $templ; - } - - /** - * Writes out the template file of {@link $class_data} and unsets the template to save memory - * @see registerCurrentClass() - * @see parent::endClass() - */ - function endClass() - { - $a = '../'; - if (!empty($this->subpackage)) $a .= '../'; - if ($this->juststarted) - { - $this->juststarted = false; - phpDocumentor_out("\n"); - flush(); - } - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); - $this->class_data->assign("compiledclassindex",$this->getClassLeft()); - $this->class_data->assign("compiledfileindex",$this->getPageLeft()); - $this->class_data->assign("tutorials",$this->getTutorialList()); - $this->class_data->assign("contents",$this->getClassContents()); - $this->class_data->assign("packageindex",$this->package_index); - $this->class_data->assign("package",$this->package); - $this->class_data->assign("subdir",$a); - $this->class_data->register_outputfilter('HTMLSmarty_outputfilter'); - $this->writefile($this->class . '.html',$this->class_data->fetch('class.tpl')); - unset($this->class_data); - } - - function getTutorialList() - { - static $cache = false; - if ($cache) - { - if (isset($cache[$this->package])) return $cache[$this->package]; - } - $package = $this->package; - if (!isset($this->tutorials[$package])) return false; - foreach($this->tutorials[$package] as $subpackage => $blah) - { - $subpackages[] = $subpackage; - } - $tutes = array(); - foreach($subpackages as $subpackage) - { - if (isset($this->tutorial_tree) && is_array($this->tutorial_tree)) - foreach($this->tutorial_tree as $root => $tr) - { - if ($tr['tutorial']->package == $package && $tr['tutorial']->subpackage == $subpackage) - $tutes[$tr['tutorial']->tutorial_type][] = $this->getTutorialTree($tr['tutorial']); - } - } - $cache[$this->package] = $tutes; - return $tutes; - } - - function getTutorialTree($tutorial,$k = false) - { - $ret = ''; - if (is_object($tutorial)) $tree = parent::getTutorialTree($tutorial); else $tree = $tutorial; - if (!$tree) - { - $template = &$this->newSmarty(); - $template->assign('subtree',false); - $template->assign('name',str_replace('.','',$tutorial->name)); - $template->assign('parent',false); - $template->assign('haskids',false); - $template->assign('kids',''); - $link = new tutorialLink; - $t = $tutorial; - $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this)); - $main = array('link' => $this->getId($link), 'title' => $link->title); - $template->assign('main',$main); - return $template->fetch('tutorial_tree.tpl'); - } - if (isset($tree['kids'])) - { - foreach($tree['kids'] as $subtree) - { - $ret .= $this->getTutorialTree($subtree, true); - } - } - $template = &$this->newSmarty(); - $template->assign('subtree',$k); - $template->assign('name',str_replace('.','',$tree['tutorial']->name)); - $template->assign('parent',($k ? str_replace('.','',$tree['tutorial']->parent->name) : false)); - $template->assign('haskids',strlen($ret)); - $template->assign('kids',$ret); - $link = new tutorialLink; - $t = $tree['tutorial']; - $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this)); - $main = array('link' => $this->getId($link), 'title' => $link->title); - $template->assign('main',$main); - return $template->fetch('tutorial_tree.tpl'); - } - - function getClassLeft() - { - if ($this->_classleft_cache) - { - if (isset($this->_classleft_cache[$this->package][$this->subpackage])) return $this->_classleft_cache[$this->package][$this->subpackage]; - } - $arr = array(); - if (isset($this->left['#class'][$this->package])) - foreach($this->left['#class'][$this->package] as $subpackage => $pages) - { - $arr[$subpackage] = $pages; - } - $templ = &$this->newSmarty(); - $templ->assign('classleftindex',$arr); - $arr = $templ->fetch('classleft.tpl'); - $this->_classleft_cache[$this->package][$this->subpackage] = $arr; - return $arr; - } - - function getClassContents() - { - if ($this->_classcontents_cache) - { - if (isset($this->_classcontents_cache[$this->package][$this->subpackage][$this->class])) return $this->_classcontents_cache[$this->package][$this->subpackage][$this->class]; - } - $arr = array(); - foreach($this->class_contents[$this->package][$this->subpackage][$this->class] as $i => $link) - { - if (is_object($link)) - $arr[$link->type][] = $this->returnSee($link,$link->name); - } - $this->_classcontents_cache[$this->package][$this->subpackage][$this->class] = $arr; - return $arr; - } - - function getPageContents() - { - if (!isset($this->path)) $this->path = '#####'; - if ($this->_pagecontents_cache) - { - if (isset($this->_pagecontents_cache[$this->package][$this->subpackage][$this->path])) return $this->_pagecontents_cache[$this->package][$this->subpackage][$this->path]; - } - $arr = array(); - foreach($this->page_contents[$this->curpage->package][$this->curpage->subpackage] as $i => $link) - { - if (is_object($link)) - $arr[$link->type][$i] = $this->returnSee($link); - } - $this->_pagecontents_cache[$this->package][$this->subpackage][$this->path] = $arr; - return $arr; - } - - function getPageLeft() - { - if ($this->_pageleft_cache) - { - if (isset($this->_pageleft_cache[$this->package][$this->subpackage])) return $this->_pageleft_cache[$this->package][$this->subpackage]; - } - $arr = array(); - if (isset($this->left[$this->package])) - foreach($this->left[$this->package] as $subpackage => $pages) - { - $arr[$subpackage] = $pages; - } - $templ = &$this->newSmarty(); - $templ->assign('fileleftindex',$arr); - $arr = $templ->fetch('fileleft.tpl'); - $this->_pageleft_cache[$this->package][$this->subpackage] = $arr; - return $arr; - } - - /** - * Writes out the template file of {@link $page_data} and unsets the template to save memory - * @see registerCurrent() - * @see parent::endPage() - */ - function endPage() - { - $this->package = $this->curpage->package; - $this->subpackage = $this->curpage->subpackage; - $a = '../'; - if (!empty($this->subpackage)) $a .= '../'; - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->page_data->assign("contents",$this->getPageContents()); - $this->page_data->assign("compiledfileindex",$this->getPageLeft()); - $this->page_data->assign("compiledclassindex",$this->getClassLeft()); - $this->page_data->assign("tutorials",$this->getTutorialList()); - $this->page_data->assign("packageindex",$this->package_index); - $this->page_data->assign("package",$this->package); - $this->page_data->assign("subdir",$a); - $this->page_data->register_outputfilter('HTMLSmarty_outputfilter'); - $this->writefile($this->page . '.html',$this->page_data->fetch('page.tpl')); - unset($this->page_data); - } - - /** - * @param string - * @param string - * @return string <a href="'.$link.'">'.$text.''.$text.''; - } - - function makeLeft() - { - if ($this->_done_package_index) return; - $this->_done_package_index = true; - if (!isset($this->package_index)) - foreach($this->all_packages as $key => $val) - { - if (isset($this->pkg_elements[$key])) - { - if (!isset($start)) $start = $key; - $this->package_index[] = array('link' => "li_$key.html", 'title' => $key); - } - } - foreach($this->page_elements as $package => $o1) - { - foreach($o1 as $subpackage => $links) - { - for($i=0;$ileft[$package][$subpackage][] = - array("link" => $this->getId($links[$i]), "title" => $links[$i]->name); - } - } - } - foreach($this->class_elements as $package => $o1) - { - foreach($o1 as $subpackage => $links) - { - for($i=0;$ileft['#class'][$package][$subpackage][] = - array("link" => $this->getId($links[$i]), "title" => $links[$i]->name); - } - } - } - } - - /** - * HTMLdefaultConverter chooses to format both package indexes and the complete index here - * - * This function formats output for the elementindex.html and pkgelementindex.html template files. It then - * writes them to the target directory - * @see generateElementIndex(), generatePkgElementIndex() - */ - function formatPkgIndex() - { - list($package_indexes,$packages,$mletters) = $this->generatePkgElementIndexes(); - for($i=0;$inewSmarty(); - $this->package = $package_indexes[$i]['package']; - $this->subpackage = ''; - $template->assign("compiledclassindex",$this->getClassLeft()); - $template->assign("compiledfileindex",$this->getPageLeft()); - $template->assign("tutorials",$this->getTutorialList()); - $template->assign("index",$package_indexes[$i]['pindex']); - $template->assign("package",$package_indexes[$i]['package']); - $template->assign("letters",$mletters[$package_indexes[$i]['package']]); - $template->assign("title","Package ".$package_indexes[$i]['package']." Element Index"); - $template->assign("date",date("r",time())); - $template->register_outputfilter('HTMLSmarty_outputfilter'); - $this->setTargetDir($this->base_dir); - $this->writefile('elementindex_'.$package_indexes[$i]['package'].'.html',$template->fetch('pkgelementindex.tpl')); - } - phpDocumentor_out("\n"); - flush(); - } - - /** - * HTMLdefaultConverter uses this function to format template index.html and packages.html - * - * This function generates the package list from {@link $all_packages}, eliminating any - * packages that don't have any entries in their package index (no files at all, due to @ignore - * or other factors). Then it uses the default package name as the first package index to display. - * It sets the right pane to be either a blank file with instructions on making package-level docs, - * or the package-level docs for the default package. - * @global string Used to set the starting package to display - */ - function formatIndex() - { - global $phpDocumentor_DefaultPackageName; - if (!isset($this->package_index)) - { - debug("\nERROR: Nothing parsed, check the command-line"); - die(); - } - list($elindex,$mletters) = $this->generateElementIndex(); - $template = &$this->newSmarty(); - $template->assign("index",$elindex); - $template->assign("letters",$mletters); - $template->assign("title","Element Index"); - $template->assign("date",date("r",time())); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - $template->register_outputfilter('HTMLSmarty_outputfilter'); - $this->writefile('elementindex.html',$template->fetch('elementindex.tpl')); - usort($this->package_index,"HTMLSmarty_pindexcmp"); - $index = &$this->newSmarty(); - foreach($this->all_packages as $key => $val) - { - if (isset($this->pkg_elements[$key])) - { - if (!isset($start)) $start = $key; - if (!isset($this->package_pages[$key])) $this->writeNewPPage($key); - } - } - // Created index.html - $start = $phpDocumentor_DefaultPackageName; - if (!isset($this->pkg_elements[$key])) - { - // if there are no elements, use a random package as the default - $start = array_shift(array_keys($this->pkg_elements)); - } - $this->package = $start; - $this->subpackage = ''; - $index->assign("compiledclassindex",$this->getClassLeft()); - $index->assign("compiledfileindex",$this->getPageLeft()); - $index->assign('hastodos',count($this->todoList)); - $index->assign('todolink','todolist.html'); - $index->assign("tutorials",$this->getTutorialList()); - $index->assign("date",date("r",time())); - $index->assign("package",$this->package); - $index->assign("title",$this->title); - $index->assign("start","li_$start.html"); - if (isset($this->package_pages[$start])) - { - $index->assign("contents",$this->package_pages[$start]); - } - $index->register_outputfilter('HTMLSmarty_outputfilter'); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - $this->writefile("index.html",$index->fetch('index.tpl')); - unset($index); - - } - - function writeNewPPage($key) - { - $template = &$this->newSmarty(); - $this->package = $key; - $this->subpackage = ''; - $template->assign("compiledclassindex",$this->getClassLeft()); - $template->assign("compiledfileindex",$this->getPageLeft()); - $template->assign("tutorials",$this->getTutorialList()); - $template->assign("date",date("r",time())); - $template->assign("title",$this->title); - $template->assign("package",$key); - $template->register_outputfilter('HTMLSmarty_outputfilter'); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - $this->writefile("li_$key.html",$template->fetch('index.tpl')); - unset($template); - } - - /** - * Generate indexes for li_package.html and classtree output files - * - * This function generates the li_package.html files from the template file left.html. It does this by - * iterating through each of the $page_elements, $class_elements and $function_elements arrays to retrieve - * the pre-sorted {@link abstractLink} descendants needed for index generation. Conversion of these links to - * text is done by {@link returnSee()}. - * - * Then it uses {@link generateFormattedClassTrees()} to create class trees from the template file classtrees.html. Output - * filename is classtrees_packagename.html. This function also unsets {@link $elements} and {@link $pkg_elements} to free - * up the considerable memory these two class vars use - * @see $page_elements, $class_elements, $function_elements - */ - function formatLeftIndex() - { - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - if (!isset($this->left)) - { - debug("Nothing parsed, check the command-line"); - die(); - } - foreach($this->all_packages as $package => $rest) - { - if (!isset($this->pkg_elements[$package])) continue; - // Create class tree page - $template = &$this->newSmarty(); - $template->assign("compiledclassindex",$this->getClassLeft()); - $template->assign("compiledfileindex",$this->getPageLeft()); - $template->assign("classtrees",$this->generateFormattedClassTrees($package)); - $template->assign("package",$package); - $template->assign("date",date("r",time())); - $template->assign("title","Class Trees for Package $package"); - $template->register_outputfilter('HTMLSmarty_outputfilter'); - $this->writefile("classtrees_$package.html",$template->fetch('classtrees.tpl')); - phpDocumentor_out("\n"); - flush(); - } - $this->writeRIC(); - // free up considerable memory - unset($this->elements); - unset($this->pkg_elements); - } - - - /** - * This function takes an {@link abstractLink} descendant and returns an html link - * - * @param abstractLink a descendant of abstractlink should be passed, and never text - * @param string text to display in the link - * @param boolean this parameter is not used, and is deprecated - * @param boolean determines whether the returned text is enclosed in an <a> tag - */ - function returnSee(&$element, $eltext = false, $with_a = true) - { - if (!is_object($element) || !$element) return false; - if (!$with_a) return $this->getId($element, false); - if (!$eltext) - { - $eltext = ''; - switch($element->type) - { - case 'tutorial' : - $eltext = strip_tags($element->title); - break; - case 'method' : - case 'var' : - case 'const' : - $eltext .= $element->class.'::'; - case 'page' : - case 'define' : - case 'class' : - case 'function' : - case 'global' : - default : - $eltext .= $element->name; - if ($element->type == 'function' || $element->type == 'method') $eltext .= '()'; - break; - } - } - return ''.$eltext.''; - } - - function getId($element, $fullpath = true) - { - if (phpDocumentor_get_class($element) == 'parserdata') - { - $element = $this->addLink($element->parent); - $elp = $element->parent; - } elseif (is_a($element, 'parserbase')) - { - $elp = $element; - $element = $this->addLink($element); - } - $c = ''; - if (!empty($element->subpackage)) - { - $c = '/'.$element->subpackage; - } - $b = '{$subdir}'; - switch ($element->type) - { - case 'page' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->fileAlias.'.html'; - return 'top'; - break; - case 'define' : - case 'global' : - case 'function' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->fileAlias.'.html#'.$element->type.$element->name; - return $element->type.$element->name; - break; - case 'class' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->name.'.html'; - return 'top'; - break; - case 'method' : - case 'var' : - case 'const' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->class.'.html#'.$element->type.$element->name; - return $element->type.$element->name; - break; - case 'tutorial' : - $d = ''; - if ($element->section) - { - $d = '#'.$element->section; - } - return $b.$element->package.$c.'/tutorial_'.$element->name.'.html'.$d; - } - } - - /** - * Convert README/INSTALL/CHANGELOG file contents to output format - * @param README|INSTALL|CHANGELOG - * @param string contents of the file - */ - function Convert_RIC($name, $contents) - { - $this->ric_contents[$name] = $contents; - $this->ric_set[] = array('file' => 'ric_'.$name . '.html','name' => $name); - } - - function writeRIC() - { - if ($this->_ric_done) return; - $this->_ric_done = true; - foreach($this->ric_contents as $name => $contents) - { - $template = &$this->newSmarty(); - $template->assign('contents',$contents); - $template->assign('name',$name); - $template->assign('title',$name); - $this->setTargetDir($this->base_dir); - $this->writefile('ric_'.$name . '.html',$template->fetch('ric.tpl')); - } - } - - function ConvertTodoList() - { - $todolist = array(); - foreach($this->todoList as $package => $alltodos) - { - foreach($alltodos as $todos) - { - $converted = array(); - $converted['link'] = $this->returnSee($todos[0]); - if (!is_array($todos[1])) - { - $converted['todos'][] = $todos[1]->Convert($this); - } else - { - foreach($todos[1] as $todo) - { - $converted['todos'][] = $todo->Convert($this); - } - } - $todolist[$package][] = $converted; - } - } - $templ = &$this->newSmarty(); - $templ->assign('todos',$todolist); - $templ->register_outputfilter('HTMLSmarty_outputfilter'); - $this->setTargetDir($this->base_dir); - $this->writefile('todolist.html',$templ->fetch('todolist.tpl')); - } - - /** - * Create errors.html template file output - * - * This method takes all parsing errors and warnings and spits them out ordered by file and line number. - * @global ErrorTracker We'll be using it's output facility - */ - function ConvertErrorLog() - { - global $phpDocumentor_errors; - $allfiles = array(); - $files = array(); - $warnings = $phpDocumentor_errors->returnWarnings(); - $errors = $phpDocumentor_errors->returnErrors(); - $template = &$this->newSmarty(); - foreach($warnings as $warning) - { - $file = '##none'; - $linenum = 'Warning'; - if ($warning->file) - { - $file = $warning->file; - $allfiles[$file] = 1; - $linenum .= ' on line '.$warning->linenum; - } - $files[$file]['warnings'][] = array('name' => $linenum, 'listing' => $warning->data); - } - foreach($errors as $error) - { - $file = '##none'; - $linenum = 'Error'; - if ($error->file) - { - $file = $error->file; - $allfiles[$file] = 1; - $linenum .= ' on line '.$error->linenum; - } - $files[$file]['errors'][] = array('name' => $linenum, 'listing' => $error->data); - } - $i=1; - $af = array(); - foreach($allfiles as $file => $num) - { - $af[$i++] = $file; - } - $allfiles = $af; - usort($allfiles,'strnatcasecmp'); - $allfiles[0] = "Post-parsing"; - foreach($allfiles as $i => $a) - { - $allfiles[$i] = array('file' => $a); - } - $out = array(); - foreach($files as $file => $data) - { - if ($file == '##none') $file = 'Post-parsing'; - $out[$file] = $data; - } - $template->assign("files",$allfiles); - $template->assign("all",$out); - $template->assign("title","phpDocumentor Parser Errors and Warnings"); - $template->register_outputfilter('HTMLSmarty_outputfilter'); - $this->setTargetDir($this->base_dir); - $this->writefile("errors.html",$template->fetch('errors.tpl')); - unset($template); - phpDocumentor_out("\n\nTo view errors and warnings, look at ".$this->base_dir. PATH_DELIMITER . "errors.html\n"); - flush(); - } - - function getCData($value) - { - return '
        '.htmlentities($value).'
        '; - } - - function getTutorialId($package,$subpackage,$tutorial,$id) - { - return $id; - } - - /** - * Converts package page and sets its package as used in {@link $package_pages} - * @param parserPackagePage - */ - function convertPackagepage(&$element) - { - phpDocumentor_out("\n"); - flush(); - $template = &$this->newSmarty(); - $this->package = $element->package; - $this->subpackage = ''; - $template->assign("compiledclassindex",$this->getClassLeft()); - $template->assign("compiledfileindex",$this->getPageLeft()); - $template->assign("tutorials",$this->getTutorialList()); - $template->assign("date",date("r",time())); - $template->assign("title",$this->title); - $template->assign("package",$element->package); - $x = $element->Convert($this); - $x = substr($x,strpos($x,'assign("contents",trim(substr($x,strpos($x,'>') + 1))); - $this->package_pages[$element->package] = trim(substr($x,strpos($x,'>') + 1)); - $template->register_outputfilter('HTMLSmarty_outputfilter'); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - $this->writefile("li_".$element->package.".html",$template->fetch('index.tpl')); - unset($template); - } - - /** - * @param parserTutorial - */ - function convertTutorial(&$element) - { - phpDocumentor_out("\n"); - flush(); - $template = &parent::convertTutorial($element); - $this->package = $element->package; - $this->subpackage = $element->subpackage; - $template->assign("compiledclassindex",$this->getClassLeft()); - $template->assign("compiledfileindex",$this->getPageLeft()); - $template->assign("tutorials",$this->getTutorialList()); - $template->assign("title",strip_tags($element->getTitle($this))); - $contents = $element->Convert($this); - if ($element->name == $this->package . '.pkg') - { - $this->package_pages[$element->package] = $contents; - } - $a = '../'; - if (!empty($element->subpackage)) $a .= $a; - $template->assign("subdir",$a); - $a = ''; - if ($element->subpackage) $a = PATH_DELIMITER . $element->subpackage; - $template->register_outputfilter('HTMLSmarty_outputfilter'); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package . $a); - $this->writeFile('tutorial_'.$element->name.'.html',$template->fetch('tutorial.tpl')); - if ($element->name == $element->package . '.pkg') - { - phpDocumentor_out("\n"); - flush(); - // package-level docs - $this->setTargetDir($this->base_dir); - $template->assign("subdir",''); - $this->writeFile('li_'.$element->package.'.html',$template->fetch('tutorial.tpl')); - } - unset($template); - } - - /** - * Converts class for template output - * @see prepareDocBlock(), generateChildClassList(), generateFormattedClassTree(), getFormattedConflicts() - * @see getFormattedInheritedMethods(), getFormattedInheritedVars() - * @param parserClass - */ - function convertClass(&$element) - { - parent::convertClass($element); - $this->class_dir = $element->docblock->package; - if (!empty($element->docblock->subpackage)) $this->class_dir .= PATH_DELIMITER . $element->docblock->subpackage; - $a = '../classtrees_'; - if ($element->docblock->subpackage != '') $a = "../$a"; - - $this->class_data->assign('subdir',$a); - $this->class_data->assign("title","Docs For Class " . $element->getName()); - $this->class_data->assign("page",$element->getName() . '.html'); - } - - /** - * Converts class variables for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertVar(&$element) - { - parent::convertVar($element, array('var_dest' => $this->getId($element,false))); - } - - /** - * Converts class variables for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertConst(&$element) - { - parent::convertConst($element, array('const_dest' => $this->getId($element,false))); - } - - /** - * Converts class methods for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertMethod(&$element) - { - parent::convertMethod($element, array('method_dest' => $this->getId($element,false))); - } - - /** - * Converts function for template output - * @see prepareDocBlock(), parserFunction::getFunctionCall(), getFormattedConflicts() - * @param parserFunction - */ - function convertFunction(&$element) - { - $funcloc = $this->getId($this->addLink($element)); - parent::convertFunction($element,array('function_dest' => $this->getId($element,false))); - } - - /** - * Converts include elements for template output - * @see prepareDocBlock() - * @param parserInclude - */ - function convertInclude(&$element) - { - parent::convertInclude($element, array('include_file' => '_'.strtr($element->getValue(),array('"' => '', "'" => '','.' => '_')))); - } - - /** - * Converts defines for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertDefine(&$element) - { - parent::convertDefine($element, array('define_link' => $this->getId($element,false))); - } - - /** - * Converts global variables for template output - * @param parserGlobal - * @see prepareDocBlock(), getFormattedConflicts() - */ - function convertGlobal(&$element) - { - parent::convertGlobal($element, array('global_link' => $this->getId($element,false))); - } - - /** - * converts procedural pages for template output - * @see prepareDocBlock(), getClassesOnPage() - * @param parserData - */ - function convertPage(&$element) - { - parent::convertPage($element); - $this->juststarted = true; - $this->page_dir = $element->parent->package; - if (!empty($element->parent->subpackage)) $this->page_dir .= PATH_DELIMITER . $element->parent->subpackage; - // registering stuff on the template - $a = '../'; - if (!empty($element->docblock->subpackage)) $a = $a . $a; - $this->page_data->assign('subdir',$a); - $this->page_data->assign("page",$this->getPageName($element) . '.html'); - $this->page_data->assign("title","Docs for page ".$element->parent->getFile()); - } - - function getPageName(&$element) - { - if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName(); - return '_'.$element->parent->getName(); - } - - /** - * returns an array containing the class inheritance tree from the root object to the class - * - * @param parserClass class variable - * @return array Format: array(root,child,child,child,...,$class) - * @uses parserClass::getParentClassTree() - */ - - function generateFormattedClassTree($class) - { - $tree = $class->getParentClassTree($this); - $out = ''; - if (count($tree) - 1) - { - $result = array($class->getName()); - $parent = $tree[$class->getName()]; - $distance[] = ''; - while ($parent) - { - $x = $parent; - if (is_object($parent)) - { - $subpackage = $parent->docblock->subpackage; - $package = $parent->docblock->package; - $x = $parent; - $x = $parent->getLink($this); - if (!$x) $x = $parent->getName(); - } - $result[] = - $x; - $distance[] = - "\n%s|\n" . - "%s--"; - if (is_object($parent)) - $parent = $tree[$parent->getName()]; - elseif (isset($tree[$parent])) - $parent = $tree[$parent]; - } - $nbsp = ' '; - for($i=count($result) - 1;$i>=0;$i--) - { - $my_nbsp = ''; - for($j=0;$jarray_reverse($result),'distance'=>array_reverse($distance)); - } else - { - return array('classes'=>$class->getName(),'distance'=>array('')); - } - } - - /** @access private */ - function sortVar($a, $b) - { - return strnatcasecmp($a->getName(),$b->getName()); - } - - /** @access private */ - function sortMethod($a, $b) - { - if ($a->isConstructor) return -1; - if ($b->isConstructor) return 1; - return strnatcasecmp($a->getName(),$b->getName()); - } - - /** - * returns a template-enabled array of class trees - * - * @param string $package package to generate a class tree for - * @see $roots, HTMLConverter::getRootTree() - */ - function generateFormattedClassTrees($package) - { - if (!isset($this->roots[$package])) return array(); - $roots = $trees = array(); - $roots = $this->roots[$package]; - for($i=0;$i $roots[$i],'class_tree' => "
          \n".$this->getRootTree($this->getSortedClassTreeFromClass($roots[$i],$package,''),$package)."
        \n"); - } - return $trees; - } - - /** - * return formatted class tree for the Class Trees page - * - * @param array $tree output from {@link getSortedClassTreeFromClass()} - * @see Classes::$definitechild, generateFormattedClassTrees() - * @return string - */ - function getRootTree($tree,$package) - { - if (!$tree) return ''; - $my_tree = ''; - $cur = '#root'; - $lastcur = array(false); - $kids = array(); - $dopar = false; - if ($tree[$cur]['parent']) - { - $dopar = true; - if (!is_object($tree[$cur]['parent'])) - { -// debug("parent ".$tree[$cur]['parent']." not found"); - $my_tree .= '
      • ' . $tree[$cur]['parent'] .'
          '; - } - else - { -// debug("parent ".$this->returnSee($tree[$cur]['parent'])." in other package"); - $my_tree .= '
        • ' . $this->returnSee($tree[$cur]['parent']); - if ($tree[$cur]['parent']->package != $package) $my_tree .= ' (Different package)
            '; - } - } - do - { -// fancy_debug($cur,$lastcur,$kids); - if (count($tree[$cur]['children'])) - { -// debug("$cur has children"); - if (!isset($kids[$cur])) - { -// debug("set $cur kids"); - $kids[$cur] = 1; - $my_tree .= '
          • '.$this->returnSee($tree[$cur]['link']); - $my_tree .= '
              '."\n"; - } - array_push($lastcur,$cur); - list(,$cur) = each($tree[$cur]['children']); -// var_dump('listed',$cur); - if ($cur) - { - $cur = $cur['package'] . '#' . $cur['class']; -// debug("set cur to child $cur"); -// $my_tree .= '
            • '.$this->returnSee($tree[$cur]['link']); - continue; - } else - { -// debug("end of children for $cur"); - $cur = array_pop($lastcur); - $cur = array_pop($lastcur); - $my_tree .= '
          • '."\n"; - if ($dopar && ($cur == '#root' || !$cur)) $my_tree .= '
        • '; - } - } else - { -// debug("$cur has no children"); - $my_tree .= '
        • '.$this->returnSee($tree[$cur]['link'])."
        • "; - if ($dopar && $cur == '#root') $my_tree .= '
      • '; - $cur = array_pop($lastcur); - } - } while ($cur); - return $my_tree; - } - /** - * Generate indexing information for given element - * - * @param parserElement descendant of parserElement - * @see generateElementIndex() - * @return array - */ - function getIndexInformation($elt) - { - $Result['type'] = $elt->type; - $Result['file_name'] = $elt->file; - $Result['path'] = $elt->getPath(); - - if (isset($elt->docblock)) - { - $Result['description'] = $elt->docblock->getSDesc($this); - - if ($elt->docblock->hasaccess) - $Result['access'] = $elt->docblock->tags['access'][0]->value; - else - $Result['access'] = 'public'; - - $Result['abstract'] = isset ($elt->docblock->tags['abstract'][0]); - } - else - $Result['description'] = ''; - - $aa = $Result['description']; - if (!empty($aa)) $aa = "
            $aa"; - - switch($elt->type) - { - case 'class': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Class'; - $Result['link'] = $this->getClassLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', class '.$Result['link']."$aa"; - break; - case 'define': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Constant'; - $Result['link'] = $this->getDefineLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', constant '.$Result['link']."$aa"; - break; - case 'global': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Global'; - $Result['link'] = $this->getGlobalLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', global variable '.$Result['link']."$aa"; - break; - case 'function': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Function'; - $Result['link'] = $this->getFunctionLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName().'()'); - $Result['listing'] = 'in file '.$elt->file.', function '.$Result['link']."$aa"; - break; - case 'method': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Method'; - $Result['link'] = $this->getMethodLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName().'()' - ); - if ($elt->isConstructor) $Result['constructor'] = 1; - $Result['listing'] = 'in file '.$elt->file.', method '.$Result['link']."$aa"; - break; - case 'var': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Variable'; - $Result['link'] = $this->getVarLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', variable '.$Result['link']."$aa"; - break; - case 'const': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Variable'; - $Result['link'] = $this->getConstLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', class constant '.$Result['link']."$aa"; - break; - case 'page': - $Result['name'] = $elt->getFile(); - $Result['title'] = 'Page'; - $Result['link'] = $this->getPageLink($elt->getFile(), - $elt->package, - $elt->getPath(), - $elt->getFile()); - $Result['listing'] = 'procedural page '.$Result['link']; - break; - case 'include': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Include'; - $Result['link'] = $elt->getValue(); - $Result['listing'] = 'include '.$Result['name']; - break; - } - - return $Result; - } - /** - * Generate alphabetical index of all elements - * - * @see $elements, walk() - */ - function generateElementIndex() - { - $elementindex = array(); - $letters = array(); - $used = array(); - foreach($this->elements as $letter => $nutoh) - { - foreach($this->elements[$letter] as $i => $yuh) - { - if ($this->elements[$letter][$i]->type != 'include') - { - if (!isset($used[$letter])) - { - $letters[]['letter'] = $letter; - $elindex['letter'] = $letter; - $used[$letter] = 1; - } - - $elindex['index'][] = $this->getIndexInformation($this->elements[$letter][$i]); - } - } - if (isset($elindex['index'])) - { - $elementindex[] = $elindex; - } else - { - unset($letters[count($letters) - 1]); - } - $elindex = array(); - } - return array($elementindex,$letters); - } - - function copyMediaRecursively($media,$targetdir,$subdir = '') - { - if (!is_array($media)) { - return; - } - foreach($media as $dir => $files) - { - if ($dir === '/') - { - $this->copyMediaRecursively($files,$targetdir); - } else - { - if (!is_numeric($dir)) - { - // create the subdir - phpDocumentor_out("creating $targetdir/$dir\n"); - Converter::setTargetDir($targetdir . PATH_DELIMITER . $dir); - if (!empty($subdir)) $subdir .= PATH_DELIMITER; - $this->copyMediaRecursively($files,"$targetdir/$dir",$subdir . $dir); - } else - { - // copy the file - phpDocumentor_out("copying $targetdir/".$files['file']."\n"); - $this->copyFile($files['file'],$subdir); - } - } - } - } - - /** - * calls the converter setTargetDir, and then copies any template images and the stylesheet if they haven't been copied - * @see Converter::setTargetDir() - */ - function setTargetDir($dir) - { - Converter::setTargetDir($dir); - if ($this->_wrote_tdir) return; - $this->_wrote_tdir = true; - $template_images = array(); - $stylesheets = array(); - $tdir = $dir; - $dir = $this->templateDir; - $this->templateDir = $this->templateDir.'templates/'; - $info = new Io; - $this->copyMediaRecursively($info->getDirTree($this->templateDir.'media',$this->templateDir),$tdir); - } - - /** - * Generate alphabetical index of all elements by package and subpackage - * - * @param string $package name of a package - * @see $pkg_elements, walk(), generatePkgElementIndexes() - */ - function generatePkgElementIndex($package) - { - $elementindex = array(); - $letters = array(); - $letterind = array(); - $used = array(); - $subp = ''; - foreach($this->pkg_elements[$package] as $subpackage => $els) - { - if (empty($els)) continue; - if (!empty($subpackage)) $subp = " (subpackage: $subpackage)"; else $subp = ''; - foreach($els as $letter => $yuh) - { - foreach($els[$letter] as $i => $yuh) - { - if ($els[$letter][$i]->type != 'include') - { - if (!isset($used[$letter])) - { - $letters[]['letter'] = $letter; - $letterind[$letter] = count($letters) - 1; - $used[$letter] = 1; - } - $elindex[$letter]['letter'] = $letter; - - $elindex[$letter]['index'][] = $this->getIndexInformation($els[$letter][$i]); - } - } - } - } - ksort($elindex); - usort($letters,'HTMLSmarty_lettersort'); - if (isset($elindex)) - { - while(list($letter,$tempel) = each($elindex)) - { - if (!isset($tempel)) - { - unset($letters[$letterind[$tempel['letter']]]); - } else - $elementindex[] = $tempel; - } - } else $letters = array(); - return array($elementindex,$letters); - } - - /** - * - * @see generatePkgElementIndex() - */ - function generatePkgElementIndexes() - { - $packages = array(); - $package_names = array(); - $pkg = array(); - $letters = array(); - foreach($this->pkg_elements as $package => $trash) - { - $pkgs['package'] = $package; - $pkg['package'] = $package; - list($pkg['pindex'],$letters[$package]) = $this->generatePkgElementIndex($package); - if (count($pkg['pindex'])) - { - $packages[] = $pkg; - $package_names[] = $pkgs; - } - unset($pkgs); - unset($pkg); - } - foreach($packages as $i => $package) - { - $pnames = array(); - for($j=0;$jreturnSee($a, $text, $with_a); - } - - /** - * @param string name of function - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the function's documentation - * @see parent::getFunctionLink() - */ - function getFunctionLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getFunctionLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of define - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the define's documentation - * @see parent::getDefineLink() - */ - function getDefineLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getDefineLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of global variable - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the global variable's documentation - * @see parent::getGlobalLink() - */ - function getGlobalLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getGlobalLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of procedural page - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the procedural page's documentation - * @see parent::getPageLink() - */ - function getPageLink($expr,$package, $path = false,$text = false) - { - $a = Converter::getPageLink($expr,$package,$path); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of method - * @param string class containing method - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the method's documentation - * @see parent::getMethodLink() - */ - function getMethodLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getMethodLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of var - * @param string class containing var - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the var's documentation - * @see parent::getVarLink() - */ - function getVarLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getVarLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of class constant - * @param string class containing class constant - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the var's documentation - * @see parent::getVarLink() - */ - function getConstLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getConstLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * does a nat case sort on the specified second level value of the array - * - * @param mixed $a - * @param mixed $b - * @return int - */ - function rcNatCmp ($a, $b) - { - $aa = strtoupper($a[$this->rcnatcmpkey]); - $bb = strtoupper($b[$this->rcnatcmpkey]); - - return strnatcasecmp($aa, $bb); - } - - /** - * does a nat case sort on the specified second level value of the array. - * this one puts constructors first - * - * @param mixed $a - * @param mixed $b - * @return int - */ - function rcNatCmp1 ($a, $b) - { - $aa = strtoupper($a[$this->rcnatcmpkey]); - $bb = strtoupper($b[$this->rcnatcmpkey]); - - if (strpos($aa,'CONSTRUCTOR') === 0) - { - return -1; - } - if (strpos($bb,'CONSTRUCTOR') === 0) - { - return 1; - } - if (strpos($aa,strtoupper($this->class)) === 0) - { - return -1; - } - if (strpos($bb,strtoupper($this->class)) === 0) - { - return -1; - } - return strnatcasecmp($aa, $bb); - } - - /** - * This function is not used by HTMLdefaultConverter, but is required by Converter - */ - function Output() - { - } -} - -/** - * @access private - * @global string name of the package to set as the first package - */ -function HTMLSmarty_pindexcmp($a, $b) -{ - global $phpDocumentor_DefaultPackageName; - if ($a['title'] == $phpDocumentor_DefaultPackageName) return -1; - if ($b['title'] == $phpDocumentor_DefaultPackageName) return 1; - return strnatcasecmp($a['title'],$b['title']); -} - -/** @access private */ -function HTMLSmarty_lettersort($a, $b) -{ - return strnatcasecmp($a['letter'],$b['letter']); -} - -/** @access private */ -function HTMLSmarty_outputfilter($src, &$smarty) -{ - return str_replace('{$subdir}',$smarty->_tpl_vars['subdir'],$src); -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini deleted file mode 100644 index 4566db60..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini +++ /dev/null @@ -1,577 +0,0 @@ -preservedocbooktags = false - -;; used to highlight the {@source} inline tag, @filesource tag, and @example tag -[highlightSourceTokens] -;; format: -;; T_CONSTANTNAME = open -;; /T_CONSTANTNAME = close - -T_INCLUDE = -/T_INCLUDE = -T_INCLUDE_ONCE = -/T_INCLUDE_ONCE = -T_REQUIRE_ONCE = -/T_REQUIRE_ONCE = -T_REQUIRE_ONCE = -/T_REQUIRE_ONCE = - -T_CONSTANT_ENCAPSED_STRING = -/T_CONSTANT_ENCAPSED_STRING = -T_STRING_VARNAME = -/T_STRING_VARNAME = - -T_STRING = -/T_STRING = - -T_DNUMBER = -/T_DNUMBER = -T_LNUMBER = -/T_LNUMBER = - -T_VARIABLE = -/T_VARIABLE = - -T_COMMENT = -/T_COMMENT = -T_ML_COMMENT = -/T_ML_COMMENT = - -T_OBJECT_OPERATOR = -/T_OBJECT_OPERATOR = - -T_ABSTRACT = -/T_ABSTRACT = -T_CLONE = -/T_CLONE = -T_HALT_COMPILER = -/T_HALT_COMPILER = -T_ARRAY = -/T_ARRAY = -T_AS = -/T_AS = -T_BREAK = -/T_BREAK = -T_CLASS = -/T_CLASS = -T_CASE = -/T_CASE = -T_CONST = -/T_CONST = -T_CONTINUE = -/T_CONTINUE = -T_DECLARE = -/T_DECLARE = -T_DEFAULT = -/T_DEFAULT = -T_ELSE = -/T_ELSE = -T_ELSEIF = -/T_ELSEIF = -T_EMPTY = -/T_EMPTY = -T_ENDDECLARE = -/T_ENDDECLARE = -T_ENDFOR = -/T_ENDFOR = -T_ENDSWITCH = -/T_ENDSWITCH = -T_ENDFOREACH = -/T_ENDFOREACH = -T_ENDIF = -/T_ENDIF = -T_ENDWHILE = -/T_ENDWHILE = -T_EXIT = -/T_EXIT = -T_EXTENDS = -/T_EXTENDS = -T_FINAL = -/T_FINAL = -T_FOR = -/T_FOR = -T_FOREACH = -/T_FOREACH = -T_FUNCTION = -/T_FUNCTION = -T_GLOBAL = -/T_GLOBAL = -T_IF = -/T_IF = -T_IMPLEMENTS = -/T_IMPLEMENTS = -T_INTERFACE = -/T_INTERFACE = -T_LOGICAL_AND = -/T_LOGICAL_AND = -T_LOGICAL_OR = -/T_LOGICAL_OR = -T_LOGICAL_XOR = -/T_LOGICAL_XOR = -T_NEW = -/T_NEW = -T_PRIVATE = -/T_PRIVATE = -T_PROTECTED = -/T_PROTECTED = -T_PUBLIC = -/T_PUBLIC = -T_RETURN = -/T_RETURN = -T_STATIC = -/T_STATIC = -T_SWITCH = -/T_SWITCH = -T_VAR = -/T_VAR = -T_WHILE = -/T_WHILE = - -T_DOUBLE_COLON = -/T_DOUBLE_COLON = - -T_OPEN_TAG = -/T_OPEN_TAG = -T_OPEN_TAG_WITH_ECHO = -/T_OPEN_TAG_WITH_ECHO = -T_CLOSE_TAG = -/T_CLOSE_TAG = - - -[highlightSource] -;; this is for highlighting things that aren't tokens like "&" -;; format: -;; word = open -;; /word = close -@ = -/@ = -& = -/& = -[ = -/[ = -] = -/] = -! = -/! = -";" = -/; = -( = -/( = -) = -/) = -, = -/, = -{ = -/{ = -} = -/} = -""" = -/" = - -[highlightDocBlockSourceTokens] -;; this is for docblock tokens, using by phpDocumentor_HighlightParser -;; tagphptype is for "string" in @param string description, for example -docblock = -/docblock = -tagphptype = -/tagphptype = -tagvarname = -/tagvarname = -coretag = -/coretag = -tag = -/tag = -inlinetag = -/inlinetag = -internal = -/internal = -closetemplate = -/closetemplate = -docblocktemplate = -/docblocktemplate = - -[highlightTutorialSourceTokens] -;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser -;; -opentag = -/opentag = -;; -closetag = -/closetag = -;; -attribute = -/attribute = -;; -attributevalue = -/attributevalue = -;; &entity; -entity = -/entity = -;; -comment = -/comment = -;; {@inline tag} -itag = -/itag = - -;; used for translation of html in DocBlocks -[desctranslate] -ul =
          -/ul =
        -ol =
          -/ol =
        -li =
      • -/li =
      • -code =
        -/code = 
        -var = -/var = -samp = -/samp = -kbd = -/kbd = -pre =
        -/pre = 
        -p =

        -/p =

        -b = -/b = -i = -/i = -br =
        - -[ppage] -;; this is the DocBook package page translation section. All DocBook tags -;; that have a corresponding html tag must be listed here. Entities should -;; also be listed here -;; -;; examples: -;; 1) -;; tagname = newtagname -;; -;; This is the simplest case, where all attributes will be added into the -;; starting tag and the ending tag will be html/xml style -;; becomes and -;; becomes -;; -;; -;; 2) -;; tagname = newtagname -;; tagname->attr = newattrname -;; -;; in this case, everything will be like the first case, except tags like: -;; will become -;; -;; -;; 3) -;; tagname = newtagname -;; tagname->attr = newattrname -;; tagname->attr+value = newvalue -;; -;; in this case, the value is also translated to another. This can be useful -;; for instances such as focus="middle" changing to align="center" or something -;; of that nature. -;; will become -;; -;; -;; 4) -;; tagname = newtagname -;; tagname->attr1 = newattrname -;; tagname->attr2 = newattrname -;; tagname->attr1+value|attr2+value = newvalue -;; -;; in this case, two attributes combine to make one new attribute, and the combined -;; value is translated into a new value -;; will become -;; -;; -;; 5) -;; tagname = newtagname -;; tagname!attr = dummy -;; -;; here, the attribute will be ignored. dummy is not used and may be any value -;; will become -;; -;; -;; 6) -;; tagname = newtagname -;; tagname! = dummy -;; -;; here, all attributes will be ignored. dummy is not used and may be any value -;; will become -;; -;; -;; 7) -;; tagname = newtagname -;; tagname/ = 1 -;; -;; here, the tag will be translated as a single tag with no closing tag, and all -;; attributes -;; {text text} will become -;; -;; -;; 8) -;; tagname = -;; /tagname = closetagtext -;; -;; in this case, the text will be inserted exactly as entered for -;; and closetagtext for -;; will become -;; closetagtext -;; -;; 9) -;; $attr$my_attribute = newattrname -;; -;; tagname = newtagname -;; -;; in this case, all occurences of my_attribute in any tag will be changed to -;; newattrname. This is useful for changing things like role="php" to -;; class="php," for example. Note that the text "$attr$" MUST be on the line -;; start for phpDocumentor to recognize it. -;; -;; 10) -;; &entity; = translation text -;; " = " -;; " = """ -;; < = < -;; -;; Use this to control translation of entities to their appropriate values - -  =   -" = " -” = ” -“ = “ -& = & -< = < -> = > -© = © - -$attr$role = class - -abbrev = abbr - -blockquote = blockquote - -arg = span -arg->choice = class - -author = -/author = -author! = 0 - -authorblurb =
        -/authorblurb =
        - -authorgroup =

        Authors

        -/authorgroup =
        -authorgroup! = 0 - -caution = -/caution = -caution! = 0 - -cmdsynopsis =
        -/cmdsynopsis =
        - -command = -/command = - -copyright =
        -/copyright =
        - -emphasis = strong - -example =
        -/example = 
        -example! = 0 - -function = -/function = () - -formalpara = p - -graphic = img -graphic->fileref = src -graphic/ = - -important = strong - -informalequation = blockquote - -informalexample = div - -inlineequation = em - -itemizedlist = ul - -listitem = li - -literal = code - -literallayout = span - -option = " " -/option = - -orderedlist = ol - -para = p - -programlisting =
        -/programlisting = 
        -programlisting! = 0 - -refentry = div - -refnamediv =
        -/refnamediv =
        -refnamediv! = 0 - -refname =

        -/refname =

        - -refpurpose =

        -/refpurpose =

        - -refsynopsisdiv =
        -/refsynopsisdiv =
        -refsynopsisdiv! = 0 - -refsect1 = span - -refsect2 = -/refsect2 =
        - -refsect3 = -/refsect3 =
        - -releaseinfo =
        ( -/releaseinfo = )
        - -simpara = -/simpara =
        -simpara! = 0 - -subscript = sub - -superscript = super - -table = table - -table->colsep = rules -table->rowsep = rules -table->colsep+1|rowsep+1 = all -table->colsep+1|rowsep+0 = cols -table->colsep+0|rowsep+1 = rows - -table->frame = frame -table->frame+all = border -table->frame+none = void -table->frame+sides = vsides -table->frame+top = above -table->frame+topbot = hsides - -thead = thead - -tfoot = tfoot - -tbody = tbody - -colspec = col - -tgroup = colgroup -tgroup/ = 1 -tgroup->cols = span - -row = tr - -entry = td -entry->morerows = colspan -entry->morerows+1 = 2 -entry->morerows+2 = 3 -entry->morerows+3 = 4 -entry->morerows+4 = 5 -entry->morerows+5 = 6 -entry->morerows+6 = 7 -entry->morerows+7 = 8 -entry->morerows+8 = 9 -entry->morerows+9 = 10 -entry->morerows+10 = 11 -;; add more if you need more colspans - -warning = -/warning = -warning! = 0 - -;; now begins the attributes that should be tags in cdata -[$attr$id] -open = a -;close = /a -cdata! = true -quotevalues = true -separator = "=" -;separateall = true -$id = name - -;; now begins the sections that deal with -[refsynopsisdiv_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h1 class="title"> -close = </h1> - -[refsect1_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h2 class="title"> -close = </h2> - -[refsect2_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h3 class="title"> -close = </h3> - -[refsect3_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h4 class="title"> -close = </h4> - -[para_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <div class="title"> -close = </div> - -[formalpara_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <div class="title"> -close = </div> - -[example_title] -;tag_attr = true -;attr_name = title -;cdata_start = true -cdata_end = true -open = </td></tr><tr><td><strong> -close = </strong> - -[table_title] -;tag_attr = true -;attr_name = true -cdata_start = true -open = <caption> -close = </caption> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list"> - {section name=tag loop=$tags} - {if $tags[tag].keyword != "abstract" && - $tags[tag].keyword != "access" && - $tags[tag].keyword != "static" && - $tags[tag].keyword != "version" - } - - <strong>{$tags[tag].keyword|capitalize}:</strong> - {$tags[tag].data}<br /> - {/if} - {/section} -</div> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl deleted file mode 100644 index d7fe2f82..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl +++ /dev/null @@ -1,38 +0,0 @@ -<hr size="1" noshade="noshade"/> -<div class="class-declaration"> - {if count($tags) > 0} - {section name=tag loop=$tags} - {if $tags[tag].keyword == "abstract"} - abstract - {/if} - {/section} - {/if} - - {if $is_interface} - interface - {else} - class - {/if} - - <strong>{$class_name}</strong> - - {if count($class_tree) > 1} - {section name=tree loop=$class_tree.classes} - {if $smarty.section.tree.last} - extends {$class_tree.classes[$smarty.section.tree.index_prev]} - {/if} - {/section} - {/if} - - {if $implements} - <br/> - implements - {foreach item="interface" from=$implements} - {if !$smarty.foreach.interface.first} - , {$interface} - {else} - {$interface} - {/if} - {/foreach} - {/if} -</div> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl deleted file mode 100644 index 12025c1c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl +++ /dev/null @@ -1,7 +0,0 @@ -<div class="class-description"> - <p>{$sdesc}</p> - - {if $desc != ""}{$desc}{/if} -</div> - -{include file="_tags.tpl" tags=$tags} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl deleted file mode 100644 index d6a1d398..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl +++ /dev/null @@ -1 +0,0 @@ -{eval var=$compiledclassindex} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl deleted file mode 100644 index bca71e17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl +++ /dev/null @@ -1,33 +0,0 @@ -{if $consts} - <hr size="1" noshade="noshade"/> - <a name="constant-details"></a> - <table class="constant-details" cellspacing="1"> - <tr> - <th>Constant Details</th> - </tr> - {section name=const loop=$consts} - <tr> - <td> - <a name="{$consts[const].const_dest}"></a> - - <h3>{$consts[const].const_name}</h3> - - <p>{$consts[const].sdesc}</p> - - {if $consts[const].desc} - {$consts[const].desc} - {/if} - - <div class="tag-list"> - <h4 class="tag">Type:</h4> - <div class="tag-data">{include file="_get_constant_type.tpl" const=$consts[const].const_value}</div> - <h4 class="tag">Value:</h4> - <div class="tag-data">{$consts[const].const_value}</div> - </div> - {include file="_tags.tpl" tags=$consts[const].tags} - <p/> - </td> - </tr> - {/section} - </table> -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl deleted file mode 100644 index 8049c4b0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{if $consts || $iconsts} - <hr size="1" noshade="noshade"/> - <a name="constant-summary"></a> - <table class="constant-summary" cellspacing="1"> - <tr> - <th colspan="3">Constant Summary</th> - </tr> - {section name=const loop=$consts} - <tr> - <td class="type" nowrap="nowrap">{strip}{include file="_get_constant_type.tpl" const=$consts[const].const_value}{/strip}</td> - <td class="name"><a href="{$consts[const].id}">{$consts[const].const_name}</a></td> - <td class="description" width="100%"> - {$consts[const].sdesc} - - {if $consts[const].desc} - {$consts[const].desc} - {/if} - </td> - </tr> - {/section} - </table> -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl deleted file mode 100644 index ec4fd0a2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__construct"} - <hr size="1" noshade="noshade"/> - <a name="sec-method"></a> - <table class="method-details" cellspacing="1"> - <tr> - <th colspan="3">Constructor Details</th> - </tr> - <tr> - <td class="method-data"> - <a name="{$methods[method].method_dest}"></a> - - <h2>{$methods[method].function_name}</h2> - - <table class="method-detail" cellspacing="0"> - <tr> - <td nowrap="nowrap">{strip} - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].access == "public"} - public  - {/if} - - {if $methods[method].abstract == "1"} - abstract  - {/if} - - {if $methods[method].static == "1"} - static  - {/if} - - <strong>{$methods[method].function_name}</strong> - {/strip}</td> - <td nowrap="nowrap">{strip} - {$methods[method].ifunction_call.params} - {/strip}</td> - </tr> - </table> - - <p>{$methods[method].sdesc}</p> - - {if $methods[method].desc} - {$methods[method].desc} - {/if} - - {include file="_tags.tpl" tags=$methods[method].tags} - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl deleted file mode 100644 index 8819f63e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__construct"} - <hr size="1" noshade="noshade"/> - <a name="constructor-summary"></a> - <table class="method-summary" cellspacing="1"> - <tr> - <th colspan="2">Constructor Summary</th> - </tr> - <tr> - <td class="type" nowrap="nowrap" width="1%">{$methods[method].access}</td> - <td> - <div class="declaration"> - <a href="{$methods[method].id}">{$methods[method].function_name}</a> - {$methods[method].ifunction_call.params} - </div> - <div class="description"> - {$methods[method].sdesc} - </div> - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl deleted file mode 100644 index 3cb5534a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__destruct"} - <hr size="1" noshade="noshade"/> - <a name="sec-method"></a> - <table class="method-details" cellspacing="1"> - <tr> - <th colspan="3">Destructor Details</th> - </tr> - <tr> - <td class="method-data"> - <a name="{$methods[method].method_dest}"></a> - - <h2>{$methods[method].function_name}</h2> - - <table class="method-detail" cellspacing="0"> - <tr> - <td nowrap="nowrap">{strip} - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].access == "public"} - public  - {/if} - - {if $methods[method].abstract == "1"} - abstract  - {/if} - - {if $methods[method].static == "1"} - static  - {/if} - - <strong>{$methods[method].function_name}</strong> - {/strip}</td> - <td nowrap="nowrap">{strip} - {build_argument_list args=$methods[method].ifunction_call.params style="vertical"} - {/strip}</td> - </tr> - </table> - - <p>{$methods[method].sdesc}</p> - - {if $methods[method].desc} - {$methods[method].desc} - {/if} - - {include file="_tags.tpl" tags=$methods[method].tags} - </td> - </tr> - </table> - {/if} - {/section} -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl deleted file mode 100644 index 53e8f1d2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{if $methods} - {section name=method loop=$methods} - {if $methods[method].function_name == "__destruct"} - <hr size="1" noshade="noshade"/> - <a name="desructor-summary"></a> - <table class="method-summary" cellspacing="1"> - <tr> - <th colspan="2">Destructor Summary</th> - </tr> - <tr> - <td class="type" nowrap="nowrap" width="1%">{strip} - {$methods[method].access} - {/strip}</td> - <td> - <div class="declaration">{strip} - <a href="{$methods[method].id}">{$methods[method].function_name}</a> - {$methods[method].ifunction_call.params} - {/strip}</div> - <div class="description"> - {$methods[method].sdesc} - </div> - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl deleted file mode 100644 index 0c2eddc2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl +++ /dev/null @@ -1 +0,0 @@ -</div> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl deleted file mode 100644 index 48301da4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{if is_numeric(strtolower(trim($const)))} - int -{elseif strtolower(trim($const)) == "true" || - strtolower(trim($const)) == "false"} - bool -{elseif strtolower(trim($const)) == "null"} - null -{else} - string -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl deleted file mode 100644 index f92571a4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl +++ /dev/null @@ -1,4 +0,0 @@ -<div id="bar" nowrap="nowrap"> - {include file="_class_list.tpl"} -</div> -<div id="content1"> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl deleted file mode 100644 index 66c37633..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl +++ /dev/null @@ -1,34 +0,0 @@ -{if $iconsts} - {section name=iconst loop=$iconsts} - <table class="inherited-constants" cellspacing="1"> - <tr> - <th>Constants Inherited From {$iconsts[iconst].parent_class}</th> - </tr> - <tr> - <td> - {assign var="_consts" value=""} - - {section name=_const loop=$iconsts[iconst].iconsts} - {if $_consts != ""}, - {* append var="_consts" value=", "*} - {/if} - <a href="{$href}">{$iconsts[iconst].iconsts[_const].name}</a>{if !$smarty.section.name.last},{/if} - {* - {extract_attribute attribute="href" - element=$iconsts[iconst].iconsts[_const].link - var="href" append="no"} - - {append var="_consts" value="<a href=\""} - {append var="_consts" value=$href} - {append var="_consts" value="\">"} - {append var="_consts" value=$iconsts[iconst].iconsts[_const].name} - {append var="_consts" value="</a>"} - *} -{/section} - - {*$_consts*} - </td> - </tr> - </table> - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl deleted file mode 100644 index 55aafb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl +++ /dev/null @@ -1,42 +0,0 @@ -{if $imethods} - {section name=imethod loop=$imethods} - {if count($imethods[imethod].imethods) > 1 || - ($imethods[imethod].imethods[0].name != "__construct" && - $imethods[imethod].imethods[0].name != "__destruct" && - $imethods[imethod].imethods[0].abstract != "1")} - <table class="inherited-methods" cellspacing="1"> - <tr> - <th>Methods Inherited From {$imethods[imethod].parent_class}</th> - </tr> - <tr> - <td> - {* assign var="_methods" value="" *} - - {section name=_method loop=$imethods[imethod].imethods} - {if $imethods[imethod].imethods[_method].name != "__construct" && - $imethods[imethod].imethods[_method].abstract != "1"} - {* - {if $_methods != ""} - {append var="_methods" value=", "} - {/if} - - {extract_attribute attribute="href" - element=$imethods[imethod].imethods[_method].link - var="href" append="no"} - - {append var="_methods" value="<a href=\""} - {append var="_methods" value=$href} - {append var="_methods" value="\">"} - {append var="_methods" value=$imethods[imethod].imethods[_method].name} - {append var="_methods" value="</a>"} - *} - {$imethods[imethod].imethods[_method].link}{if !$smarty.section._method.last},{/if} - {/if} - {/section} - - </td> - </tr> - </table> - {/if} - {/section} -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl deleted file mode 100644 index 471c7972..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl +++ /dev/null @@ -1,3 +0,0 @@ -<div class="inheritence-tree"> - <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre> -</div> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl deleted file mode 100644 index b5ddfb10..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl +++ /dev/null @@ -1,101 +0,0 @@ -{if $methods && (count($methods) > 1 || - ($methods[0].function_name != "__construct" && - $methods[0].function_name != "__destruct"))} - - <hr size="1" noshade="noshade"/> - <a name="method-details"></a> - <table class="method-details" cellspacing="1"> - <tr> - <th>Method Details</th> - </tr> - {section name=method loop=$methods} - {if $methods[method].function_name != "__construct" && - $methods[method].function_name != "__destruct"} - - <tr> - <td class="method-data"> - - <a name="{$methods[method].method_dest}"></a> - - <h2>{$methods[method].function_name}</h2> - - <table class="method-detail" cellspacing="0"> - <tr> - <td nowrap="nowrap">{strip} - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].access == "public"} - public  - {/if} - - {if $methods[method].abstract == 1} - abstract  - {/if} - - {if $methods[method].static == 1} - static  - {/if} - - {$methods[method].function_return}  - - - <strong>{$methods[method].function_name}</strong> - {/strip}</td> - <td width="100%">{strip} - ( - {if $methods[method].ifunction_call.params} - {foreach item=param name="method" from=$methods[method].ifunction_call.params} - {$param.type} {$param.name} {if !$smarty.foreach.method.last}, {/if} - {/foreach} - - {/if} - ) - {/strip}</td> - </tr> - </table> - - <p>{$methods[method].sdesc}</p> - - {if $methods[method].desc} - {$methods[method].desc} - {/if} - {* $methods[method]|print_r *} - <div class="tag-list"><table class="method-summary" cellspacing="1"> - {if $methods[method].ifunction_call.params} - <tr><th colspan="3" class="small">Input</th></tr> - {foreach item=param name="method" from=$methods[method].ifunction_call.params} - <tr><td valign="top">{$param.type}</td><td valign="top"><strong>{$param.name}</strong><td valign="top">{$param.description}</td></tr> - {/foreach} - {/if} - {if $methods[method].tags} - <tr><th colspan="3" class="small">Output</th></tr> - - {foreach item=param name="method" from=$methods[method].tags} - {if $param.keyword == "return"} - <tr><td valign="top"> - {$methods[method].function_return} - </td><td valign="top" colspan="2">{$param.data}</td></tr> - {/if} - {/foreach} - {/if} - {if $methods[method].tags} - <tr><th colspan="3" class="small">Exception</th></tr> - - {foreach item=param name="method" from=$methods[method].tags} - {if $param.keyword == "throws"} - <tr><td valign="top">{$param.keyword}</td><td valign="top" colspan="2">{$param.data}</td></tr> - {/if} - {/foreach} - {/if} - </table></div> - - {* include file="_tags.tpl" tags=$methods[method].tags *} - <p/> - </td> - </tr> - {/if} - {/section} - </table> -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl deleted file mode 100644 index 8fefd671..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl +++ /dev/null @@ -1,61 +0,0 @@ -{if $methods || $imethods} - <hr size="1" noshade="noshade"/> - <a name="method-summary"></a> - <table class="method-summary" cellspacing="1"> - <tr> - <th colspan="2">Method Summary</th> - </tr> - {section name=method loop=$methods} - {if $methods[method].function_name != "__construct" && - $methods[method].function_name != "__destruct"} - {* - {if trim(substr($methods[method].function_call, 0, 1)) == "&"} - {assign var="ref" value="true"} - {assign var="css" value=" class=\"reference\""} - {else} - {assign var="ref" value="false"} - {assign var="css" value=""} - {/if} - *} - <tr> - <td class="type" nowrap="nowrap" width="1%"> - {if $methods[method].access == "protected"} - protected  - {/if} - - {if $methods[method].abstract == 1} - abstract  - {/if} - - {if $methods[method].static == 1} - static  - {/if} - - {$methods[method].function_return} -{* - {if $ref == "true"} -  & - {/if} -*} - </td> - <td> - <div class="declaration"> - <a href="{$methods[method].id}">{$methods[method].function_name}</a> - ({strip} - {if $methods[method].ifunction_call.params} - {foreach item=param name="method" from=$methods[method].ifunction_call.params} - {$param.type} {$param.name}{if !$smarty.foreach.method.last}, {/if} - {/foreach} - - {/if} - {/strip}) - </div> - <div class="description"> - {$methods[method].sdesc} - </div> - </td> - </tr> - {/if} - {/section} - </table> -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl deleted file mode 100644 index e605b314..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl +++ /dev/null @@ -1,19 +0,0 @@ -{if $children} - <div class="sub-classes"> - {if $is_interface} - <h4>Direct Known Sub-interfaces:</h4> - {else} - <h4>Direct Known Sub-classes:</h4> - {/if} - - <div><small> - {section name=child loop=$children} - {if !$smarty.section.child.first} - , {$children[child].link} - {else} - {$children[child].link} - {/if} - {/section} - </small></div> - </div> -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list"> - {section name=tag loop=$tags} - {if $tags[tag].keyword != "abstract" && - $tags[tag].keyword != "access" && - $tags[tag].keyword != "static" && - $tags[tag].keyword != "version" - } - - <strong>{$tags[tag].keyword|capitalize}:</strong> - {$tags[tag].data}<br /> - {/if} - {/section} -</div> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl deleted file mode 100644 index 37e94343..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{section name=letter loop=$letters} - [ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> ] -{/section} - -{section name=index loop=$index} - <hr /> - <a name="{$index[index].letter}"></a> - <div> - <h2>{$index[index].letter}</h2> - <dl> - {section name=contents loop=$index[index].index} - <dt><b>{$index[index].index[contents].name}</b></dt> - <dd>{$index[index].index[contents].listing}</dd> - {/section} - </dl> - </div> - <a href="{$indexname}.html#top">top</a><br> -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl deleted file mode 100644 index b503c142..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl +++ /dev/null @@ -1,5 +0,0 @@ -<div align="center"><h1>{$maintitle}</h1></div> -<b>Welcome to {$package}!</b><br /> -<br /> -This documentation was generated by <a href="{$phpdocwebsite}">phpDocumentor v{$phpdocversion}</a><br /> - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl deleted file mode 100644 index e791bbba..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl +++ /dev/null @@ -1,29 +0,0 @@ -{include file="header.tpl" eltype="class" hasel=true contents=$classcontents} - -<h1>{if $is_interface}Interface{else}Class{/if} {$class_name}</h1> - -{*inheritence tree*} -<div class="inheritence-tree"> - <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre> -</div> - -{include file="_sub_classes.tpl"} -{include file="_class_description.tpl"} -{include file="_inherited_constants.tpl"} - -{include file="_constructor_summary.tpl"} -{* include file="_destructor_summary.tpl" *} - -{include file="_method_summary.tpl"} - -{include file="_inherited_methods.tpl"} -{include file="_constant_summary.tpl"} -{include file="_constructor_details.tpl"} - -{* include file="_destructor_details.tpl" *} - -{include file="_method_details.tpl"} - -{include file="_constant_details.tpl"} - -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl deleted file mode 100644 index c07fc33a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{foreach key=subpackage item=files from=$classleftindex} - <div class="package"> - {if $subpackage != ""}{$subpackage}<br />{/if} - {section name=files loop=$files} - {if $subpackage != ""}  {/if} - {if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}<br /> - {/section} - </div> -{/foreach} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl deleted file mode 100644 index 4020e3a8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{include file="header.tpl" noleftindex=true} -<h1>{$title}</h1> -{section name=classtrees loop=$classtrees} -<hr /> -<div class="classtree">Root class {$classtrees[classtrees].class}</div><br> -{$classtrees[classtrees].class_tree} -{/section} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl deleted file mode 100644 index 88856c4b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{section name=consts loop=$consts} -{if $show == 'summary'} - var {$consts[consts].const_name}, {$consts[consts].sdesc}<br> -{else} - <a name="{$consts[consts].const_dest}"></a> - <p></p> - <h4>{$consts[consts].const_name} = <span class="value">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":" "|replace:"\t":"   "}</span></h4> - <p>[line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}]</p> - {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags} - - <br /> - <div class="top">[ <a href="#top">Top</a> ]</div><br /> -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl deleted file mode 100644 index 04ce5b48..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{if count($defines) > 0} -{section name=def loop=$defines} -{if $show == 'summary'} -define constant <a href="{$defines[def].id}">{$defines[def].define_name}</a> = {$defines[def].define_value}, {$defines[def].sdesc}<br> -{else} - <hr /> - <a name="{$defines[def].define_link}"></a> - <h3>{$defines[def].define_name} <span class="smalllinenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</span></h3> - <div class="tags"> - <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border"> - <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code"> - <code>{$defines[def].define_name} = {$defines[def].define_value}</code> - </td></tr></table> - </td></tr></table> - - {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags} - <br /> - {if $defines[def].define_conflicts.conflict_type} - <p><b>Conflicts with defines:</b> - {section name=me loop=$defines[def].define_conflicts.conflicts} - {$defines[def].define_conflicts.conflicts[me]}<br /> - {/section} - </p> - {/if} -{* original {if $defines[def].define_conflicts != "" - <b>Conflicts:</b> {$defines[def].define_conflicts<br /><br /> - {/if *} - </div> - <div class="top">[ <a href="#top">Top</a> ]</div><br /><br /> -{/if} -{/section} -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl deleted file mode 100644 index 09a603f8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{if $sdesc != ''}{$sdesc|default:''}<br /><br />{/if} -{if $desc != ''}{$desc|default:''}<br />{/if} -{if count($tags) > 0} -<br /><br /> -<h4>Tags:</h4> -<div class="tags"> -<table border="0" cellspacing="0" cellpadding="0"> -{section name=tag loop=$tags} - <tr> - <td><b>{$tags[tag].keyword}:</b>  </td><td>{$tags[tag].data}</td> - </tr> -{/section} -</table> -</div> -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl deleted file mode 100644 index 175a5136..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl" noleftindex=true} -<a name="top"></a> -<h1>Index of all elements</h1> -{include file="basicindex.tpl" indexname="elementindex"} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl deleted file mode 100644 index 1576a822..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{include file="header.tpl" noleftindex=true} -{section name=files loop=$files} -<a href="#{$files[files].file}">{$files[files].file}</a><br> -{/section} -{foreach key=file item=issues from=$all} -<a name="{$file}"></a> -<h1>{$file}</h1> -{if count($issues.warnings)} -<h2>Warnings:</h2><br> -{section name=warnings loop=$issues.warnings} -<b>{$issues.warnings[warnings].name}</b> - {$issues.warnings[warnings].listing}<br> -{/section} -{/if} -{if count($issues.errors)} -<h2>Errors:</h2><br> -{section name=errors loop=$issues.errors} -<b>{$issues.errors[errors].name}</b> - {$issues.errors[errors].listing}<br> -{/section} -{/if} -{/foreach} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl deleted file mode 100644 index fb85654b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl" title=$title} -<h1 align="center">{$title}</h1> -<div class="php"> -{$source} -</div> -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl deleted file mode 100644 index 50f108d7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{foreach key=subpackage item=files from=$fileleftindex} - {if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if} - <div class="package"> - {section name=files loop=$files} - {if $files[files].link != ''}<a href="{$files[files].link}">{/if} - {$files[files].title} - {if $files[files].link != ''}</a>{/if}<br> - {/section} - </div><br /> -{/foreach} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl deleted file mode 100644 index b23076a0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{capture name="tutle"}File Source for {$name}{/capture} -{include file="header.tpl" title=$smarty.capture.tutle} -<h1 align="center">Source for file {$name}</h1> -<p>Documentation is available at {$docs}</p> -<div class="php"> -{$source} -</div> -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl deleted file mode 100644 index 68135cd6..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl +++ /dev/null @@ -1,25 +0,0 @@ - <!-- content end --></td></tr></table> - </td> - </tr> -</table> - -</div><!-- main --> - -<div id="footer"> - <a href="/tos/">Terms of Service</a> | - <a href="/support/">Contact Us</a> - <br/> - Copyright © 2006-2007 by the PRADO Group.<br/> - <a title="Powered by PRADO" href="http://www.pradosoft.com/"><img src="http://www.pradosoft.com/images/powered2.gif" style="border-width:0px;" alt="Powered by PRADO" /></a> -</div> - -</div><!-- page --> -<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> -</script> -<script type="text/javascript"> -_uacct = "UA-186303-3"; -urchinTracker(); -</script> - -</body> -</html> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl deleted file mode 100644 index 098aeb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl +++ /dev/null @@ -1,48 +0,0 @@ -{section name=func loop=$functions} -{if $show == 'summary'} -function {$functions[func].id}, {$functions[func].sdesc}<br /> -{else} - <hr /> - <a name="{$functions[func].function_dest}"></a> - <h3>{$functions[func].function_name} <span class="smalllinenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</span></h3> - <div class="function"> - <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border"> - <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code"> - <code>{$functions[func].function_return} {if $functions[func].ifunction_call.returnsref}&{/if}{$functions[func].function_name}( -{if count($functions[func].ifunction_call.params)} -{section name=params loop=$functions[func].ifunction_call.params} -{if $smarty.section.params.iteration != 1}, {/if}{if $functions[func].ifunction_call.params[params].default != ''}[{/if}{$functions[func].ifunction_call.params[params].type} {$functions[func].ifunction_call.params[params].name}{if $functions[func].ifunction_call.params[params].default != ''} = {$functions[func].ifunction_call.params[params].default|escape:"html"}]{/if} -{/section} -{/if})</code> - </td></tr></table> - </td></tr></table><br /> - - {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags} - <br /><br /> - {if $functions[func].function_conflicts.conflict_type} - <p><b>Conflicts with functions:</b> - {section name=me loop=$functions[func].function_conflicts.conflicts} - {$functions[func].function_conflicts.conflicts[me]}<br /> - {/section} - </p> - {/if} -{* original {if $functions[func].function_conflicts != "" - <b>Conflicts:</b> {$functions[func].function_conflicts<br /><br /> - {/if *} - - {if count($functions[func].params) > 0} - <h4>Parameters</h4> - <table border="0" cellspacing="0" cellpadding="0"> - {section name=params loop=$functions[func].params} - <tr> - <td class="type">{$functions[func].params[params].datatype}  </td> - <td><b>{$functions[func].params[params].var}</b>  </td> - <td>{$functions[func].params[params].data}</td> - </tr> - {/section} - </table> - {/if} - <div class="top">[ <a href="#top">Top</a> ]</div><br /><br /> - </div> -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl deleted file mode 100644 index 1053f748..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl +++ /dev/null @@ -1,40 +0,0 @@ -{if count($globals) > 0} -{section name=glob loop=$globals} -{if $show == 'summary'} -global variable <a href="{$globals[glob].id}">{$globals[glob].global_name}</a> = {$globals[glob].global_value}, {$globals[glob].sdesc}<br> -{else} - <hr /> - <a name="{$globals[glob].global_link}"></a> - <h4><i>{$globals[glob].global_type}</i> {$globals[glob].global_name} <span class="smalllinenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</span></h4> - <div class="tags"> - {if $globals[glob].sdesc != ""} - {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags} - {/if} - - <table border="0" cellspacing="0" cellpadding="0"> - <tr> - <td><b>Default value:</b>  </td> - <td>{$globals[glob].global_value|replace:" ":" "|replace:"\n":"<br />\n"|replace:"\t":"   "}</td> - </tr> - {if $globals[glob].global_conflicts.conflict_type} - <tr> - <td><b>Conflicts with globals:</b>  </td> - <td> - {section name=me loop=$globals[glob].global_conflicts.conflicts} - {$globals[glob].global_conflicts.conflicts[me]}<br /> - {/section} - </td> - </tr> - {/if} -{* original {if $globals[glob].global_conflicts != "" - <tr> - <td><b>Conflicts:</b>  </td> - <td>{$globals[glob].global_conflicts</td> - </tr> - {/if *} - </table> - </div><br /><br /> - <div class="top">[ <a href="#top">Top</a> ]</div><br /><br /> -{/if} -{/section} -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl deleted file mode 100644 index 659168cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl +++ /dev/null @@ -1,113 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > - <head> - <title>PRADO API Manual: {$title} - - - - - - - - - - - - - - - -
        - -
        - - - - -
        -{if count($ric) >= 1} -
        -{section name=ric loop=$ric} -

        {$ric[ric].name}

        -{/section} -
        -{/if} - Packages:
        -{section name=packagelist loop=$packageindex} - {$packageindex[packagelist].title}
        -{/section} -

        -{if $tutorials} - Tutorials/Manuals:
        -{if $tutorials.pkg} - Package-level: -{section name=ext loop=$tutorials.pkg} - {$tutorials.pkg[ext]} -{/section} -{/if} -{if $tutorials.cls} - Class-level: -{section name=ext loop=$tutorials.cls} - {$tutorials.cls[ext]} -{/section} -{/if} -{if $tutorials.proc} - Procedural-level: -{section name=ext loop=$tutorials.proc} - {$tutorials.proc[ext]} -{/section} -{/if} -{/if} -{if !$noleftindex}{assign var="noleftindex" value=false}{/if} -{if !$noleftindex} -{* -{if $compiledfileindex} - Files:
        - {eval var=$compiledfileindex} -{/if} -*} -{if $compiledclassindex} - Classes:
        - {eval var=$compiledclassindex} -{/if} -{/if} -
        - - - - - -
        -
        - Keyword - -
        -
        -{* -{if !$hasel}{assign var="hasel" value=false}{/if} -{if $hasel} -

        {$eltype|capitalize}: {$class_name}

        - Source Location: {$source_location}

        -{/if} -*} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl deleted file mode 100644 index cff067db..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{if count($includes) > 0} -

        Includes:

        -
        -{section name=includes loop=$includes} -{$includes[includes].include_name}({$includes[includes].include_value}) [line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]
        -{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags} -{/section} -
        -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl deleted file mode 100644 index 60c74b47..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl +++ /dev/null @@ -1,7 +0,0 @@ -{include file="header.tpl"} -{if $contents} -{$contents} -{else} -{include file="blank.tpl"} -{/if} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png deleted file mode 100644 index d6f36f60..00000000 Binary files a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png and /dev/null differ diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png deleted file mode 100644 index 19fdf05d..00000000 Binary files a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png and /dev/null differ diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png deleted file mode 100644 index a9f29bb1..00000000 Binary files a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png and /dev/null differ diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css deleted file mode 100644 index 8aaa937d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css +++ /dev/null @@ -1,260 +0,0 @@ -/* thanks to symfony for a great base template for phpdoc */ -/* symfony-project.com */ - -#page -{ - width: 99%; -} - -div.credit -{ - font-size: 10px; - color: #888; -} - -.inherited-methods -{ - background-color: #ddd; - font-size: 1.0em; - margin-top: 10px; - width: 100%; -} - -.inherited-methods td -{ - background-color: #FFFFFF; - font-family: "courier new", courier; - font-size: 1.1em; - padding: 5px; -} - -.inherited-methods th -{ - background-color: #F0F0F0; - font-weight: bold; - padding: 5px; - text-align: left; -} - -.method-detail -{ - font-size: 1.0em; -} - -.method-detail a -{ - font-weight: bold; -} - -.method-detail td -{ - font-family: "courier new", courier; - font-size: 1.1em; - padding-top: 10px; - vertical-align: top; -} - -.method-details -{ - background-color: #ddd; - font-size: 1.0em; - width: 100%; -} - -.method-details td -{ - background-color: #FFFFFF; -} - -.method-details td.method-data -{ - padding: 5px; -} - -.method-details h2 -{ - color: #750000; -} - -.method-details th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.method-summary -{ - background-color: #aaa; - font-size: 1.0em; - width: 100%; -} - -.method-summary td -{ - background-color: #FFFFFF; - padding: 5px; -} - -.method-summary td a -{ - font-weight: bold; -} - -.method-summary td.type -{ - font-family: "courier new", courier; - font-size: 1.0em; - text-align: right; - vertical-align: top; -} - -.method-summary div.declaration -{ - font-family: "courier new", courier; - font-size: 1.1em; -} - -.method-summary th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.method-summary th.small -{ - font-size: 1.0em; -} - -.method-summary tr.reference td { - background-color: #FFEDED; -} - - -.constant-details -{ - background-color: #ddd; - font-size: 1.0em; - width: 100%; -} - -.constant-details h3 -{ - color: #750000; -} - -.constant-details td -{ - background-color: #FFFFFF; - padding: 5px; -} - -.constant-details th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.constant-summary -{ - background-color: #ddd; - font-size: 1.0em; - width: 100%; -} - -.constant-summary td -{ - background-color: #FFFFFF; - padding: 5px; -} - -.constant-summary td.name a -{ - font-family: "courier new", courier; - font-size: 1.0em; - font-weight: bold; -} - -.constant-summary td.type -{ - font-family: "courier new", courier; - font-size: 1.0em; -} - -.constant-summary th -{ - background-color: #F0F0F0; - font-weight: bold; - font-size: 1.2em; - padding: 5px; - text-align: left; -} - -.inherited-constants -{ - background-color: #eee; - font-size: 1.0em; - margin-top: 10px; - width: 100%; -} - -.inherited-constants td -{ - background-color: #FFFFFF; - font-family: "courier new", courier; - font-size: 1.1em; - padding: 5px; -} - -.inherited-constants th -{ - background-color: #F0F0F0; - font-weight: bold; - padding: 5px; - text-align: left; -} - -.class-declaration -{ - font-family: "courier new", courier; - font-size: 1.1em; -} - -.class-description -{ - background-color: #F0F0F0; - margin-top: 10px; - padding: 1px 8px 1px 8px; - margin-bottom: 5px; -} - -.inheritence-tree pre -{ - margin-bottom: 0; -} - -.sub-classes h4 -{ - margin: 10px 0 0 0; -} - -.sub-classes div -{ - font-family: "courier new", courier; - font-size: 1.1em; - margin: 5px 0 0 40px; -} - -.sub-classes div small -{ - font-size: 1.0em; -} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css deleted file mode 100644 index 918d43e4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css +++ /dev/null @@ -1,598 +0,0 @@ -/** - * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov - * http://decart.no - */ - -body -{ - text-align: center; -} - -body, div, span, p, input -{ - font-family: Verdana, sans-serif, Arial; - font-size: 10pt; - color: #333333; -} - -h1, h2, h3, h4 -{ - font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS; - padding: 0px; - margin: 0px; - margin-bottom: 10px; - color: #821B18; - font-weight: normal; -} - -h2 -{ - font-size: 18px; -} - -h3 -{ - font-size: 16px; -} - -div -{ - text-align: left; -} - -.instructions -{ - background-color: #EEEEEE; -} - -img -{ - border: none; -} - -a -{ - color: #CD2C27; - text-decoration: none; -} - -a:hover -{ - color: #821B18; - text-decoration: underline; -} - -#page -{ - margin: 0 auto; - padding: 0; - position: relative; -} - -#header -{ - position: relative; - height: 98px; -} - -#logo -{ - height: 99px; -} - -/* main page */ - -div.intro -{ - height: 190px; - background-image: url('bigmantis.jpg'); - background-repeat: no-repeat; - background-position: top right; - background-color: #fff; -} - -div.statements -{ - height: 135px; - background-image: url('statementsbg.gif'); - background-repeat: repeat-x; - position: relative; - border-bottom : 1px solid #EEE; -} - -div.statements div -{ - position: absolute; - width: 250px; - top: 20px; -} - -div.statements div p -{ - font-size: 13px; - color: #818181; -} - -div.statements div.whatis -{ - left: 20px; -} - -div.statements div.whatreq -{ - left: 290px; -} - -div.statements div.cani -{ - left: 600px; - width: 210px; -} - -/* navbar */ -#navbar -{ - border-bottom: 2px solid #E9EEEF; - height: 30px; - margin-bottom: 20px; -} - -#navbar ul -{ - margin-left: 0; - padding-left: 0; - display: inline; -} - -#navbar ul li -{ - margin-left: 0px; - list-style: none; - display: inline; -} - -#navbar ul li a -{ - display: block; - float: left; - font-size: 14px; - font-weight: bold; - padding-right: 14px; - padding-top: 5px; - color: #CD2B26; - text-decoration: none; - height: 29px; -} - -#navbar ul li a.active, #navbar ul li a.hover -{ - color: #821B18; -} - -/* infobar */ -div#infobar -{ - float: right; - width: 200px; - padding-left: 20px; - border-left: 2px solid #E9EEEF; -} - -div#infobar div -{ - margin-bottom: 20px; -} - -div#infobar div#featured img -{ - margin-top: 10px; -} - -/* articles */ - -div#articles -{ - width: 560px; - float: left; -} - -/* article */ - -div.article -{ - margin-bottom: 40px; -} - -div.article .date -{ - color: #9F9291; -} - -div.article .more -{ - margin-right: 10px; - display: block; - text-align: right; -} - -.logo -{ - position: absolute; - margin-left: 15px; - margin-top: 0px; - z-index: 1; -} - -#main -{ - padding: 20px; - padding-top: 20px; - background-color: #fff; -} - -div.mantis -{ - height: 190px; - background-color: #fff; - border-bottom: 1px solid #DCDCDC; -} - -div.releases -{ - float: left; - width: 240px; - height: 190px; -} - -div.releases div.official -{ - width: 190px; - position: relative; - left: 52px; - top: 128px; - font-size: 8pt; - color: #6D6D6D; -} - -div.releases div.official a -{ - display: block; -} - -div.whyprado -{ - display: block; - float: left; -} - -div.whyprado ul.list -{ - margin-top: 40px; - margin-left: 40px; -} - -div.whyprado ul.list li -{ - display: block; - margin: 5px; - padding: 0px; - font-size: 18px; - background-repeat: no-repeat; - background-position: bottom left; - padding-left: 30px; - list-style: none; -} - - -#footer -{ - border-top: 1px solid #e9eeef; - background-color: #fff; - clear: both; - color: #A7A7A7; - font-size: 8pt; - text-align: center; - padding-top: 10px; - padding-bottom: 30px; - background-repeat: repeat-x; - background-position: bottom; -} - -#features -{ - margin-left: 610px; - padding: 10px; - padding-left: 10px; - padding-right: 10px; - background-color: #BEDD75; - color: #344A1E; - font-size: 9pt; -} - -#features ul -{ - margin: 10px; - padding: 0px; -} - -#features ul li -{ - font-size: 8pt; - padding: 0px; - margin: 0px; - margin-top: 8px; -} - -#features h3 -{ - margin: 0px; - padding: 0px; - font-size: 10pt; - color: #292E1D; - text-align: center; - border-bottom: 1px solid silver; -} - -#news -{ - float: left; - width: 590px; -} - -.newstitle -{ - font-size: 12pt; - font-weight: bold; - color: #555; - margin-top: 10px; - margin-bottom: 0px; - border-bottom: 1px solid silver; -} - -.newscontentmore -{ - margin-right: 10px; - display: block; - color: #50811A; - text-align: right; -} - -.newscontentmore:hover -{ - color: red; -} - -.newstime -{ - margin: 0px; - font-size:0.8em; - color:#aaa; - padding-left:10px; - text-align: right; -} - -.newscontent -{ - margin-top: 5px; -} - -#leftpanel -{ - float: left; - width: 550px; -} - -#topics -{ - border: 1px solid #804040; - margin-left: 610px; - padding-bottom: 10px; -} - -#topicsheader -{ - text-align:center; - font-weight:bold; - background-color:#804040; - color:#FFFFBC; - padding: 3px; - margin-bottom:0px; -} - -.topicitem -{ - padding: 5px; -} - -.topicitem a:hover -{ - text-decoration: underline; -} - -.topicitem p -{ - margin: 0px; - font-size:0.8em; - color:#aaa; - padding-left:10px; - white-space:nowrap; -} - -.reference -{ -} - -.reference img -{ - margin: 10px; -} - -.reference h3 -{ -} - - -.download -{ - width: 100%; - background-color: #aaa; -} - -.download td -{ - background-color: #FFFFFF; - padding: 5px; - font-size: 9pt; -} - -.download td a -{ - font-weight: bold; -} - -.download td.type -{ - font-family: "courier new", courier; - text-align: right; - vertical-align: top; -} - -.download div.declaration -{ - font-family: "courier new", courier; -} - - -.download th -{ - background-color: #F0F0F0; - font-weight: bold; - padding: 5px; - text-align: left; -} - -.download th.small -{ - font-size: 1.0em; -} - -.download tr.reference td { - background-color: #FFEDED; -} - - -.doc-title -{ - font-size: 14pt; - font-weight: bold; - margin-top: 10px; - margin-bottom: 10px; -} - -.doc-subtitle -{ - font-size: 11pt; - font-weight: bold; - background-color: #EEE; - padding: 5px; - margin-top: 20px; -} - -.doc-namespace -{ - font-size: 8pt; -} - - -.doc-menu -{ -} - -.doc-classes -{ -} - -.doc-ancestors -{ - font-size: 8pt; -} - -.doc-properties -{ - font-size: 9pt; -} - -.doc-properties table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-properties td, .doc-properties th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-events -{ - font-size: 9pt; -} - -.doc-events table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-events td, .doc-events th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-methods -{ - font-size: 9pt; -} - -.doc-methods table -{ - border-collapse: collapse; - background-color: silver; - width: 100%; -} - -.doc-methods td, .doc-methods th -{ - padding: 3px; - vertical-align: top; - background-color: white; - border: 1px solid silver; -} - -.doc-derived -{ -} - -.doc-inherited -{ -} - -.doc-native td -{ - background-color: lightyellow; -} - -.forum-topic -{ - padding: 10px; - border:1px solid silver; - margin-bottom: 10px; -} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css deleted file mode 100644 index 2c08f94f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css +++ /dev/null @@ -1,129 +0,0 @@ -BODY, DIV, SPAN, PRE, CODE, TD, TH { - line-height: 140%; - font-size: 10pt; - font-family: verdana,arial,sans-serif; -} - -H1 { - font-size: 12pt; -} - -H4 { - font-size: 10pt; - font-weight: bold; -} - -P.label { - margin-bottom: 5px; -} -P.dt { - margin-top: 0px; - margin-bottom: 0px; -} -P.indent { - margin-top: 0px; - margin-left: 20px; - margin-bottom: 0px; -} -P.method { - background-color: #f0f0f0; - padding: 2px; - border: 1px #cccccc solid; -} - -A { - text-decoration: none; -} - -A:link{ - color: #336699; -} - -A:visited { - color: #003366; -} - -A:active, A:hover { - color: #6699CC; -} - -A:hover{ - text-decoration: underline; -} - -SPAN.type { - color: #336699; - font-size: xx-small; - font-weight: normal; - } - -PRE { - background-color: #EEEEEE; - padding: 10px; - border-width: 1px; - border-color: #336699; - border-style: solid; -} - -HR { - color: #336699; - background-color: #336699; - border-width: 0px; - height: 1px; - filter: Alpha (opacity=100,finishopacity=0,style=1); -} - -DIV.sdesc { - font-weight: bold; - background-color: #EEEEEE; - padding: 10px; - border-width: 1px; - border-color: #336699; - border-style: solid; -} - -DIV.desc { - font-family: monospace; - background-color: #EEEEEE; - padding: 10px; - border-width: 1px; - border-color: #336699; - border-style: solid; -} - -SPAN.code { - font-family: monospace; -} - -CODE.varsummarydefault{ - padding: 1px; - border-width: 1px; - border-style: dashed; - border-color: #336699; -} - -UL.tute { - margin: 0px; - padding: 0px; - padding-left: 5px; - } - -LI.tute { - line-height: 140%; - font-size: 10pt; - text-indent: -15px; - padding-bottom: 2px; - padding-left: 14px; -} - -.small{ - font-size: 9pt; -} - - -.tute-tag { color: #009999 } -.tute-attribute-name { color: #0000FF } -.tute-attribute-value { color: #0099FF } -.tute-entity { font-weight: bold; } -.tute-comment { font-style: italic } -.tute-inline-tag { color: #636311; font-weight: bold } diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl deleted file mode 100644 index 07cb76e5..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl +++ /dev/null @@ -1,58 +0,0 @@ -{section name=methods loop=$methods} -{if $show == 'summary'} -method {$methods[methods].function_call}, {$methods[methods].sdesc}
        -{else} -
        - -

        {if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_name} [line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]

        -
        -
        -
        - {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name}( -{if count($methods[methods].ifunction_call.params)} -{section name=params loop=$methods[methods].ifunction_call.params} -{if $smarty.section.params.iteration != 1}, {/if} -{if $methods[methods].ifunction_call.params[params].default != ''}[{/if}{$methods[methods].ifunction_call.params[params].type} -{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].default != ''} = {$methods[methods].ifunction_call.params[params].default}]{/if} -{/section} -{/if}) -
        -

        - - {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}

        - -{if $methods[methods].descmethod} -

        Overridden in child classes as:
        - {section name=dm loop=$methods[methods].descmethod} -

        -
        {$methods[methods].descmethod[dm].link}
        -
        {$methods[methods].descmethod[dm].sdesc}
        -
        - {/section}

        -{/if} -{* original {if $methods[methods].descmethod != "" - {$methods[methods].descmethod

        - {/if *} -{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})

        {/if} -{* original {if $methods[methods].method_overrides != "" - {$methods[methods].method_overrides

        - {/if *} - - {if count($methods[methods].params) > 0} -

        Parameters:

        -
        - - {section name=params loop=$methods[methods].params} - - - - - - {/section} -
        {$methods[methods].params[params].datatype}  {$methods[methods].params[params].var}  {$methods[methods].params[params].data}
        -

        - {/if} -
        [ Top ]
        -
        -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl deleted file mode 100644 index b48b6719..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl +++ /dev/null @@ -1,3 +0,0 @@ -{section name=packages loop=$packages} -{$packages[packages].title} -{/section} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl deleted file mode 100644 index 6dd8683d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents} - -
        -
        - -{if $classes} -
        -{if $tutorial} -Main Tutorial: {$tutorial} -{/if} -

        Classes:

        -{section name=classes loop=$classes} -
        {$classes[classes].link}
        -
        {$classes[classes].sdesc}
        -{/section} -


        -{/if} - -

        Page Details:

        -{include file="docblock.tpl" type="page"} -

        -{include file="include.tpl"} -

        -{include file="global.tpl"} -

        -{include file="define.tpl"} -
        -{include file="function.tpl"} - -{include file="footer.tpl"} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl deleted file mode 100644 index 753ad7cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl"} - -

        Element index for package {$package}

        -{include file="basicindex.tpl" indexname=elementindex_$package} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl deleted file mode 100644 index c4cb83f9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl"} -

        {$name}

        -
        -{$contents|htmlentities}
        -
        -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl deleted file mode 100644 index 5ab0bca2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{include file="header.tpl" title="Todo List"} -

        Todo List

        -{foreach from=$todos key=todopackage item=todo} -

        {$todopackage}

        -{section name=todo loop=$todo} -

        {$todo[todo].link}

        -
          -{section name=t loop=$todo[todo].todos} -
        • {$todo[todo].todos[t]}
        • -{/section} -
        -{/section} -{/foreach} -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl deleted file mode 100644 index 22c71c3b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{include file="header.tpl" title=$title} -{if $nav} - - - - - - -
        {if $prev}{/if}Prev{if $prev}{/if}{if $next}{/if}Next{if $next}{/if}
        -{/if} -{$contents} -{if $nav} - - - - - - - - - - - - -
        {if $prev}{/if} -Prev{if $prev}{/if}{if $up}Up{else} {/if}{if $next}{/if}Next{if $next}{/if}
        {if $prevtitle}{$prevtitle}{/if}{if $uptitle}{$uptitle}{/if}{if $nexttitle}{$nexttitle}{/if}
        -{/if} -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl deleted file mode 100644 index 1db34438..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl +++ /dev/null @@ -1,29 +0,0 @@ -{if count($toc)} -

        Table of Contents

        -
          -{section name=toc loop=$toc} -{if $toc[toc].tagname == 'refsect1'} -{assign var="context" value="refsect1"} -{$toc[toc].link}
          -{/if} -{if $toc[toc].tagname == 'refsect2'} -{assign var="context" value="refsect2"} -   {$toc[toc].link}
          -{/if} -{if $toc[toc].tagname == 'refsect3'} -{assign var="context" value="refsect3"} -      {$toc[toc].link}
          -{/if} -{if $toc[toc].tagname == 'table'} -{if $context == 'refsect2'}   {/if} -{if $context == 'refsect3'}   {/if} -Table: {$toc[toc].link} -{/if} -{if $toc[toc].tagname == 'example'} -{if $context == 'refsect2'}   {/if} -{if $context == 'refsect3'}   {/if} -Table: {$toc[toc].link} -{/if} -{/section} -
        -{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl deleted file mode 100644 index faf7bcef..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl deleted file mode 100644 index c76929fe..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl +++ /dev/null @@ -1,28 +0,0 @@ -{section name=vars loop=$vars} -{if $show == 'summary'} - var {$vars[vars].var_name}, {$vars[vars].sdesc}
        -{else} - -

        -

        {$vars[vars].var_name} = {$vars[vars].var_default|replace:"\n":"
        \n"|replace:" ":" "|replace:"\t":"   "}

        -

        [line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]

        - {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags} - -
        -
        - - - - - - {if $vars[vars].var_overrides != ""} - - - - - {/if} -
        Type:  {$vars[vars].var_type}
        Overrides:  {$vars[vars].var_overrides}
        -


        -
        [ Top ]

        -{/if} -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc deleted file mode 100644 index d1b8751c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc +++ /dev/null @@ -1,1747 +0,0 @@ - - * @since 1.0rc1 - * @version $Id: HTMLframesConverter.inc,v 1.1 2005/10/17 18:37:03 jeichorn Exp $ - */ -/** - * HTML output converter. - * This Converter takes output from the {@link Parser} and converts it to HTML-ready output for use with {@link Smarty}. - * - * @package Converters - * @subpackage HTMLframes - * @see parserDocBlock, parserInclude, parserPage, parserClass, parserDefine, parserFunction, parserMethod, parserVar - * @author Greg Beaver - * @since 1.2 - * @version $Id: HTMLframesConverter.inc,v 1.1 2005/10/17 18:37:03 jeichorn Exp $ - */ -class HTMLframesConverter extends Converter -{ - /** - * Smarty Converter wants elements sorted by type as well as alphabetically - * @see Converter::$sort_page_contents_by_type - * @var boolean - */ - var $sort_page_contents_by_type = true; - /** @var string */ - var $outputformat = 'HTML'; - /** @var string */ - var $name = 'frames'; - /** - * indexes of elements by package that need to be generated - * @var array - */ - var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => false, 'globals' => false); - - /** - * output directory for the current procedural page being processed - * @var string - */ - var $page_dir; - - /** - * target directory passed on the command-line. - * {@link $targetDir} is malleable, always adding package/ and package/subpackage/ subdirectories onto it. - * @var string - */ - var $base_dir; - - /** - * output directory for the current class being processed - * @var string - */ - var $class_dir; - - /** - * array of converted package page names. - * Used to link to the package page in the left index - * @var array Format: array(package => 1) - */ - var $package_pages = array(); - - /** - * controls formatting of parser informative output - * - * Converter prints: - * "Converting /path/to/file.php... Procedural Page Elements... Classes..." - * Since HTMLdefaultConverter outputs files while converting, it needs to send a \n to start a new line. However, if there - * is more than one class, output is messy, with multiple \n's just between class file output. This variable prevents that - * and is purely cosmetic - * @var boolean - */ - var $juststarted = false; - - /** - * contains all of the template procedural page element loop data needed for the current template - * @var array - */ - var $current; - - /** - * contains all of the template class element loop data needed for the current template - * @var array - */ - var $currentclass; - var $wrote = false; - var $ric_set = array(); - - /** - * sets {@link $base_dir} to $targetDir - * @see Converter() - */ - function HTMLframesConverter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title) - { - Converter::Converter($allp, $packp, $classes, $procpages,$po, $pp, $qm, $targetDir, $templateDir, $title); - $this->base_dir = $targetDir; - } - - /** - * @deprecated in favor of PHP 4.3.0+ tokenizer-based source highlighting - */ - function unmangle($sourcecode) - { - $sourcecode = str_replace('','
        ',$sourcecode);
        -        $sourcecode = str_replace('','
        ',$sourcecode); - $sourcecode = str_replace('
        ',"\n",$sourcecode); - $sourcecode = str_replace(' ',' ',$sourcecode); - $sourcecode = str_replace('<','<',$sourcecode); - $sourcecode = str_replace('>','>',$sourcecode); - $sourcecode = str_replace('&','&',$sourcecode); - return $sourcecode; - } - - /** - * @param string full path to the source file - * @param string fully highlighted source code - */ - function writeSource($path, $value) - { - $templ = &$this->newSmarty(); - $pathinfo = $this->proceduralpages->getPathInfo($path, $this); - $templ->assign('source',$value); - $templ->assign('package',$pathinfo['package']); - $templ->assign('subpackage',$pathinfo['subpackage']); - $templ->assign('name',$pathinfo['name']); - $templ->assign('source_loc',$pathinfo['source_loc']); - $templ->assign('docs',$pathinfo['docs']); - $templ->assign("subdir",'../'); - $templ->register_outputfilter('HTMLframes_outputfilter'); - $this->setTargetDir($this->getFileSourcePath($this->base_dir)); - phpDocumentor_out("\n"); - $this->setSourcePaths($path); - $this->writefile($this->getFileSourceName($path).'.html',$templ->fetch('filesource.tpl')); - } - - function writeExample($title, $path, $source) - { - $templ = &$this->newSmarty(); - $templ->assign('source',$source); - if (empty($title)) - { - $title = 'example'; - addWarning(PDERROR_EMPTY_EXAMPLE_TITLE, $path, $title); - } - $templ->assign('title',$title); - $templ->assign('file',$path); - $templ->assign("subdir",'../'); - $templ->register_outputfilter('HTMLframes_outputfilter'); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . '__examplesource'); - phpDocumentor_out("\n"); - $this->writefile('exsource_'.$path.'.html',$templ->fetch('examplesource.tpl')); - } - - function getExampleLink($path, $title) - { - return $this->returnLink('{$subdir}__examplesource' . PATH_DELIMITER . 'exsource_'.$path.'.html',$title); - } - - function getSourceLink($path) - { - return $this->returnLink($this->getFileSourcePath('{$subdir}') . - PATH_DELIMITER . $this->getFileSourceName($path).'.html','Source Code for this file'); - } - - /** - * Return a line of highlighted source code with formatted line number - * - * If the $path is a full path, then an anchor to the line number will be - * added as well - * @param integer line number - * @param string highlighted source code line - * @param false|string full path to @filesource file this line is a part of, - * if this is a single line from a complete file. - * @return string formatted source code line with line number - */ - function sourceLine($linenumber, $line, $path = false) - { - $extra = ''; - if (strlen(str_replace("\n", '', $line)) == 0) { - $extra = ' '; - } - if ($path) - { - return '
      • ' . $this->getSourceAnchor($path, $linenumber) . - str_replace("\n",'',$line) . $extra . - "
      • \n"; - } else - { - return '
      • ' . str_replace("\n",'',$line) . "$extra
      • \n"; - } - } - - /** - * Used to convert the <> tag in a docblock - * @param string - * @param boolean - * @return string - */ - function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/, - $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/) - { - return '
          ' . parent::ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath) - .'
        '; - } - - /** - * @param string - */ - function TutorialExample($example) - { - $trans = $this->template_options['desctranslate']; - $this->template_options['desctranslate'] = array(); - $example = '
          ' . parent::TutorialExample($example) - .'
        '; - $this->template_options['desctranslate'] = $trans; - if (!isset($this->template_options['desctranslate'])) return $example; - if (!isset($this->template_options['desctranslate']['code'])) return $example; - $example = $this->template_options['desctranslate']['code'] . $example; - if (!isset($this->template_options['desctranslate']['/code'])) return $example; - return $example . $this->template_options['desctranslate']['/code']; - } - - /** - * Retrieve a Converter-specific anchor to a segment of a source code file - * parsed via a {@tutorial tags.filesource.pkg} tag. - * @param string full path to source file - * @param string name of anchor - * @param string link text, if this is a link - * @param boolean returns either a link or a destination based on this - * parameter - * @return string link to an anchor, or the anchor - */ - function getSourceAnchor($sourcefile,$anchor,$text = '',$link = false) - { - if ($link) - return $this->returnLink($this->getFileSourcePath('{$subdir}') . - PATH_DELIMITER . $this->getFileSourceName($sourcefile).'.html#a'.$anchor, $text); - else - return ''; - } - - function getCurrentPageLink() - { - return $this->curname . '.html'; - } - - /** - * Uses htmlspecialchars() on the input - */ - function postProcess($text) - { - return htmlspecialchars($text); - } - - /** - * Use the template tutorial_toc.tpl to generate a table of contents for HTML - * @return string table of contents formatted for use in the current output format - * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...) - */ - function formatTutorialTOC($toc) - { - $template = &$this->newSmarty(); - $template->assign('toc',$toc); - return $template->fetch('tutorial_toc.tpl'); - } - - function &SmartyInit(&$templ) - { - if (!isset($this->package_index)) - foreach($this->all_packages as $key => $val) - { - if (isset($this->pkg_elements[$key])) - { - if (!isset($start)) $start = $key; - $this->package_index[] = array('link' => "li_$key.html", 'title' => $key); - } - } - $templ->assign("packageindex",$this->package_index); - $templ->assign("subdir",''); - return $templ; - } - - /** - * Writes out the template file of {@link $class_data} and unsets the template to save memory - * @see registerCurrentClass() - * @see parent::endClass() - */ - function endClass() - { - $a = '../'; - if (!empty($this->subpackage)) $a .= '../'; - if ($this->juststarted) - { - $this->juststarted = false; - phpDocumentor_out("\n"); - flush(); - } - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); - $this->class_data->assign("subdir",$a); - $this->class_data->register_outputfilter('HTMLframes_outputfilter'); - $this->writefile($this->class . '.html',$this->class_data->fetch('class.tpl')); - unset($this->class_data); - } - - /** - * Writes out the template file of {@link $page_data} and unsets the template to save memory - * @see registerCurrent() - * @see parent::endPage() - */ - function endPage() - { - $this->package = $this->curpage->package; - $this->subpackage = $this->curpage->subpackage; - $a = '../'; - if (!empty($this->subpackage)) $a .= '../'; - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); - $this->page_data->assign("package",$this->package); - $this->page_data->assign("subdir",$a); - $this->page_data->register_outputfilter('HTMLframes_outputfilter'); - $this->writefile($this->page . '.html',$this->page_data->fetch('page.tpl')); - unset($this->page_data); - } - - /** - * @param string - * @param string - * @return string <a href="'.$link.'">'.$text.''.$text.''; - } - - function makeLeft() - { - foreach($this->page_elements as $package => $o1) - { - foreach($o1 as $subpackage => $links) - { - for($i=0;$i $this->getId($links[$i]), "title" => $links[$i]->name); - } - } - } - foreach($this->class_elements as $package => $o1) - { - foreach($o1 as $subpackage => $links) - { - for($i=0;$iclasses->getClassByPackage($links[$i]->name, $links[$i]->package); - if ($class && isset($class->docblock) && $class->docblock->hasaccess) - $left[$package][$subpackage]['classes'][] = - array("link" => $this->getId($links[$i]), - "title" => $links[$i]->name, - "access" => $class->docblock->tags['access'][0]->value, - "abstract" => isset ($class->docblock->tags['abstract'][0])); - else - $left[$package][$subpackage]['classes'][] = - array("link" => $this->getId($links[$i]), - "title" => $links[$i]->name, - "access" => 'public', - "abstract" => isset ($class->docblock->tags['abstract'][0])); - } - } - } - foreach($this->function_elements as $package => $o1) - { - foreach($o1 as $subpackage => $links) - { - for($i=0;$i $this->getId($links[$i]), "title" => $links[$i]->name); - } - } - } - $ret = array(); - foreach($left as $package => $r) - { - $pd = 'blank'; - if (isset($this->package_pages[$package])) $pd = $package.'/package_'.$package.'.html'; - if (!isset($r[''])) - { - $pt = false; - $ptnoa = false; - $ptt = $package; - if ($t = $this->hasTutorial('pkg',$package,$package,'')) - { - $pt = $t->getLink($this); - $ptnoa = $this->getId($t->getLink($this,true)); - $ptt = $t->getTitle($this); - } - $tutes = array(); - foreach($this->tutorial_tree as $root => $tr) - { - if ($tr['tutorial']->package == $package && $tr['tutorial']->subpackage == $subpackage) - $tutes[$tr['tutorial']->tutorial_type][] = $this->getTutorialTree($tr['tutorial']); - } - if (isset($this->childless_tutorials[$package][$subpackage])) - { - foreach($this->childless_tutorials[$package][$subpackage] as $ext => $other) - { - foreach($other as $tutorial) - { - $tutes[$tutorial->tutorial_type][] = $this->getTutorialTree($tutorial); - } - } - } - $ret[$package][] = - array( - 'package' => $package, - 'subpackage' => '', - 'packagedoc' => $pd, - 'packagetutorial' => $pt, - 'packagetutorialnoa' => $ptnoa, - 'packagetutorialtitle' => $ptt, - 'files' => array(), - 'functions' => array(), - 'classes' => array(), - 'tutorials' => $tutes, - ); - } - foreach($r as $subpackage => $info) - { - $my = array(); - $my['package'] = $package; - if (isset($this->package_pages[$package])) - $my['packagedoc'] = $pd; - else - $my['packagedoc'] = 'blank'; - $my['subpackage'] = $subpackage; - if (empty($subpackage)) - { - if ($t = $this->hasTutorial('pkg',$package,$package,$subpackage)) - { - $my['packagetutorial'] = $t->getLink($this); - $my['packagetutorialnoa'] = $this->getId($t->getLink($this,true)); - $my['packagetutorialtitle'] = $t->getTitle($this); - } else - { - $my['packagetutorial'] = 'No Package-Level Tutorial'; - $my['packagetutorialnoa'] = 'blank.html'; - $my['packagetutorialtitle'] = $package; - } - } else - { - if ($t = $this->hasTutorial('pkg',$subpackage,$package,$subpackage)) - { - $my['subpackagetutorial'] = $this->returnSee($this->getTutorialLink($t)); - $my['subpackagetutorialnoa'] = $this->getId($t->getLink($this,true)); - $my['subpackagetutorialtitle'] = $t->getTitle($this); - } else - { - $my['subpackagetutorial'] = false; - $my['subpackagetutorialnoa'] = false; - $my['subpackagetutorialtitle'] = $subpackage; - } - } - $tutes = array(); - foreach($this->tutorial_tree as $root => $tr) - { - if ($tr['tutorial']->package == $package && $tr['tutorial']->subpackage == $subpackage) - { - $tutes[$tr['tutorial']->tutorial_type][] = $this->getTutorialTree($tr['tutorial']); - } - } - $my['tutorials'] = $tutes; - $my['files'] = $my['classes'] = $my['functions'] = array(); - if (isset($info['files'])) - $my['files'] = $info['files']; - if (isset($info['classes'])) - $my['classes'] = $info['classes']; - if (isset($info['functions'])) - $my['functions'] = $info['functions']; - $ret[$package][] = $my; - } - } - return $ret; - } - - function getTutorialTree($tutorial,$k = false) - { - $ret = ''; - if (is_object($tutorial)) $tree = parent::getTutorialTree($tutorial); else $tree = $tutorial; -// debug($this->vardump_tree($tree));exit; - if (!$tree) - { - $template = &$this->newSmarty(); - $template->assign('subtree',false); - $template->assign('name',str_replace('.','',$tutorial->name)); - $template->assign('parent',false); - $template->assign('haskids',false); - $template->assign('kids',''); - $link = new tutorialLink; - $t = $tutorial; - $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this)); - $main = array('link' => $this->getId($link), 'title' => $link->title); - $template->assign('main',$main); - return $template->fetch('tutorial_tree.tpl'); - } - if (isset($tree['kids'])) - { - foreach($tree['kids'] as $subtree) - { - $ret .= $this->getTutorialTree($subtree, true); - } - } - $template = &$this->newSmarty(); - $template->assign('subtree',$k); - $template->assign('name',str_replace('.','',$tree['tutorial']->name)); - $template->assign('parent',($k ? str_replace('.','',$tree['tutorial']->parent->name) : false)); - $template->assign('haskids',strlen($ret)); - $template->assign('kids',$ret); - $link = new tutorialLink; - $t = $tree['tutorial']; - $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this)); - $main = array('link' => $this->getId($link), 'title' => $link->title); - $template->assign('main',$main); - $ret = $template->fetch('tutorial_tree.tpl'); - return $ret; - } - - /** - * HTMLdefaultConverter chooses to format both package indexes and the complete index here - * - * This function formats output for the elementindex.html and pkgelementindex.html template files. It then - * writes them to the target directory - * @see generateElementIndex(), generatePkgElementIndex() - */ - function formatPkgIndex() - { - list($package_indexes,$packages,$mletters) = $this->generatePkgElementIndexes(); - for($i=0;$inewSmarty(); - $this->package = $package_indexes[$i]['package']; - $this->subpackage = ''; - $template->assign("index",$package_indexes[$i]['pindex']); - $template->assign("package",$package_indexes[$i]['package']); - $template->assign("letters",$mletters[$package_indexes[$i]['package']]); - $template->register_outputfilter('HTMLframes_outputfilter'); - $this->setTargetDir($this->base_dir); - $this->writefile('elementindex_'.$package_indexes[$i]['package'].'.html',$template->fetch('pkgelementindex.tpl')); - } - phpDocumentor_out("\n"); - flush(); - } - - /** - * HTMLdefaultConverter uses this function to format template index.html and packages.html - * - * This function generates the package list from {@link $all_packages}, eliminating any - * packages that don't have any entries in their package index (no files at all, due to @ignore - * or other factors). Then it uses the default package name as the first package index to display. - * It sets the right pane to be either a blank file with instructions on making package-level docs, - * or the package-level docs for the default package. - * @global string Used to set the starting package to display - */ - function formatIndex() - { - global $phpDocumentor_DefaultPackageName; - list($elindex,$mletters) = $this->generateElementIndex(); - $template = &$this->newSmarty(); - $template->assign("index",$elindex); - $template->assign("letters",$mletters); - $template->register_outputfilter('HTMLframes_outputfilter'); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - $this->writefile('elementindex.html',$template->fetch('elementindex.tpl')); - usort($this->package_index,"HTMLframes_pindexcmp"); - $index = &$this->newSmarty(); - foreach($this->all_packages as $key => $val) - { - if (isset($this->pkg_elements[$key])) - { - if (!isset($start)) $start = $key; - if (!isset($this->package_pages[$key])) $this->writeNewPPage($key); - } - } - // Created index.html - if (isset($this->pkg_elements[$phpDocumentor_DefaultPackageName])) $start = $phpDocumentor_DefaultPackageName; - $this->package = $start; - $this->subpackage = ''; - $index->assign("package_count",count($this->pkg_elements)); - if (count($this->ric_set)) - $index->assign("package_count",2); - $index->assign("date",date("r",time())); - $index->assign("title",$this->title); - $index->assign("start","li_$start.html"); - $index->register_outputfilter('HTMLframes_outputfilter'); - if (isset($this->tutorials[$start]['']['pkg'][$start . '.pkg'])) - { - $index->assign("blank",$start.'/tutorial_'.$start.'.pkg'); - } elseif (isset($this->package_pages[$start])) - { - $index->assign("blank",$start.'/package_'.$start); - } - else - { - $index->assign("blank","blank"); - $blank = &$this->newSmarty(); - $blank->assign('package',$phpDocumentor_DefaultPackageName); - $this->setTargetDir($this->base_dir); - $this->writefile("blank.html",$blank->fetch('blank.tpl')); - } - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - $this->writefile("index.html",$index->fetch('index.tpl')); - - // Create package index - $package = &$this->newSmarty(); - $package->assign('ric',array()); - if (isset($this->ric_set)) - { - foreach($this->ric_set as $name => $u) - { - $package->append('ric',array('file' => 'ric_'.$name.'.html','name' => $name)); - } - } - $package->assign("packages",$this->package_index); - $package->register_outputfilter('HTMLframes_outputfilter'); - $this->writefile("packages.html",$package->fetch('top_frame.tpl')); - unset($index); - } - - function writeNewPPage($key) - { - return; - $template = &$this->newSmarty(); - $this->package = $key; - $this->subpackage = ''; - $template->assign("date",date("r",time())); - $template->assign("title",$this->title); - $template->assign("package",$key); - $template->register_outputfilter('HTMLframes_outputfilter'); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - - $this->writefile("li_$key.html",$template->fetch('index.tpl')); - unset($template); - } - - /** - * Generate indexes for li_package.html and classtree output files - * - * This function generates the li_package.html files from the template file left.html. It does this by - * iterating through each of the $page_elements, $class_elements and $function_elements arrays to retrieve - * the pre-sorted {@link abstractLink} descendants needed for index generation. Conversion of these links to - * text is done by {@link returnSee()}. The {@link $local} parameter is set to false to ensure that paths are correct. - * - * Then it uses {@link generateFormattedClassTrees()} to create class trees from the template file classtrees.html. Output - * filename is classtrees_packagename.html. This function also unsets {@link $elements} and {@link $pkg_elements} to free - * up the considerable memory these two class vars use - * @see $page_elements, $class_elements, $function_elements - */ - function formatLeftIndex() - { - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir); - if (0)//!isset($this->left)) - { - debug("Nothing parsed, check the command-line"); - die(); - } - $x = $this->makeLeft(); - foreach($this->all_packages as $package => $rest) - { - if (!isset($this->pkg_elements[$package])) continue; - $template = &$this->newSmarty(); - $template->assign("info",$x[$package]); - $template->assign('package',$package); - $template->assign("hastutorials",isset($this->tutorials[$package])); - $template->assign('hastodos',count($this->todoList)); - $template->assign('todolink','todolist.html'); - $template->assign("classtreepage","classtrees_$package"); - $template->assign("elementindex","elementindex_$package"); - $template->register_outputfilter('HTMLframes_outputfilter'); - if (isset($this->package_pages[$package])) - { - $template->assign("packagedoc",$package.'/package_' . $package . '.html'); - } else - { - $template->assign("packagedoc",false); - } - $this->writefile("li_$package.html",$template->fetch('left_frame.tpl')); - - // Create class tree page - $template = &$this->newSmarty(); - $template->assign("classtrees",$this->generateFormattedClassTrees($package)); - $template->assign("package",$package); - $template->register_outputfilter('HTMLframes_outputfilter'); - $this->writefile("classtrees_$package.html",$template->fetch('classtrees.tpl')); - phpDocumentor_out("\n"); - flush(); - } - // free up considerable memory - unset($this->elements); - unset($this->pkg_elements); - } - - /** - * This function takes an {@link abstractLink} descendant and returns an html link - * - * @param abstractLink a descendant of abstractlink should be passed, and never text - * @param string text to display in the link - * @param boolean this parameter is not used, and is deprecated - * @param boolean determines whether the returned text is enclosed in an tag - */ - function returnSee(&$element, $eltext = false, $with_a = true) - { - if (!is_object($element) || !$element) return false; - if (!$with_a) return $this->getId($element, false); - if (!$eltext) - { - $eltext = ''; - switch($element->type) - { - case 'tutorial' : - $eltext = strip_tags($element->title); - break; - case 'method' : - case 'var' : - case 'const' : - $eltext .= $element->class.'::'; - case 'page' : - case 'define' : - case 'class' : - case 'function' : - case 'global' : - default : - $eltext .= $element->name; - if ($element->type == 'function' || $element->type == 'method') $eltext .= '()'; - break; - } - } - return ''.$eltext.''; - } - - function getId($element, $fullpath = true) - { - if (phpDocumentor_get_class($element) == 'parserdata') - { - $element = $this->addLink($element->parent); - $elp = $element->parent; - } elseif (is_a($element, 'parserbase')) - { - $elp = $element; - $element = $this->addLink($element); - } - $c = ''; - if (!empty($element->subpackage)) - { - $c = '/'.$element->subpackage; - } - $b = '{$subdir}'; - switch ($element->type) - { - case 'page' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->fileAlias.'.html'; - return 'top'; - break; - case 'define' : - case 'global' : - case 'function' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->fileAlias.'.html#'.$element->type.$element->name; - return $element->type.$element->name; - break; - case 'class' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->name.'.html'; - return 'top'; - break; - case 'method' : - case 'var' : - case 'const' : - if ($fullpath) - return $b.$element->package.$c.'/'.$element->class.'.html#'.$element->type.$element->name; - return $element->type.$element->name; - break; - case 'tutorial' : - $d = ''; - if ($element->section) - { - $d = '#'.$element->section; - } - return $b.$element->package.$c.'/tutorial_'.$element->name.'.html'.$d; - } - } - - /** - * Convert README/INSTALL/CHANGELOG file contents to output format - * @param README|INSTALL|CHANGELOG - * @param string contents of the file - */ - function Convert_RIC($name, $contents) - { - $template = &$this->newSmarty(); - $template->assign('contents',$contents); - $template->assign('name',$name); - $this->setTargetDir($this->base_dir); - $this->writefile('ric_'.$name . '.html',$template->fetch('ric.tpl')); - $this->ric_set[$name] = true; - } - - function ConvertTodoList() - { - $todolist = array(); - foreach($this->todoList as $package => $alltodos) - { - foreach($alltodos as $todos) - { - $converted = array(); - $converted['link'] = $this->returnSee($todos[0]); - if (!is_array($todos[1])) - { - $converted['todos'][] = $todos[1]->Convert($this); - } else - { - foreach($todos[1] as $todo) - { - $converted['todos'][] = $todo->Convert($this); - } - } - $todolist[$package][] = $converted; - } - } - $templ = &$this->newSmarty(); - $templ->assign('todos',$todolist); - $templ->register_outputfilter('HTMLframes_outputfilter'); - $this->setTargetDir($this->base_dir); - $this->writefile('todolist.html',$templ->fetch('todolist.tpl')); - } - - /** - * Create errors.html template file output - * - * This method takes all parsing errors and warnings and spits them out ordered by file and line number. - * @global ErrorTracker We'll be using it's output facility - */ - function ConvertErrorLog() - { - global $phpDocumentor_errors; - $allfiles = array(); - $files = array(); - $warnings = $phpDocumentor_errors->returnWarnings(); - $errors = $phpDocumentor_errors->returnErrors(); - $template = &$this->newSmarty(); - foreach($warnings as $warning) - { - $file = '##none'; - $linenum = 'Warning'; - if ($warning->file) - { - $file = $warning->file; - $allfiles[$file] = 1; - $linenum .= ' on line '.$warning->linenum; - } - $files[$file]['warnings'][] = array('name' => $linenum, 'listing' => $warning->data); - } - foreach($errors as $error) - { - $file = '##none'; - $linenum = 'Error'; - if ($error->file) - { - $file = $error->file; - $allfiles[$file] = 1; - $linenum .= ' on line '.$error->linenum; - } - $files[$file]['errors'][] = array('name' => $linenum, 'listing' => $error->data); - } - $i=1; - $af = array(); - foreach($allfiles as $file => $num) - { - $af[$i++] = $file; - } - $allfiles = $af; - usort($allfiles,'strnatcasecmp'); - $allfiles[0] = "Post-parsing"; - foreach($allfiles as $i => $a) - { - $allfiles[$i] = array('file' => $a); - } - $out = array(); - foreach($files as $file => $data) - { - if ($file == '##none') $file = 'Post-parsing'; - $out[$file] = $data; - } - $template->assign("files",$allfiles); - $template->assign("all",$out); - $template->assign("title","phpDocumentor Parser Errors and Warnings"); - $this->setTargetDir($this->base_dir); - $this->writefile("errors.html",$template->fetch('errors.tpl')); - unset($template); - phpDocumentor_out("\n\nTo view errors and warnings, look at ".$this->base_dir. PATH_DELIMITER . "errors.html\n"); - flush(); - } - - function getTutorialId($package,$subpackage,$tutorial,$id) - { - return $id; - } - - function getCData($value) - { - return '
        '.htmlentities($value).'
        '; - } - - /** - * Converts package page and sets its package as used in {@link $package_pages} - * @param parserPackagePage - */ - function convertPackagepage(&$element) - { - phpDocumentor_out("\n"); - flush(); - $this->package = $element->package; - $this->subpackage = ''; - $contents = $element->Convert($this); - $this->package_pages[$element->package] = str_replace('{$subdir}','../',$contents); - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package); - $this->writeFile('package_'.$element->package.'.html',str_replace('{$subdir}','../',$contents)); - } - - /** - * @param parserTutorial - */ - function convertTutorial(&$element) - { - phpDocumentor_out("\n"); - flush(); - $template = &parent::convertTutorial($element); - $a = '../'; - if ($element->subpackage) $a .= '../'; - $template->assign('subdir',$a); - $template->register_outputfilter('HTMLframes_outputfilter'); - $contents = $template->fetch('tutorial.tpl'); - $a = ''; - if ($element->subpackage) $a = PATH_DELIMITER . $element->subpackage; - phpDocumentor_out("\n"); - flush(); - $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package . $a); - $this->writeFile('tutorial_'.$element->name.'.html',$contents); - } - - /** - * Converts class for template output - * @see prepareDocBlock(), generateChildClassList(), generateFormattedClassTree(), getFormattedConflicts() - * @see getFormattedInheritedMethods(), getFormattedInheritedVars() - * @param parserClass - */ - function convertClass(&$element) - { - parent::convertClass($element); - $this->class_dir = $element->docblock->package; - if (!empty($element->docblock->subpackage)) $this->class_dir .= PATH_DELIMITER . $element->docblock->subpackage; - $a = '../'; - if ($element->docblock->subpackage != '') $a = "../$a"; - - $this->class_data->assign('subdir',$a); - $this->class_data->assign("title","Docs For Class " . $element->getName()); - $this->class_data->assign("page",$element->getName() . '.html'); - } - - /** - * Converts class variables for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertVar(&$element) - { - parent::convertVar($element, array('var_dest' => $this->getId($element,false))); - } - - /** - * Converts class variables for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertConst(&$element) - { - parent::convertConst($element, array('const_dest' => $this->getId($element,false))); - } - - /** - * Converts class methods for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertMethod(&$element) - { - parent::convertMethod($element, array('method_dest' => $this->getId($element,false))); - } - - /** - * Converts function for template output - * @see prepareDocBlock(), parserFunction::getFunctionCall(), getFormattedConflicts() - * @param parserFunction - */ - function convertFunction(&$element) - { - $funcloc = $this->getId($this->addLink($element)); - parent::convertFunction($element,array('function_dest' => $this->getId($element,false))); - } - - /** - * Converts include elements for template output - * @see prepareDocBlock() - * @param parserInclude - */ - function convertInclude(&$element) - { - parent::convertInclude($element, array('include_file' => '_'.strtr($element->getValue(),array('"' => '', "'" => '','.' => '_')))); - } - - /** - * Converts defines for template output - * @see prepareDocBlock(), getFormattedConflicts() - * @param parserDefine - */ - function convertDefine(&$element) - { - parent::convertDefine($element, array('define_link' => $this->getId($element,false))); - } - - /** - * Converts global variables for template output - * @param parserGlobal - */ - function convertGlobal(&$element) - { - parent::convertGlobal($element, array('global_link' => $this->getId($element,false))); - } - - /** - * converts procedural pages for template output - * @see prepareDocBlock(), getClassesOnPage() - * @param parserData - */ - function convertPage(&$element) - { - parent::convertPage($element); - $this->juststarted = true; - $this->page_dir = $element->parent->package; - if (!empty($element->parent->subpackage)) $this->page_dir .= PATH_DELIMITER . $element->parent->subpackage; - // registering stuff on the template - $this->page_data->assign("page",$this->getPageName($element) . '.html'); - $this->page_data->assign("title","Docs for page ".$element->parent->getFile()); - } - - function getPageName(&$element) - { - if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName(); - return '_'.$element->parent->getName(); - } - - /** - * returns an array containing the class inheritance tree from the root object to the class - * - * @param parserClass class variable - * @return array Format: array(root,child,child,child,...,$class) - * @uses parserClass::getParentClassTree() - */ - - function generateFormattedClassTree($class) - { - $tree = $class->getParentClassTree($this); - $out = ''; - if (count($tree) - 1) - { - $result = array($class->getName()); - $parent = $tree[$class->getName()]; - $distance[] = ''; - while ($parent) - { - $x = $parent; - if (is_object($parent)) - { - $subpackage = $parent->docblock->subpackage; - $package = $parent->docblock->package; - $x = $parent; - $x = $parent->getLink($this); - if (!$x) $x = $parent->getName(); - } - $result[] = - $x; - $distance[] = - "\n%s|\n" . - "%s--"; - if (is_object($parent)) - $parent = $tree[$parent->getName()]; - elseif (isset($tree[$parent])) - $parent = $tree[$parent]; - } - $nbsp = ' '; - for($i=count($result) - 1;$i>=0;$i--) - { - $my_nbsp = ''; - for($j=0;$jarray_reverse($result),'distance'=>array_reverse($distance)); - } else - { - return array('classes'=>$class->getName(),'distance'=>array('')); - } - } - - /** @access private */ - function sortVar($a, $b) - { - return strnatcasecmp($a->getName(),$b->getName()); - } - - /** @access private */ - function sortMethod($a, $b) - { - if ($a->isConstructor) return -1; - if ($b->isConstructor) return 1; - return strnatcasecmp($a->getName(),$b->getName()); - } - - /** - * returns a template-enabled array of class trees - * - * @param string $package package to generate a class tree for - * @see $roots, HTMLConverter::getRootTree() - */ - function generateFormattedClassTrees($package) - { - if (!isset($this->roots[$package])) return array(); - $roots = $trees = array(); - $roots = $this->roots[$package]; - for($i=0;$i $roots[$i],'class_tree' => "
          \n".$this->getRootTree($this->getSortedClassTreeFromClass($roots[$i],$package,''),$package)."
        \n"); - } - return $trees; - } - - /** - * return formatted class tree for the Class Trees page - * - * @param array $tree output from {@link getSortedClassTreeFromClass()} - * @see Classes::$definitechild, generateFormattedClassTrees() - * @return string - */ - function getRootTree($tree,$package) - { - if (!$tree) return ''; - $my_tree = ''; - $cur = '#root'; - $lastcur = array(false); - $kids = array(); - $dopar = false; - if ($tree[$cur]['parent']) - { - $dopar = true; - if (!is_object($tree[$cur]['parent'])) - { -// debug("parent ".$tree[$cur]['parent']." not found"); - $my_tree .= '
      • ' . $tree[$cur]['parent'] .'
          '; - } - else - { -// debug("parent ".$this->returnSee($tree[$cur]['parent'])." in other package"); - $my_tree .= '
        • ' . $this->returnSee($tree[$cur]['parent']); - if ($tree[$cur]['parent']->package != $package) $my_tree .= ' (Different package)
            '; - } - } - do - { -// fancy_debug($cur,$lastcur,$kids); - if (count($tree[$cur]['children'])) - { -// debug("$cur has children"); - if (!isset($kids[$cur])) - { -// debug("set $cur kids"); - $kids[$cur] = 1; - $my_tree .= '
          • '.$this->returnSee($tree[$cur]['link']); - $my_tree .= '
              '."\n"; - } - array_push($lastcur,$cur); - list(,$cur) = each($tree[$cur]['children']); -// var_dump('listed',$cur); - if ($cur) - { - $cur = $cur['package'] . '#' . $cur['class']; -// debug("set cur to child $cur"); -// $my_tree .= '
            • '.$this->returnSee($tree[$cur]['link']); - continue; - } else - { -// debug("end of children for $cur"); - $cur = array_pop($lastcur); - $cur = array_pop($lastcur); - $my_tree .= '
          • '."\n"; - if ($dopar && ($cur == '#root' || !$cur)) $my_tree .= '
        • '; - } - } else - { -// debug("$cur has no children"); - $my_tree .= '
        • '.$this->returnSee($tree[$cur]['link'])."
        • "; - if ($dopar && $cur == '#root') $my_tree .= '
      • '; - $cur = array_pop($lastcur); - } - } while ($cur); - return $my_tree; - } - /** - * Generate indexing information for given element - * - * @param parserElement descendant of parserElement - * @see generateElementIndex() - * @return array - */ - function getIndexInformation($elt) - { - $Result['type'] = $elt->type; - $Result['file_name'] = $elt->file; - $Result['path'] = $elt->getPath(); - - if (isset($elt->docblock)) - { - $Result['description'] = $elt->docblock->getSDesc($this); - - if ($elt->docblock->hasaccess) - $Result['access'] = $elt->docblock->tags['access'][0]->value; - else - $Result['access'] = 'public'; - - $Result['abstract'] = isset ($elt->docblock->tags['abstract'][0]); - } - else - $Result['description'] = ''; - - $aa = $Result['description']; - if (!empty($aa)) $aa = "
            $aa"; - - switch($elt->type) - { - case 'class': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Class'; - $Result['link'] = $this->getClassLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', class '.$Result['link']."$aa"; - break; - case 'define': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Constant'; - $Result['link'] = $this->getDefineLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', constant '.$Result['link']."$aa"; - break; - case 'global': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Global'; - $Result['link'] = $this->getGlobalLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', global variable '.$Result['link']."$aa"; - break; - case 'function': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Function'; - $Result['link'] = $this->getFunctionLink($elt->getName(), - $elt->docblock->package, - $elt->getPath(), - $elt->getName().'()'); - $Result['listing'] = 'in file '.$elt->file.', function '.$Result['link']."$aa"; - break; - case 'method': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Method'; - $Result['link'] = $this->getMethodLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName().'()' - ); - if ($elt->isConstructor) $Result['constructor'] = 1; - $Result['listing'] = 'in file '.$elt->file.', method '.$Result['link']."$aa"; - break; - case 'var': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Variable'; - $Result['link'] = $this->getVarLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', variable '.$Result['link']."$aa"; - break; - case 'const': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Class Constant'; - $Result['link'] = $this->getConstLink($elt->getName(), - $elt->class, - $elt->docblock->package, - $elt->getPath(), - $elt->class.'::'.$elt->getName()); - $Result['listing'] = 'in file '.$elt->file.', class constant '.$Result['link']."$aa"; - break; - case 'page': - $Result['name'] = $elt->getFile(); - $Result['title'] = 'Page'; - $Result['link'] = $this->getPageLink($elt->getFile(), - $elt->package, - $elt->getPath(), - $elt->getFile()); - $Result['listing'] = 'procedural page '.$Result['link']; - break; - case 'include': - $Result['name'] = $elt->getName(); - $Result['title'] = 'Include'; - $Result['link'] = $elt->getValue(); - $Result['listing'] = 'include '.$Result['name']; - break; - } - - return $Result; - } - /** - * Generate alphabetical index of all elements - * - * @see $elements, walk() - */ - function generateElementIndex() - { - $elementindex = array(); - $letters = array(); - $used = array(); - foreach($this->elements as $letter => $nutoh) - { - foreach($this->elements[$letter] as $i => $yuh) - { - if ($this->elements[$letter][$i]->type != 'include') - { - if (!isset($used[$letter])) - { - $letters[]['letter'] = $letter; - $elindex['letter'] = $letter; - $used[$letter] = 1; - } - - $elindex['index'][] = $this->getIndexInformation($this->elements[$letter][$i]); - } - } - if (isset($elindex['index'])) - { - $elementindex[] = $elindex; - } else - { - unset($letters[count($letters) - 1]); - } - $elindex = array(); - } - return array($elementindex,$letters); - } - - function copyMediaRecursively($media,$targetdir,$subdir = '') - { - if (!is_array($media)) { - return; - } - foreach($media as $dir => $files) - { - if ($dir === '/') - { - $this->copyMediaRecursively($files,$targetdir); - } else - { - if (!is_numeric($dir)) - { - // create the subdir - phpDocumentor_out("creating $targetdir/$dir\n"); - Converter::setTargetDir($targetdir . PATH_DELIMITER . $dir); - if (!empty($subdir)) $subdir .= PATH_DELIMITER; - $this->copyMediaRecursively($files,"$targetdir/$dir",$subdir . $dir); - } else - { - // copy the file - phpDocumentor_out("copying $targetdir/".$files['file']."\n"); - $this->copyFile($files['file'],$subdir); - } - } - } - } - - /** - * calls the converter setTargetDir, and then copies any template images and the stylesheet if they haven't been copied - * @see Converter::setTargetDir() - */ - function setTargetDir($dir) - { - Converter::setTargetDir($dir); - if ($this->wrote) return; - $this->wrote = true; - $template_images = array(); - $stylesheets = array(); - $tdir = $dir; - $dir = $this->templateDir; - $this->templateDir = $this->templateDir.'templates/'; - $info = new Io; - $this->copyMediaRecursively($info->getDirTree($this->templateDir.'media',$this->templateDir),$tdir); - } - - /** - * Generate alphabetical index of all elements by package and subpackage - * - * @param string $package name of a package - * @see $pkg_elements, walk(), generatePkgElementIndexes() - */ - function generatePkgElementIndex($package) - { -// var_dump($this->pkg_elements[$package]); - $elementindex = array(); - $letters = array(); - $letterind = array(); - $used = array(); - $subp = ''; - foreach($this->pkg_elements[$package] as $subpackage => $els) - { - if (empty($els)) continue; - if (!empty($subpackage)) $subp = " (subpackage: $subpackage)"; else $subp = ''; - foreach($els as $letter => $yuh) - { - foreach($els[$letter] as $i => $yuh) - { - if ($els[$letter][$i]->type != 'include') - { - if (!isset($used[$letter])) - { - $letters[]['letter'] = $letter; - $letterind[$letter] = count($letters) - 1; - $used[$letter] = 1; - } - $elindex[$letter]['letter'] = $letter; - - $elindex[$letter]['index'][] = $this->getIndexInformation($els[$letter][$i]); - } - } - } - } - ksort($elindex); - usort($letters,'HTMLframes_lettersort'); - if (isset($elindex)) - { - while(list($letter,$tempel) = each($elindex)) - { - if (!isset($tempel)) - { - unset($letters[$letterind[$tempel['letter']]]); - } else - $elementindex[] = $tempel; - } - } else $letters = array(); - return array($elementindex,$letters); - } - - /** - * - * @see generatePkgElementIndex() - */ - function generatePkgElementIndexes() - { - $packages = array(); - $package_names = array(); - $pkg = array(); - $letters = array(); - foreach($this->pkg_elements as $package => $trash) - { - $pkgs['package'] = $package; - $pkg['package'] = $package; - list($pkg['pindex'],$letters[$package]) = $this->generatePkgElementIndex($package); - if (count($pkg['pindex'])) - { - $packages[] = $pkg; - $package_names[] = $pkgs; - } - unset($pkgs); - unset($pkg); - } - foreach($packages as $i => $package) - { - $pnames = array(); - for($j=0;$jreturnSee($a, $text, $with_a); - } - - /** - * @param string name of function - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the function's documentation - * @see parent::getFunctionLink() - */ - function getFunctionLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getFunctionLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of define - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the define's documentation - * @see parent::getDefineLink() - */ - function getDefineLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getDefineLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of global variable - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the global variable's documentation - * @see parent::getGlobalLink() - */ - function getGlobalLink($expr,$package, $file = false,$text = false) - { - $a = Converter::getGlobalLink($expr,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of procedural page - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the procedural page's documentation - * @see parent::getPageLink() - */ - function getPageLink($expr,$package, $path = false,$text = false) - { - $a = Converter::getPageLink($expr,$package,$path); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of method - * @param string class containing method - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the method's documentation - * @see parent::getMethodLink() - */ - function getMethodLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getMethodLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of var - * @param string class containing var - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the var's documentation - * @see parent::getVarLink() - */ - function getVarLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getVarLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * @param string name of class constant - * @param string class containing class constant - * @param string package name - * @param string full path to look in (used in index generation) - * @param boolean deprecated - * @param boolean return just the URL, or enclose it in an html a tag - * @return mixed false if not found, or an html a link to the var's documentation - * @see parent::getVarLink() - */ - function getConstLink($expr,$class,$package, $file = false,$text = false) - { - $a = Converter::getConstLink($expr,$class,$package,$file); - if (!$a) return false; - return $this->returnSee($a, $text); - } - - /** - * does a nat case sort on the specified second level value of the array - * - * @param mixed $a - * @param mixed $b - * @return int - */ - function rcNatCmp ($a, $b) - { - $aa = strtoupper($a[$this->rcnatcmpkey]); - $bb = strtoupper($b[$this->rcnatcmpkey]); - - return strnatcasecmp($aa, $bb); - } - - /** - * does a nat case sort on the specified second level value of the array. - * this one puts constructors first - * - * @param mixed $a - * @param mixed $b - * @return int - */ - function rcNatCmp1 ($a, $b) - { - $aa = strtoupper($a[$this->rcnatcmpkey]); - $bb = strtoupper($b[$this->rcnatcmpkey]); - - if (strpos($aa,'CONSTRUCTOR') === 0) - { - return -1; - } - if (strpos($bb,'CONSTRUCTOR') === 0) - { - return 1; - } - if (strpos($aa,strtoupper($this->class)) === 0) - { - return -1; - } - if (strpos($bb,strtoupper($this->class)) === 0) - { - return -1; - } - return strnatcasecmp($aa, $bb); - } - - /** - * This function is not used by HTMLdefaultConverter, but is required by Converter - */ - function Output() - { - } -} - -/** - * @access private - * @global string name of the package to set as the first package - */ -function HTMLframes_pindexcmp($a, $b) -{ - global $phpDocumentor_DefaultPackageName; - if ($a['title'] == $phpDocumentor_DefaultPackageName) return -1; - if ($b['title'] == $phpDocumentor_DefaultPackageName) return 1; - return strnatcasecmp($a['title'],$b['title']); -} - -/** @access private */ -function HTMLframes_lettersort($a, $b) -{ - return strnatcasecmp($a['letter'],$b['letter']); -} - -/** @access private */ -function HTMLframes_outputfilter($src, &$smarty) -{ - return str_replace('{$subdir}',$smarty->_tpl_vars['subdir'],$src); -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini deleted file mode 100644 index 73164a39..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini +++ /dev/null @@ -1,577 +0,0 @@ -preservedocbooktags = false - -;; used to highlight the {@source} inline tag, @filesource tag, and @example tag -[highlightSourceTokens] -;; format: -;; T_CONSTANTNAME = open -;; /T_CONSTANTNAME = close - -T_INCLUDE = -/T_INCLUDE = -T_INCLUDE_ONCE = -/T_INCLUDE_ONCE = -T_REQUIRE_ONCE = -/T_REQUIRE_ONCE = -T_REQUIRE_ONCE = -/T_REQUIRE_ONCE = - -T_CONSTANT_ENCAPSED_STRING = -/T_CONSTANT_ENCAPSED_STRING = -T_STRING_VARNAME = -/T_STRING_VARNAME = - -T_STRING = -/T_STRING = - -T_DNUMBER = -/T_DNUMBER = -T_LNUMBER = -/T_LNUMBER = - -T_VARIABLE = -/T_VARIABLE = - -T_COMMENT = -/T_COMMENT = -T_ML_COMMENT = -/T_ML_COMMENT = - -T_OBJECT_OPERATOR = -/T_OBJECT_OPERATOR = - -T_ABSTRACT = -/T_ABSTRACT = -T_CLONE = -/T_CLONE = -T_HALT_COMPILER = -/T_HALT_COMPILER = -T_ARRAY = -/T_ARRAY = -T_AS = -/T_AS = -T_BREAK = -/T_BREAK = -T_CLASS = -/T_CLASS = -T_CASE = -/T_CASE = -T_CONST = -/T_CONST = -T_CONTINUE = -/T_CONTINUE = -T_DECLARE = -/T_DECLARE = -T_DEFAULT = -/T_DEFAULT = -T_ELSE = -/T_ELSE = -T_ELSEIF = -/T_ELSEIF = -T_EMPTY = -/T_EMPTY = -T_ENDDECLARE = -/T_ENDDECLARE = -T_ENDFOR = -/T_ENDFOR = -T_ENDSWITCH = -/T_ENDSWITCH = -T_ENDFOREACH = -/T_ENDFOREACH = -T_ENDIF = -/T_ENDIF = -T_ENDWHILE = -/T_ENDWHILE = -T_EXIT = -/T_EXIT = -T_EXTENDS = -/T_EXTENDS = -T_FINAL = -/T_FINAL = -T_FOR = -/T_FOR = -T_FOREACH = -/T_FOREACH = -T_FUNCTION = -/T_FUNCTION = -T_GLOBAL = -/T_GLOBAL = -T_IF = -/T_IF = -T_IMPLEMENTS = -/T_IMPLEMENTS = -T_INTERFACE = -/T_INTERFACE = -T_LOGICAL_AND = -/T_LOGICAL_AND = -T_LOGICAL_OR = -/T_LOGICAL_OR = -T_LOGICAL_XOR = -/T_LOGICAL_XOR = -T_NEW = -/T_NEW = -T_PRIVATE = -/T_PRIVATE = -T_PROTECTED = -/T_PROTECTED = -T_PUBLIC = -/T_PUBLIC = -T_RETURN = -/T_RETURN = -T_STATIC = -/T_STATIC = -T_SWITCH = -/T_SWITCH = -T_VAR = -/T_VAR = -T_WHILE = -/T_WHILE = - -T_DOUBLE_COLON = -/T_DOUBLE_COLON = - -T_OPEN_TAG = -/T_OPEN_TAG = -T_OPEN_TAG_WITH_ECHO = -/T_OPEN_TAG_WITH_ECHO = -T_CLOSE_TAG = -/T_CLOSE_TAG = - - -[highlightSource] -;; this is for highlighting things that aren't tokens like "&" -;; format: -;; word = open -;; /word = close -@ = -/@ = -& = -/& = -[ = -/[ = -] = -/] = -! = -/! = -";" = -/; = -( = -/( = -) = -/) = -, = -/, = -{ = -/{ = -} = -/} = -""" = -/" = - -[highlightDocBlockSourceTokens] -;; this is for docblock tokens, using by phpDocumentor_HighlightParser -;; tagphptype is for "string" in @param string description, for example -docblock = -/docblock = -tagphptype = -/tagphptype = -tagvarname = -/tagvarname = -coretag = -/coretag = -tag = -/tag = -inlinetag = -/inlinetag = -internal = -/internal = -closetemplate = -/closetemplate = -docblocktemplate = -/docblocktemplate = - -[highlightTutorialSourceTokens] -;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser -;; -opentag = -/opentag = -;; -closetag = -/closetag = -;; -attribute = -/attribute = -;; -attributevalue = -/attributevalue = -;; &entity; -entity = -/entity = -;; -comment = -/comment = -;; {@inline tag} -itag = -/itag = - -;; used for translation of html in DocBlocks -[desctranslate] -ul =
          -/ul =
        -ol =
          -/ol =
        -li =
      • -/li =
      • -code =
        -/code = 
        -var = -/var = -samp = -/samp = -kbd = -/kbd = -pre =
        -/pre = 
        -p =

        -/p =

        -b = -/b = -i = -/i = -br =
        - -[ppage] -;; this is the DocBook package page translation section. All DocBook tags -;; that have a corresponding html tag must be listed here. Entities should -;; also be listed here -;; -;; examples: -;; 1) -;; tagname = newtagname -;; -;; This is the simplest case, where all attributes will be added into the -;; starting tag and the ending tag will be html/xml style -;; becomes and -;; becomes -;; -;; -;; 2) -;; tagname = newtagname -;; tagname->attr = newattrname -;; -;; in this case, everything will be like the first case, except tags like: -;; will become -;; -;; -;; 3) -;; tagname = newtagname -;; tagname->attr = newattrname -;; tagname->attr+value = newvalue -;; -;; in this case, the value is also translated to another. This can be useful -;; for instances such as focus="middle" changing to align="center" or something -;; of that nature. -;; will become -;; -;; -;; 4) -;; tagname = newtagname -;; tagname->attr1 = newattrname -;; tagname->attr2 = newattrname -;; tagname->attr1+value|attr2+value = newvalue -;; -;; in this case, two attributes combine to make one new attribute, and the combined -;; value is translated into a new value -;; will become -;; -;; -;; 5) -;; tagname = newtagname -;; tagname!attr = dummy -;; -;; here, the attribute will be ignored. dummy is not used and may be any value -;; will become -;; -;; -;; 6) -;; tagname = newtagname -;; tagname! = dummy -;; -;; here, all attributes will be ignored. dummy is not used and may be any value -;; will become -;; -;; -;; 7) -;; tagname = newtagname -;; tagname/ = 1 -;; -;; here, the tag will be translated as a single tag with no closing tag, and all -;; attributes -;; {text text} will become -;; -;; -;; 8) -;; tagname = -;; /tagname = closetagtext -;; -;; in this case, the text will be inserted exactly as entered for -;; and closetagtext for -;; will become -;; closetagtext -;; -;; 9) -;; $attr$my_attribute = newattrname -;; -;; tagname = newtagname -;; -;; in this case, all occurences of my_attribute in any tag will be changed to -;; newattrname. This is useful for changing things like role="php" to -;; class="php," for example. Note that the text "$attr$" MUST be on the line -;; start for phpDocumentor to recognize it. -;; -;; 10) -;; &entity; = translation text -;; " = " -;; " = """ -;; < = < -;; -;; Use this to control translation of entities to their appropriate values - -  =   -" = " -” = ” -“ = “ -& = & -< = < -> = > -© = © - - -$attr$role = class - -abbrev = abbr - -blockquote = blockquote - -arg = span -arg->choice = class - -author = -/author = -author! = 0 - -authorblurb =
        -/authorblurb =
        - -authorgroup =

        Authors

        -/authorgroup =
        -authorgroup! = 0 - -caution = -/caution = -caution! = 0 - -cmdsynopsis =
        -/cmdsynopsis =
        - -command = -/command = - -copyright =
        -/copyright =
        - -emphasis = em - -example =
        -/example = 
        -example! = 0 - -function = -/function = () - -formalpara = p - -graphic = img -graphic->fileref = src -graphic/ = - -important = strong - -informalequation = blockquote - -informalexample = div - -inlineequation = em - -itemizedlist = ul - -listitem = li - -literal = code - -literallayout = span - -option = " " -/option = - -orderedlist = ol - -para = p - -programlisting =
        -/programlisting = 
        -programlisting! = 0 - -refentry = div - -refnamediv =
        -/refnamediv =
        -refnamediv! = 0 - -refname =

        -/refname =

        - -refpurpose =

        -/refpurpose =

        - -refsynopsisdiv =
        -/refsynopsisdiv =
        -refsynopsisdiv! = 0 - -refsect1 = span - -refsect2 = span - -refsect3 = -/refsect3 =
        - -releaseinfo =
        ( -/releaseinfo = )
        - -simpara = -/simpara =
        -simpara! = 0 - -subscript = sub - -superscript = super - -table = table - -table->colsep = rules -table->rowsep = rules -table->colsep+1|rowsep+1 =all -table->colsep+1|rowsep+0 =cols -table->colsep+0|rowsep+1 =rows - -table->frame =frame -table->frame+all =border -table->frame+none =void -table->frame+sides =vsides -table->frame+top =above -table->frame+topbot =hsides - -thead = thead - -tfoot = tfoot - -tbody = tbody - -colspec = col - -tgroup = colgroup -tgroup/ = 1 -tgroup->cols = span - -row = tr - -entry = td -entry->morerows = colspan -entry->morerows+1 =2 -entry->morerows+2 =3 -entry->morerows+3 =4 -entry->morerows+4 =5 -entry->morerows+5 =6 -entry->morerows+6 =7 -entry->morerows+7 =8 -entry->morerows+8 =9 -entry->morerows+9 =10 -entry->morerows+10 =11 -;; add more if you need more colspans - -warning = -/warning = -warning! = 0 - -;; now begins the attributes that should be tags in cdata -[$attr$id] -open = a -;close = /a -cdata! = true -quotevalues = true -separator = "=" -;separateall = true -$id = name - -;; now begins the sections that deal with -[refsynopsisdiv_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h1 class="title"> -close = </h1> - -[refsect1_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h2 class="title"> -close = </h2> - -[refsect2_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h3 class="title"> -close = </h3> - -[refsect3_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <h4 class="title"> -close = </h4> - -[para_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <div class="title"> -close = </div> - -[formalpara_title] -;tag_attr = true -;attr_name = title -cdata_start = true -;cdata_end = true -open = <div class="title"> -close = </div> - -[example_title] -;tag_attr = true -;attr_name = title -;cdata_start = true -cdata_end = true -open = </td></tr><tr><td><strong> -close = </strong> - -[table_title] -;tag_attr = true -;attr_name = true -cdata_start = true -open = <caption> -close = </caption> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl deleted file mode 100644 index 711e1d2e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl +++ /dev/null @@ -1,47 +0,0 @@ -<div class="index-letter-menu"> -{section name=letter loop=$letters} - <a class="index-letter" href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> -{/section} -</div> - -{section name=index loop=$index} - <a name="{$index[index].letter}"></a> - <div class="index-letter-section"> - <div style="float: left" class="index-letter-title">{$index[index].letter}</div> - <div style="float: right"><a href="#top">top</a></div> - <div style="clear: both"></div> - </div> - <dl> - {section name=contents loop=$index[index].index} - <dt class="field"> - {if ($index[index].index[contents].title == "Variable")} - <span class="var-title">{$index[index].index[contents].name}</span> - {elseif ($index[index].index[contents].title == "Global")} - <span class="var-title">{$index[index].index[contents].name}</span> - {elseif ($index[index].index[contents].title == "Method")} - <span class="method-title">{$index[index].index[contents].name}</span> - {elseif ($index[index].index[contents].title == "Function")} - <span class="method-title">{$index[index].index[contents].name}</span> - {elseif ($index[index].index[contents].title == "Constant")} - <span class="const-title">{$index[index].index[contents].name}</span> - {elseif ($index[index].index[contents].title == "Page") || ($index[index].index[contents].title == "Include")} - <span class="include-title">{$index[index].index[contents].name}</span> - {else} - {$index[index].index[contents].name} - {/if} - </dt> - <dd class="index-item-body"> - <div class="index-item-details">{$index[index].index[contents].link} in {$index[index].index[contents].file_name}</div> - {if $index[index].index[contents].description} - <div class="index-item-description">{$index[index].index[contents].description}</div> - {/if} - </dd> - {/section} - </dl> -{/section} - -<div class="index-letter-menu"> -{section name=letter loop=$letters} - <a class="index-letter" href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> -{/section} -</div> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl deleted file mode 100644 index 1fbaca2f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<html> -<head> - <title>{$maintitle} - - - - -

        {$maintitle}

        -Welcome to {$package}!
        -
        -This documentation was generated by phpDocumentor v{$phpdocversion}
        - - \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl deleted file mode 100644 index cc1c080b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl +++ /dev/null @@ -1,402 +0,0 @@ -{include file="header.tpl" top3=true} - -

        {if $is_interface}Interface{else}Class{/if} {$class_name}

        - - -
        -
        Description
        - -
        - {if $implements} -

        - Implements interfaces: -

          - {foreach item="int" from=$implements}
        • {$int}
        • {/foreach} -
        -

        - {/if} - {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc} -

        - Located in {$source_location} (line {if $class_slink}{$class_slink}{else}{$line_number}{/if}) -

        - - {if $tutorial} -
        -
        Tutorial: {$tutorial}
        - {/if} - -
        {section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}
        - - {if $conflicts.conflict_type} -
        -
        Conflicts with classes:
        - {section name=me loop=$conflicts.conflicts} - {$conflicts.conflicts[me]}
        - {/section} -
        - {/if} -
        -
        - -{if $children} - -
        -
        Direct descendents
        - -
        - - - - - - {section name=kids loop=$children} - - - - - {/section} -
        ClassDescription
        {$children[kids].link} - {if $children[kids].sdesc} - {$children[kids].sdesc} - {else} - {$children[kids].desc} - {/if} -
        -
        -
        -{/if} - -{if $consts} - -
        -
        Class Constant Summary
        - -
        -
        - {section name=consts loop=$consts} -
        -  - {$consts[consts].const_name} = {$consts[consts].const_value} - -
        - {/section} -
        -
        -
        -{/if} - -{if $vars} - -
        -
        Variable Summary
        - -
        -
        - {section name=vars loop=$vars} -
        - {$vars[vars].var_type} - {$vars[vars].var_name} -
        - {/section} -
        -
        -
        -{/if} - -{if $methods} - -
        -
        Method Summary
        - -
        -
        - {section name=methods loop=$methods} -
        - {if $methods[methods].function_return} - {$methods[methods].function_return} - {/if} - {if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name} - {if count($methods[methods].ifunction_call.params)} - ({section name=params loop=$methods[methods].ifunction_call.params}{if $smarty.section.params.iteration != 1}, {/if}{if $methods[methods].ifunction_call.params[params].default}[{/if}{$methods[methods].ifunction_call.params[params].type} {$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].default} = {$methods[methods].ifunction_call.params[params].default}]{/if}{/section}) - {else} - () - {/if} -
        - {/section} -
        -
        -
        -{/if} - -{if $vars || $ivars} - -
        -
        Variables
        - -
        - {include file="var.tpl"} - {if $ivars} -

        Inherited Variables

        - - {section name=ivars loop=$ivars} -

        Inherited from {$ivars[ivars].parent_class}

        -
        - {section name=ivars2 loop=$ivars[ivars].ivars} - - {$ivars[ivars].ivars[ivars2].link}{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}
        -
        - {/section} -
        - {/section} - {/if} -
        -
        -{/if} - -{if $methods || $imethods} - -
        -
        Methods
        - -
        - {include file="method.tpl"} - {if $imethods} -

        Inherited Methods

        - - {section name=imethods loop=$imethods} - -

        Inherited From {$imethods[imethods].parent_class}

        -
        - {section name=im2 loop=$imethods[imethods].imethods} - {$imethods[imethods].imethods[im2].link}{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}
        - {/section} -
        - {/section} - {/if} -
        -
        -{/if} - -{if $consts || $iconsts} - -
        -
        Class Constants
        - -
        - {include file="const.tpl"} - {if $iconsts} -

        Inherited Constants

        - - {section name=iconsts loop=$iconsts} -

        Inherited from {$iconsts[iconsts].parent_class}

        -
        - {section name=iconsts2 loop=$iconsts[iconsts].iconsts} - - - {$iconsts[iconsts].iconsts[iconsts2].link}{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}
        -
        - {/section} -
        - {/section} - {/if} -
        -
        -{/if} - -{include file="footer.tpl" top3=true} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl deleted file mode 100644 index 5188e8cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{include file="header.tpl" top1=true} - - -

        - {$smarty.capture.title} -

        -{section name=classtrees loop=$classtrees} -

        Root class {$classtrees[classtrees].class}

        -{$classtrees[classtrees].class_tree} -{/section} -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl deleted file mode 100644 index 4157488f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{section name=consts loop=$consts} - -
        - -
        - - - {$consts[consts].const_name} - = {$consts[consts].const_value|replace:"\n":"
        "}
        - (line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}) -
        -
        - - {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags} - -
        -{/section} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl deleted file mode 100644 index ab76faa2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl +++ /dev/null @@ -1,24 +0,0 @@ -{section name=def loop=$defines} - -
        - -
        - - {$defines[def].define_name} = {$defines[def].define_value|replace:"\n":"
        "} - (line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}) -
        -
        - - {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags} - - {if $globals[glob].global_conflicts.conflict_type} -
        -
        Conflicts with constants:
        - {section name=me loop=$defines[def].define_conflicts.conflicts} - {$defines[def].define_conflicts.conflicts[me]}
        - {/section} -
        - {/if} - -
        -{/section} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl deleted file mode 100644 index 8a87c9b7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl +++ /dev/null @@ -1,14 +0,0 @@ - -{if $sdesc} -

        {$sdesc}

        -{/if} -{if $desc} -

        {$desc}

        -{/if} -{if $tags} -
          - {section name=tags loop=$tags} -
        • {$tags[tags].keyword}: {$tags[tags].data}
        • - {/section} -
        -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl deleted file mode 100644 index 6e651db1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{include file="header.tpl" noleftindex=true} - -

        Full index

        -

        Package indexes

        - -
        -{include file="basicindex.tpl" indexname="elementindex"} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl deleted file mode 100644 index 1576a822..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{include file="header.tpl" noleftindex=true} -{section name=files loop=$files} -{$files[files].file}
        -{/section} -{foreach key=file item=issues from=$all} - -

        {$file}

        -{if count($issues.warnings)} -

        Warnings:


        -{section name=warnings loop=$issues.warnings} -{$issues.warnings[warnings].name} - {$issues.warnings[warnings].listing}
        -{/section} -{/if} -{if count($issues.errors)} -

        Errors:


        -{section name=errors loop=$issues.errors} -{$issues.errors[errors].name} - {$issues.errors[errors].listing}
        -{/section} -{/if} -{/foreach} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl deleted file mode 100644 index c813280b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl" title=$title} -

        {$title}

        -
        -{$source} -
        -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl deleted file mode 100644 index 4fd821a2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{capture name="tutle"}File Source for {$name}{/capture} -{include file="header.tpl" title=$smarty.capture.tutle} -

        Source for file {$name}

        -

        Documentation is available at {$docs}

        -
        -{$source} -
        -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl deleted file mode 100644 index 424ebbe2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{if !$index} -

        - Documentation generated on {$date} by phpDocumentor {$phpdocversion} -

        -{/if} - {if $top3}{/if} - - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl deleted file mode 100644 index 2750a97e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl +++ /dev/null @@ -1,44 +0,0 @@ -{section name=func loop=$functions} - -
        - -
        - {$functions[func].function_name} (line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}) -
        - - {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false} - -
        - {$functions[func].function_return} - - {if $functions[func].ifunction_call.returnsref}&{/if}{$functions[func].function_name} - - {if count($functions[func].ifunction_call.params)} - ({section name=params loop=$functions[func].ifunction_call.params}{if $smarty.section.params.iteration != 1}, {/if}{if $functions[func].ifunction_call.params[params].hasdefault}[{/if}{$functions[func].ifunction_call.params[params].type} {$functions[func].ifunction_call.params[params].name}{if $functions[func].ifunction_call.params[params].hasdefault} = {$functions[func].ifunction_call.params[params].default|escape:"html"}]{/if}{/section}) - {else} - () - {/if} -
        - - {if $functions[func].params} -
          - {section name=params loop=$functions[func].params} -
        • - {$functions[func].params[params].datatype} - {$functions[func].params[params].var}{if $functions[func].params[params].data}: {$functions[func].params[params].data}{/if} -
        • - {/section} -
        - {/if} - - {if $functions[func].function_conflicts.conflict_type} -
        -
        Conflicts with functions:
        - {section name=me loop=$functions[func].function_conflicts.conflicts} - {$functions[func].function_conflicts.conflicts[me]}
        - {/section} -
        - {/if} - -
        -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl deleted file mode 100644 index 3c89ddfc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{section name=glob loop=$globals} - -
        - -
        - - {$globals[glob].global_type} - {$globals[glob].global_name} - {if $vars[vars].var_default} = {$globals[glob].global_value|replace:"\n":"
        "}
        {/if} - (line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}) -
        -
        - - {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags} - - {if $globals[glob].global_conflicts.conflict_type} -
        -
        Conflicts with global variables:
        - {section name=me loop=$globals[glob].global_conflicts.conflicts} - {$globals[glob].global_conflicts.conflicts[me]}
        - {/section} -
        - {/if} - -
        -{/section} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl deleted file mode 100644 index d5e26dfa..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - {$title} - - - - - {if $top3}
        {/if} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl deleted file mode 100644 index bd408aff..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{section name=includes loop=$includes} - -
        - -
        - - {$includes[includes].include_name} - ({$includes[includes].include_value}) - (line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}) - -
        - - {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags} - -
        -{/section} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl deleted file mode 100644 index 477d2b17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - {$title} - - - - - - - - - - - <H2>Frame Alert</H2> - <P>This document is designed to be viewed using the frames feature. - If you see this message, you are using a non-frame-capable web client.</P> - - - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl deleted file mode 100644 index 4232d845..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl +++ /dev/null @@ -1,149 +0,0 @@ -{include file="header.tpl" top2=true} -
        {$package}
        -
        - -
        - -
        Description
        -
        - Class trees
        - Index of elements
        - {if $hastodos} - Todo List
        - {/if} -
        - - {section name=p loop=$info} - - {if $info[p].subpackage == ""} - - {if $info[p].tutorials} -
        Tutorials/Manuals
        -
        - {if $info[p].tutorials.pkg} -
        -
        Package-level
        -
        - {section name=ext loop=$info[p].tutorials.pkg} - {$info[p].tutorials.pkg[ext]} - {/section} -
        -
        - {/if} - - {if $info[p].tutorials.cls} -
        -
        Class-level
        -
        - {section name=ext loop=$info[p].tutorials.cls} - {$info[p].tutorials.cls[ext]} - {/section} -
        -
        - {/if} - - {if $info[p].tutorials.proc} -
        -
        Function-level
        -
        - {section name=ext loop=$info[p].tutorials.proc} - {$info[p].tutorials.proc[ext]} - {/section} -
        -
        - {/if} -
        - {/if} - {if $info[p].classes} -
        Classes
        - {section name=class loop=$info[p].classes} -
        {$info[p].classes[class].title}
        - {/section} - {/if} - {if $info[p].functions} -
        Functions
        - {section name=f loop=$info[p].functions} -
        {$info[p].functions[f].title}
        - {/section} - {/if} - {if $info[p].files} -
        Files
        - {section name=nonclass loop=$info[p].files} -
        {$info[p].files[nonclass].title}
        - {/section} - {/if} - - {else} - {if $info[p].tutorials} -
        Tutorials/Manuals
        -
        - {if $info[p].tutorials.pkg} -
        -
        Package-level
        -
        - {section name=ext loop=$info[p].tutorials.pkg} - {$info[p].tutorials.pkg[ext]} - {/section} -
        -
        - {/if} - - {if $info[p].tutorials.cls} -
        -
        Class-level
        -
        - {section name=ext loop=$info[p].tutorials.cls} - {$info[p].tutorials.cls[ext]} - {/section} -
        -
        - {/if} - - {if $info[p].tutorials.proc} -
        -
        Function-level
        -
        - {section name=ext loop=$info[p].tutorials.proc} - {$info[p].tutorials.proc[ext]} - {/section} -
        -
        - {/if} -
        - {/if} - -
        {$info[p].subpackage}
        -
        -
        - {if $info[p].subpackagetutorial} - - {/if} - {if $info[p].classes} -
        Classes
        - {section name=class loop=$info[p].classes} -
        {$info[p].classes[class].title}
        - {/section} - {/if} - {if $info[p].functions} -
        Functions
        - {section name=f loop=$info[p].functions} -
        {$info[p].functions[f].title}
        - {/section} - {/if} - {if $info[p].files} -
        Files
        - {section name=nonclass loop=$info[p].files} -
        {$info[p].files[nonclass].title}
        - {/section} - {/if} -
        -
        - - {/if} - - {/section} -
        -
        -

        phpDocumentor v {$phpdocversion}

        - - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css deleted file mode 100644 index e67227b7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css +++ /dev/null @@ -1,32 +0,0 @@ -body -{ - background-color: #CCCCFF; - margin: 0px; - padding: 0px; -} - -/* Banner (top bar) classes */ - -.banner { } - -.banner-menu -{ - clear: both; - padding: .5em; - border-top: 2px solid #6666AA; -} - -.banner-title -{ - text-align: right; - font-size: 20pt; - font-weight: bold; - margin: .2em; -} - -.package-selector -{ - background-color: #AAAADD; - border: 1px solid black; - color: yellow; -} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css deleted file mode 100644 index 88f471f2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css +++ /dev/null @@ -1,144 +0,0 @@ -a { color: #336699; text-decoration: none; } -a:hover { color: #6699CC; text-decoration: underline; } -a:active { color: #6699CC; text-decoration: underline; } - -body { background : #FFFFFF; } -body, table { font-family: Georgia, Times New Roman, Times, serif; font-size: 10pt } -p, li { line-height: 140% } -a img { border: 0px; } -dd { margin-left: 0px; padding-left: 1em; } - -/* Page layout/boxes */ - -.info-box {} -.info-box-title { margin: 1em 0em 0em 0em; padding: .25em; font-weight: normal; font-size: 14pt; border: 2px solid #999999; background-color: #CCCCFF } -.info-box-body { border: 1px solid #999999; padding: .5em; } -.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; } - -.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em} -.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em} - -.page-body { max-width: 800px; margin: auto; } -.tree dl { margin: 0px } - -/* Index formatting classes */ - -.index-item-body { margin-top: .5em; margin-bottom: .5em} -.index-item-description { margin-top: .25em } -.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt } -.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em} -.index-letter-title { font-size: 12pt; font-weight: bold } -.index-letter-menu { text-align: center; margin: 1em } -.index-letter { font-size: 12pt } - -/* Docbook classes */ - -.description {} -.short-description { font-weight: bold; color: #666666; } -.tags { padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; } -.parameters { padding-left: 0em; margin-left: 3em; font-style: italic; list-style-type: square; } -.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; } -.package { } -.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black } -.package-details { font-size: 85%; } -.sub-package { font-weight: bold; font-size: 120% } -.tutorial { border-width: thin; border-color: #0066ff } -.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; } -.nav-button-disabled { color: #999999; } -.nav-button:active, -.nav-button:focus, -.nav-button:hover { background-color: #DDDDDD; outline: 1px solid #999999; text-decoration: none } -.folder-title { font-style: italic } - -/* Generic formatting */ - -.field { font-weight: bold; } -.detail { font-size: 8pt; } -.notes { font-style: italic; font-size: 8pt; } -.separator { background-color: #999999; height: 2px; } -.warning { color: #FF6600; } -.disabled { font-style: italic; color: #999999; } - -/* Code elements */ - -.line-number { } - -.class-table { width: 100%; } -.class-table-header { border-bottom: 1px dotted #666666; text-align: left} -.class-name { color: #000000; font-weight: bold; } - -.method-summary { padding-left: 1em; font-size: 8pt } -.method-header { } -.method-definition { margin-bottom: .3em } -.method-title { font-weight: bold; } -.method-name { font-weight: bold; } -.method-signature { font-size: 85%; color: #666666; margin: .5em 0em } -.method-result { font-style: italic; } - -.var-summary { padding-left: 1em; font-size: 8pt; } -.var-header { } -.var-title { margin-bottom: .3em } -.var-type { font-style: italic; } -.var-name { font-weight: bold; } -.var-default {} -.var-description { font-weight: normal; color: #000000; } - -.include-title { } -.include-type { font-style: italic; } -.include-name { font-weight: bold; } - -.const-title { } -.const-name { font-weight: bold; } - -/* Syntax highlighting */ - -.src-code { border: 1px solid #336699; padding: 1em; background-color: #EEEEEE; } -*[class="src-code"] { line-height : 0.5em } - -.src-comm { color: green; } -.src-id { } -.src-inc { color: #0000FF; } -.src-key { color: #0000FF; } -.src-num { color: #CC0000; } -.src-str { color: #66cccc; } -.src-sym { font-weight: bold; } -.src-var { } - -.src-php { font-weight: bold; } - -.src-doc { color: #009999 } -.src-doc-close-template { color: #0000FF } -.src-doc-coretag { color: #0099FF; font-weight: bold } -.src-doc-inlinetag { color: #0099FF } -.src-doc-internal { color: #6699cc } -.src-doc-tag { color: #0080CC } -.src-doc-template { color: #0000FF } -.src-doc-type { font-style: italic } -.src-doc-var { font-style: italic } - -.tute-tag { color: #009999 } -.tute-attribute-name { color: #0000FF } -.tute-attribute-value { color: #0099FF } -.tute-entity { font-weight: bold; } -.tute-comment { font-style: italic } -.tute-inline-tag { color: #636311; font-weight: bold } - -/* tutorial */ - -.authors { } -.author { font-style: italic; font-weight: bold } -.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal } -.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; } -*[class="example"] { line-height : 0.5em } -.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; } -*[class="listing"] { line-height : 0.5em } -.release-info { font-size: 85%; font-style: italic; margin: 1em 0em } -.ref-title-box { } -.ref-title { } -.ref-purpose { font-style: italic; color: #666666 } -.ref-synopsis { } -.title { font-weight: bold; margin: 1em 0em 0em 0em; padding: .25em; border: 2px solid #999999; background-color: #CCCCFF } -.cmd-synopsis { margin: 1em 0em } -.cmd-title { font-weight: bold } -.toc { margin-left: 2em; padding-left: 0em } - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl deleted file mode 100644 index 3138a925..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl +++ /dev/null @@ -1,61 +0,0 @@ - -{section name=methods loop=$methods} - -
        - -
        - {if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name} (line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}) -
        - - {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false} - -
        - {$methods[methods].function_return} - - {if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name} - - {if count($methods[methods].ifunction_call.params)} - ({section name=params loop=$methods[methods].ifunction_call.params}{if $smarty.section.params.iteration != 1}, {/if}{if $methods[methods].ifunction_call.params[params].default}[{/if}{$methods[methods].ifunction_call.params[params].type} {$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].default} = {$methods[methods].ifunction_call.params[params].default}]{/if}{/section}) - {else} - () - {/if} -
        - - {if $methods[methods].params} -
          - {section name=params loop=$methods[methods].params} -
        • - {$methods[methods].params[params].datatype} - {$methods[methods].params[params].var}{if $methods[methods].params[params].data}: {$methods[methods].params[params].data}{/if} -
        • - {/section} -
        - {/if} - - {if $methods[methods].method_overrides} -
        -
        Redefinition of:
        -
        -
        {$methods[methods].method_overrides.link}
        - {if $methods[methods].method_overrides.sdesc} -
        {$methods[methods].method_overrides.sdesc}
        - {/if} -
        - {/if} - - {if $methods[methods].descmethod} -
        -
        Redefined in descendants as:
        -
          - {section name=dm loop=$methods[methods].descmethod} -
        • - {$methods[methods].descmethod[dm].link} - {if $methods[methods].descmethod[dm].sdesc} - : {$methods[methods].descmethod[dm].sdesc} - {/if} -
        • - {/section} -
        - {/if} -
        -{/section} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl deleted file mode 100644 index e5e1913c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl +++ /dev/null @@ -1,211 +0,0 @@ -{include file="header.tpl" top3=true} - -

        {$source_location}

        - - -
        -
        Description
        - -
        - {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags} - - {if $tutorial} -
        -
        Tutorial: {$tutorial}
        - {/if} -
        -
        - -{if $classes} - -
        -
        Classes
        - -
        - - - - - - {section name=classes loop=$classes} - - - - - {/section} -
        ClassDescription
        - {$classes[classes].link} - - {if $classes[classes].sdesc} - {$classes[classes].sdesc} - {else} - {$classes[classes].desc} - {/if} -
        -
        -
        -{/if} - -{if $includes} - -
        -
        Includes
        - -
        - {include file="include.tpl"} -
        -
        -{/if} - -{if $defines} - -
        -
        Constants
        - -
        - {include file="define.tpl"} -
        -
        -{/if} - -{if $globals} - -
        -
        Variables
        - -
        - {include file="global.tpl"} -
        -
        -{/if} - -{if $functions} - -
        -
        Functions
        - -
        - {include file="function.tpl"} -
        -
        -{/if} - -{include file="footer.tpl" top3=true} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl deleted file mode 100644 index 542af8ed..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl +++ /dev/null @@ -1,17 +0,0 @@ -{include file="header.tpl"} - -

        [{$package}] element index

        -{if count($packageindex) > 1} -

        Package indexes

        -
          - {section name=p loop=$packageindex} - {if $packageindex[p].title != $package} -
        • {$packageindex[p].title}
        • - {/if} - {/section} -
        -{/if} -All elements -
        -{include file="basicindex.tpl" indexname=elementindex_$package} -{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl deleted file mode 100644 index c4cb83f9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl"} -

        {$name}

        -
        -{$contents|htmlentities}
        -
        -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl deleted file mode 100644 index 5ab0bca2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{include file="header.tpl" title="Todo List"} -

        Todo List

        -{foreach from=$todos key=todopackage item=todo} -

        {$todopackage}

        -{section name=todo loop=$todo} -

        {$todo[todo].link}

        -
          -{section name=t loop=$todo[todo].todos} -
        • {$todo[todo].todos[t]}
        • -{/section} -
        -{/section} -{/foreach} -{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl deleted file mode 100644 index 31f559cb..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - {$title} - - - - - - - - \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl deleted file mode 100644 index deb1ee04..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{include file="header.tpl" title=$title top3=true} - -{if $nav} - {include file="tutorial_nav.tpl" prev=$prev next=$next up=$up prevtitle=$prevtitle nexttitle=$nexttitle uptitle=$uptitle} -{/if} - -{$contents} - -{if $nav} - {include file="tutorial_nav.tpl" prev=$prev next=$next up=$up prevtitle=$prevtitle nexttitle=$nexttitle uptitle=$uptitle} -{/if} - -{include file="footer.tpl" top3=true} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl deleted file mode 100644 index 9b42fec8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - -
        - {if $prev} - Previous - {else} - Previous - {/if} - - {if $up} - Up - {/if} - - {if $next} - Next - {else} - Next - {/if} -
        - {if $prevtitle} - {$prevtitle} - {/if} - - {if $uptitle} - {$uptitle} - {/if} - - {if $nexttitle} - {$nexttitle} - {/if} -
        - \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl deleted file mode 100644 index 314ebd81..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl +++ /dev/null @@ -1,39 +0,0 @@ -{if count($toc)} -

        Table of Contents

        -
          - {assign var="lastcontext" value='refsect1'} - {section name=toc loop=$toc} - - {if $toc[toc].tagname != $lastcontext} - {if $lastcontext == 'refsect1'} -
            -
          • {$toc[toc].link}
          • - {else} - {if $lastcontext == 'refsect2'} - {if $toc[toc].tagname == 'refsect1'} -
          -
        • {$toc[toc].link}
        • - {/if} - {if $toc[toc].tagname == 'refsect3'} -
            -
          • {$toc[toc].link}
          • - {/if} - {else} -
          -
        • {$toc[toc].link}
        • - {/if} - {/if} - {assign var="lastcontext" value=$toc[toc].tagname} - {else} -
        • {$toc[toc].link}
        • - {/if} - {/section} - {if $lastcontext == 'refsect2'} -
        - {/if} - {if $lastcontext == 'refsect3'} - - - {/if} - -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl deleted file mode 100644 index d5a18355..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl +++ /dev/null @@ -1,6 +0,0 @@ - -{if $haskids} -
        - {$kids} -
        -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl deleted file mode 100644 index 59c4d8cd..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl +++ /dev/null @@ -1,44 +0,0 @@ -{section name=vars loop=$vars} - -
        - -
        - - {$vars[vars].var_type} - {$vars[vars].var_name} - {if $vars[vars].var_default} = {$vars[vars].var_default|replace:"\n":"
        "}
        {/if} - (line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}) -
        -
        - - {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags} - - {if $vars[vars].var_overrides} -
        -
        Redefinition of:
        -
        -
        {$vars[vars].var_overrides.link}
        - {if $vars[vars].var_overrides.sdesc} -
        {$vars[vars].var_overrides.sdesc}
        - {/if} -
        - {/if} - - {if $vars[vars].descvar} -
        -
        Redefined in descendants as:
        -
          - {section name=vm loop=$vars[vars].descvar} -
        • - {$vars[vars].descvar[vm].link} - {if $vars[vars].descvar[vm].sdesc} - : {$vars[vars].descvar[vm].sdesc} - {/if} -
        • - {/section} -
        - {/if} - -
        -{/section} - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc b/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc deleted file mode 100644 index f4fa31d3..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc +++ /dev/null @@ -1,241 +0,0 @@ -> in a description - * @package phpDocumentor - * @subpackage DescHTML - */ -class parserCode extends parserStringWithInlineTags -{ - /** - * @param Converter - * @uses Converter::ProgramExample() - */ - function Convert(&$c) - { - if (!isset($this->value[0])) return ''; - if (is_string($this->value[0]) && $this->value[0]{0} == "\n") - { - $this->value[0] = substr($this->value[0],1); - } - $linktags = array(); - foreach($this->value as $val) { - if (phpDocumentor_get_class($val) == 'parserlinkinlinetag' || - phpDocumentor_get_class($val) == 'parsertutorialinlinetag') { - $linktags[] = array($c->postProcess($val->Convert($c, false, false)), $val); - } - } - $a = $c->ProgramExample(rtrim(ltrim(parent::Convert($c, false, false), "\n\r"))); - foreach ($linktags as $tag) { - $a = str_replace($tag[0], $tag[1]->Convert($c, false, false), $a); - } - return $a; -// else return $c->PreserveWhiteSpace($this->getString(false)); - } -} - -/** - * Used for <
        > in a description
        - * @package phpDocumentor
        - * @subpackage DescHTML
        - */
        -class parserPre extends parserStringWithInlineTags
        -{
        -    /**
        -     * @param Converter
        -     * @uses Converter::PreserveWhiteSpace()
        -     */
        -    function Convert(&$c)
        -    {
        -        return $c->PreserveWhiteSpace(rtrim(ltrim(parent::Convert($c, false, false), "\n\r")));
        -    }
        -}
        -
        -/**
        - * Used for <> in a description
        - * @package phpDocumentor
        - * @subpackage DescHTML
        - */
        -class parserB extends parserStringWithInlineTags
        -{
        -    /**
        -     * @param Converter
        -     * @uses Converter::Bolden()
        -     */
        -    function Convert(&$c)
        -    {
        -        return $c->Bolden(parent::Convert($c));
        -    }
        -}
        -
        -/**
        - * Used for <> in a description
        - * @package phpDocumentor
        - * @subpackage DescHTML
        - */
        -class parserI extends parserStringWithInlineTags
        -{
        -    /**
        -     * @param Converter
        -     * @uses Converter::Italicize()
        -     */
        -    function Convert(&$c)
        -    {
        -        return $c->Italicize(parent::Convert($c));
        -    }
        -}
        -
        -/**
        - * Used for <> in a description
        - * @package phpDocumentor
        - * @subpackage DescHTML
        - */
        -class parserDescVar extends parserStringWithInlineTags
        -{
        -    /**
        -     * @param Converter
        -     * @uses Converter::Varize()
        -     */
        -    function Convert(&$c)
        -    {
        -        return $c->Varize(parent::Convert($c));
        -    }
        -}
        -
        -/**
        - * Used for <> in a description
        - * @package phpDocumentor
        - * @subpackage DescHTML
        - */
        -class parserSamp extends parserStringWithInlineTags
        -{
        -    /**
        -     * @param Converter
        -     * @uses Converter::Sampize()
        -     */
        -    function Convert(&$c)
        -    {
        -        return $c->Sampize(parent::Convert($c));
        -    }
        -}
        -
        -/**
        - * Used for <> in a description
        - * @package phpDocumentor
        - * @subpackage DescHTML
        - */
        -class parserKbd extends parserStringWithInlineTags
        -{
        -    /**
        -     * @param Converter
        -     * @uses Converter::Kbdize()
        -     */
        -    function Convert(&$c)
        -    {
        -        return $c->Kbdize(parent::Convert($c));
        -    }
        -}
        -
        -/**
        - * Used for <
        > in a description - * @package phpDocumentor - * @subpackage DescHTML - */ -class parserBr extends parserStringWithInlineTags -{ - /** - * @param Converter - * @uses Converter::Br() - */ - function Convert(&$c) - { - return $c->Br($this->getString()); - } -} - -/** - * Used for lists <
          > and <
            > - * @package phpDocumentor - * @subpackage DescHTML - */ -class parserList extends parserStringWithInlineTags -{ - /** @var boolean */ - var $numbered; - /** @var integer */ - var $items = 0; - /** - * @param integer - */ - function parserList($numbered) - { - $this->numbered = $numbered; - } - - /** @param parserStringWithInlineTags */ - function addItem($item) - { - $this->value[$this->items++] = $item; - } - - /** @param parserList */ - function addList($list) - { - $this->value[$this->items++] = $list; - } - - /** - * @uses Converter::ListItem() enclose each item of the list - * @uses Converter::EncloseList() enclose the list - * @param Converter - */ - function Convert(&$c) - { - $list = ''; - foreach($this->value as $item) - { - $list .= $c->ListItem(trim($item->Convert($c))); - } - return $c->EncloseList($list,$this->numbered); - } -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc b/buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc deleted file mode 100644 index edfc896c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc +++ /dev/null @@ -1,701 +0,0 @@ -tokens = array( - PHPDOC_DOCBLOCK_TOKEN_NEWLINE => 'PHPDOC_DOCBLOCK_TOKEN_NEWLINE', - PHPDOC_DOCBLOCK_TOKEN_DESC => 'PHPDOC_DOCBLOCK_TOKEN_DESC', - PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN => 'PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN', - PHPDOC_DOCBLOCK_TOKEN_ESCTAGCLOSE => 'PHPDOC_DOCBLOCK_TOKEN_ESCTAGCLOSE', - PHPDOC_DOCBLOCK_TOKEN_TAG => 'PHPDOC_DOCBLOCK_TOKEN_TAG', - PHPDOC_DOCBLOCK_TOKEN_INLINETAG => 'PHPDOC_DOCBLOCK_TOKEN_INLINETAG', - PHPDOC_DOCBLOCK_TOKEN_INLINETAGCLOSE => 'PHPDOC_DOCBLOCK_TOKEN_INLINETAGCLOSE', - PHPDOC_DOCBLOCK_TOKEN_INTERNAL => 'PHPDOC_DOCBLOCK_TOKEN_INTERNAL', - PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE => 'PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE', - ); - if (in_array($token, array_keys($this->tokens))) { - return $this->tokens[$token]; - } - return 'UNKNOWN'; - } - - function lex($comment) - { - $comment = str_replace(array("\r\n", "\r"), array("\n", "\n"), $comment); - $comment = explode("\n", $comment); - $this->tokens = array(); - $state = PHPDOC_LEXER_DESC; - $this->states = array(PHPDOC_LEXER_DESC); - $tid = 0; - $token = ''; - $esctag = false; - $this->exception = false; - list($lastline,) = each(array_reverse($comment, true)); - foreach ($comment as $this->linenum => $line) { - if ($this->exception) { - $this->tokens = array(); - return false; - } - $linestart = true; - $this->processedline = trim($line); - if ($this->processedline == '*/') { - break; - } - if (!$this->processedline) { - continue; - } - if (substr($this->processedline, 0, 3) == '/**') { - $this->processedline = substr($this->processedline, 3); - if (!$this->processedline) { - continue; - } - if (trim($this->processedline) == '*/') { - $this->endSimpleList(); - break; - } - } else { - $this->processedline = substr($this->processedline, 1); - } - while (true) { - switch ($state) { - case PHPDOC_LEXER_INTERNALTAG : - $internalendpos = strpos($this->processedline, '}}'); - case PHPDOC_LEXER_TAGS : - $trimline = trim($this->processedline); - if (strlen($trimline) && $trimline{0} == '@') { - if (preg_match('/^(@[^\s]+)\s/', $trimline, $matches) || - preg_match('/^(@[^\s]+)$/', $trimline, $matches)) { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_TAG, - $matches[1]); - $this->processedline = substr($trimline, strpos($trimline, $matches[1]) + - strlen($matches[1])); - if (!$this->processedline) { - break 2; - } - continue 2; // to while(true) - } - } elseif (preg_match('/^@/', $trimline, $matches)) { - // throw exception for invalid tag - return $this->throwException('Invalid tag encountered in line number ' . - $this->linenum . ': "' . $line . '"', 'tag'); - } else { - $tagpos = strpos($this->processedline, '<'); - $inlinetagpos = strpos($this->processedline, '{@'); - if (isset($internalendpos) && $internalendpos !== false) { - do { - if ($tagpos !== false && $internalendpos > $tagpos) { - break; - } - if ($inlinetagpos !== false && $internalendpos > $inlinetagpos) { - break; - } - // }} is the next important token - $this->appendDesc(substr($this->processedline, 0, - $internalendpos)); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE, '}}'); - $this->processedline = substr($this->processedline, $internalendpos - + 2); - array_shift($this->states); - $state = PHPDOC_LEXER_TAGS; - continue 3; // to while(true); - } while (false); - } - if ($tagpos !== false && $inlinetagpos !== false) { - if ($tagpos > $inlinetagpos) { - $tagpos = false; - } else { - $inlinetagpos = false; - } - } - if ($tagpos !== false) { - continue $this->searchForHTMLTag($tagpos, - $state, $esctag, $linestart, $trimline); - } - if ($inlinetagpos !== false) { - $state = $this->searchForInlineTag($inlinetagpos, $comment); - $linestart = false; - continue 2; // to while (true) - } - if (strpos($this->processedline, '*/')) { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC, - substr($this->processedline, - 0, strpos($this->processedline, '*/'))); - return $this->tokens; - } - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC, $this->processedline); - } - break; - case PHPDOC_LEXER_INTERNAL : - $internalendpos = strpos($this->processedline, '}}'); - case PHPDOC_LEXER_SIMPLELIST : - if ($linestart && $state == PHPDOC_LEXER_SIMPLELIST) { - if (!$this->processSimpleList()) { - while (count($this->simplelist) && !$this->processSimpleList()); - } - if (!count($this->simplelist)) { - array_shift($this->states); - $state = array_shift($this->states); - array_unshift($this->states, $state); - } - } - case PHPDOC_LEXER_DESC : - if (strpos($this->processedline, '*/')) { - $this->processedline = substr($this->processedline, - 0, strpos($this->processedline, '*/')); - } - if (!$this->processedline) { - if ($this->linenum != $lastline) { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n"); - } - continue 3; // to foreach - } - $trimline = trim($this->processedline); - if ($linestart && $state != PHPDOC_LEXER_TAGS && $trimline{0} == '@') { - if ($state == PHPDOC_LEXER_INTERNAL) { - // throw exception - return $this->throwException('Cannot start tags in {@internal}} ' . - ' in line number ' . - $this->linenum . ': "' . $line . '"', 'tag'); - } - $this->states = array(PHPDOC_LEXER_TAGS); - $state = PHPDOC_LEXER_TAGS; - continue 2; // to while(true) - - } - if ($state != PHPDOC_LEXER_SIMPLELIST && $linestart && strlen($trimline) > 3 && - ($trimline{0} == '-' || $trimline{0} == '*' || - $trimline{0} == '#' || $trimline{0} == 'o' || - $trimline{0} == '1')) { - if ($this->searchForSimplelist($trimline)) { - $state = PHPDOC_LEXER_SIMPLELIST; - $linestart = false; - continue 2; // to while(true) - } - } - $tagpos = strpos($this->processedline, '<'); - $inlinetagpos = strpos($this->processedline, '{@'); - if (isset($internalendpos) && $internalendpos !== false) { - do { - if ($tagpos !== false && $internalendpos > $tagpos) { - break; - } - if ($inlinetagpos !== false && $internalendpos > $inlinetagpos) { - break; - } - // }} is the next important token - $this->appendDesc(substr($this->processedline, 0, $internalendpos)); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE, '}}'); - $this->processedline = substr($this->processedline, $internalendpos - + 2); - array_shift($this->states); - $state = PHPDOC_LEXER_DESC; - continue 3; // to while(true); - } while (false); - } - if ($tagpos !== false && $inlinetagpos !== false) { - if ($tagpos > $inlinetagpos) { - $tagpos = false; - } else { - $inlinetagpos = false; - } - } - if ($tagpos !== false) { - continue $this->searchForHTMLTag($tagpos, $state, - $esctag, $linestart, $trimline); - } - if ($inlinetagpos !== false) { - $state = $this->searchForInlineTag($inlinetagpos, $comment); - $linestart = false; - continue 2; // to while (true) - } - $this->appendDesc($this->processedline); - break; - case PHPDOC_LEXER_ESCTAG : - if (!$this->processedline) { - if ($this->linenum != $lastline) { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n"); - } - continue 3; // to foreach - } - $endpos = strpos($this->processedline, $esctag); - $inlinetagpos = strpos($this->processedline, '{@'); - if ($endpos !== false && $inlinetagpos !== false) { - if ($endpos > $inlinetagpos) { - $endpos = false; - } else { - $inlinetagpos = false; - } - } - if ($endpos !== false) { - if (strlen(substr($this->processedline, 0, $endpos))) { - $this->appendDesc(substr($this->processedline, 0, $endpos)); - } - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGCLOSE, $esctag); - $this->processedline = substr($this->processedline, $endpos + - strlen($esctag)); - $state = $this->states[0]; - if (count($this->states) > 1) { - array_shift($this->states); - } - if (!$this->processedline) { - break 2; - } - } - if ($inlinetagpos !== false) { - array_unshift($this->states, PHPDOC_LEXER_ESCTAG); - $state = $this->searchForInlineTag($inlinetagpos, $comment); - $linestart = false; - continue 2; // to while (true) - } - $this->appendDesc($this->processedline); - break; - case PHPDOC_LEXER_INLINETAG : - if (!$this->processedline) { - if ($this->linenum != $lastline) { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n"); - } - continue 3; // to foreach - } - $endpos = strpos($this->processedline, '}'); - if ($endpos !== false) { - if (strlen(substr($this->processedline, 0, $endpos))) { - $this->appendDesc(substr($this->processedline, 0, $endpos)); - } - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INLINETAGCLOSE, '}'); - $this->processedline = substr($this->processedline, $endpos + 1); // strlen('}') - $state = $this->states[0]; - if (count($this->states) > 1) { - array_shift($this->states); - } - if (!$this->processedline) { - break 2; - } - if ($state != PHPDOC_LEXER_INLINETAG && strlen($this->processedline)) { - $linestart = false; - continue 2; // to while (true) - } - } - $this->appendDesc($this->processedline); - break; - } - break; - } - if ($this->linenum != $lastline) { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n"); - } - } - return $this->tokens; - } - - function searchForSimplelist($trimline) - { - $whitespace = strpos($this->processedline, $trimline); - switch ($trimline{0}) { - case '-' : - case '*' : - case '+' : - case 'o' : - if (strlen($trimline) < 3 || $trimline{1} != ' ') { - return false; - } - // unordered lists - $this->simplelist[] = 'u' . $trimline{0}; - $this->whitespace[] = $whitespace; - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTSTART, ''); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_UNORDEREDBULLET, $trimline{0}); - $this->processedline = substr($this->processedline, strpos($this->processedline, - $trimline{0}) + 2); - array_unshift($this->states, PHPDOC_LEXER_SIMPLELIST); - return true; - break; - case '#' : - if (strlen($trimline) < 3) { - return false; - } - // ordered lists - $this->simplelist[] = '#1'; - $this->whitespace[] = $whitespace; - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTSTART, ''); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, '#'); - $this->processedline = substr($this->processedline, strpos($this->processedline, - '#') + 2); - array_unshift($this->states, PHPDOC_LEXER_SIMPLELIST); - return true; - case '1' : - if (strlen($trimline) < 4) { - return false; - } - if ($trimline{1} == ' ') { - $this->simplelist[] = 'O1'; - } elseif ($trimline{1} == '.' && $trimline{2} == ' ') { - $this->simplelist[] = 'o1'; - } else { - return false; - } - $this->whitespace[] = $whitespace; - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTSTART, ''); - if ($trimline{1} == '.') { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, '1.'); - $this->processedline = substr($this->processedline, strpos($this->processedline, - '1.') + 3); - } else { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, '1'); - $this->processedline = substr($this->processedline, strpos($this->processedline, - '1') + 2); - } - array_unshift($this->states, PHPDOC_LEXER_SIMPLELIST); - return true; - } - return false; - } - - /** - * @todo process multi-line elements via whitespace - * @todo process nested simple lists - */ - function processSimpleList() - { - $trimline = trim($this->processedline); - $index = count($this->simplelist) - 1; - $whitespace = strpos($this->processedline, $trimline); - if ($whitespace < $this->whitespace[$index]) { - while (count($this->whitespace[$index]) && $whitespace < $this->whitespace[$index]) { - // the end of the current simplelist - $this->tokens = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, ''); - array_pop($this->simplelist); - $index--; - } - if ($index == -1) { - return false; // all simple lists concluded - } - } - if ($whitespace > $this->whitespace[$index]) { - // could be a multi-line element or a new list - if (!$this->searchForSimplelist($trimline)) { - // trim off the simple list whitespace if this is multi-line - $this->processedline = substr($this->processedline, $this->whitespace[$index] + 2); - } - return true; - } - // implied: whitespace matches exactly so this is either another - // bullet point or the end of the simple list - switch ($this->simplelist[$index]{0}) { - case 'u' : - if (strlen($trimline) < 3 || $trimline{0} != $this->simplelist[$index]{1} || - $trimline{1} != ' ') { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, ''); - array_pop($this->simplelist); - return false; - } - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_UNORDEREDBULLET, $trimline{0}); - $this->processedline = substr($this->processedline, strpos($this->processedline, - $trimline{0}) + 2); - break; - case 'o' : - if (strlen($trimline) < 4 || ($trimline{0} != - ($this->simplelist[$index]{1} + 1) . '') || - $trimline{1} != '.' || $trimline{2} != ' ') { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, ''); - array_pop($this->simplelist); - return false; - } - $this->simplelist[$index] = $this->simplelist[$index]{0} . - ($this->simplelist[$index]{1} + 1); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, - $this->simplelist[$index]{1} . '.'); - $this->processedline = substr($this->processedline, strpos($this->processedline, - $trimline{0} . '.') + 3); - break; - case 'O' : - if (strlen($trimline) < 3 || $trimline{0} != ($this->simplelist[$index]{1} + 1) . '' || - $trimline{1} != ' ') { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, ''); - array_pop($this->simplelist); - return false; - } - $this->simplelist[$index] = $this->simplelist[$index]{0} . - ($this->simplelist[$index]{1} + 1); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, - $this->simplelist[$index]{1}); - $this->processedline = substr($this->processedline, strpos($this->processedline, - $this->simplelist[$index]{1}) + 2); - break; - case '#' : - if (strlen($trimline) < 3 || $trimline{0} != '#' || - $trimline{1} != ' ') { - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, ''); - array_pop($this->simplelist); - return false; - } - $this->simplelist[$index] = $this->simplelist[$index]{0} . - ($this->simplelist[$index]{1} + 1); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, - $this->simplelist[$index]{1}); - $this->processedline = substr($this->processedline, strpos($this->processedline, - '#') + 2); - break; - } - return true; - } - - function searchForHTMLTag($tagpos, &$state, &$esctag, &$linestart, - &$trimline) - { - if (preg_match('/^<(<\/?[a-zA-Z]+ ?\/?>)>/', substr($this->processedline, $tagpos), - $matches)) { - if ($tagpos) { - $this->appendDesc(substr($this->processedline, 0, $tagpos)); - } - $this->appendDesc($matches[1]); - $this->processedline = substr($this->processedline, $tagpos - + strlen($matches[1]) - + 2); - return 2; - } elseif (!count($matches) && - preg_match('/^<(<\/?[a-zA-Z]+ ?\/?>)>/', substr($this->processedline, $tagpos + 1), - $matches)) { - if ($tagpos) { - $this->appendDesc(substr($this->processedline, 0, $tagpos)); - } - $this->appendDesc('<' . $matches[1]); - $this->processedline = substr($this->processedline, $tagpos - + strlen($matches[1]) - + 3); - return 2; - } elseif (preg_match('#^(br>|br/>|br />)#', - substr($this->processedline, $tagpos + 1), $matches)) { - if ($tagpos) { - $this->appendDesc(substr($this->processedline, 0, $tagpos)); - } - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAG, 'br'); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAGCLOSE, 'br'); - $this->processedline = substr($this->processedline, $tagpos - + strlen($matches[1]) - + 1); - return 2; - } elseif (preg_match('/^(b>|i>|li>|ol>|ul>|p>|pre>|var>)/', - substr($this->processedline, $tagpos + 1), $matches)) { - if ($tagpos) { - $this->appendDesc(substr($this->processedline, 0, $tagpos)); - } - $matches = substr($matches[1], 0, strlen($matches[1]) - 1); - array_push($this->tagStack, $matches); - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAG, $matches); - $this->processedline = substr($this->processedline, $tagpos - + strlen($matches) - + 2); - return 2; - } elseif (preg_match('#^(/b>|/i>|/li>|/ol>|/ul>|/p>|/pre>|/var>)#', - substr($this->processedline, $tagpos + 1), $matches)) { - if ($tagpos) { - $this->appendDesc(substr($this->processedline, 0, $tagpos)); - } - $matches = substr($matches[1], 1, strlen($matches[1]) - 2); - $test = array_pop($this->tagStack); - if ($matches != $test) { - // throw exception - $this->throwException('Invalid closing html tag encountered in line number ' . - $this->linenum . ': "", expecting ""', 'htmltag'); - return 3; - } - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAGCLOSE, $matches); - $this->processedline = substr($this->processedline, $tagpos - + strlen($matches) - + 3); - return 2; - } elseif (preg_match('/^(code>|pre>|kbd>|samp>)/', - substr($this->processedline, $tagpos + 1), $matches)) { - $esctag = 'appendDesc(substr($this->processedline, 0, $tagpos)); - } - switch ($matches[0]) { - case 'code>' : - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN, - ''); - break; - case 'pre>' : - $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN, - '
            ');
            -                break;
            -                case 'kbd>' :
            -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN,
            -                        '');
            -                break;
            -                case 'samp>' :
            -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN,
            -                        '');
            -                break;
            -            }
            -            $this->processedline = $line = substr($this->processedline, $tagpos
            -                + strlen($matches[0])
            -                + 1);
            -            $state = PHPDOC_LEXER_ESCTAG;
            -            if (!$this->processedline) {
            -                return 3; // to foreach
            -            }
            -            if (strpos($this->processedline, $esctag) !== false) {
            -                if (!strpos($this->processedline, $esctag)) {
            -                    $linestart = false;
            -                    return 2; // to while (true)
            -                }
            -                if (strpos($this->processedline, $esctag)) {
            -                    $this->appendDesc(substr($this->processedline, 0,
            -                        strpos($this->processedline, $esctag)));
            -                }
            -                $this->processedline = $trimline =
            -                    substr($this->processedline, strpos($this->processedline, $esctag));
            -                $linestart = false;
            -                return 2; // to while(true)
            -            }
            -        }
            -    }
            -
            -    function searchForInlineTag($inlinetagpos, $comment)
            -    {
            -        if ($inlinetagpos) {
            -            $this->appendDesc(substr($this->processedline, 0, $inlinetagpos));
            -        }
            -        if ($inlinetagpos === strpos($this->processedline, '{@internal')) {
            -            $state = array_shift($this->states);
            -            array_unshift($this->states, $state);
            -            if ($state == PHPDOC_LEXER_INTERNAL || $state == PHPDOC_LEXER_INTERNALTAG) {
            -                // throw exception
            -                return $this->throwException('cannot nest {@internal}} in line number ' .
            -                    $this->linenum . ': "' . $line . '"', 'internaltag');
            -            }
            -            $basestate = array_pop($this->states);
            -            array_push($this->states, $basestate);
            -            if ($basestate == PHPDOC_LEXER_DESC) {
            -                $newstate = PHPDOC_LEXER_INTERNAL;
            -            } else {
            -                $newstate = PHPDOC_LEXER_INTERNALTAG;
            -            }
            -            array_unshift($this->states, $newstate);
            -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INTERNAL, '{@internal');
            -            $this->processedline = substr($this->processedline, $inlinetagpos + strlen('{@internal'));
            -            return $newstate;
            -        }
            -        if (!preg_match('/^({@[^}\s]+)\s/', substr($this->processedline, $inlinetagpos), $matches)) {
            -            if (!preg_match('/^({@[^}\s]+)}/', substr($this->processedline, $inlinetagpos), $matches)) {
            -                if ($this->hasEndchar($comment, '}')) {
            -                    $matches = array(substr($this->processedline, $inlinetagpos),
            -                        substr($this->processedline, $inlinetagpos));
            -                } else {
            -                    // throw exception if this does not match
            -                    $this->throwException('Unclosed inline tag encountered on line number ' .
            -                        $this->linenum . ': "' . $line . '"', 'tag');
            -                    return PHPDOC_LEXER_DESC;
            -                }
            -            } else {
            -                // throw exception if this does not match
            -                $this->throwException('Invalid inline tag encountered in line number ' .
            -                    $this->linenum . ': "' . $line . '"', 'tag');
            -                return PHPDOC_LEXER_DESC;
            -            }
            -        }
            -        $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INLINETAG, $matches[1]);
            -        $this->processedline = substr($this->processedline, $inlinetagpos + strlen($matches[1]));
            -        return PHPDOC_LEXER_INLINETAG;
            -    }
            -
            -    function appendDesc($desc)
            -    {
            -        if (!strlen($desc)) {
            -            return;
            -        }
            -        if (count($this->tokens)) {
            -            $last = array_pop($this->tokens);
            -            if ($last[0] == PHPDOC_DOCBLOCK_TOKEN_DESC) {
            -                $last[1] .= $desc;
            -                $this->tokens[] = $last;
            -            } else {
            -                $this->tokens[] = $last;
            -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC, $desc);
            -            }
            -        } else {
            -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC, $desc);
            -        }
            -    }
            -
            -    function hasEndChar($comment, $char)
            -    {
            -        $linenum = $this->linenum;
            -        foreach ($comment as $num => $line) {
            -            if ($linenum !== false && $num <= $linenum) {
            -                continue;
            -            }
            -            $linenum = false;
            -            $processedline = trim($line);
            -            if ($processedline == '*/') {
            -                break;
            -            }
            -            if (!$processedline) {
            -                continue;
            -            }
            -            if (substr($processedline, 0, 3) == '/**') {
            -                $processedline = substr($processedline, 3);
            -                if (!$processedline) {
            -                    continue;
            -                }
            -                if (trim($processedline) == '*/') {
            -                    break;
            -                }
            -            } else {
            -                $processedline = substr($processedline, 1);
            -            }
            -            if (strpos($processedline, $char) !== false) {
            -                return true;
            -            }
            -        }
            -        return false;
            -    }
            -
            -    function endSimpleList()
            -    {
            -        if (count($this->tagStack)) {
            -            $this->tokens = array();
            -            return $this->throwException('Error: unclosed html tags: "' .
            -                implode(', ', $this->tagStack) . '"', 'simplelist');
            -        }
            -        while (count($this->simplelist)) {
            -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, '');
            -        }
            -    }
            -
            -    function throwException($message, $type)
            -    {
            -        $this->error = array($message, $this->linenum, $type);
            -        $this->exception = true;
            -    }
            -}
            -?>
            \ No newline at end of file
            diff --git a/buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc b/buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc
            deleted file mode 100644
            index fa465deb..00000000
            --- a/buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc
            +++ /dev/null
            @@ -1,984 +0,0 @@
            -
            - * @since 1.0rc1
            - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
            - */
            -class parserTag extends parserStringWithInlineTags
            -{
            -    /**
            -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
            -     * always '_tag'
            -     * @var string
            -     */
            -    var $type = '_tag';
            -    /**
            -     * tag name (see, access, etc.)
            -     * @var string
            -     */
            -    var $keyword = '';
            -    
            -    /**
            -     * Set up the tag
            -     *
            -     * {@source}
            -     * @param string $keyword tag name
            -     * @param parserStringWithInlineTags $value
            -     * @param boolean whether to parse the $value for html tags
            -     */
            -    function parserTag($keyword, $value, $noparse = false)
            -    {
            -        $this->keyword = $keyword;
            -        if (!$noparse)
            -        {
            -            $parser = new parserDescParser;
            -            $parser->subscribe('*',$this);
            -            $parser->parse($value->value,true,'parserstringwithinlinetags');
            -        } else $this->value = $value;
            -    }
            -    
            -    /**
            -     * @param Converter
            -     * @see Converter
            -     */
            -    function Convert(&$converter)
            -    {
            -        if (is_array($this->value))
            -        {
            -            if (count($this->value) == 1)
            -            {
            -                list(,$val) = each($this->value);
            -                reset($this->value);
            -                return $val->Convert($converter);
            -            }
            -            $result = '';
            -            foreach($this->value as $val)
            -            {
            -                // this is only true if we processed the description in
            -                // the constructor
            -                if (phpDocumentor_get_class($val) == 'parserstringwithinlinetags')
            -                $result .= $converter->EncloseParagraph($val->Convert($converter));
            -                else
            -                $result .= $val->Convert($converter);
            -            }
            -            return $result;
            -        } else
            -        {
            -            return $this->value->Convert($converter);
            -        }
            -    }
            -    
            -    /**
            -     * Gets a count of the number of paragraphs in this
            -     * tag's description.
            -     *
            -     * Useful in determining whether to enclose the
            -     * tag in a paragraph or not.
            -     * @access private
            -     * @return integer
            -     */
            -    function _valueParagraphCount()
            -    {
            -    }
            -    
            -    /**
            -     * Called by the {@link parserDescParser} when processing a description.
            -     * @param integer not used
            -     * @param array array of {@link parserStringWithInlineTags} representing
            -     *              paragraphs in the tag description
            -     * @see parserTag::parserTag()
            -     */
            -    function HandleEvent($a,$desc)
            -    {
            -        $this->value = $desc;
            -    }
            -    
            -    /**
            -     * @return string returns the text minus any inline tags
            -     * @see parserStringWithInlineTags::getString()
            -     */
            -    function getString()
            -    {
            -        if (is_array($this->value))
            -        {
            -            $result = '';
            -            foreach($this->value as $val)
            -            {
            -                $result .= $val->getString();
            -            }
            -            return $result;
            -        } else return $this->value->getString();
            -    }
            -}
            -
            -/**
            - * This class represents the @name tag
            - * @tutorial tags.name.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - */
            -class parserNameTag extends parserTag
            -{
            -    /**
            -     * tag name
            -     * @var string
            -     */
            -    var $keyword = 'name';
            -    
            -    /**
            -     * @param string not used
            -     * @param string name
            -     */
            -    function parserNameTag($name, $value)
            -    {
            -        $this->value = $value;
            -    }
            -    
            -    /**
            -     * @see parserStringWithInlineTags::Convert()
            -     * @param Converter
            -     * @return string converted value of the tag
            -     */
            -    function Convert(&$c)
            -    {
            -        return $this->value;
            -    }
            -}
            -
            -/**
            - * This class represents the @access tag
            - * @tutorial tags.access.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - */
            -class parserAccessTag extends parserTag
            -{
            -    /**
            -     * tag name
            -     * @var string
            -     */
            -    var $keyword = 'access';
            -    
            -    /**
            -     * set to true if the returned tag has a value type of private, protected
            -     * or public, false otherwise
            -     * @var boolean
            -     */
            -    var $isvalid = false;
            -    
            -    /**
            -     * checks $value to make sure it is private, protected or public, otherwise
            -     * it's not a valid @access tag
            -     * @see $isvalid
            -     * @param parserStringWithInlineTags $value
            -     */
            -    function parserAccessTag($value)
            -    {
            -        if (!is_string($value))
            -        {
            -            if (is_object($value))
            -            {
            -                if (method_exists($value,'getstring'))
            -                {
            -                    $value = $value->getString();
            -                }
            -            }
            -        }
            -        switch(trim($value))
            -        {
            -            case 'private' :
            -            case 'public' :
            -            case 'protected' :
            -                $this->value = $value;
            -                $this->isvalid = true;
            -            break;
            -            default :
            -            addError(PDERROR_ACCESS_WRONG_PARAM,$value);
            -                $this->value = 'public';
            -            break;
            -        }
            -    }
            -    
            -    /**
            -     * @see parserStringWithInlineTags::Convert()
            -     * @param Converter
            -     * @return string converted value of the tag
            -     */
            -    function Convert(&$converter)
            -    {
            -        return $this->value;
            -    }
            -    
            -    /**
            -     * No inline tags are possible, returns 'public', 'protected' or 'private'
            -     * @return string returns the text minus any inline tags
            -     */
            -    function getString()
            -    {
            -        return $this->value;
            -    }
            -}
            -
            -/**
            - * represents "@return"
            - * @tutorial tags.return.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @author Greg Beaver 
            - * @since 1.0rc1
            - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
            - */
            -class parserReturnTag extends parserTag
            -{
            -    /**
            -     * always 'return'
            -     * @var string
            -     */
            -    var $keyword = 'return';
            -    /**
            -     * the type a function returns
            -     */
            -    var $returnType = 'void';
            -    
            -    /**
            -     * contains a link to the documentation for a class passed as a type in @return, @var or @param
            -     *
            -     * Example:
            -     *
            -     * 
            -     * class myclass
            -     * {
            -     * ...
            -     * }
            -     * /** @return myclass blahblahblah
            -     * ...
            -     * 
            -     *
            -     * In this case, $converted_returnType will contain a link to myclass instead of the string 'myclass'
            -     * @var mixed either the same as $returnType or a link to the docs for a class
            -     * @see $returnType
            -     */
            -    var $converted_returnType = false;
            -    
            -    /**
            -     * @param string
            -     * @param parserStringWithInlineTags
            -     */
            -    function parserReturnTag($returnType, $value)
            -    {
            -        $this->returnType = $returnType;
            -        parent::parserTag('return',$value);
            -    }
            -    
            -    /**
            -     * sets up $converted_returnType
            -     * @see parserStringWithInlineTags::Convert(), $converted_returnType
            -     * @param Converter
            -     * @return string converted value of the tag
            -     */
            -    function Convert(&$converter)
            -    {
            -        $my_types = '';
            -        if (strpos($this->returnType,'|'))
            -        {
            -            $types = explode('|',$this->returnType);
            -            foreach($types as $returntype)
            -            {
            -                $a = $converter->getLink($returntype);
            -                if (is_object($a) && phpDocumentor_get_class($a) == 'classlink')
            -                {
            -                    if (!empty($my_types)) $my_types .= '|';
            -                    $my_types .= $converter->returnSee($a,$converter->type_adjust($returntype));
            -                } else
            -                {
            -                    if (!empty($my_types)) $my_types .= '|';
            -                    $my_types .= $converter->type_adjust($returntype);
            -                }
            -            }
            -            $this->converted_returnType = $my_types;
            -        } else
            -        {
            -            $a = $converter->getLink($this->returnType);
            -            if (is_object($a) && phpDocumentor_get_class($a) == 'classlink')
            -            {
            -                $this->converted_returnType = $converter->returnSee($a,$converter->type_adjust($this->returnType));
            -            } else
            -            {
            -                $this->converted_returnType = $converter->type_adjust($this->returnType);
            -            }
            -        }
            -        return parserTag::Convert($converter);
            -    }
            -}
            -
            -/**
            - * represents "@var"
            - * @tutorial tags.var.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @author Greg Beaver 
            - * @since 1.0rc1
            - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
            - */
            -class parserVarTag extends parserReturnTag
            -{
            -    /**
            -     * always 'var'
            -     * @var string
            -     */
            -    var $keyword = 'var';
            -    /**
            -     * the type a var has
            -     * @var string
            -     */
            -    var $returnType = 'mixed';
            -}
            -
            -/**
            - * Represents "@param"
            - * @tutorial tags.param.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - */
            -class parserParamTag extends parserVarTag
            -{
            -    /**
            -     * always 'param'
            -     * @var string
            -     */
            -    var $keyword = 'param';
            -}
            -
            -/**
            - * Represents "@staticvar"
            - * @tutorial tags.staticvar.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - */
            -class parserStaticvarTag extends parserParamTag
            -{
            -    /**
            -     * always 'staticvar'
            -     * @var string
            -     */
            -    var $keyword = 'staticvar';
            -}
            -
            -/**
            - * represents "@link"
            - * @tutorial tags.link.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @author Greg Beaver 
            - * @since 1.0rc1
            - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
            - */
            -class parserLinkTag extends parserTag
            -{
            -    /**
            -     * always 'link'
            -     * @var string
            -     */
            -    var $keyword = 'link';
            -    
            -    /**
            -     * URL to link to
            -     * @param string $link
            -     */
            -    function parserLinkTag($link)
            -    {
            -        $start = $val = $link->getString();
            -        if (strpos($val,' '))
            -        {
            -            $start = array_shift($val = explode(' ',$val));
            -            $val = join($val, ' ');
            -        }
            -        $a = new parserLinkInlineTag($start,$val);
            -        $b = new parserStringWithInlineTags;
            -        $b->add($a);
            -        $this->value = $b;
            -    }
            -}
            -
            -/**
            - * represents "@see"
            - * @tutorial tags.see.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @author Greg Beaver 
            - * @since 1.0rc1
            - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
            - */
            -class parserSeeTag extends parserLinkTag
            -{
            -    /**
            -     * always 'see'
            -     * @var string
            -     */
            -    var $keyword = 'see';
            -    
            -    /**
            -     * @param string element to link to
            -     */
            -    function parserSeeTag($name)
            -    {
            -        parserTag::parserTag($this->keyword,$name,true);
            -    }
            -
            -    /**
            -     * @param Converter
            -     * @see parserStringWithInlineTags::Convert()
            -     */
            -    function Convert(&$converter)
            -    {
            -        if ($this->value->hasInlineTag())
            -        {
            -            addErrorDie(PDERROR_INLINETAG_IN_SEE);
            -        }
            -        $a = $converter->getLink(trim($this->value->Convert($converter)));
            -        if (is_string($a))
            -        {
            -            // feature 564991
            -            if (strpos($a,'://'))
            -            {
            -                // php function
            -                return $converter->returnLink($a,str_replace('PHP_MANUAL#','',$this->value->Convert($converter)));
            -            }
            -            return $a;
            -        }
            -        if (is_object($a)) return $converter->returnSee($a);
            -        // getLink parsed a comma-delimited list of linked thingies, add the commas back in
            -        if (is_array($a))
            -        {
            -            $b = '';
            -            foreach($a as $i => $bub)
            -            {
            -                if (!empty($b)) $b .= ', ';
            -                if (is_string($a[$i])) $b .= $a[$i];
            -                if (is_object($a[$i])) $b .= $converter->returnSee($a[$i]);
            -            }
            -            return $b;
            -        }
            -        return false;
            -    }
            -}
            -
            -/**
            - * represents "@license"
            - *
            - * Link to a license, instead of including lines and lines of license information
            - * in every file
            - * @tutorial tags.license.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - */
            -class parserLicenseTag extends parserLinkTag
            -{
            -    /**
            -     * always 'license'
            -     * @var string
            -     */
            -    var $keyword = 'license';
            -    
            -    /**
            -     * URL to link to
            -     * @param string $link
            -     */
            -    function parserLicenseTag($name, $link)
            -    {
            -        $a = explode(' ',$link->getString());
            -        $url = array_shift($a);
            -        $license = join($a,' ');
            -        if (empty($license)) $license = $url;
            -        $a = new parserLinkInlineTag($url, $license);
            -        $b = new parserStringWithInlineTags;
            -        $b->add($a);
            -        $this->value = $b;
            -    }
            -}
            -
            -/**
            - * represents "@uses"
            - *
            - * This is exactly like @see except that the element used has a @useby link to this element added to its docblock
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @tutorial tags.uses.pkg
            - * @since 1.2
            - */
            -class parserUsesTag extends parserSeeTag
            -{
            -    /**
            -     * Always "uses"
            -     * @var string
            -     */
            -    var $keyword = 'uses';
            -    /** @access private */
            -    var $_description;
            -    
            -    /**
            -     * @param string element to link to
            -     * @param parserStringWithInlineTags description of how the element is used
            -     */
            -    function parserUsesTag($seeel, $description)
            -    {
            -        parent::parserSeeTag($seeel);
            -        $this->_description = $description;
            -    }
            -    
            -    /**
            -     * Return a link to documentation for other element, and description of how
            -     * it is used
            -     *
            -     * Works exactly like {@link parent::Convert()} except that it also includes
            -     * a description of how the element used is used.
            -     * @return string
            -     * @param Converter
            -     */
            -    function Convert(&$c)
            -    {
            -        $val = $this->value;
            -        $see = parent::Convert($c);
            -        $this->value = $this->_description;
            -		  $desc_val = parserTag::Convert($c);
            -        if (!empty($desc_val)) {
            -           $see .= ' - '.$desc_val;
            -        }
            -        $this->value = $val;
            -        return $see;
            -    }
            -    
            -    /**
            -     * Get the text of the link to the element that is being used
            -     * @return string
            -     * @access private
            -     */
            -    function getSeeElement()
            -    {
            -        return $this->value->getString();
            -    }
            -    
            -    /**
            -     * Get the description of how the element used is being used.
            -     * @return parserStringWithInlineTags
            -     */
            -    function getDescription()
            -    {
            -        return $this->_description;
            -    }
            -}
            -
            -/**
            - * This is a virtual tag, it is created by @uses to cross-reference the used element
            - *
            - * This is exactly like @uses.
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @since 1.2
            - */
            -class parserUsedByTag extends parserUsesTag
            -{
            -    /**
            -     * Always "usedby"
            -     * @var string
            -     */
            -    var $keyword = 'usedby';
            -    /** @access private */
            -    var $_link;
            -    
            -    /**
            -     * @param abstractLink link of element that uses this element
            -     * @param string description of how the element is used
            -     */
            -    function parserUsedByTag($link, $description)
            -    {
            -        $this->value = $description;
            -        $this->_link = $link;
            -    }
            -    
            -    /**
            -     * @return string
            -     * @param Converter
            -     */
            -    function Convert(&$c)
            -    {
            -        $see = $c->returnSee($this->_link);
            -		  $desc_val = parserTag::Convert($c);
            -        if (!empty($desc_val)) {
            -           $see .= ' - '.$desc_val;
            -        }
            -        return $see;
            -    }
            -}
            -
            -/**
            - * represents "@tutorial"
            - *
            - * This is exactly like @see except that it only links to tutorials
            - * @tutorial phpDocumentor/tutorials.pkg
            - * @tutorial tags.tutorial.pkg
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @since 1.2
            - */
            -class parserTutorialTag extends parserSeeTag
            -{
            -    /**
            -     * Always "tutorial"
            -     * @var string
            -     */
            -    var $keyword = 'tutorial';
            -    /**
            -     * @param Converter
            -     * @see parserStringWithInlineTags::Convert()
            -     */
            -    function Convert(&$converter)
            -    {
            -        $a = $converter->getTutorialLink(trim($this->value->Convert($converter)));
            -        if (is_string($a))
            -        {
            -            return $a;
            -        }
            -        if (is_object($a)) return $converter->returnSee($a);
            -        // getLink parsed a comma-delimited list of linked thingies, add the commas back in
            -        if (is_array($a))
            -        {
            -            $b = '';
            -            foreach($a as $i => $bub)
            -            {
            -                if (!empty($b)) $b .= ', ';
            -                if (is_string($a[$i])) $b .= $a[$i];
            -                if (is_object($a[$i])) $b .= $converter->returnSee($a[$i]);
            -            }
            -            return $b;
            -        }
            -        return false;
            -    }
            -}
            -
            -/**
            - * represents "@filesource"
            - * 
            - * Use this to create a link to a highlighted phpxref-style source file listing
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @tutorial tags.filesource.pkg
            - */
            -class parserFileSourceTag extends parserTag
            -{
            -    /**
            -     * Always "filesource"
            -     * @var string
            -     */
            -    var $keyword = 'filesource';
            -    /** @var array */
            -    var $source;
            -    /** @var string */
            -    var $path;
            -    /**
            -     * Flag variable, controls double writes of file for each converter
            -     * @access private
            -     * @var array
            -     */
            -    var $_converted = array();
            -    /**
            -     * Set {@link $source} to $value, and set up path
            -     * @param string
            -     * @param array output from {@link phpDocumentorTWordParser::getFileSource()}
            -     */
            -    function parserFileSourceTag($filepath, $value)
            -    {
            -        parent::parserTag($this->keyword, '');
            -        $this->path = $filepath;
            -        $this->source = $value;
            -    }
            -
            -    /**
            -     * Return a link to the highlighted source and generate the source
            -     * @uses ConvertSource() generate source code and write it out
            -     * @return string output from {@link getSourceLink()}
            -     * @param Converter
            -     */
            -    function Convert(&$c)
            -    {
            -        if (!isset($this->_converted[$c->name]))
            -        {
            -            $this->ConvertSource($c);
            -            $this->_converted[$c->name] = true;
            -        }
            -        return $this->getSourceLink($c);
            -    }
            -
            -    /**
            -     * @param Converter
            -     * @uses phpDocumentor_HighlightParser highlights source code
            -     * @uses writeSource()
            -     */
            -    function ConvertSource(&$c)
            -    {
            -        $this->writeSource($c, $c->ProgramExample($this->source, true, false, false, false, $this->path));
            -        return;
            -        $parser = new phpDocumentor_HighlightParser;
            -        $return = '';
            -        $return = $parser->parse($this->source,$c, false, false, false, $this->path);
            -        $this->writeSource($c, $return);
            -    }
            -
            -    /**
            -     * @param Converter
            -     * @param string highlighted source code
            -     * @uses Converter::writeSource() export highlighted file source
            -     */
            -    function writeSource(&$c, $source)
            -    {
            -        $c->writeSource($this->path, $source);
            -    }
            -
            -    /**
            -     * @uses Converter::getSourceLink()
            -     * @param Converter
            -     * @return output from getSourceLink()
            -     */
            -    function getSourceLink(&$c)
            -    {
            -        return $c->getSourceLink($this->path);
            -    }
            -}
            -
            -/**
            - * represents "@example"
            - * 
            - * The example tag 
            - * @package phpDocumentor
            - * @subpackage DocBlockTags
            - * @tutorial tags.example.pkg
            - */
            -class parserExampleTag extends parserFileSourceTag
            -{
            -    /**
            -     * always "example"
            -     * @var string
            -     */
            -    var $keyword = 'example';
            -    /**
            -     * Reads and parses the example file indicated
            -     *
            -     * The example tag takes one parameter: the full path to a php file that
            -     * should be parsed and included as an example.
            -     * @uses phpDocumentorTWordParser::getFileSource() uses to parse an example
            -     *       and retrieve all tokens by line number
            -     * @param parserStringWithInlineTags
            -     * @param string path of file containing this @example tag
            -     */
            -    function parserExampleTag($value, $current_path)
            -    {
            -        global $_phpDocumentor_setting;
            -        parent::parserTag('example', $value);
            -        $path = false;
            -        // code thanks to Sam Blum, modified by Greg Beaver
            -        $tagValue = $value->getString();
            -        $path = $isAbsPath = $pathOnly = $fileName = $fileExt = $original_path  = $title = FALSE;
            -        do
            -        {
            -            // make sure the format is stuff.ext description
            -            if (!preg_match('`(.*)\.(\w*)\s(.*)`', $tagValue, $match))
            -            {
            -                // or format is stuff.ext
            -                if (!preg_match('`(.*)\.(\w*)\s*$`', $tagValue, $match))
            -                {
            -                    // Murphy: Some funny path was given
            -                    $original_path = $tagValue; // used for error output
            -                    break; // try-block
            -                }
            -            }
            -            if (strlen($match[1]) === 0)
            -            {
            -                // Murphy: Some funny path was given
            -                $original_path = $tagValue; // used for error output
            -                break; // try-block
            -            }
            -            $fileExt = $match[2];
            -            $title = 'example';
            -            if (isset($match[3]))
            -            {
            -                $title = trim($match[3]);
            -            }
            -            $pathTmp = str_replace('\\', '/', $match[1]); // Replace windows '\' the path.
            -
            -            // Is there a path and a file or is it just a file?
            -            if (strpos($pathTmp,'/') === false)
            -            {
            -                // No path part
            -                $pathOnly = '';
            -                $fileName = $pathTmp .'.'. $fileExt;
            -            } else
            -            {
            -                $splitPos = strrpos($pathTmp,'/'); // split the path on the last directory, find the filename
            -                $pathOnly = substr($match[1], 0, $splitPos+1);
            -                $fileName = substr($match[1], $splitPos+1) .'.'. $fileExt;
            -                // Is the path absolute? (i.e. does it start like an absolute path?)
            -                if (('/' === $pathTmp[0]) || preg_match('`^\w*:`i', $pathTmp))
            -                { // works for both windows 'C:' and URLs like 'http://'
            -                    $isAbsPath = true; // Yes
            -                }
            -            }
            -
            -            $original_path = $pathOnly . $fileName;
            -
            -            // Now look for the file starting with abs. path.
            -            if ($isAbsPath)
            -            {
            -                $tmp = realpath($original_path); // remove any weirdities like /../file.ext
            -                if ($tmp && is_file($tmp))
            -                {
            -                    $path = $tmp;
            -                }
            -                // Alway break if abs. path was detected; even if file was not found.
            -                break; // try-block
            -            }
            -
            -            // Search for the example file some standard places 
            -            // 1) Look if the ini-var examplesdir is set and look there ...
            -            if (isset($_phpDocumentor_setting['examplesdir']))
            -            {
            -                $tmp = realpath($_phpDocumentor_setting['examplesdir'] . PATH_DELIMITER  . $original_path);
            -                if ($tmp && is_file($tmp))
            -                {
            -                    $path = $tmp; // Yo! found it :)
            -                    break; // try-block
            -                }
            -            }
            -
            -            // 2) Then try to look for an 'example/'-dir below the *currently* parsed file ...
            -            if (!empty($current_path))
            -            {
            -                $tmp = realpath(dirname($current_path) . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $fileName);
            -                if ($tmp && is_file($tmp))
            -                {
            -                    $path = $tmp; // Yo! found it :)
            -                    break; // try-block
            -                }
            -            }
            -
            -            // 3) Then try to look for the example file below the subdir PHPDOCUMENTOR_BASE/examples/ ...
            -            if (is_dir(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples'))
            -            {
            -                $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $original_path);
            -                if ($tmp && is_file($tmp))
            -                {
            -                    $path = $tmp; // Yo! found it :)
            -                    break; // try-block
            -                }
            -            }
            -
            -            $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . $original_path);
            -            if ($tmp && is_file($tmp))
            -            {
            -                $path = $tmp; // Yo! found it :)
            -                break; // try-block
            -            }
            -            // If we reach this point, nothing was found and $path is false.
            -        } while (false);
            -
            -        if (!$path)
            -        {
            -            addWarning(PDERROR_EXAMPLE_NOT_FOUND, $original_path);
            -            $this->_title = 'example not found';
            -            $this->path = false;
            -        } else
            -        {
            -            $this->_title = ($title) ? $title : 'example';
            -            // make a unique html-filename but avoid it to get too long.
            -            $uniqueFileName = str_replace(array(':', DIRECTORY_SEPARATOR,'/'), array('_', '_', '_'), $path);
            -            $uniqueFileName = substr($uniqueFileName,-50) . '_' . md5($path);
            -            $this->path = $uniqueFileName;
            -            
            -            $f = @fopen($path,'r');
            -            if ($f)
            -            {
            -                $example = fread($f,filesize($path));
            -                if (tokenizer_ext)
            -                {
            -                    $obj = new phpDocumentorTWordParser;
            -                    $obj->setup($example);
            -                    $this->source = $obj->getFileSource();
            -                    unset($obj);
            -                } else
            -                {
            -                    $this->source = $example;
            -                }
            -            }
            -        }
            -    }
            -    
            -    /**
            -     * @param Converter
            -     * @uses phpDocumentor_HighlightParser highlights source code
            -     * @uses writeSource()
            -     */
            -    function ConvertSource(&$c)
            -    {
            -        $this->writeSource($c, $c->ProgramExample($this->source, true));
            -        return;
            -        $parser = new phpDocumentor_HighlightParser;
            -        $return = '';
            -        $return = $parser->parse($this->source,$c);
            -        $this->writeSource($c, $return);
            -    }
            -
            -    /**
            -     * @param Converter $c
            -     * @param string parsed example source
            -     * @uses Converter::writeExample() writes final example out
            -     * @access private
            -     */
            -    function writeSource(&$c, $source)
            -    {
            -        if ($this->path)
            -        $c->writeExample($this->_title, $this->path, $source);
            -    }
            -
            -    /**
            -     * Retrieve a converter-specific link to the example
            -     *
            -     * @param Converter
            -     * @uses Converter::getExampleLink() retrieve the link to the example
            -     */
            -    function getSourceLink(&$c)
            -    {
            -        if (!$this->path) return $this->_title;
            -        return $c->getExampleLink($this->path, $this->_title);
            -    }
            -}
            -
            -?>
            diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Errors.inc b/buildscripts/PhpDocumentor/phpDocumentor/Errors.inc
            deleted file mode 100644
            index 99bada26..00000000
            --- a/buildscripts/PhpDocumentor/phpDocumentor/Errors.inc
            +++ /dev/null
            @@ -1,793 +0,0 @@
            -
            - * @version $Id: Errors.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
            - */
            -/**
            - * warning triggered when inheritance could be from more than one class
            - */
            -define("PDERROR_MULTIPLE_PARENT",1);
            -/**
            - * warning triggered when parent class doesn't exist
            - */
            -define("PDERROR_PARENT_NOT_FOUND",2);
            -/**
            - * warning triggered when an {@inline tag} is not terminated (no } before the * / ending the comment)
            - */
            -define("PDERROR_UNTERMINATED_INLINE_TAG",3);
            -/**
            - * warning triggered when inheritance could be from more than one class
            - */
            -define("PDERROR_CLASS_EXISTS",4);
            -/**
            - * warning triggered when inheritance could be from more than one class
            - */
            -define("PDERROR_INHERITANCE_CONFLICT",5);
            -/**
            - * warning triggered when a converter is passed to {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
            - */
            -define("PDERROR_CONVERTER_NOT_FOUND",6);
            -/**
            - * warning triggered when a converter is passed to {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
            - */
            -define("PDERROR_NO_CONVERTERS",7);
            -/**
            - * warning triggered when the arguments to @access are neither public nor private
            - */
            -define("PDERROR_ACCESS_WRONG_PARAM",8);
            -/**
            - * warning triggered when there are multiple @access tags in a docblock
            - */
            -define("PDERROR_MULTIPLE_ACCESS_TAGS",9);
            -/**
            - * warning triggered when there are multiple @return tags in a docblock
            - */
            -define("PDERROR_MULTIPLE_RETURN_TAGS",10);
            -/**
            - * warning triggered when there are multiple @var tags in a docblock
            - */
            -define("PDERROR_MULTIPLE_VAR_TAGS",11);
            -/**
            - * warning triggered when there are multiple @package tags in a docblock
            - */
            -define("PDERROR_MULTIPLE_PACKAGE_TAGS",12);
            -/**
            - * warning triggered when there are multiple @subpackage tags in a docblock
            - */
            -define("PDERROR_MULTIPLE_SUBPACKAGE_TAGS",13);
            -/**
            - * warning triggered when the package or subpackage name is illegal
            - */
            -define("PDERROR_ILLEGAL_PACKAGENAME",14);
            -/**
            - * warning triggered when there a @package tag is used in a function, define, method, var or include
            - */
            -define("PDERROR_OVERRIDDEN_PACKAGE_TAGS",15);
            -/**
            - * warning triggered when there a @subpackage tag is used in a function, define, method, var or include
            - */
            -define("PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS",16);
            -/**
            - * warning triggered when classes in the same package have the same name
            - */
            -define("PDERROR_CLASS_CONFLICT",17);
            -/**
            - * warning triggered when classes in the same package have the same name
            - */
            -define("PDERROR_UNKNOWN_TAG",18);
            -/**
            - * warning triggered when there are multiple @name tags in a docblock
            - */
            -define("PDERROR_MULTIPLE_NAME_TAGS",19);
            -/**
            - * warning triggered when there are multiple @name tags in a docblock
            - */
            -define("PDERROR_PACKAGEOUTPUT_DELETES_PARENT_FILE",20);
            -/**
            - * warning triggered when there are multiple @name tags in a docblock
            - */
            -define("PDERROR_GLOBAL_NOT_FOUND",21);
            -/**
            - * warning triggered when there are multiple @name tags in a docblock
            - */
            -define("PDERROR_MULTIPLE_GLOBAL_TAGS",22);
            -/**
            - * warning triggered when there are multiple @name tags in a docblock
            - */
            -define("PDERROR_MALFORMED_GLOBAL_TAG",23);
            -/**
            - * warning triggered when an @ignore tag is used in a DocBlock preceding a method, variable, include, or global variable
            - */
            -define("PDERROR_IGNORE_TAG_IGNORED",24);
            -/**
            - * warning triggered when a duplicate element is encountered that will be ignored by the documentor
            - */
            -define("PDERROR_ELEMENT_IGNORED",25);
            -/**
            - * warning triggered when an entire page is ignored because of @access private
            - */
            -define("PDERROR_PARSEPRIVATE",26);
            -/**
            - * warning triggered when an entire page is ignored because of @access private
            - */
            -define("PDERROR_UNKNOWN_COMMANDLINE",27);
            -/**
            - * warning triggered when an entire page is ignored because of @access private
            - */
            -define("PDERROR_NEED_WHITESPACE",28);
            -/**
            - * warning triggered when an entire page is ignored because of @access private
            - */
            -define("PDERROR_CLASS_PARENT_NOT_FOUND",29);
            -/**
            - * warning triggered when a getClassByPackage is called and can't find the class
            - */
            -define("PDERROR_CLASS_NOT_IN_PACKAGE",30);
            -/**
            - * warning triggered when a { @source } inline tag is used in a docblock not preceding a function
            - */
            -define("PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND",31);
            -/**
            - * warning triggered when a docblock template is never turned off with /**#@-* / (no space)
            - */
            -define("PDERROR_DB_TEMPLATE_UNTERMINATED",32);
            -/**
            - * warning triggered when a docblock has an unmatched <ol> or <ul>
            - */
            -define("PDERROR_UNMATCHED_LIST_TAG",33);
            -/**
            - * warning triggered when another tag is nested in <b> - not allowed in phpDocumentor
            - */
            -define("PDERROR_CANT_NEST_IN_B",34);
            -/**
            - * warning triggered when a docbook tag is not properly matched
            - */
            -define("PDERROR_UNMATCHED_TUTORIAL_TAG",35);
            -/**
            - * warning triggered when an inline tag is found inside an xml tag name in a package page
            - */
            -define("PDERROR_CANT_HAVE_INLINE_IN_TAGNAME",36);
            -/**
            - * warning triggered when a tutorial is referenced via @tutorial/{ @tutorial} and is not found
            - */
            -define("PDERROR_TUTORIAL_NOT_FOUND",37);
            -/**
            - * warning triggered when a tutorial lists itself as a child tutorial
            - */
            -define("PDERROR_TUTORIAL_IS_OWN_CHILD",38);
            -/**
            - * warning triggered when a tutorial's child lists the parent tutorial as a child tutorial
            - */
            -define("PDERROR_TUTORIAL_IS_OWN_GRANDPA",39);
            -/**
            - * warning triggered when a tutorial's child in the .ini file doesn't exist in the
            - * package and subpackage of the parent
            - */
            -define("PDERROR_CHILD_TUTORIAL_NOT_FOUND",40);
            -/**
            - * warning triggered when a  tag is used in the PDF
            - * Converter and no funcname is present ()
            - */
            -define("PDERROR_PDFFUNCTION_NO_FUNC",41);
            -/**
            - * warning triggered when a  tag is used in the PDF
            - * Converter and funcname is not a {@link Cezpdf} method
            - */
            -define("PDERROR_PDF_METHOD_DOESNT_EXIST",42);
            -/**
            - * warning triggered when a  tag is used in the PDF
            - * Converter and "tempvar" is not set from the return of a previous pdffunction tag
            - */
            -define("PDERROR_PDF_TEMPVAR_DOESNT_EXIST",43);
            -/**
            - * warning triggered when a subsection's title is asked for, but the subsection is not found
            - */
            -define("PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND",44);
            -/**
            - * warning triggered when a subsection's title is asked for, but the subsection is not found
            - */
            -define("PDERROR_UNTERMINATED_ATTRIB",45);
            -/**
            - * warning triggered when no @package tag is used in a page-level or class-level DocBlock
            - */
            -define("PDERROR_NO_PACKAGE_TAG",46);
            -/**
            - * warning triggered when no @access private tag is used in a global variable/method/var
            - * with _ as first char in name and --pear was specified
            - */
            -define("PDERROR_PRIVATE_ASSUMED",47);
            -/**
            - * warning triggered when an example's path from @example /path/to/example.php
            - * is not found
            - */
            -define("PDERROR_EXAMPLE_NOT_FOUND",48);
            -/**
            - * warning triggered when an example's path from @example /path/to/example.php
            - * is not found
            - */
            -define("PDERROR_NO_CONVERTER_HANDLER",49);
            -/**
            - * warning triggered when an example's path from @example /path/to/example.php
            - * is not found
            - */
            -define("PDERROR_INLINETAG_IN_SEE",50);
            -/**
            - * warning triggered when an id attribute in a tutorial docbook tag is not
            - * an {@}id} inline tag
            - */
            -define("PDERROR_ID_MUST_BE_INLINE",51);
            -/**
            - * warning triggered when an {@}internal}} tag is not closed
            - */
            -define("PDERROR_INTERNAL_NOT_CLOSED",52);
            -/**
            - * warning triggered when an {@}source} tag is found in a short description
            - */
            -define("PDERROR_SOURCE_TAG_IGNORED",53);
            -/**
            - * warning triggered when a child converter doesn't override getFormattedClassTrees()
            - */
            -define("PDERROR_CONVERTER_OVR_GFCT",54);
            -/**
            - * warning triggered when a package is already associated with a category, and
            - * a new association is found
            - */
            -define("PDERROR_PACKAGECAT_SET",55);
            -/**
            - * warning triggered when text in a docblock list is not contained in
            - * an <
          • > opening tag - */ -define("PDERROR_TEXT_OUTSIDE_LI",56); -/** - * warning triggered when a DocBlock html tag is unclosed - */ -define("PDERROR_UNCLOSED_TAG",57); -/** - * warning triggered by @filesource, if PHP < 4.3.0 - */ -define("PDERROR_TAG_NOT_HANDLED",58); -/** - * warning triggered by sourcecode="on", if PHP < 4.3.0 - */ -define("PDERROR_SOURCECODE_IGNORED",59); -/** - * warning triggered by an empty tag - */ -define("PDERROR_MALFORMED_TAG",60); -/** - * warning triggered by more than 1 @category tag - */ -define("PDERROR_MULTIPLE_CATEGORY_TAGS",61); -/** - * warning triggered by {@}inheritdoc} in a non-inheritable situation - */ -define("PDERROR_INHERITDOC_DONT_WORK_HERE",62); -/** - * warning triggered by @example path/to/example with no title - */ -define("PDERROR_EMPTY_EXAMPLE_TITLE",63); -/** - * warning triggered by non-existent template directory - */ -define("PDERROR_TEMPLATEDIR_DOESNT_EXIST",64); -/** - * warning triggered by an unterminated entity in a tutorial - */ -define("PDERROR_UNTERMINATED_ENTITY",65); -/** - * warning triggered by an unterminated entity in a tutorial - */ -define("PDERROR_BEAUTIFYING_FAILED",66); -/** - * warning triggered by a function with no name - * - *
            - * function ($params)
            - * {
            - * }
            - * 
            - * triggers this error - */ -define("PDERROR_FUNCTION_HAS_NONAME",67); -/** - * warning triggered by a page-level docblock preceding a source element - * - * - * - */ -define("PDERROR_DOCBLOCK_CONFLICT", 68); -/** - * warning triggered when a file does not contain a page-level docblock - */ -define("PDERROR_NO_PAGE_LEVELDOCBLOCK", 69); -/** - * warning triggered when the first docblock in a file with a @package tag - * precedes a class. In this case, the class gets the docblock. - */ -define("PDERROR_DOCBLOCK_GOES_CLASS", 70); -/** - * warning triggered in tutorial parsing if there is a missing {@id} inline tag - */ -define("PDERROR_NO_DOCBOOK_ID", 71); -/** - * warning triggered if someone brilliant tries "class X extends X {" - */ -define("PDERROR_CANNOT_EXTEND_SELF", 72); - -/** - * Error messages for phpDocumentor parser warnings - * @global array $GLOBALS['phpDocumentor_warning_descrip'] - * @name $phpDocumentor_warning_descrip - */ -$GLOBALS['phpDocumentor_warning_descrip'] = - array( - PDERROR_MULTIPLE_PARENT => 'Class %s has multiple possible parents, package inheritance aborted', - PDERROR_PARENT_NOT_FOUND => 'Class %s parent %s not found', - PDERROR_INHERITANCE_CONFLICT => 'Class %s in file %s has multiple possible parents named %s. Cannot resolve name conflict,'."\n".' try ignoring a file that contains the conflicting parent class', - PDERROR_UNKNOWN_TAG => 'Unknown tag "@%s" used', - PDERROR_IGNORE_TAG_IGNORED => '@ignore tag used for %s element "%s" will be ignored', - PDERROR_ELEMENT_IGNORED => "\n".'duplicate %s element "%s" in file %s will be ignored.'."\n".'Use an @ignore tag on the original if you want this case to be documented.', - PDERROR_PARSEPRIVATE => "entire page %s ignored because of @access private.\nChoose -pp to enable parsing of private elements", - PDERROR_CLASS_PARENT_NOT_FOUND => "class %s in package %s parent not found in @see parent::%s", - PDERROR_CLASS_NOT_IN_PACKAGE => "class %s was not found in package %s", - PDERROR_DB_TEMPLATE_UNTERMINATED => "docblock template never terminated with /**#@-*/", - PDERROR_PDF_METHOD_DOESNT_EXIST => ' called, but pdf method "%s" doesn\'t exist', - PDERROR_TUTORIAL_NOT_FOUND => "tutorial \"%s\" not found, does it exist?", - PDERROR_CHILD_TUTORIAL_NOT_FOUND => 'child tutorial "%s" listed in %s not found in parent package "%s" subpackage "%s"', - PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND => 'tutorial %s subsection "%s" doesn\'t exist, but its title was asked for', - PDERROR_NO_PACKAGE_TAG => 'no @package tag was used in a DocBlock for %s %s', - PDERROR_PRIVATE_ASSUMED => '%s "%s" is assumed to be @access private because its name starts with _, but has no @access tag', - PDERROR_EXAMPLE_NOT_FOUND => 'example file "%s" does not exist', - PDERROR_SOURCE_TAG_IGNORED => '{@source} can only be used in the long description, not in the short description: "%s"', - PDERROR_PACKAGECAT_SET => 'package %s is already in category %s, will now replace with category %s', - PDERROR_SOURCECODE_IGNORED => 'sourcecode command-line option is ignored for PHP versions < 4.3.0', - PDERROR_INHERITDOC_DONT_WORK_HERE => '{@inheritdoc} can only be used in the docblock of a child class', - PDERROR_EMPTY_EXAMPLE_TITLE => 'Example file found at "%s" has no title, using "%s"', - PDERROR_DOCBLOCK_CONFLICT => 'Page-level DocBlock precedes "%s %s", use another DocBlock to document the source element', - PDERROR_NO_PAGE_LEVELDOCBLOCK => 'File "%s" has no page-level DocBlock, use @package in the first DocBlock to create one', - PDERROR_DOCBLOCK_GOES_CLASS => 'DocBlock would be page-level, but precedes class "%s", use another DocBlock to document the file', - PDERROR_NO_DOCBOOK_ID => 'Tutorial section %s "%s" has no id="{@id subsection}" tag ({@id} for refentry)', - PDERROR_BEAUTIFYING_FAILED => 'Beautifying failed: %s', - ); - - - -//******************************************************** - - - -/** - * Error messages for phpDocumentor parser errors - * @global array $GLOBALS['phpDocumentor_error_descrip'] - * @name $phpDocumentor_error_descrip - */ -$GLOBALS['phpDocumentor_error_descrip'] = - array( - PDERROR_UNTERMINATED_INLINE_TAG => 'Inline tag {@%s} in tag %s is unterminated, "%s"', - PDERROR_CLASS_EXISTS => 'Class %s already exists in package "%s"', - PDERROR_CONVERTER_NOT_FOUND => 'Converter %s specified by --output command-line option is not a class', - PDERROR_NO_CONVERTERS => 'No Converters have been specified by --output command-line option', - PDERROR_ACCESS_WRONG_PARAM => '@access was passed neither "public" nor "private." Was passed: "%s"', - PDERROR_MULTIPLE_ACCESS_TAGS => 'DocBlock has multiple @access tags, illegal. ignoring additional tag "@access %s"', - PDERROR_MULTIPLE_RETURN_TAGS => 'DocBlock has multiple @return tags, illegal. ignoring additional tag "@return %s %s"', - PDERROR_MULTIPLE_VAR_TAGS => 'DocBlock has multiple @var tags, illegal. ignoring additional tag "@var %s %s"', - PDERROR_MULTIPLE_PACKAGE_TAGS => 'DocBlock has multiple @package tags, illegal. ignoring additional tag "@package %s"', - PDERROR_MULTIPLE_SUBPACKAGE_TAGS => 'DocBlock has multiple @subpackage tags, illegal. ignoring additional tag "@subpackage %s"', - PDERROR_ILLEGAL_PACKAGENAME => '@%s tag has illegal %s name "%s"', - PDERROR_OVERRIDDEN_PACKAGE_TAGS => '%s %s\'s DocBlock has @package tag, illegal. ignoring tag "@package %s"', - PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS => '"%s" %s\'s DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage %s"', - PDERROR_CLASS_CONFLICT => 'class "%s" has multiple declarations in package %s, in file %s and file %s, documentation will have output errors!', - PDERROR_MULTIPLE_NAME_TAGS => 'DocBlock has multiple @name tags, illegal. ignoring additional tag "@name %s"', - PDERROR_PACKAGEOUTPUT_DELETES_PARENT_FILE => '-po (packageoutput) option deletes parent file "%s" containing class "%s."'."\n".' Try using --defaultpackagename (-dn) %s to include the parent file in the same package as the class', - PDERROR_GLOBAL_NOT_FOUND => 'global variable %s specified in @global tag was never found', - PDERROR_MULTIPLE_GLOBAL_TAGS => '@global define tag already used for global variable "%s", ignoring @global %s', - PDERROR_MALFORMED_GLOBAL_TAG => 'incorrect @global syntax. Should be @global vartype $varname or @global vartype description', - PDERROR_UNKNOWN_COMMANDLINE => 'Unknown command-line option "%s" encountered, use phpdoc -h for help', - PDERROR_NEED_WHITESPACE => 'phpDocumentor programmer error - wordparser whitespace set to false in handleDocBlock, notify developers. You should never see this error', - PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND => '{@source} tag used in a docblock that isn\'t preceding a function', - PDERROR_UNMATCHED_LIST_TAG => 'unmatched ol or ul tag in DocBlock, parsing will be incorrect', - PDERROR_CANT_NEST_IN_B => 'Can\'t nest a code, pre, ul, or ol tag in a b tag in phpDocumentor DocBlock (%s tag nested)', - PDERROR_UNMATCHED_TUTORIAL_TAG => 'While parsing extended documentation, "%s" tag was matched with "%s" endtag, missing endtag'."\ntag contents:\"%s\"", - PDERROR_CANT_HAVE_INLINE_IN_TAGNAME => 'Can\'t have an inline tag inside a package page XML tag!', - PDERROR_TUTORIAL_IS_OWN_CHILD => 'Tutorial %s lists itself as its own child in %s, illegal', - PDERROR_TUTORIAL_IS_OWN_GRANDPA => 'Tutorial %s\'s child %s lists %s as its child in %s, illegal', - PDERROR_PDFFUNCTION_NO_FUNC => 'Invalid pdffunction syntax: "", should be ""', - PDERROR_PDF_TEMPVAR_DOESNT_EXIST => ' called but temporary variable "%s" doesn\'t exist', - PDERROR_UNTERMINATED_ATTRIB => 'Tutorial tag %s attribute %s is unterminated, current value "%s"', - PDERROR_NO_CONVERTER_HANDLER => 'Handler for element of type "%s" called, but %s is not a method of %s', - PDERROR_INLINETAG_IN_SEE => 'Inline tags are not allowed in a @see tag', - PDERROR_ID_MUST_BE_INLINE => '<%s id="%s"> must be <%s id="{@id %s}">', - PDERROR_INTERNAL_NOT_CLOSED => '{@internal was never terminated with }}', - PDERROR_CONVERTER_OVR_GFCT => 'Converter "%s" must override getFormattedClassTrees() but doesn\'t', - PDERROR_TEXT_OUTSIDE_LI => 'Text cannot be outside of li tag in a DocBlock list, parsing will be incorrect', - PDERROR_UNCLOSED_TAG => 'Unclosed %s tag in DocBlock, parsing will be incorrect', - PDERROR_TAG_NOT_HANDLED => '"%s" tag is not available in PHP versions less than 4.3.0, tag ignored', - PDERROR_MALFORMED_TAG => '"%s" tag was used without any parameters, illegal', - PDERROR_MULTIPLE_CATEGORY_TAGS => 'package has multiple @category tags, ignoring "@category %s"', - PDERROR_TEMPLATEDIR_DOESNT_EXIST => 'template directory "%s" does not exist', - PDERROR_UNTERMINATED_ENTITY => 'entity &%s is unterminated', - PDERROR_FUNCTION_HAS_NONAME => 'function has no name (PHP error - test your file before parsing!)', - PDERROR_CANNOT_EXTEND_SELF => 'class %s cannot extend itself - TEST YOUR CODE BEFORE PARSING', - ); - -/** - * encapsulates warning information - * @package phpDocumentor - * @subpackage Errors - */ -class RecordWarning -{ - /** - * name of global variable that descriptors for this warning/error is kept - * @var string - */ - var $type = 'phpDocumentor_warning_descrip'; - /** - * file this error occurred in - * @var string - */ - var $file = false; - /** - * line number of the file this error occurred in - * @var integer - */ - var $linenum; - /** - * error string - * @var string - */ - var $data; - /** - * error number - * @see Errors.inc - * @var string - */ - var $num; - /** - * @param string $file filename this error occurred in ({@link $file}) - * @param integer $linenum line number this error occurred on ({@link $linenum}) - * @param integer $num Error number defined in {@link Errors.inc} - * @param string $data... variable number of strings, up to 4, to sprintf based on the error number - */ - function RecordWarning($file,$linenum,$num) - { - $this->file = $file; - $this->linenum = $linenum; - $a = array('','','',''); - if (func_num_args()>3) - { - for($i=3;$inum = $num; - $this->data = sprintf($GLOBALS[$this->type][$this->num],$a[0],$a[1],$a[2],$a[3]); - $this->output(); - } - - /** - * prints the warning - */ - function output($string = false) - { - if ($string) - { - if ($this->file) - return "WARNING in $this->file on line $this->linenum: $this->data\n"; - else - return "WARNING: $this->data\n"; - } - if ($this->file) - phpDocumentor_out("WARNING in $this->file on line $this->linenum: $this->data\n"); - else - phpDocumentor_out("WARNING: $this->data\n"); - flush(); - } -} - -/** - * encapsulates error information - * @package phpDocumentor - * @subpackage Errors - */ -class RecordError extends RecordWarning -{ - /** - * name of global variable that descriptors for this warning/error is kept - * @var string - */ - var $type = 'phpDocumentor_error_descrip'; - - /** - * prints the error - */ - function output($string = false) - { - if ($string) - { - if ($this->file) - return "\n\tERROR in $this->file on line $this->linenum: $this->data\n"; - else - return "\n\tERROR: $this->data\n"; - } - if ($this->file) - phpDocumentor_out("\n\tERROR in $this->file on line $this->linenum: $this->data\n"); - else - phpDocumentor_out("\n\tERROR: $this->data\n"); - flush(); - } -} - -/** - * contains all the errors/warnings - * @see $errors, $warnings - * @package phpDocumentor - * @subpackage Errors - */ -class ErrorTracker -{ - /** - * array of {@link RecordError}s - * @var array - */ - var $errors = array(); - /** - * array of {@link RecordWarning}s - * @var array - */ - var $warnings = array(); - /** - * @var string - */ - var $curfile = ''; - /** - * @var integer - */ - var $linenum = 0; - - /** - * index in {@link $errors} of last error triggered - * @var integer|false - */ - var $lasterror = false; - - /** - * index in {@link $warnings} of last warning triggered - * @var integer|false - */ - var $lastwarning = false; - - /** - * This function subscribes to two events in the Parser in order to keep track of line number information and file name. - * @param integer $num parser-passed event (see {@link PHPDOCUMENTOR_EVENT_NEWLINENUM, PHPDOCUMENTOR_EVENT_NEWFILE}) - * @param mixed $data either a line number if $num is PHPDOCUMENTOR_EVENT_NEWLINENUM or a file name if $num is PHPDOCUMENTOR_EVENT_NEWFILE - */ - function handleEvent($num,$data) - { - switch($num) - { - case PHPDOCUMENTOR_EVENT_NEWLINENUM : - $this->linenum = $data; - break; - case PHPDOCUMENTOR_EVENT_NEWFILE : - $this->linenum = 0; - $this->curfile = $data; - break; - // debugging - case 1000000635 : - phpDocumentor_out($this->curfile.' has '.$this->linenum.' lines'."\n"); - flush(); - break; - } - } - - /** - * add a new warning to the {@link $warnings} array - * @param integer $num error number from {@link Errors.inc} - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num - */ - function addWarning($num) - { - $a = array('','','',''); - if (func_num_args()>1) - { - for($i=1;$iwarnings[] = new RecordWarning($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3]); - $this->lastwarning = count($this->warnings) - 1; - } - - /** - * add a new error to the {@link $errors} array - * @param integer $num error number from {@link Errors.inc} - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num - */ - function addError($num) - { - $a = array('','','',''); - if (func_num_args()>1) - { - for($i=1;$ierrors[] = new RecordError($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3]); - $this->lasterror = count($this->errors) - 1; - } - - /** - * add a new error to the {@link $errors} array and returns the error string - * @param integer $num error number from {@link Errors.inc} - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num - */ - function addErrorReturn($num) - { - $a = array('','','',''); - if (func_num_args()>1) - { - for($i=1;$ierrors[] = new RecordError($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3],false); - $this->lasterror = count($this->errors) - 1; - } - - /** - * Get sorted array of all warnings in parsing/conversion - * @return array - */ - function &returnWarnings() - { - usort($this->warnings,array($this,"errorsort")); - return $this->warnings; - } - - /** - * Get sorted array of all non-fatal errors in parsing/conversion - * @return array - */ - function &returnErrors() - { - usort($this->errors,array($this,"errorsort")); - return $this->errors; - } - - /** - * @access private - * @param RecordError|RecordWarning - * @param RecordError|RecordWarning - */ - function errorsort($a, $b) - { - if (!$a->file) return -1; - if (!$b->file) return 1; - if ($a->file == $b->file) - { - if ($a->linenum == $b->linenum) return 0; - if ($a->linenum < $b->linenum) return -1; - return 1; - } - return strnatcasecmp($a->file,$b->file); - } - - /** - * Get the error message of the last error - * @return string - */ - function returnLastError() - { - return $this->errors[$this->lasterror]->output(true); - } - - /** - * Get the warning message of the last warning - * @return string - */ - function returnLastWarning() - { - return $this->warnings[$this->lastwarning]->output(true); - } -} - -/** - * @global ErrorTracker $GLOBALS['phpDocumentor_errors'] - * @name $phpDocumentor_errors - */ -$GLOBALS['phpDocumentor_errors'] = new ErrorTracker; - -/** - * @param integer $num error number from {@link Errors.inc} - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num - * @see ErrorTracker::addError() - */ -function addError($num) -{ - global $phpDocumentor_errors; - $a = array('','','',''); - if (func_num_args()>1) - { - for($i=1;$iaddError($num,$a[0],$a[1],$a[2],$a[3]); -} - -/** - * like {@link addError()} but exits parsing - * @param integer $num error number from {@link Errors.inc} - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num - * @global ErrorTracker repository for all errors generated by phpDocumentor - * @see ErrorTracker::addError() - */ -function addErrorDie($num) -{ - global $phpDocumentor_errors; - $a = array('','','',''); - if (func_num_args()>1) - { - for($i=1;$iaddErrorReturn($num,$a[0],$a[1],$a[2],$a[3]); - die($phpDocumentor_errors->returnLastError()); -} - -/** - * @param integer $num warning number from {@link Errors.inc} - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num - * @global ErrorTracker repository for all errors generated by phpDocumentor - * @see ErrorTracker::addWarning() - */ -function addWarning($num) -{ - global $phpDocumentor_errors; - $a = array('','','',''); - if (func_num_args()>1) - { - for($i=1;$iaddWarning($num,$a[0],$a[1],$a[2],$a[3]); -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc b/buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc deleted file mode 100644 index 5e2690e8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc +++ /dev/null @@ -1,78 +0,0 @@ - - * @version $Id: EventStack.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $ - * @package phpDocumentor - */ -/** - * An event Stack - * - * @author Joshua Eichorn - * @version $Id: EventStack.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $ - * @package phpDocumentor - */ -class EventStack -{ - /** - * The stack - * @var array - */ - var $stack = array(PARSER_EVENT_NOEVENTS); - - /** - * The number of events in the stack - * @var integer - */ - var $num = 0; - - /** - * Push an event onto the stack - * - * @param int $event All events must be constants - */ - function pushEvent($event) - { - $this->num = array_push($this->stack,$event) - 1; - } - - /** - * Pop an event from the stack - * - * @return int An event - */ - function popEvent() - { - $this->num--; - return array_pop($this->stack); - } - - /** - * Get the current event - * - * @return int An event - */ - function getEvent() - { - return $this->stack[$this->num]; - } -} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc deleted file mode 100644 index f2a26ee9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc +++ /dev/null @@ -1,2354 +0,0 @@ -_parser = &$parser; - $this->data = &$input; - $this->_all = $input; - $this->_sourceline = 0; - $this->pos = 0; - $this->linenum = 0; - } - - /** - * debugging function - * @access private - */ - function printState() - { - $linenum = $this->linenum; - $pos = $this->pos; - if (!isset($this->_all[$this->linenum][$this->pos])) - { - $linenum++; - $pos = 0; - } - $details = ''; - $token = $this->_all[$linenum][$pos]; - if (is_array($token)) - { - $details = token_name($token[0]); - $token = htmlspecialchars($token[1]); - } else $token = htmlspecialchars($token); - debug('Next Token '.$this->linenum.'-'.$this->pos.':'.$details); - var_dump($token); - } - - /** - * Retrieve the position of the next token that will be parsed - * in the internal token array - * @return array format: array(line number, position) - */ - function nextToken() - { - $linenum = $this->linenum; - $pos = $this->pos; - if (!isset($this->_all[$this->linenum][$this->pos])) - { - $linenum++; - $pos = 0; - } - if (!isset($this->_all[$linenum][$pos])) return false; - return array($linenum, $pos); - } - - /** - * Retrieve the next token - * @return array|string either array(PHP token constant, token) or string - * non-specific separator - */ - function getWord() - { - if (!isset($this->_all[$this->linenum][$this->pos])) - { - $this->linenum++; - $this->pos = 0; - if (!isset($this->_all[$this->linenum])) return false; - $this->_parser->newLineNum(); - return $this->getWord(); - } - $word = $this->_all[$this->linenum][$this->pos++]; - return str_replace("\t",' ',$word); - } - - /** - * back the word parser to the previous token as defined by $last_token - * @param array|string token, or output from {@link nextToken()} - * @param boolean if true, backupPos interprets $last_token to be the - * position in the internal token array of the last token - */ - function backupPos($last_token, $is_pos = false) - { - if ($is_pos) - { - $this->linenum = $last_token[0]; - $this->pos = $last_token[1]; - return; - } - if ($last_token === false) return; -//fancy_debug('before',$this->linenum,$this->pos,token_name($this->_all[$this->linenum][$this->pos][0]),htmlentities($this->_all[$this->linenum][$this->pos][1]),$this->_all[$this->linenum]); - do - { - $this->pos--; - if ($this->pos < 0) - { - $this->linenum--; - if ($this->linenum < 0) { - var_dump($last_token); - break; - } - $this->pos = count($this->_all[$this->linenum]) - 1; - } - } while (!$this->tokenEquals($last_token,str_replace("\t", ' ', $this->_all[$this->linenum][$this->pos]))); - //fancy_debug('after',$this->linenum,$this->pos,token_name($this->_all[$this->linenum][$this->pos][0]),htmlentities($this->_all[$this->linenum][$this->pos][1])); - } -} - -/** - * Highlights source code using {@link parse()} - * @package phpDocumentor - * @subpackage Parsers - */ -class phpDocumentor_HighlightParser extends phpDocumentorTParser -{ - /**#@+ @access private */ - /** - * Highlighted source is built up in this string - * @var string - */ - var $_output; - /** - * contents of the current source code line as it is parsed - * @var string - */ - var $_line; - /** - * Used to retrieve highlighted tokens - * @var Converter a descendant of Converter - */ - var $_converter; - /** - * Path to file being highlighted, if this is from a @filesource tag - * @var false|string full path - */ - var $_filesourcepath; - /** - * @var array - */ - var $eventHandlers = array( - PARSER_EVENT_ARRAY => 'defaultHandler', - PARSER_EVENT_CLASS => 'handleClass', - PARSER_EVENT_COMMENT => 'handleComment', - PARSER_EVENT_DOCBLOCK_TEMPLATE => 'handleDocBlockTemplate', - PARSER_EVENT_END_DOCBLOCK_TEMPLATE => 'handleEndDocBlockTemplate', - PARSER_EVENT_LOGICBLOCK => 'handleLogicBlock', - PARSER_EVENT_METHOD_LOGICBLOCK => 'handleMethodLogicBlock', - PARSER_EVENT_NOEVENTS => 'defaultHandler', - PARSER_EVENT_OUTPHP => 'defaultHandler', - PARSER_EVENT_CLASS_MEMBER => 'handleClassMember', - PARSER_EVENT_DEFINE => 'defaultHandler', - PARSER_EVENT_DEFINE_PARAMS => 'defaultHandler', - PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS => 'defaultHandler', - PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS => 'defaultHandler', - PARSER_EVENT_DOCBLOCK => 'handleDocBlock', - PARSER_EVENT_TAGS => 'handleTags', - PARSER_EVENT_DESC => 'handleDesc', - PARSER_EVENT_DOCKEYWORD => 'handleTag', - PARSER_EVENT_DOCKEYWORD_EMAIL => 'handleDockeywordEmail', - PARSER_EVENT_EOFQUOTE => 'handleQuote', - PARSER_EVENT_FUNCTION => 'handleFunction', - PARSER_EVENT_METHOD => 'handleMethod', - PARSER_EVENT_FUNCTION_PARAMS => 'handleFunctionParams', - PARSER_EVENT_FUNC_GLOBAL => 'handleFuncGlobal', - PARSER_EVENT_INLINE_DOCKEYWORD => 'handleInlineDockeyword', - PARSER_EVENT_INCLUDE => 'defaultHandler', - PARSER_EVENT_INCLUDE_PARAMS => 'defaultHandler', - PARSER_EVENT_QUOTE => 'handleQuote', - PARSER_EVENT_QUOTE_VAR => 'handleQuoteVar', - PARSER_EVENT_PHPCODE => 'handlePhpCode', - PARSER_EVENT_SINGLEQUOTE => 'handleSingleQuote', - PARSER_EVENT_STATIC_VAR => 'defaultHandler', - PARSER_EVENT_STATIC_VAR_VALUE => 'defaultHandler', - PARSER_EVENT_VAR => 'handleVar', - ); - - /** - * event handlers for @tags - * @tutorial tags.pkg - */ - var $tagHandlers = array( - '*' => 'defaultTagHandler', - 'abstract' => 'coreTagHandler', - 'access' => 'coreTagHandler', - 'author' => 'coreTagHandler', - 'category' => 'coreTagHandler', - 'copyright' => 'coreTagHandler', - 'deprecated' => 'coreTagHandler', - 'example' => 'coreTagHandler', - 'filesource' => 'coreTagHandler', - 'final' => 'coreTagHandler', - 'global' => 'globalTagHandler', - 'ignore' => 'coreTagHandler', - 'license' => 'coreTagHandler', - 'link' => 'coreTagHandler', - 'name' => 'coreTagHandler', - 'package' => 'coreTagHandler', - 'param' => 'paramTagHandler', - 'parameter' => 'paramTagHandler', - 'see' => 'coreTagHandler', - 'since' => 'coreTagHandler', - 'subpackage' => 'coreTagHandler', - 'internal' => 'coreTagHandler', - 'return' => 'returnTagHandler', - 'static' => 'coreTagHandler', - 'staticvar' => 'staticvarTagHandler', - 'throws' => 'coreTagHandler', - 'todo' => 'coreTagHandler', - 'tutorial' => 'coreTagHandler', - 'uses' => 'coreTagHandler', - 'var' => 'varTagHandler', - 'version' => 'coreTagHandler', - ); - /**#@-*/ - - /** - * @uses Converter::SourceLine() encloses {@link $_line} in a - * converter-specific format - */ - function newLineNum() - { - if ($this->_pf_no_output_yet) return; - $this->_flush_save(); - $this->_line .= $this->_converter->flushHighlightCache(); - $this->_output .= $this->_converter->SourceLine($this->_wp->linenum, $this->_line, $this->_path); - $this->_line = ''; - } - - /** - * Start the parsing at a certain line number - */ - function setLineNum($num) - { - $this->_wp->linenum = $num; - } - - /** - * Parse a new file - * - * The parse() method is a do...while() loop that retrieves tokens one by - * one from the {@link $_event_stack}, and uses the token event array set up - * by the class constructor to call event handlers. - * - * The event handlers each process the tokens passed to them, and use the - * {@link _addoutput()} method to append the processed tokens to the - * {@link $_line} variable. The word parser calls {@link newLineNum()} - * every time a line is reached. - * - * In addition, the event handlers use special linking functions - * {@link _link()} and its cousins (_classlink(), etc.) to create in-code - * hyperlinks to the documentation for source code elements that are in the - * source code. - * - * @uses setupStates() initialize parser state variables - * @uses configWordParser() pass $parse_data to prepare retrieval of tokens - * @param array $parse_data - * @param Converter $converter - * @param boolean $inlinesourceparse whether this data is from an - * inline {@}source} tag - * @param string|false if a string, it is the name of the class whose - * method we are parsing containing a {@}source} tag - * @param false|integer starting line number from {@}source linenum} - * @param false|string full path to file with @filesource tag, if this - * is a @filesource parse - * @staticvar integer used for recursion limiting if a handler for - * an event is not found - * @return bool - */ - function parse (&$parse_data, &$converter, $inlinesourceparse = false, $class = false, $linenum = false, $filesourcepath = false) - { - if (!tokenizer_ext) - { - if (is_array($parse_data)) - { - $parse_data = join($parse_data,''); - } - $parse_data = explode("\n", $parse_data); - $this->_output = ''; - foreach($parse_data as $linenum => $line) - { - if ($linenum > 0) - { - $this->_output .= $converter->SourceLine($linenum, $line, $filesourcepath); - } - } - return $converter->PreserveWhiteSpace($this->_output); - } - static $endrecur = 0; - $this->_converter = &$converter; - $converter->startHighlight(); - $this->_path = $filesourcepath; - $this->setupStates($inlinesourceparse, $class); - - $this->configWordParser($parse_data); - if ($linenum !== false) $this->setLineNum($linenum); - // initialize variables so E_ALL error_reporting doesn't complain - $pevent = 0; - $word = 0; - - do - { - $lpevent = $pevent; - $pevent = $this->_event_stack->getEvent(); - if ($lpevent != $pevent) - { - $this->_last_pevent = $lpevent; - } - - if ($pevent == PARSER_EVENT_CLASS_MEMBER) - { - $this->_wp->setWhitespace(true); - } else - { - $this->_wp->setWhitespace(false); - } - - if (!is_array($word)) $lw = $word; - if (is_array($word) && $word[0] != T_WHITESPACE) $lw = $word; - $dbg_linenum = $this->_wp->linenum; - $dbg_pos = $this->_wp->getPos(); - $word = $this->_wp->getWord(); - if (is_array($word) && $word[0] == T_WHITESPACE && $pevent != PARSER_EVENT_CLASS_MEMBER) - { -// debug("added ".$this->_wp->linenum.'-'.$this->_wp->pos); - $this->_addoutput($word); - continue; - } else $this->_pv_last_word = $lw; - if ($pevent != PARSER_EVENT_DOCBLOCK) - { - $this->_pv_last_next_word = $this->_pv_next_word; - $this->_pv_next_word = $this->_wp->nextToken(); - } - // in wordparser, have to keep track of lines -// $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWLINENUM, $this->_wp->linenum); - if (0)//PHPDOCUMENTOR_DEBUG == true) - { - echo "LAST: "; - if (is_array($this->_pv_last_word)) - { - echo token_name($this->_pv_last_word[0]). ' => |'.htmlspecialchars($this->_pv_last_word[1]); - } else echo "|" . $this->_pv_last_word; - echo "|\n"; - echo "PEVENT: " . $this->getParserEventName($pevent) . "\n"; - echo "LASTPEVENT: " . $this->getParserEventName($this->_last_pevent) . "\n"; -// echo "LINE: ".$this->_line."\n"; -// echo "OUTPUT: ".$this->_output."\n"; - echo $dbg_linenum.'-'.$dbg_pos . ": "; - if (is_array($word)) - { - echo token_name($word[0]).' => |'.htmlspecialchars($word[1]); - } else echo '|'.htmlspecialchars($word); - echo "|\n"; - $this->_wp->printState(); - echo "NEXT TOKEN: "; - $tok1 = $this->_pv_next_word; - $tok = $this->_wp->_all[$tok1[0]][$tok1[1]]; - if (is_array($tok)) - { - echo token_name($tok[0]). ' => '.$tok1[0].'-'.$tok1[1].'|'.htmlspecialchars($tok[1]); - } else echo "|" . $tok; - echo "|\n"; - echo "-------------------\n\n\n"; - flush(); - } - if (isset($this->eventHandlers[$pevent])) - { - $handle = $this->eventHandlers[$pevent]; - $this->$handle($word, $pevent); - } else - { - debug('WARNING: possible error, no handler for event number '.$pevent); - if ($endrecur++ == 25) - { - die("FATAL ERROR, recursion limit reached"); - } - } - } while (!($word === false)); - if (strlen($this->_line)) $this->newLineNum(); - return $this->_output; - } - - /**#@+ - * Event Handlers - * - * All Event Handlers use {@link checkEventPush()} and - * {@link checkEventPop()} to set up the event stack and parser state. - * @access private - * @param string|array token value - * @param integer parser event from {@link Parser.inc} - */ - /** - * Most tokens only need highlighting, and this method handles them - */ - function defaultHandler($word, $pevent) - { - $this->_addoutput($word); - if ($this->checkEventPush($word, $pevent)) return; - $this->checkEventPop($word, $pevent); - } - - /** - * Handles global declarations in a function, like: - * - * - * function foobar() - * { - * global $_phpDocumentor_setting; - * } - * - * @uses _globallink() instead of _addoutput(), to link to global variables - * if they are used in a function - */ - function handleFuncGlobal($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) return; - $this->_globallink($word); - $this->checkEventPop($word, $pevent); - } - - /** - * Handles strings in quotation marks and heredoc - * - * Special handling is needed for strings that contain variables like: - * - * $a = "$test string" - * - * The tokenizer parses out tokens '"',array(T_VARIABLE,'$test'),' string', - * and '"'. Since it is possible to have $this->classvar in a string, - * we save a variable name just in case the next token is -> to allow linking - * to class members. Otherwise, the string is simply highlighted. - * - * constant strings (with no $variables in them) are passed as a single - * entity, and so will be saved in the last token parsed. This means the - * event handler must tell the word parser to re-retrieve the current token - * so that the correct event handler can process it. - */ - function handleQuote($word, $pevent) - { - if ($this->_pf_inmethod && is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word; - if ($this->checkEventPush($word, $pevent)) - { - $this->_addoutput($word); - return; - } - if ($this->_pf_quote_active && - (($this->_pv_last_word == '"' && $this->_last_pevent != PARSER_EVENT_QUOTE) || - (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_END_HEREDOC && - $this->_last_pevent != PARSER_EVENT_EOFQUOTE))) - { - $this->_pf_quote_active = false; - $this->_wp->backupPos($word); - $this->_event_stack->popEvent(); - return; - } - if (!$this->_pf_quote_active && - (($this->_pv_last_word == '"' && $this->_last_pevent != PARSER_EVENT_QUOTE) || - (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_END_HEREDOC && - $this->_last_pevent != PARSER_EVENT_EOFQUOTE))) - { - if (is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word; - $this->_pf_quote_active = true; - $this->_save_highlight_state = $this->_converter->getHighlightState(); - $this->_converter->startHighlight(); - $this->_addoutput($word); - $this->checkEventPop($word, $pevent); - return; - } elseif (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_CONSTANT_ENCAPSED_STRING) - { -// $this->_pv_quote_data = $this->_pv_last_word[1]; - $this->_event_stack->popEvent(); - $this->_wp->backupPos($word); - return; - } - if ($this->checkEventPop($word, $pevent)) - { - $this->_pf_quote_active = false; - } - $this->_addoutput($word); - } - - /** - * Handles {$variable} within a "quote" - * - * This is a simple handler, for a very complex - * array of legal syntax. It is legal to nest control structures - * inside the {}, and other weird stuff. - */ - function handleQuoteVar($word, $pevent) - { - if ($this->checkEventPop($word, $pevent)) - { - $this->_pf_quote_active = true; - $this->_addoutput($word); - return; - } - if ($this->_pf_inmethod && is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word; - if ($this->checkEventPush($word, $pevent)) - { - $this->_pf_quote_active = false; - if (is_string($word) && ($word == '{' || $word == '"' || $word == "'")) - { - $this->_pf_quote_active = true; - $this->_pv_lastvar = false; - } - } - $this->_addoutput($word); - } - - /** - * Handles define() statements - * - * The only thing this handler cares about is retrieving the name of the - * define variable, and the end of the define statement, so after the name - * is found, it simply makes sure parentheses are matched as in this case: - * - * - * define("test",array("hello",6 => 4, 5 => array('there'))); - * - * - * This handler and the DEFINE_PARAMS_PARENTHESIS handler (which is just - * {@link defaultHandler()} in this version, as nothing fancy is needed) - * work together to ensure proper parenthesis matching. - * - * If the define variable is documented, a link will be created to its - * documentation using the Converter passed. - */ - function handleDefine($word, $pevent) - { - static $token_save; - if (!isset($token_save)) $token_save = array(); - $e = $this->checkEventPush( $word, $pevent); - if ($e && $e != PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS) return; - - if(!isset($this->_pv_define_params_data)) $this->_pv_define_params_data = ''; - - if ($this->checkEventPop($word,$pevent)) - { - unset($token_save); - $this->_addoutput($word); - } - if ($this->_pf_definename_isset) - { - $this->_addoutput($word); - } else - { - if ($word != ",") - { - $token_save[] = $word; - if (is_array($word)) $word = $word[1]; - $this->_pv_define_params_data .= $word; - } else - { - if (substr($this->_pv_define_params_data,0,1) == - substr($this->_pv_define_params_data,strlen($this->_pv_define_params_data) - 1) && - in_array(substr($this->_pv_define_params_data,0,1),array('"',"'"))) - { // remove leading and ending quotation marks if there are only two - $a = substr($this->_pv_define_params_data,0,1); - $b = substr($this->_pv_define_params_data,1,strlen($this->_pv_define_params_data) - 2); - if (strpos($b,$a) === false) - { - $this->_pv_define_params_data = $b; - } - } - $this->_pf_definename_isset = true; - $link = $this->_converter->getLink($this->_pv_define_params_data); - foreach ($token_save as $token) - { - if (is_object($link)) - { - if (is_array($token)) $token = $token[1]; - $this->_addoutput($this->_converter->returnSee($link, $token)); - } else - { - $this->_addoutput($save, $token); - } - } - $this->_pv_define_params_data = ''; - } - } - } - - /** - * Handles normal global code. Special consideration is taken for DocBlocks - * as they need to retrieve the whole DocBlock before doing any output, so - * the parser flag {@link $_pf_no_output_yet} is set to tell - * {@link _addoutput()} not to spit anything out yet. - * @uses _link() make any global code that is a documentable element link - * to the php manual or its documentation - */ - function handlePhpCode($word, $pevent) - { - $test = $this->checkEventPush($word, $pevent); - if ($test == PARSER_EVENT_DOCBLOCK || $test == PARSER_EVENT_COMMENT) - { - $this->_pf_no_output_yet = true; - $this->_pv_saveline = $this->_wp->linenum + 1; - return; - } - if (is_array($word) && $word[0] == T_DOUBLE_COLON) $this->_pf_colon_colon = true; - if (!$this->_pf_colon_colon && is_array($word) && $word[0] == T_STRING) $this->_pv_last_string = $word; - $this->_link($word); - $this->checkEventPop($word, $pevent); - } - - /** - * Handle the function declaration header - * - * This handler only sees the "function name" portion of the function - * declaration. Handling of the function parameters is by - * {@link handleFunctionParams()}, and the function body is handled by - * {@link handleLogicBlock()} - */ - function handleFunction($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) - { - $this->_addoutput($word); - return; - } - if ($this->checkEventPop($word, $pevent)) return; - $this->_link($word); - } - - /** - * Handle the method declaration header - * - * This handler only sees the "function name" portion of the method - * declaration. Handling of the method parameters is by - * {@link handleFunctionParams()}, and the method body is handled by - * {@link handleMethodLogicBlock()} - */ - function handleMethod($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) - { - $this->_addoutput($word); - return; - } - if ($this->checkEventPop($word, $pevent)) { - if ($word == ';') { - $this->_addoutput($word); - } - return; - } - $this->_methodlink($word); - } - - /** - * Handler for the stuff between ( and ) in a function declaration - * - * - * function handles($only,$these,$parameters){...} - * - */ - function handleFunctionParams($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) - { - $this->_addoutput($word); - return; - } - $this->_addoutput($word); - $this->checkEventPop($word, $pevent); - } - - /** - * Handler for function body. - * - * The function body is checked for php functions, documented constants, - * functions, and indirectly for global statements. It hyperlinks to the - * documentation for detected elements is created. Everything else is - * highlighted normally. - */ - function handleLogicBlock($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) - { - $this->_addoutput($word); - return; - } - if (is_array($word) && $word[0] == T_DOUBLE_COLON) $this->_pf_colon_colon = true; - if (!$this->_pf_colon_colon && is_array($word) && $word[0] == T_STRING) $this->_pv_last_string = $word; - $this->_link($word); - if ($this->checkEventPop($word,$pevent)) - { - $e = $this->_event_stack->popEvent(); - $this->_event_stack->pushEvent($e); - if ($e == PARSER_EVENT_FUNCTION) - { - $this->_wp->backupPos($word); - } - } - } - - /** - * Handler for method body. - * - * Like functions, the method body is checked for php functions, documented - * constants, functions, and indirectly for global statements. It also - * checks for "$this->XXXX" where XXXX is a class variable or method, and - * links to the documentation for detected elements is created. Everything - * else is highlighted normally. - */ - function handleMethodLogicBlock($word, $pevent) - { - if (isset($this->_pv_prev_var_type)) - { -// debug('prevtype is set'); - if (!is_array($word)) unset($this->_pv_prev_var_type); - else - { - if ($word[0] != T_WHITESPACE && $word[0] != T_STRING && $word[0] != T_OBJECT_OPERATOR) - { -// fancy_debug('unset',$word); - unset($this->_pv_prev_var_type); - } - } - } - $this->_pf_inmethod = true; - if ($e = $this->checkEventPush($word, $pevent)) - { - $this->_addoutput($word); - if ($e == PARSER_EVENT_CLASS_MEMBER) { - $this->_pf_no_output_yet = true; - } - return; - } - if (is_array($word) && $word[0] == T_DOUBLE_COLON) $this->_pf_colon_colon = true; - if (!$this->_pf_colon_colon && is_array($word) && $word[0] == T_STRING) $this->_pv_last_string = $word; - if (is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word; - $this->_link($word); - if ($this->checkEventPop($word,$pevent)) - { - $this->_pf_inmethod = false; - $e = $this->_event_stack->popEvent(); - $this->_event_stack->pushEvent($e); - if ($e == PARSER_EVENT_METHOD) - { - $this->_wp->backupPos($word); - } - } - } - - /** - * Handles $obj->classmember in a method body - * - * This handler is responsible for linking to the documentation of a - * class member when it is used directly in a method body. - * - * There are two methods of determining whether to link: - * - $this->member - * - $this->member->submember - * - * The first case is handled by the $_pv_lastvar variable, and the - * second case is handled by the $_pv_prev_var_type variable. $_pv_lastvar - * is always set to the value of the last T_VARIABLE token, if and only if - * no text has occurred between the variable and a T_OBJECT_OPERATOR token - * "->". handleClassMember will only link if the last variable encountered - * was $this. - * - * When $this->variable is encountered, the variable is looked up to see - * if it can be found, and if so, the contents of its @var tag are processed - * to see if the member variable is defined to have 1 and only 1 class. - * If so, the $_pv_prev_var_type variable is set to this classname. When - * submember is processed, the HighlightParser checks to see if - * $_pv_prev_var_type::submember() or $_pv_prev_var_type::$submember exists, - * and if it does, it is linked to. - */ - function handleClassMember($word, $pevent) - { - if (!isset($this->_pv_lastvar) && !isset($this->_pv_prev_var_type)) - { -// fancy_debug('returned from',$word,$this->_pv_prev_var_type); - $this->_pf_no_output_yet = false; - $this->_event_stack->popEvent(); - return $this->defaultHandler($word, $pevent); - } - if (isset($this->_pv_cm_name)) - { - $this->_pf_obj_op = false; - $name = $this->_pv_cm_name; - unset($this->_pv_cm_name); -// debug('unset pvcmname'); - $this->_event_stack->popEvent(); - // control variable for _pv_prev_var_type - $setnow = false; - if ((isset($this->_pv_lastvar) && $this->_pv_lastvar[1] == '$this') - || isset($this->_pv_prev_var_type)) - { - if (is_array($word) && $word[0] == T_WHITESPACE) - { - // preserve value of _pv_prev_var_type - $setnow = true; - $save = $this->_wp->nextToken(); - $temp = $this->_wp->getWord(); - $this->_wp->backupPos($save, true); - } - if ((is_string($word) && $word == '(') || - (isset($temp) && is_string($temp) && $temp == '(')) - { // it's a function - $this->_pf_no_output_yet = false; - $this->_methodlink($name); - unset($this->_pv_prev_var_type); - } else - { // it's a variable -// fancy_debug('name is ',$name); - $this->_pf_no_output_yet = false; - $this->_varlink($name, true); - $templink = $this->_converter->getLink('object '.$this->_pv_class); - $class = false; - if (is_object($templink)) { - $class = $this->_converter->classes->getClass($templink->name, $templink->path); - } - if ($class) - { - $varname = $name; - if (is_array($varname)) $varname = $name[1]; - if ($varname{0} != '$') $varname = '$'.$varname; - $var = $class->getVar($this->_converter, $varname); - - if (is_object($var) && $var->docblock->var) - $type = $var->docblock->var->returnType; - if (isset($type)) - { - if (strpos($type, 'object') === false) - $type = 'object '.$type; - $type = $this->_converter->getLink($type); - if (phpDocumentor_get_class($type) == 'classlink') - { // the variable's type is a class, save it for future -> -// fancy_debug('set prev_var_type!',$type->name); - $setnow = true; - $this->_pv_prev_var_type = $type->name; - } else unset($this->_pv_prev_var_type); - } else unset($this->_pv_prev_var_type); - } else unset($this->_pv_prev_var_type); - } - } else { - $this->_pf_no_output_yet = false; - // this does NewLinenum if necessary - $this->_wp->backupPos($word); - $this->_wp->getWord(); - $this->_addoutput($name); - } - if (!$setnow) - { -// debug('unset prevtype, no setnow'); - unset($this->_pv_prev_var_type); - } - unset($this->_pv_lastvar); - $this->_pf_no_output_yet = false; - // this does NewLinenum if necessary - $this->_wp->backupPos($word); - $this->_wp->getWord(); - if ($word[0] == T_OBJECT_OPERATOR) - $this->_wp->backupPos($word); - else - $this->_addoutput($word); - return; - } - if (!$this->_pf_obj_op && is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_OBJECT_OPERATOR) - { - if ((isset($this->_pv_lastvar) && $this->_pv_lastvar[1] == '$this') || isset($this->_pv_prev_var_type)) - { - $this->_pf_obj_op = true; - } else - { - $this->_pf_no_output_yet = false; - // this does NewLinenum if necessary - $this->_wp->backupPos($word); - $this->_wp->getWord(); - $this->_addoutput($word); - $this->_event_stack->popEvent(); - } - } - if (is_array($word) && $word == T_WHITESPACE) - { - $this->_pf_no_output_yet = false; - // this does NewLinenum if necessary - $this->_wp->backupPos($word); - $this->_wp->getWord(); - $this->_addoutput($word); - return; - } - if ($this->_pf_obj_op) - { - if (!(is_array($word) && ($word[0] == T_STRING || $word[0] == T_WHITESPACE))) - { - unset($this->_pv_lastvar); -// debug('unset lastvar'); - $this->_event_stack->popEvent(); - $this->_pf_no_output_yet = false; - // this does NewLinenum if necessary - $this->_wp->backupPos($word); - $this->_wp->getWord(); - $this->_addoutput($word); - return; - } - if ($word[0] == T_STRING) - { -// fancy_debug('set pvcmname to',$word); - $this->_pv_cm_name = $word; - } else { - $this->_pf_no_output_yet = false; - // this does NewLinenum if necessary - $this->_wp->backupPos($word); - $this->_wp->getWord(); - $this->_addoutput($word); - } - } - } - - /** - * Handles comments - * - * Comments are almost always single-line tokens, and so will be - * in the last word. This handler checks to see if the current token - * is in fact a comment, and if it isn't, it backs up and returns control - * to the parent event handler with that word. - */ - function handleComment($word, $pevent) - { - $w = $this->_pv_last_word; - // don't perform this check if this is a normal comment. Docblocks - // have the _pf_no_output_yet variable set to true - if ($this->_pf_no_output_yet && - is_array($w) && (in_array($w[0], array(T_COMMENT, T_DOC_COMMENT)) && strpos($w[1],'/**') === 0)) { - $this->_event_stack->popEvent(); - $this->_event_stack->pushEvent(PARSER_EVENT_DOCBLOCK); - return $this->handleDocBlock($word, PARSER_EVENT_DOCBLOCK); - } - if ($this->_pf_no_output_yet) { - $flag = 1; - $this->_pf_no_output_yet = false; - $this->_addoutput($this->_pv_last_word); - } - if (!is_array($word) || !in_array($word[0], array(T_COMMENT, T_DOC_COMMENT)) || - (in_array($word[0], array(T_COMMENT, T_DOC_COMMENT)) && strpos($word[1],'/**') === 0)) - { - $this->_event_stack->popEvent(); - if (strpos($this->_pv_last_word[1], "\n") !== false) - { -// $this->_wp->linenum++; -// $this->newLineNum(); - } - $this->_wp->backupPos($this->_pv_last_word); - $this->_wp->getWord(); -// var_dump($this->_wp->nextToken()); - return; - } elseif (isset($flag)) { - $this->newLineNum(); - } - $this->_addoutput($word); - $this->checkEventPop($word, $pevent); - if (strpos($word[1], '*/') === strlen($word[1]) - 2) { - $this->_event_stack->popEvent(); - } - } - - /** - * Handle class declarations - * - * Handles the initial declaration line: - * - * class X - * - * or - * - * class X extends Y implements I - * - * @uses _classlink() to link to documentation for X and for Y class in - * "class X extends Y" - */ - function handleClass($word, $pevent) - { - $this->_pf_in_class = true; - $a = $this->checkEventPush( $word, $pevent); - - if (!isset($this->_pv_class) && is_array($word) && $word[0] == T_STRING) - { - $this->_pv_class = $this->_converter->class = $word[1]; - $this->_classlink($word); - return; - } - - if (is_array($word) && in_array($word[0], array(T_PRIVATE, T_PROTECTED, T_PUBLIC))) { - $starttok = $this->_wp->nextToken(); - $test = array(T_WHITESPACE); - while ($test && $test[0] == T_WHITESPACE) { - $tok = $this->_wp->nextToken(); - $test = $this->_wp->getWord(); - } // while - - if (is_array($test) && $test[0] == T_VARIABLE) { - $this->_wp->backupPos($tok, true); - return; - } - $this->_wp->backupPos($starttok, true); - } - - if (@in_array($this->_pv_last_word[0], array(T_PRIVATE, T_PROTECTED, T_PUBLIC))) { - if (is_array($word) && $word[0] == T_VARIABLE) { - $this->_wp->backupPos($this->_pv_last_word); - $this->_event_stack->pushEvent(PARSER_EVENT_VAR); - return; - } - } - - if ($this->_pf_extends_found && is_array($word) && $word[0] == T_STRING) - { - $this->_classlink($word); - return; - } - if (is_array($word) && $word[0] == T_EXTENDS) $this->_pf_extends_found = true; - if ($a == PARSER_EVENT_DOCBLOCK) - { - $this->_pf_no_output_yet = true; - $this->_pv_saveline = $this->_wp->linenum + 1; - return; - } - $this->_addoutput($word); - if ($this->checkEventPop($word,$pevent)) - { - $this->_pf_in_class = false; - unset($this->_pv_class); - } - } - - /** - * Handles class variable declaration - * - * - * class X - * { - * var $Y; - * } - * - * @uses _varlink() make a link to $Y documentation in class variable - * declaration "var $Y;" - */ - function handleVar($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) - { - $this->_addoutput($word); - return; - } - if (is_array($word) && $word[0] == T_VARIABLE) - { - return $this->_varlink($word); - } - $this->_addoutput($word); - $this->checkEventPop($word, $pevent); - } - - /** - * This handler is responsible for highlighting DocBlocks - * - * handleDocBlock determines whether the docblock is normal or a template, - * and gathers all the lines of the docblock together before doing any - * processing - * - * As it is not possible to distinguish any comment token from a docblock - * token, this handler is also called for comments, and will pass control - * to {@link handleComment()} if the comment is not a DocBlock - * @uses commonDocBlock() once all lines of the DocBlock have been retrieved - */ - function handleDocBlock($word, $pevent) - { - if (!($this->_pf_docblock || $this->_pf_docblock_template)) - { - if (strpos($this->_pv_last_word[1],'/**') !== 0) - { // not a docblock - $this->_wp->backupPos($this->_pv_last_word); - $this->_event_stack->popEvent(); - $this->_event_stack->pushEvent(PARSER_EVENT_COMMENT); - $this->_pf_no_output_yet = false; - return; - } else - { - $this->_pf_no_output_yet = true; - $this->_pv_db_lines = array(); - } - } - $last_word = $this->_pv_last_word[1]; - $dtype = '_pv_docblock'; - if ($last_word == '/**#@-*/') - { // stop using docblock template - $this->_pf_no_output_yet = false; - $this->_addDocBlockoutput('closetemplate', $last_word); - if ($this->_pv_next_word !== false) { - $this->_wp->backupPos($this->_pv_next_word,true); - } - $this->_event_stack->popEvent(); - return; - } - if (!($this->_pf_docblock || $this->_pf_docblock_template)) - { - $this->_pv_db_lines = array(); - if (strpos($last_word,'/**#@+') === 0) - { // docblock template definition - $this->_pf_docblock_template = true; - } else - { - $this->_pf_docblock = true; - } - $this->_pv_db_lines[] = $last_word; - if (strpos($last_word,'*/') !== false) - { - $this->commonDocBlock(); - return; - } - $this->_pv_db_lines[] = $word[1]; - if (strpos($word[1],'*/') !== false) - { - $this->commonDocBlock(); - } - } else - { - $this->_pv_db_lines[] = $word[1]; - } - if (($this->_pf_docblock || $this->_pf_docblock_template) && (strpos($word[1],'*/') !== false)) - { - $this->commonDocBlock(); - } - } - /**#@-*/ - /** - * This continuation of handleDocBlock splits DocBlock comments up into - * phpDocumentor tokens. It highlights DocBlock templates in a different - * manner from regular DocBlocks, recognizes inline tags, regular tags, - * and distinguishes between standard core tags and other tags, and - * recognizes parameters to tags like @var. - * - * the type in "@var type description" will be highlighted as a php type, - * and the var in "@param type $var description" will be highlighted as a - * php variable. - * @uses handleDesc() highlight inline tags in the description - * @uses handleTags() highlight all tags - * @access private - */ - function commonDocBlock() - { - $this->_event_stack->popEvent(); - $lines = $this->_pv_db_lines; - $go = count($this->_pv_db_lines); - for($i=0;$i<$go;$i++) - { - if (substr(trim($lines[$i]),0,2) == '*/' || substr(trim($lines[$i]),0,1) != '*' && substr(trim($lines[$i]),0,3) != '/**') - { - $lines[$i] = array($lines[$i],false); - } elseif (substr(trim($lines[$i]),0,3) == '/**') - { - $linesi = array(); - $linesi[1] = substr(trim($lines[$i]),3); // remove leading "/**" - if (empty($linesi[1])) - $linesi[0] = $lines[$i]; - else - $linesi[0] = substr($lines[$i],0,strpos($lines[$i],$linesi[1])); - $lines[$i] = $linesi; - } else - { - $linesi = array(); - $linesi[1] = substr(trim($lines[$i]),1); // remove leading "* " - if (empty($linesi[1])) - $linesi[0] = $lines[$i]; - else - $linesi[0] = substr($lines[$i],0,strpos($lines[$i],$linesi[1])); - $lines[$i] = $linesi; - } - } - for($i = 0;$i_pf_no_output_yet = false; - $save = $this->_wp->linenum; - $this->_wp->linenum = $this->_pv_saveline; - $this->handleDesc($desc); - $this->handleTags($tags); - $this->_pv_db_lines = array(); - $this->_wp->linenum = $save; - if (strpos($this->_pv_last_word[1],'*/') !== false) - { - $this->_wp->backupPos($this->_pv_next_word,true); - } - $this->_pf_docblock = $this->_pf_docblock_template = false; - } - - /** - * Handle the description area of a DocBlock - * - * This method simply finds inline tags and highlights them - * separately from the rest of the description. - * @uses getInlineTags() - * @access private - */ - function handleDesc($desc) - { - $dbtype = 'docblock'; - $dbtype .= ($this->_pf_docblock ? '' : 'template'); - foreach($desc as $line) - { - $this->getInlineTags($line[0].$line[1]); - if (strpos($line[0],'*/') === false) - { - $this->newLineNum(); - $this->_wp->linenum++; - } - } - if ($this->_pf_internal) - { - $this->_pf_internal = false; - } - } - - /** - * Handle phpDocumentor tags in a DocBlock - * - * This method uses the {@link $tagHandlers} array to determine which - * method will handle tags found in the docblock, and passes the data to - * the individual handlers one by one - * @access private - */ - function handleTags($tags) - { - $newtags = array(); - $curtag = array(); - for($i=0;$i < count($tags);$i++) - { - $tagsi = trim($tags[$i][1]); - if (substr($tagsi,0,1) == '@' && substr($tagsi,0,2) != '@ ') - { // start a new tag - $tags[$i][1] = array(substr($tags[$i][1],0,strpos($tags[$i][1],$tagsi)),$tagsi); - if (!empty($curtag)) - { - $newtags[] = $curtag; - $curtag = array(); - } - $curtag[] = $tags[$i]; - } else $curtag[] = $tags[$i]; - } - if (!empty($curtag)) $newtags[] = $curtag; - foreach($newtags as $tag) - { - foreach($tag as $i => $t) - { - if ($t[1] === false) continue; - if (is_array($t[1])) - { - $tag[$i][1][1] = explode(" ",str_replace("\t",' ',$t[1][1])); - $x = $tag[$i][1][1]; - } - } - $tagname = substr(array_shift($x),1); - $restoftag = $tag; - if (isset($this->tagHandlers[$tagname])) - $handle = $this->tagHandlers[$tagname]; - else - $handle = $this->tagHandlers['*']; - $this->$handle($tagname,$restoftag); - } - } - - /** - * This handler recognizes all {@}inline} tags - * - * Normal inline tags are simply highlighted. the {@}internal}} inline - * tag {@tutorial tags.inlineinternal.pkg} is highlighted differently - * to distinguish it from other inline tags. - * @access private - */ - function getInlineTags($value, $endinternal = false) - { - if (!$value) return; - if ($this->_pf_internal && !$endinternal) - { - if (strpos($value,'}}') !== false) - { - $x = strrpos($value,'}}'); - // add the rest of internal - $this->getInlineTags(substr($value,0,$x + 3), true); - // strip internal from value - $value = substr($value,strrpos($value,'}}') + 1); - // turn off internal - $this->_pf_internal = false; - } - } - if (!$value) return; - $dbtype = 'docblock'; - $dbtype .= ($this->_pf_docblock ? '' : 'template'); - $save = $value; - $value = explode('{@',$value); - $newval = array(); - // everything before the first {@ is normal text - $this->_addDocBlockoutput($dbtype, $value[0]); - for($i=1;$i_addDocBlockoutput($dbtype, '{@}'.substr($value[$i],1)); - } else - { - $save = $value[$i]; - $value[$i] = str_replace("\t"," ",$value[$i]); - $value[$i] = explode(" ",$value[$i]); - $word = array_shift($value[$i]); - $val = join(' ',$value[$i]); - if ($word == 'internal') - { - $this->_pf_internal = true; - $this->_addDocBlockoutput($dbtype, '{@internal '); - $value[$i] = substr($save,strlen('internal') + 1); - // strip internal and cycle as if it were normal text. - $this->_addDocBlockoutput($dbtype, $value[$i]); - continue; - } - if (in_array(str_replace('}','',$word),$this->allowableInlineTags)) - { - if (strpos($word,'}')) - { - $word = str_replace('}','',$word); - $val = '} '.$val; - } - $val = explode('}',$val); - if (count($val) == 1) - { -// addError(PDERROR_UNTERMINATED_INLINE_TAG,$word,'',$save); - } - $rest = $val; - $val = array_shift($rest); - if ($endinternal) - $rest = join('}',$rest); - else - $rest = join(' ',$rest); - if (isset($this->inlineTagHandlers[$word])) - $handle = $this->inlineTagHandlers[$word]; - else - $handle = $this->inlineTagHandlers['*']; - $this->$handle($word,$val); - $this->_addDocBlockoutput($dbtype, $rest); - } else - { - $val = $word.' '.$val; - $this->_addDocBlockoutput($dbtype, '{@'.$val); - } - } - } - } - - - /** - * Handles all inline tags - * @access private - */ - function handleDefaultInlineTag($name, $value) - { - $this->_addDocBlockoutput('inlinetag','{@'.$name.' '.$value.'}'); - } - - /**#@+ - * phpDocumentor DocBlock tag handlers - * @access private - * @param string tag name - * @param array array of lines contained in the tag description - */ - /** - * Handle normal tags - * - * This handler adds to outpu all comment information before the tag begins - * as in " * " before "@todo" in " * @todo" - * - * Then, it highlights the tag as a regular or coretag based on $coretag. - * Finally, it uses getInlineTags to highlight the description - * @uses getInlineTags() highlight a tag description - * @param boolean whether this tag is a core tag or not - */ - function defaultTagHandler($name, $value, $coretag = false) - { - $dbtype = 'docblock'; - $dbtype .= ($this->_pf_docblock ? '' : 'template'); - foreach($value as $line) - { - $this->_addDocBlockoutput($dbtype, $line[0]); - if ($line[1] === false) - { - if (trim($line[0]) != '*/') - { - $this->newLineNum(); - $this->_wp->linenum++; - } - continue; - } - $this->_addDocBlockoutput($dbtype, $line[1][0]); - $stored = ''; - if (is_array($line[1][1])) - { - foreach($line[1][1] as $i => $tpart) - { - if ($tpart == '@'.$name && $i == 0) - { - $tagname = 'tag'; - if ($coretag) $tagname = 'coretag'; - $this->_addDocBlockoutput($tagname,'@'.$name); - continue; - } - $stored .= ' '.$tpart; - } - } else $stored = $line[1]; - $this->getInlineTags($stored); - if (strpos($stored,'*/') === false) - { - $this->newLineNum(); - $this->_wp->linenum++; - } - } - } - - /** - * @see defaultTagHandler() - */ - function coreTagHandler($name, $value) - { - return $this->defaultTagHandler($name, $value, true); - } - - /** - * Handles @global - * - * This handler works like {@link defaultTagHandler()} except it highlights - * the type and variable (if present) in "@global type $variable" or - * "@global type description" - */ - function globalTagHandler($name, $value) - { - $this->paramTagHandler($name, $value); - } - - /** - * Handles @param - * - * This handler works like {@link defaultTagHandler()} except it highlights - * the type and variable (if present) in "@param type $variable description" - * or "@param type description" - * @param boolean private parameter, checks for $var or not - */ - function paramTagHandler($name, $value, $checkforvar = true) - { - $dbtype = 'docblock'; - $dbtype .= ($this->_pf_docblock ? '' : 'template'); - $ret = $this->retrieveType($value,0,$checkforvar); - foreach($value as $num => $line) - { - $this->_addDocBlockoutput($dbtype, $line[0]); - if ($line[1] === false) - { - if (trim($line[0]) != '*/') - { - $this->newLineNum(); - $this->_wp->linenum++; - } - continue; - } - $this->_addDocBlockoutput($dbtype, $line[1][0]); - $stored = ''; - $typeloc = 1; - $varloc = 2; - if (is_array($line[1][1])) - { - $this->_addDocBlockoutput('coretag','@'.$name.' '); - foreach($ret[0] as $text) - { - if (is_string($text)) $this->_addDocBlockoutput($dbtype,$text); - if (is_array($text)) - { - if ($text[0] != 'desc') $this->_addDocBlockoutput($text[0],$text[1]); - else $stored .= $text[1]; - } - } - } else - { - if (isset($ret[$num])) - { - foreach($ret[$num] as $text) - { - if (is_string($text)) $this->_addDocBlockoutput($dbtype,$text); - if (is_array($text)) - { - if ($text[0] != 'desc') $this->_addDocBlockoutput($text[0],$text[1]); - else $stored .= $text[1]; - } - } - } else $stored = $line[1]; - } - $this->getInlineTags($stored); - if (strpos($stored,'*/') === false) - { - $this->newLineNum(); - $this->_wp->linenum++; - } - } - } - - /** - * @see paramTagHandler() - */ - function staticvarTagHandler($name, $value) - { - return $this->paramTagHandler($name, $value); - } - - /** - * @see paramTagHandler() - */ - function varTagHandler($name, $value) - { - return $this->paramTagHandler($name, $value); - } - - /** - * Handles @return - * - * This handler works like {@link defaultTagHandler()} except it highlights - * the type in "@return type description" - */ - function returnTagHandler($name, $value) - { - $this->paramTagHandler($name, $value, false); - } - /**#@-*/ - - /** - * Retrieve the type portion of a @tag type description - * - * Tags like @param, @return and @var all have a PHP type portion in their - * description. Since the type may contain the expression "object blah" - * where blah is a classname, it makes parsing out the type field complex. - * - * Even more complicated is the case where a tag variable can contain - * multiple types, such as object blah|object blah2|false, and so this - * method handles these cases. - * @param array array of words that were separated by spaces - * @param 0|1 0 = find the type, 1 = find the var, if present - * @param boolean flag to determine whether to check for the end of a - * type is defined by a $varname - * @return array Format: array(state (0 [find type], 1 [var], 2 [done]), - * - * @access private - */ - function retrieveType($value, $state = 0, $checkforvar = false) - { - $index = 0; - $result = array(); - do - { - if (!isset($value[$index][1])) return $result; - $val = $value[$index][1]; - if (empty($val)) return $result; - if ($index == 0) - { - $val = $val[1]; - array_shift($val); - } else - { - $val = explode(' ',$val); - } - $ret = $this->_retrieveType($val, $state, $checkforvar); - $state = $ret[0]; - $result[$index++] = $ret[1]; - } while ((!$checkforvar && $state < 1) || ($state < 2 && $checkforvar)); - return $result; - } - - function _retrieveType($value, $state, $checkforvar) - { - $result = array(); - $result[] = $this->_removeWhiteSpace($value, 0); - if ($state == 0) - { - if (!count($value)) return array(2,$result); - $types = ''; - $index = 0; - if (trim($value[0]) == 'object') - { - $result[] = array('tagphptype', $value[0].' '); - $types .= array_shift($value).' '; - $result[] = $this->_removeWhiteSpace($value, 0); - if (!count($value)) - { // was just passed "object" - return array(2,$result); - } - if ($value[0]{0} == '$' || substr($value[0],0,2) == '&$') - { // was just passed "object" and the next thing is a variable name - if ($checkforvar) - { - $result[] = array('tagvarname' , $value[0].' '); - array_shift($value); - } - $result[] = array('desc', join(' ', $value)); - return array(2,$result); - } - } - $done = false; - $loop = -1; - do - { // this loop checks for type|type|type and for - // type|object classname|type|object classname2 - if (strpos($value[0], '|')) - { - $temptypes = explode('|', $value[0]); - while(count($temptypes)) - { - $type = array_shift($temptypes); - $result[] = array('tagphptype',$type); - if (count($temptypes)) $result[] = '|'; - } - if (trim($type) == 'object') - { - $result[] = array('tagphptype', $types . ' '); - $result[] = $this->_removeWhiteSpace($value,0); - } else $done = true; - array_shift($value); - if (count($value) && strlen($value[0]) && isset ($value[0]) && ($value[0]{0} == '$' || substr($value[0],0,2) == '&$')) - { // was just passed "object" and the next thing is a variable name - $result[] = array('tagvarname' , $value[0].' '); - array_shift($value); - $result[] = array('desc', join(' ', $value)); - return array(2,$result); - } - } else - { - $result[] = array('tagphptype', $value[0].' '); - array_shift($value); - $done = true; - } - $loop++; - } while (!$done && count($value)); - if ($loop) $result[] = ' '; - // still searching for type - if (!$done && !count($value)) return array(0,$result); - // still searching for var - if ($done && !count($value)) return array(1,$result); - } - $result[] = $this->_removeWhiteSpace($value,0); - $state = 1; - if ($checkforvar) - { - if (count($value)) - { - $state = 2; - if (substr($value[0],0,1) == '$' || substr($value[0],0,2) == '&$') - { - $result[] = array('tagvarname' , $value[0].' '); - array_shift($value); - } - } else $state = 1; - } - $result[] = array('desc', join(' ',$value)); - return array($state,$result); - } - - - /** - * @param array array of string - * @param integer index to seek non-whitespace to - * @access private - * @return string whitespace - */ - function _removeWhiteSpace(&$value, $index) - { - $result = ''; - if (count($value) > $index && empty($value[$index])) - { - $found = false; - for($i=$index; $i_pf_colon_colon) - { - $this->_pf_colon_colon = false; - $combo = $this->_pv_last_string[1].'::'.$word[1].'()'; -// debug('testing '.$combo); - $link = $this->_converter->getLink($combo); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } - $this->_addoutput($word); - return; - } - $link = $this->_converter->getLink($word[1].'()'); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } elseif (is_string($link) && strpos($link,'ttp://')) - { - $this->_addoutput($this->_converter->returnLink($link, $word[1]), true); - return; - } else - { - $link = $this->_converter->getLink($word[1]); - if (is_object($link)) $word[1] = $this->_converter->returnSee($link, $word[1]); - $this->_addoutput($word, true); - return; - } - } - $this->_addoutput($word); - } - - /** - * Works like {@link _link()} except it only links to global variables - */ - function _globallink($word) - { - if (!is_array($word)) return $this->_addoutput($word); - if ($word[0] != T_VARIABLE) return $this->_addoutput($word); - if (is_array($word) && $word[0] == T_VARIABLE) - { - $link = $this->_converter->getLink('global '.$word[1]); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } - } - $this->_addoutput($word); - } - - /** - * Works like {@link _link()} except it only links to classes - */ - function _classlink($word) - { -// debug("checking class ".$word[1]); - if (is_array($word) && $word[0] == T_STRING) - { - $link = $this->_converter->getLink($word[1]); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } - } - $this->_addoutput($word); - } - - /** - * Works like {@link _link()} except it only links to methods - */ - function _methodlink($word) - { - if (is_array($word) && $word[0] == T_STRING) - { -// debug("checking method ".$this->_pv_class.'::'.$word[1].'()'); - if (isset($this->_pv_prev_var_type)) - { - $link = $this->_converter->getLink($this->_pv_prev_var_type.'::'.$word[1].'()'); - } else - $link = $this->_converter->getLink($this->_pv_class.'::'.$word[1].'()'); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } - if (isset($this->_pv_prev_var_type)) - { - $this->_addoutput($word); - return; - } -// debug("checking method ".$word[1].'()'); - $link = $this->_converter->getLink($word[1].'()'); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } - } - $this->_addoutput($word); - } - - /** - * Works like {@link _link()} except it only links to class variables - */ - function _varlink($word, $justastring=false) - { - if ($justastring) - { - $word[0] = T_VARIABLE; - } - if (is_array($word) && $word[0] == T_VARIABLE) - { - $x = ($justastring ? '$' : ''); -// debug("checking var ".$this->_pv_class.'::'.$x.$word[1]); - if (isset($this->_pv_prev_var_type)) - { -// debug("checking var ".$this->_pv_prev_var_type.'::'.$x.$word[1]); - $link = $this->_converter->getLink($this->_pv_prev_var_type.'::'.$x.$word[1]); - } - else - $link = $this->_converter->getLink($this->_pv_class.'::'.$x.$word[1]); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } -// debug("checking var ".$x.$word[1]); - if (isset($this->_pv_prev_var_type)) - { - $this->_addoutput($word); - return; - } - $link = $this->_converter->getLink($x.$word[1]); - if (is_object($link)) - { - $this->_addoutput($this->_converter->returnSee($link, $word[1]), true); - return; - } - } - $this->_addoutput($word); - } - /**#@-*/ - - /**#@+ - * Output Methods - * @access private - */ - /** - * This method adds output to {@link $_line} - * - * If a string with variables like "$test this" is present, then special - * handling is used to allow processing of the variable in context. - * @see _flush_save() - */ - function _addoutput($word, $preformatted = false) - { - if ($this->_pf_no_output_yet) return; - if ($this->_pf_quote_active) - { - if (is_array($word)) $this->_save .= $this->_converter->highlightSource($word[0], $word[1]); - else - $this->_save .= $this->_converter->highlightSource(false, $word, true); - } else - { - $this->_flush_save(); - if (is_string($word) && trim($word) == '') - { - $this->_line .= $word; - return; - } - if (is_array($word) && trim($word[1]) == '') - { - $this->_line .= $word[1]; - return; - } - if (is_array($word)) - { - $this->_line .= $this->_converter->highlightSource($word[0], $word[1], $preformatted); - } else - { - $this->_line .= $this->_converter->highlightSource(false, $word, $preformatted); - } - } - } - - /** - * Like {@link _output()}, but for DocBlock highlighting - */ - function _addDocBlockoutput($dbtype, $word, $preformatted = false) - { - if ($this->_pf_internal) - { - $this->_line .= $this->_converter->highlightDocBlockSource('internal', $word, $preformatted); - } else - { - $this->_line .= $this->_converter->highlightDocBlockSource($dbtype, $word, $preformatted); - } - } - - /** - * Flush a saved string variable highlighting - * - * {@source} - */ - function _flush_save() - { - if (!empty($this->_save)) - { - $this->_save .= $this->_converter->flushHighlightCache(); - // clear the existing cache, reset it to the old value - $this->_converter->_setHighlightCache($this->_save_highlight_state[0], $this->_save_highlight_state[1]); - $this->_line .= $this->_converter->highlightSource(T_CONSTANT_ENCAPSED_STRING, $this->_save, true); - $this->_save = ''; - } - } - /**#@-*/ - - /** - * Give the word parser necessary data to begin a new parse - * @param array all tokens separated by line number - */ - function configWordParser(&$data) - { - $this->_wp->setup($data, $this); - $this->_wp->setWhitespace(true); - } - - /** - * Initialize all parser state variables - * @param boolean true if we are highlighting an inline {@}source} tag's - * output - * @param false|string name of class we are going to start from - * @uses $_wp sets to a new {@link phpDocumentor_HighlightWordParser} - */ - function setupStates($inlinesourceparse, $class) - { - $this->_output = ''; - $this->_line = ''; - unset($this->_wp); - $this->_wp = new phpDocumentor_HighlightWordParser; - $this->_event_stack = new EventStack; - if ($inlinesourceparse) - { - $this->_event_stack->pushEvent(PARSER_EVENT_PHPCODE); - if ($class) - { - $this->_event_stack->pushEvent(PARSER_EVENT_CLASS); - $this->_pv_class = $class; - } - } else $this->_pv_class = null; - $this->_pv_define = null; - $this->_pv_define_name = null; - $this->_pv_define_value = null; - $this->_pv_define_params_data = null; - $this->_pv_dtype = null; - $this->_pv_docblock = null; - $this->_pv_dtemplate = null; - $this->_pv_func = null; - $this->_pv_global_name = null; - $this->_pv_global_val = null; - $this->_pv_globals = null; - $this->_pv_global_count = null; - $this->_pv_include_params_data = null; - $this->_pv_include_name = null; - $this->_pv_include_value = null; - $this->_pv_linenum = null; - $this->_pv_periodline = null; - $this->_pv_paren_count = 0; - $this->_pv_statics = null; - $this->_pv_static_count = null; - $this->_pv_static_val = null; - $this->_pv_quote_data = null; - $this->_pv_function_data = null; - $this->_pv_var = null; - $this->_pv_varname = null; - $this->_pf_definename_isset = false; - $this->_pf_extends_found = false; - $this->_pf_includename_isset = false; - $this->_pf_get_source = false; - $this->_pf_getting_source = false; - $this->_pf_in_class = false; - $this->_pf_in_define = false; - $this->_pf_in_global = false; - $this->_pf_in_include = false; - $this->_pf_in_var = false; - $this->_pf_funcparam_val = false; - $this->_pf_quote_active = false; - $this->_pf_reset_quote_data = true; - $this->_pf_useperiod = false; - $this->_pf_var_equals = false; - $this->_pf_obj_op = false; - $this->_pf_docblock = false; - $this->_pf_docblock_template = false; - $this->_pf_colon_colon = false; - $this->_pv_last_string = false; - $this->_pf_inmethod = false; - $this->_pf_no_output_yet = false; - $this->_pv_saveline = 0; - $this->_pv_next_word = false; - $this->_save = ''; - } - - /** - * Initialize the {@link $tokenpushEvent, $wordpushEvent} arrays - */ - function phpDocumentor_HighlightParser() - { - if (!defined('T_INTERFACE')) { - define('T_INTERFACE', -1); - } - $this->allowableTags = $GLOBALS['_phpDocumentor_tags_allowed']; - $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_doc_tags_allowed']; - $this->inlineTagHandlers = array('*' => 'handleDefaultInlineTag'); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_NOEVENTS] = - array( - T_OPEN_TAG => PARSER_EVENT_PHPCODE, - ); - -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_PHPCODE] = - array( - T_FUNCTION => PARSER_EVENT_FUNCTION, - T_CLASS => PARSER_EVENT_CLASS, - T_INTERFACE => PARSER_EVENT_CLASS, - T_INCLUDE_ONCE => PARSER_EVENT_INCLUDE, - T_INCLUDE => PARSER_EVENT_INCLUDE, - T_START_HEREDOC => PARSER_EVENT_EOFQUOTE, - T_REQUIRE => PARSER_EVENT_INCLUDE, - T_REQUIRE_ONCE => PARSER_EVENT_INCLUDE, - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_PHPCODE] = - array( - "define" => PARSER_EVENT_DEFINE, - ); -/**************************************************************/ - - $this->wordpushEvent[PARSER_EVENT_FUNCTION] = - array( - '{' => PARSER_EVENT_LOGICBLOCK, - '(' => PARSER_EVENT_FUNCTION_PARAMS, - ); - $this->tokenpushEvent[PARSER_EVENT_FUNCTION] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - - $this->wordpopEvent[PARSER_EVENT_FUNCTION] = array("}"); -/**************************************************************/ - - $this->tokenpopEvent[PARSER_EVENT_EOFQUOTE] = array(T_END_HEREDOC); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_FUNCTION_PARAMS] = - array( - T_CONSTANT_ENCAPSED_STRING => PARSER_EVENT_QUOTE, - T_ARRAY => PARSER_EVENT_ARRAY, - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_FUNCTION_PARAMS] = - array( - '"' => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_QUOTE, - ); - $this->wordpopEvent[PARSER_EVENT_FUNCTION_PARAMS] = array(")"); -/**************************************************************/ - - $this->wordpushEvent[PARSER_EVENT_LOGICBLOCK] = - array( - "{" => PARSER_EVENT_LOGICBLOCK, - '"' => PARSER_EVENT_QUOTE, - ); - $this->tokenpushEvent[PARSER_EVENT_LOGICBLOCK] = - array( - T_GLOBAL => PARSER_EVENT_FUNC_GLOBAL, - T_STATIC => PARSER_EVENT_STATIC_VAR, - T_START_HEREDOC => PARSER_EVENT_EOFQUOTE, - T_CURLY_OPEN => PARSER_EVENT_LOGICBLOCK, - T_DOLLAR_OPEN_CURLY_BRACES => PARSER_EVENT_LOGICBLOCK, - ); - - $this->wordpopEvent[PARSER_EVENT_LOGICBLOCK] = array("}"); - $this->tokenpopEvent[PARSER_EVENT_LOGICBLOCK] = array(T_CURLY_OPEN); - -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_ARRAY] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpopEvent[PARSER_EVENT_ARRAY] = array(")"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_FUNC_GLOBAL] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - - $this->wordpopEvent[PARSER_EVENT_FUNC_GLOBAL] = array(";"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_STATIC_VAR] = - array( - T_CONSTANT_ENCAPSED_STRING => PARSER_EVENT_QUOTE, - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_STATIC_VAR] = - array( - "=" => PARSER_EVENT_STATIC_VAR_VALUE, - ); - $this->wordpopEvent[PARSER_EVENT_STATIC_VAR] = array(";"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_STATIC_VAR_VALUE] = - array( - T_CONSTANT_ENCAPSED_STRING => PARSER_EVENT_QUOTE, - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - T_ARRAY => PARSER_EVENT_ARRAY, - ); - $this->wordpushEvent[PARSER_EVENT_STATIC_VAR_VALUE] = - array( - '"' => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_QUOTE, - ); - $this->wordpopEvent[PARSER_EVENT_STATIC_VAR_VALUE] = array(";",","); -/**************************************************************/ - $this->tokenpushEvent[PARSER_EVENT_QUOTE] = - array( - T_OBJECT_OPERATOR => PARSER_EVENT_CLASS_MEMBER, - T_CURLY_OPEN => PARSER_EVENT_QUOTE_VAR, - ); - - $this->wordpopEvent[PARSER_EVENT_QUOTE] = array('"'); -/**************************************************************/ - $this->tokenpushEvent[PARSER_EVENT_QUOTE_VAR] = - array( - T_OBJECT_OPERATOR => PARSER_EVENT_CLASS_MEMBER, - T_CURLY_OPEN => PARSER_EVENT_QUOTE_VAR, - ); - - $this->wordpushEvent[PARSER_EVENT_QUOTE_VAR] = - array( - "{" => PARSER_EVENT_QUOTE_VAR, - '"' => PARSER_EVENT_QUOTE_VAR, - "'" => PARSER_EVENT_QUOTE_VAR, - ); - $this->wordpopEvent[PARSER_EVENT_QUOTE_VAR] = array('}'); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_DEFINE] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - T_CONSTANT_ENCAPSED_STRING => PARSER_EVENT_QUOTE, - ); - $this->wordpushEvent[PARSER_EVENT_DEFINE] = - array( - "(" => PARSER_EVENT_DEFINE_PARAMS, - ); - $this->wordpopEvent[PARSER_EVENT_DEFINE] = array(";"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_DEFINE_PARAMS] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_DEFINE_PARAMS] = - array( - "(" => PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS, - '"' => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_QUOTE, - ); - $this->wordpopEvent[PARSER_EVENT_DEFINE_PARAMS] = array(")"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = - array( - "(" => PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS, - '"' => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_QUOTE, - ); - $this->wordpopEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = array(")"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_VAR] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - T_ARRAY => PARSER_EVENT_ARRAY, - ); - $this->wordpopEvent[PARSER_EVENT_VAR] = array(";"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_CLASS] = - array( - T_FUNCTION => PARSER_EVENT_METHOD, - T_VAR => PARSER_EVENT_VAR, - T_COMMENT => PARSER_EVENT_DOCBLOCK, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - T_CLOSE_TAG => PARSER_EVENT_OUTPHP, - ); - $this->wordpopEvent[PARSER_EVENT_CLASS] = array("}"); - -/**************************************************************/ - - $this->wordpushEvent[PARSER_EVENT_METHOD] = - array( - '{' => PARSER_EVENT_METHOD_LOGICBLOCK, - '(' => PARSER_EVENT_FUNCTION_PARAMS, - ); - $this->tokenpushEvent[PARSER_EVENT_METHOD] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - - $this->wordpopEvent[PARSER_EVENT_METHOD] = array("}", ";"); -/**************************************************************/ - - $this->wordpushEvent[PARSER_EVENT_METHOD_LOGICBLOCK] = - array( - "{" => PARSER_EVENT_METHOD_LOGICBLOCK, - '"' => PARSER_EVENT_QUOTE, - ); - $this->tokenpushEvent[PARSER_EVENT_METHOD_LOGICBLOCK] = - array( - T_OBJECT_OPERATOR => PARSER_EVENT_CLASS_MEMBER, - T_GLOBAL => PARSER_EVENT_FUNC_GLOBAL, - T_STATIC => PARSER_EVENT_STATIC_VAR, - T_CURLY_OPEN => PARSER_EVENT_LOGICBLOCK, - T_DOLLAR_OPEN_CURLY_BRACES => PARSER_EVENT_LOGICBLOCK, - ); - - $this->wordpopEvent[PARSER_EVENT_METHOD_LOGICBLOCK] = array("}"); - $this->tokenpopEvent[PARSER_EVENT_METHOD_LOGICBLOCK] = array(T_CURLY_OPEN); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_INCLUDE] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_INCLUDE] = - array( - "(" => PARSER_EVENT_INCLUDE_PARAMS, - ); - $this->wordpopEvent[PARSER_EVENT_INCLUDE] = array(";"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_INCLUDE_PARAMS] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_INCLUDE_PARAMS] = - array( - "(" => PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS, - ); - $this->wordpopEvent[PARSER_EVENT_INCLUDE_PARAMS] = array(")"); -/**************************************************************/ - - $this->tokenpushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = - array( - T_COMMENT => PARSER_EVENT_COMMENT, - T_DOC_COMMENT => PARSER_EVENT_DOCBLOCK, - ); - $this->wordpushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = - array( - "(" => PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS, - ); - $this->wordpopEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = array(")"); - } -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc b/buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc deleted file mode 100644 index 27ae3165..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc +++ /dev/null @@ -1,854 +0,0 @@ - - * @since 1.0rc1 - * @version $Revision: 1.1 $ - * @tutorial inlinetags.pkg - */ -class parserInlineTag extends parserBase -{ - /** - * Element type - * - * Type is used by many functions to skip the hassle of - * - * - * if phpDocumentor_get_class($blah) == 'parserBlah' - * - * always "inlinetag" - * @var string - */ - var $type = 'inlinetag'; - /** - * the name of the inline tag (like link) - * @var string - */ - var $inlinetype = ''; - - /** - * @param string $type tag type (example: link) - * @param string $value tag value (example: what to link to) - */ - function parserInlineTag($type,$value) - { - $this->inlinetype = $type; - $this->value = trim($value); - } - - /** - * @return integer length of the tag - */ - function Strlen() - { - // fix 1203451 - if (is_array($this->value)) - { - return array_reduce(create_function('$a,$b', 'return $a + strlen($b);')) + - count($this->value); - } - return strlen($this->value); - } - - /** - * @return string always '', used by {@link Parser::handleDocBlock()} to - * calculate the short description of a DocBlock - * @see parserStringWithInlineTags::getString() - * @see parserStringWithInlineTags::trimmedStrlen() - */ - function getString() - { - return ''; - } -} - -/** - * represents inline links - * @tutorial tags.inlinelink.pkg - * @package phpDocumentor - * @subpackage InlineTags - * @author Greg Beaver - * @since 1.0rc1 - */ -class parserLinkInlineTag extends parserInlineTag -{ - /** - * text to display in the link, can be different from the link for standard - * links like websites - * @var string - */ - var $linktext = ''; - - /** - * @param string $link stored in $value, see {@link parserBase::$value} - * @param string $text see {@link $linktext} - */ - function parserLinkInlineTag($link,$text) - { - if (strpos($link, ',')) - { - $link = explode(',',$link); - parserInlineTag::parserInlineTag('link',''); - $this->value = $link; - } else - { - parserInlineTag::parserInlineTag('link',$link); - } - $this->linktext = trim($text); - } - - /** - * @param Converter converter used to change the abstract link into text for - * display - * @return false|string returns the converted link or false if not converted - * successfully - */ - function Convert(&$c) - { - if (is_array($this->value)) - { - $ret = ''; - foreach($this->value as $text) - { - if (!empty($ret)) - { - $ret .= ', '; - } - $ret .= $this->ConvertPart($c, trim($text)); - } - return $ret; - } else - { - return $this->ConvertPart($c, $this->value); - } - } - - function ConvertPart(&$c, $value) - { - if (strpos($value,'://') || (strpos($value,'mailto:') === 0)) - { - if (strpos($value, ' ')) - { - $value = explode(' ', $value); - $link = array_shift($value); - $text = join(' ', $value); - } else - { - $link = $value; - $text = $this->linktext; - } - return $c->returnLink($link,htmlspecialchars($text)); - } else - { - $savevalue = $value; - $descrip = false; - if (strpos(trim($value),' ')) - { - $v = preg_split('/\s/',trim($value)); - if (in_array(strtolower($v[0]), array('object', 'function'))) - { - if (!isset($v[1]) || - (isset($v[1]) && strlen($v[1]) - && !in_array($v[1]{0}, array('$','&')) - && $v[1] != '###commanana####')) - { - $vsave = $v[0]; - array_shift($v); - $v[0] = $vsave . ' ' . $v[0]; - } - } - $value = $c->getLink($v[0]); - array_shift($v); - $descrip = join($v,' '); - $descrip = str_replace('###commanana####', ',', $descrip); - } else - { - $value = $c->getLink($value); - } - if (is_string($value)) - { - // feature 564991 - if (strpos($value,'://')) - { - // php function - return $c->returnLink($value,str_replace('PHP_MANUAL#','',$value)); - } - return $value; - } - if (!$descrip) $descrip = $c->type_adjust($savevalue); - if (is_object($value)) return $c->returnSee($value, $descrip); -/* // getLink parsed a comma-delimited list of linked thingies, add the commas back in - if (is_array($value)) - { - $a = ''; - foreach($value as $i => $bub) - { - if (!empty($a)) $a .= ', '; - if (is_string($value[$i])) - { - // feature 564991 - if (strpos($value[$i],'://')) - { - // php function - $a .= $c->returnLink($value[$i],str_replace('PHP_MANUAL#','',$vals[$i])); - } else - $a .= $value[$i]; - } - if (is_object($value[$i])) $a .= $c->returnSee($value[$i],$descrip[$i]); - } - return $a; - } */ - return $savevalue; - } - } -} - -/** - * Represents inline links to external tutorial documentation - * @tutorial tags.inlinetutorial.pkg - * @package phpDocumentor - * @subpackage InlineTags - */ -class parserTutorialInlineTag extends parserLinkInlineTag -{ - /** - * @param string $link stored in $value, see {@link parserBase::$value} - * @param string $text see {@link $linktext} - */ - function parserTutorialInlineTag($link,$text) - { - parserInlineTag::parserInlineTag('tutorial',$link); - $this->linktext = trim($text); - } - - /** - * @param Converter converter used to change the abstract link into text for display - * @return mixed returns the converted link or false if not converted successfully - */ - function Convert(&$c) - { - $descrip = false; - if (strpos($this->value,',') === false) - { - if (strpos(trim($this->value),' ')) - { - $v = explode(' ', trim($this->value)); - $value = $c->getTutorialLink($v[0]); - array_shift($v); - $descrip = join($v,' '); - } else $value = $c->getTutorialLink($this->value); - } else - { - $vals = explode(',',$this->value); - $descrip = array(); - foreach($vals as $val) - { - $val = trim($val); - if (strpos($val,' ')) - { - $v = explode(' ',$val); - $value[] = $c->getTutorialLink($v[0]); - array_shift($v); - $descrip[] = join($v,' '); - } else - { - $value[] = $c->getTutorialLink($val); - $descrip[] = false; - } - } - } - if (is_string($value)) - { - return $value; - } - if (is_object($value)) return $c->returnSee($value,$descrip); - // getLink parsed a comma-delimited list of linked thingies, add the commas back in - if (is_array($value)) - { - $a = ''; - foreach($value as $i => $bub) - { - if (!empty($a)) $a .= ', '; - if (is_string($value[$i])) - { - $a .= $value[$i]; - } - if (is_object($value[$i])) $a .= $c->returnSee($value[$i],$descrip[$i]); - } - return $a; - } - return false; - } -} - -/** - * represents inline source tag, used for function/method source - * @tutorial tags.inlinesource.pkg - * @package phpDocumentor - * @subpackage InlineTags - */ -class parserSourceInlineTag extends parserInlineTag -{ - /** - * always 'source' - * @var string - */ - var $inlinetype = 'source'; - /** - * First line of source code to display - * @var integer - * @see $end - */ - var $start = 1; - /** - * Last line to display - * @var '*'|integer If '*' then the whole source will be used, otherwise - * the {@link $start} to $end line numbers will be displayed - */ - var $end = '*'; - /** - * tokenized source organized by line numbers for php 4.3.0+, the old - * {@}source} tag used a string - * @var string|array - */ - var $source = false; - /**#@+ @access private */ - /** @var string|false */ - var $_class; - /**#@-*/ - /** - * @param string format "start [end]" where start and end are line numbers - * with the end line number optional - */ - function parserSourceInlineTag($value) - { - parserInlineTag::parserInlineTag('source',''); - preg_match('/^([0-9]*)\W([0-9]*)$/',trim($value), $match); - if (!count($match)) - { - preg_match('/^([0-9]*)$/',trim($value),$match); - if (count($match)) - { - $this->start = (int) $match[1]; - } - } else - { - $this->start = (int) $match[1]; - $this->end = (int) $match[2]; - } - } - - /** - * only used to determine blank lines. {@}source} will not be blank, - * probably - */ - function Strlen() - { - return 1; - } - - function getString() - { - return '{@source}'; - } - - /** - * @param string|array source code - * @param boolean in php 4.3.0, if this is a method this will be true - * @param string class name if this is a method - */ - function setSource($source, $class = false) - { - if (is_array($source)) - { - $this->_class = $class; - $this->source = $source; - } else - { - $source = strstr($source,'function'); - $pos = strrpos($source,'}'); - $this->source = substr($source,0,$pos + 1); - } - } - - /** - * @uses stringConvert() in PHP 4.2.3-, this method is used to convert - * @uses arrayConvert() in PHP 4.3.0+, this method is used to convert - * @param Converter - */ - function Convert(&$c) - { - if (is_string($this->source)) return $this->stringConvert($c); - return $this->arrayConvert($c); - } - - /** - * @param Converter - * @uses phpDocumentor_HighlightParser Parses the tokenized source - */ - function arrayConvert(&$c) - { - $source = $this->source; - if ($this->end != '*') - { - $source = array_slice($this->source,0,$this->end + $this->start - 1); - } - $start = $this->start - 1; - if ($start < 0) $start = 0; - return $c->ProgramExample($source, true, true, $this->_class, $start); - } - - /** - * @param Converter - * @uses Converter::unmangle() remove the extraneous stuff from - * {@link highlight_string()} - * @deprecated in favor of PHP 4.3.0+ {@link arrayConvert()} - */ - function stringConvert(&$c) - { - $source = highlight_string('source.' ?>', true); - $source = ''.substr($source,strlen(' -<?php ') - 1); - $source = str_replace('} ?>','}',$source); - if ($this->start || ($this->end != '*')) - { - $source = explode('
            ',$source); - $start = $this->start; - if ($this->end != '*') - { - $source = array_slice($source,$start - 1,$this->end - $start + 1); - } else - { - $source = array_slice($source,$start - 1); - } - $source = implode($source,'
            '); - if ($start > 0) $source = "$source"; - if ($this->end != '*') $source = "$source"; - } - $source = $c->unmangle($source,$this->source); - return $source; - } -} - -/** - * Represents the example inline tag, used to display an example file - * inside a docblock or tutorial - * @tutorial tags.inlineexample.pkg - * @package phpDocumentor - * @subpackage InlineTags - */ -class parserExampleInlineTag extends parserSourceInlineTag -{ - /** - * @param string format "filepath[ start [end]]" where start and end are line numbers - * with the end line number optional - * @param string full path to the current file, used to check relative - * directory locations - * @param boolean if true, then this is in a tutorial - */ - function parserExampleInlineTag($value, $current_path, $isTutorial = false) - { - global $_phpDocumentor_setting; - parserInlineTag::parserInlineTag('example',''); - $path = false; - $tagValue = trim($value); - $path = $isAbsPath = $pathOnly = $fileName = $fileExt = $original_path = $title = FALSE; - do - { - // make sure the format is stuff.ext startline[ endline] - if (!preg_match('`(.*)\.(\w*)\s(.*)`', $tagValue, $match)) - { - // or format is stuff.ext - if (!preg_match('`(.*)\.(\w*)\s*$`', $tagValue, $match)) - { - // Murphy: Some funny path was given - $original_path = $tagValue; // used for error output - break; // try-block - } - } - if (strlen($match[1]) === 0) - { - // Murphy: Some funny path was given - $original_path = $tagValue; // used for error output - break; // try-block - } - $fileExt = $match[2]; - if (isset($match[3])) - { - $lines = explode(' ', trim($match[3])); - $this->start = (int) $lines[0]; - if (isset($lines[1])) { - $this->end = (int) $lines[1]; - } - } - $pathTmp = str_replace('\\', '/', $match[1]); // Replace windows '\' the path. - - // Is there a path and a file or is it just a file? - if (strpos($pathTmp,'/') === false) - { - // No path part - $pathOnly = ''; - $fileName = $pathTmp .'.'. $fileExt; - } else - { - $splitPos = strrpos($pathTmp,'/'); // split the path on the last directory, find the filename - $pathOnly = substr($match[1], 0, $splitPos+1); - $fileName = substr($match[1], $splitPos+1) .'.'. $fileExt; - // Is the path absolute? (i.e. does it start like an absolute path?) - if (('/' === $pathTmp[0]) || preg_match('`^\w*:`i', $pathTmp)) - { // works for both windows 'C:' and URLs like 'http://' - $isAbsPath = true; // Yes - } - } - - $original_path = $pathOnly . $fileName; - - // Now look for the file starting with abs. path. - if ($isAbsPath) - { - $tmp = realpath($original_path); // remove any weirdities like /../file.ext - if ($tmp && is_file($tmp)) - { - $path = $tmp; - } - // Alway break if abs. path was detected; even if file was not found. - break; // try-block - } - - // Search for the example file some standard places - // 1) Look if the ini-var examplesdir is set and look there ... - if (isset($_phpDocumentor_setting['examplesdir'])) - { - $tmp = realpath($_phpDocumentor_setting['examplesdir'] . PATH_DELIMITER . $original_path); - if ($tmp && is_file($tmp)) - { - $path = $tmp; // Yo! found it :) - break; // try-block - } - } - - // 2) Then try to look for an 'example/'-dir below the *currently* parsed file ... - if (!empty($current_path)) - { - $tmp = realpath(dirname($current_path) . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $fileName); - if ($tmp && is_file($tmp)) - { - $path = $tmp; // Yo! found it :) - break; // try-block - } - } - - // 3) Then try to look for the example file below the subdir PHPDOCUMENTOR_BASE/examples/ ... - if (is_dir(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples')) - { - $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $original_path); - if ($tmp && is_file($tmp)) - { - $path = $tmp; // Yo! found it :) - break; // try-block - } - } - - $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . $original_path); - if ($tmp && is_file($tmp)) - { - $path = $tmp; // Yo! found it :) - break; // try-block - } - // If we reach this point, nothing was found and $path is false. - } while (false); - - if (!$path) - { - addWarning(PDERROR_EXAMPLE_NOT_FOUND, $original_path); - $this->path = false; - } else - { - $f = @fopen($path,'r'); - if ($f) - { - $example = fread($f,filesize($path)); - if (tokenizer_ext && !$isTutorial) - { - $obj = new phpDocumentorTWordParser; - $obj->setup($example); - $this->setSource($obj->getFileSource()); - unset($obj); - } else - { - $this->setSource($example); - } - } - } - } - - /** - * @param string|array source code - * @param boolean in php 4.3.0, if this is a method this will be true - * @param string class name if this is a method - */ - function setSource($source, $class = false) - { - $this->_class = $class; - $this->source = $source; - } - - /** - * @param Converter - * @uses phpDocumentor_HighlightParser Parses the tokenized source - */ - function arrayConvert(&$c) - { - $source = $this->source; - if ($this->end != '*') - { - $source = array_slice($this->source,0,$this->end + $this->start - 1); - } - $start = $this->start - 1; - if ($start < 0) $start = 0; - return $c->exampleProgramExample($source, true, true, $this->_class, $start); - } - - /** - * Return the source for the example file, enclosed in - * a tag to use in a tutorial - * @return string - */ - function getProgramListing() - { - $source = explode("\n", $this->source); - $start = $this->start; - if ($this->end != '*') - { - $source = array_slice($source,$start - 1,$this->end - $start + 1); - } else - { - $source = array_slice($source,$start - 1); - } - $source = join("\n", $source); - return - " - \n"; - } -} - -/** - * Represents the inheritdoc inline tag, used by classes/methods/vars to inherit - * documentation from the parent class if possible - * @tutorial tags.inlineinheritdoc.pkg - * @package phpDocumentor - * @subpackage InlineTags - */ -class parserInheritdocInlineTag extends parserInlineTag -{ - /** - * always 'inheritdoc' - * @var string - */ - var $inlinetype = 'inheritdoc'; - - /** - * Does nothing, overrides parent constructor - */ - function parserInheritdocInlineTag() - { - } - - function Convert() - { - addWarning(PDERROR_INHERITDOC_DONT_WORK_HERE); - return ''; - } -} - -/** - * Represents the inline {@}id} tag for tutorials - * @tutorial tags.inlineid.pkg - * @package phpDocumentor - * @subpackage InlineTags - */ -class parserIdInlineTag extends parserInlineTag -{ - /** - * always 'id' - * @var string - */ - var $inlinetype = 'id'; - /** - * package of the {@}id} - * @var string - */ - var $package = 'default'; - /** - * category of the {@}id} - * @var string - */ - var $category = 'default'; - /** - * subpackage of the {@}id} - * @var string - */ - var $subpackage = ''; - /** - * full name of the tutorial - * @var string - */ - var $tutorial; - /** - * section/subsection name - * @var string - */ - var $id; - - /** - * @param string package name - * @param string subpackage name - * @param string tutorial name - * @param string section/subsection name - * @param string category name - */ - function parserIdInlineTag($category,$package,$subpackage,$tutorial,$id = false) - { - $this->package = $package; - $this->subpackage = $subpackage; - $this->tutorial = $tutorial; - $this->id = $id; - $this->category = $category; - } - - /** - * @param Converter - * @uses Converter::getTutorialId() retrieve converter-specific ID - */ - function Convert(&$c) - { - if (!$this->id) return ''; - return $c->getTutorialId($this->package,$this->subpackage,$this->tutorial,$this->id,$this->category); - } -} - -/** - * Represents {@}toc} for table of contents generation in tutorials - * @tutorial tags.inlinetoc.pkg - * @package phpDocumentor - * @subpackage InlineTags - */ -class parserTocInlineTag extends parserInlineTag -{ - /** - * always 'toc' - * @var string - */ - var $inlinetype = 'toc'; - /** - * @var array format: - *
            -     * array(array('tagname' => section,
            -     *             'link' => returnsee link,
            -     *             'id' => anchor name,
            -     *             'title' => from title tag),...)
            -     * 
            - * @access private - */ - var $_toc = false; - /** - * full path to tutorial, used in conversion - * @var string - * @access private - */ - var $_path = false; - - function parserTocInlineTag() - { - parent::parserInlineTag('toc',''); - } - - /** - * @param array format: - *
            -     * array(array('tag' => {@link parserXMLDocBookTag},
            -     *             'id' => {@link parserIdInlineTag},
            -     *             'title' => {@link parserXMLDocBookTag title}),...)
            -     * 
            - */ - function setTOC($toc) - { - $this->toc = $toc; - } - - /** - * @param string - */ - function setPath($path) - { - $this->_path = $path; - } - - /** - * @uses Converter::formatTutorialTOC() passes an array of format: - * - *
            -     * array(
            -     *    'tagname' => string name of tag,
            -     *    'link' => {@link tutorialLink} to the tutorial,
            -     *    'id' => converter specific tutorial ID from {@link Converter::getTutorialId()}
            -     *    'title' => title of the tutorial)
            -     * 
            - * - * and returns the results as the table of contents - * @uses Converter::getTutorialId() retrieve the tutorial ID for - * @param Converter - */ - function Convert(&$c) - { - $newtoc = array(); - foreach($this->toc as $i => $toc) - { - if (isset($toc['title'])) - $toc['tag']->setTitle($toc['title']); - else - $toc['tag']->setTitle(new parserStringWithInlineTags); - $newtoc[$i]['tagname'] = $toc['tag']->name; - $l = new tutorialLink; - if (!isset($toc['title'])) $title = 'section '.$toc['id']->id; - else - $title = $toc['title']->Convert($c); - $l->addLink($toc['id']->id,$this->_path,basename($this->_path),$toc['id']->package, $toc['id']->subpackage, strip_tags($title)); - $newtoc[$i]['link'] = $c->returnSee($l); - $newtoc[$i]['id'] = $c->getTutorialId($toc['id']->package, $toc['id']->subpackage, basename($this->_path), $toc['id']->id, $toc['id']->category); - $newtoc[$i]['title'] = $title; - } - return $c->formatTutorialTOC($newtoc); - } -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc deleted file mode 100644 index 92a54ea0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc +++ /dev/null @@ -1,1832 +0,0 @@ - parentpackagename - * @see Converter::getLink() - */ - var $package_parents = array(); - - /** - * Used to determine the category for tutorials. - * - * WARNING: If more than one category exists, the last category - * encountered will overwrite the previous and will raise a big warning - * @var array Format: packagename => categoryname - */ - var $packagecategories = array(); - - /** - * list of all packages encountered while documenting. Used in automatic - * linking. - * - * Converter::getLink() first checks if an ambiguous link is found in the - * current package. If not, it then checks in parent packages, and if still - * not found, uses this array to check in the rest of the packages before - * giving up - * @var array Format: array(packagename => 1, packagename => 1,...) - * @see Converter::getLink() - */ - var $all_packages = array(); - - /** - * array of packages to parser and output documentation for, if not all - * packages should be documented - * - * Format:
            - * array(package1,package2,...)
            - * or false if not set - * - * Use this option to limit output similar to ignoring files. If you have - * some temporary files that you don't want to specify by name but don't - * want included in output, set a package name for all the elements in your - * project, and set packageoutput to that name. the default package will be - * ignored. Parsing speed does not improve. If you want to ignore files - * for speed reasons, use the ignore command-line option - * @tutorial phpDocumentor.howto.pkg#using.command-line.packageoutput - * @see Io - * @var false|array - */ - var $packageoutput = false; - - /** - * the functions which handle output from the {@link Parser} - * @see handleEvent(), handleDocBlock(), handlePage(), handleClass() - * @see handleDefine(), handleFunction(), handleMethod(), handleVar() - * @see handlePackagePage(), handleInclude(), handleTutorial() - */ - var $event_handlers = array( - 'docblock' => 'handleDocBlock', - 'page' => 'handlePage', - 'class' => 'handleClass', - 'define' => 'handleDefine', - 'function' => 'handleFunction', - 'method' => 'handleMethod', - 'var' => 'handleVar', - 'const' => 'handleConst', - 'packagepage' => 'handlePackagePage', - 'include' => 'handleInclude', - 'global' => 'handleGlobal', - 'tutorial' => 'handleTutorial', - ); - - /** - * $data contains parsed structures for the current page being parsed - * - * In version 1.1+, $data is only used to store the current page information. - * All handling of documented elements is handled by the - * {@link ProceduralPages} and {@link Classes} classes. - * @var parserData - */ - var $data; - - /** - * set in {@link Setup.inc.php} to the value of the quitemode commandline - * option. - * - * If this option is true, informative output while parsing will not be - * displayed (documentation is unaffected) - * @var boolean - * @tutorial phpDocumentor.howto.pkg#using.command-line.quiet - */ - var $quietMode = false; - - /** - * used to keep track of inheritance at the smartest level possible for a - * dumb computer - * @var Classes - */ - var $classes = false; - - /** - * used to keep track of all elements in a procedural page. Handles name - * conflicts with elegance - * @since 1.1 - * @var ProceduralPages - */ - var $proceduralpages = false; - - /** - * an array of template names indexed by converter name - * - * For example, if the default HTMLframesConverter is using the DOM/l0l33t - * template, the array will be - * $converters['frames'] = 'DOM/l0l33t' - * @var array Format: array(Convertername1 => templatename) - * @see Converter - */ - var $converters = false; - /** - * @var string Title of generated documentation, passed to Converters - */ - var $title = ''; - - var $uses = array(); - - var $db_template; - - /** - * Stores parsed CHANGELOG/INSTALL/README files - * @var array Format: array(CHANGELOG => contents, - * INSTALL => contents, - * README => contents) - */ - var $ric = array(); - - /** - * Flag used to determine whether the last docblock - * was a page-level docblock. - * @var boolean - * @access private - */ - var $_lastDocBlockWasPageLevel = false; - - /** - * Flag used to determine whether the Page-level - * DocBlock was declared in old or new style - * @var boolean - * @access private - */ - var $_oldPageLevel = false; - - /** - * sets up basic data structures - * @param string Title of generated documentation, passed to Converters - * @see $title, $data, $classes, $proceduralpages - */ - function phpDocumentor_IntermediateParser($title='Generated Documentation') - { - $this->title = $title; - $this->data = new parserData; - $this->classes = new Classes; - $this->proceduralpages = new ProceduralPages; - } - - /** - * Retrieve the relative path. If the path contains "pear/" it will - * be used as the base, otherwise the Program_Root string will be used. - * @global array uses 'Program_Root' option to replace it with '' for - * retrieving the source location of a file - * @param string path to file - * @return string - * @see $sourceLocation - * @access private - */ - function _getSourceLocation($sl, $sourceloc) - { - global $_phpDocumentor_options; - if (empty($sl)) return false; - $sl = str_replace('\\','/',$sl); - if (strpos($sl,'pear/')) - { - $sl = substr($sl,strpos($sl,'pear/') + 5); - if (dirname($sl) == '.') - { - return 'PEAR'; - } - return dirname($sl); - } else - { - if (strpos(str_replace($_phpDocumentor_options['Program_Root'] . PATH_DELIMITER,'',$sourceloc),PATH_DELIMITER) === false) - return ''; - return dirname(str_replace($_phpDocumentor_options['Program_Root'] . PATH_DELIMITER,'',$sourceloc)); - } - } - - /** - * Guess the package/subpackage based on subdirectory if the --pear option - * - * A file in pear/dir/file.php will be in package "dir." A file in - * pear/dir/subdir/file.php will be in package "dir," subpackage "subdir." - * @param string full path of file - * @param template-ready source location Program_Root/dir/file.php - * @global array uses the 'pear' option to determine whether to guess based - * on subdirectory - * @tutorial phpDocumentor.howto.pkg#using.command-line.pear - */ - function _guessPackage($path, $sourceloc) - { - global $_phpDocumentor_setting; - if ($_phpDocumentor_setting['pear']) - { - $subpath = explode(PATH_DELIMITER, $this->_getSourceLocation($path, $sourceloc)); - if (!empty($subpath[0])) - { // can only have package and subpackage in this version - $package = $subpath[0]; - $subpackage = ''; - if (isset($subpath[1])) $subpackage = $subpath[1]; - return array($package,$subpackage); - } else return array($this->package, $this->subpackage); - } else return array($this->package, $this->subpackage); - } - - /** - * handles post-parsing of include/require/include_once/include_once - * - * This function sets {@link $data}->clean to false to tell the - * phpDocumentor_IntermediateParser that a page-level DocBlock can't be - * found after this point on this page. It then sets the package - * to be the same as the page, and adds itself to the - * {@link ProceduralPages} class - * @param integer $event Event number from {@link Parser.inc} - * @param parserInclude $data - */ - function handleInclude($event,$data) - { - if ($this->_lastDocBlockWasPageLevel) - { - addWarning(PDERROR_DOCBLOCK_CONFLICT, $data->getName(), $data->getFile()); - if (!$this->_oldPageLevel) - { - unset($this->last); - } - } - $this->_lastDocBlockWasPageLevel = - $this->data->clean = false; - // page was @ignored - if ($this->private_page) - { - unset($this->last); - return; - } - if (empty($this->last)) - { - if (isset($this->db_template)) - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - else - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - } -// $this->last->setLineNumber($data->getLineNumber()); - if ($this->last->getKeyword('ignore')) - { - $this->last = false; - return; -// addWarning(PDERROR_IGNORE_TAG_IGNORED,'include',$data->getName().'('.$data->getValue().')'); - } - - $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'include'); - $data->setDocBlock($this->last); - $this->proceduralpages->addInclude($data); - $this->last = false; - } - - /** - * handles post-parsing of global variables - * - * This function sets {@link $data}->clean to false to tell the - * phpDocumentor_IntermediateParser that a page-level DocBlock can't be - * found after this point on this page. It then sets the package - * to be the same as the page, and adds itself to the - * {@link ProceduralPages} class - * @param integer $event Event number from {@link Parser.inc} - * @param parserGlobal $data - */ - function handleGlobal($event,$data) - { - if ($this->_lastDocBlockWasPageLevel) - { - addWarning(PDERROR_DOCBLOCK_CONFLICT, 'global variable', $data->getName()); - if (!$this->_oldPageLevel) - { - unset($this->last); - } - } - $this->_lastDocBlockWasPageLevel = - $this->data->clean = false; - if ($this->private_page) - { - unset($this->last); - return; - } - if (empty($this->last)) - { - if (isset($this->db_template)) - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - else - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - } -// $this->last->setLineNumber($data->getLineNumber()); - if ($this->last->getKeyword('ignore')) - { - addWarning(PDERROR_IGNORE_TAG_IGNORED,'global variable - just don\'t document the',$data->getName()); - $this->last = false; - return; - } - $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'global'); - $data->setDocBlock($this->last); - if ($data->docblock->getKeyword('name')) - { - $a = $data->docblock->getKeyword('name'); - if (is_object($a)) $a = $a->value; - $data->setName($a); - } - $this->proceduralpages->addGlobal($data); - $this->last = false; - } - - /** - * handles post-parsing of Package-level documentation pages. - * - * sets the {@link $package_pages}[$data->package] to $data - * @param integer $event Event number from {@link Parser.inc} - * @param parserPackagePage $data - */ - function handlePackagePage($event,$data) - { - $this->package_pages[$data->package] = &$data; - $this->last = false; - } - - /** - * handle post-parsing of Tutorials. - * - * This adds the parsed tutorial to the tutorial tree - * @uses $tutorials sets the value of tutorials to parameter $data - * @param integer $event Event Number - * @param parserTutorial $data - * @since 1.2 - */ - function handleTutorial($event,$data) - { - if (isset($this->packagecategories[$data->package])) - { - $data->category = $this->packagecategories[$data->package]; - } else - { - $data->category = $GLOBALS['phpDocumentor_DefaultCategoryName']; - } - $this->tutorials[$data->package][$data->subpackage][$data->tutorial_type][$data->name] = $data; - } - - /** - * handles post-parsing of class vars - * - * This function sets up a @var tag if none is found, and aligns $data's - * $path var and packages to match the parent object - * @param integer $event Event number from {@link Parser.inc} - * @param parserVar $data - */ - function handleVar($event,$data) - { - global $_phpDocumentor_setting; - if ($this->private_class) - { - unset($this->last); - return; - } - if (empty($this->last)) - { - if (isset($this->db_template)) - { - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - } else { - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - } - } -// $this->last->setLineNumber($data->getLineNumber()); - $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'var'); - $this->last->updateModifiers($data->getModifiers()); - - if ($this->last->getKeyword('ignore')) - { - $this->last = false; - return; -// addWarning(PDERROR_IGNORE_TAG_IGNORED,'var',$this->cur_class.'::'.$data->getName()); - } - if (!$this->last->var) - { - $this->last->addVar('mixed',new parserStringWithInlineTags); - } - - if ($_phpDocumentor_setting['pear']) - { - if (strpos($data->getName(), '_') == 1 && !$this->last->getKeyword('access')) - { - addWarning(PDERROR_PRIVATE_ASSUMED,'class variable',$data->class.'::'.$data->getName()); - $this->last->addKeyword('access','private'); - $data->setDocBlock($this->last); - } - } - $data->setDocBlock($this->last); - $data->path = $this->data->parent->path; - $this->classes->addVar($data); - $this->last = false; - } - - /** - * handles post-parsing of class constants - * - * This function aligns $data's - * $path var and packages to match the parent object - * @param integer $event Event number from {@link Parser.inc} - * @param parserVar $data - */ - function handleConst($event,$data) - { - global $_phpDocumentor_setting; - if ($this->private_class) - { - unset($this->last); - return; - } - if (empty($this->last)) - { - if (isset($this->db_template)) - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - else - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - } -// $this->last->setLineNumber($data->getLineNumber()); - $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'const'); - - if ($this->last->getKeyword('ignore')) - { - $this->last = false; - return; -// addWarning(PDERROR_IGNORE_TAG_IGNORED,'var',$this->cur_class.'::'.$data->getName()); - } - $data->setDocBlock($this->last); - $data->path = $this->data->parent->path; - $this->classes->addConst($data); - $this->last = false; - } - - /** - * handles post-parsing of class methods - * - * This function first aligns $data's path and package to match the parent - * object, and also aligns the docblock's @param, @global, and @staticvar - * tags with the information parsed from the method source code. It also - * checks to see if the method is a constructor and sets the $isConstructor - * flag. If source code has been parsed by a {@}source} tag, the source is - * added to its docblock - * - * Finally, it adds the method to the {@link Classes} class. - * @param integer $event Event number from {@link Parser.inc} - * @param parserMethod $data - */ - function handleMethod($event,$data) - { - global $_phpDocumentor_setting; - if ($this->private_class) - { - unset($this->last); - return; - } - - if (empty($this->last)) - { - if (isset($this->db_template)) - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - else - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - } -// $this->last->setLineNumber($data->getLineNumber()); - if ($this->last->getKeyword('ignore')) - { - $this->last = false; - return; -// addWarning(PDERROR_IGNORE_TAG_IGNORED,'method',$this->cur_class.'::'.$data->getName()); - } - $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'method'); - if ($data->hasSource()) - { - $this->last->setSource($data->getSource(), $data->getClass()); - } - foreach($data->listParams() as $param) - { - $update_params[] = $param[0]; - } - foreach($data->listGlobals() as $param) - { - $update_globals[] = $param[1]; - } - foreach($data->listStatics() as $param) - { - $update_statics[] = $param[0]; - } - if (isset($update_params)) - $this->last->updateParams($update_params); - if (isset($update_globals)) - $this->last->updateGlobals($update_globals); - if (isset($update_statics)) - $this->last->updateStatics($update_statics); - $this->last->updateModifiers($data->getModifiers()); - unset($update_params); - unset($update_globals); - unset($update_statics); - - if ($data->getName() == $this->cur_class) $data->setConstructor(); - if ($data->getName() == '__construct') { - $data->setConstructor(); - } - if ($data->getName() == '__destruct') { - $data->setDestructor(); - } - - if ($_phpDocumentor_setting['pear']) - { - if (strpos($data->getName(), '_') === 0 && substr($data->getName(), 1) == $data->class) - { // is destructor - $data->setDestructor(); - } elseif (strpos($data->getName(), '_') === 0 && !$this->last->getKeyword('access')) - { - if (strpos($data->getName(), '__') !== 0) { - addWarning(PDERROR_PRIVATE_ASSUMED,'method',$data->class.'::'.$data->getName().'()'); - $this->last->addKeyword('access','private'); - $data->setDocBlock($this->last); - } - } - } - $data->setDocBlock($this->last); - $data->path = $this->data->parent->path; - $this->classes->addMethod($data); - $this->last = false; - } - - /** - * handles post-parsing of functions - * - * This function sets {@link $data}->clean to false to tell the - * phpDocumentor_IntermediateParser that a page-level DocBlock can't be - * found after this point on this page. It then sets the package to be the - * same as the page, aligns the docblock's @param, @global, and @staticvar - * tags with the information parsed from the function source code. - * - * If source code has been parsed by a {@}source} tag, the source is added - * to its docblock, and then the parserFunction adds itself to the - * {@link ProceduralPages} class - * @param integer $event Event number from {@link Parser.inc} - * @param parserFunction $data - */ - function handleFunction($event,$data) - { - if ($this->_lastDocBlockWasPageLevel) - { - addWarning(PDERROR_DOCBLOCK_CONFLICT, 'function', $data->getName()); - if (!$this->_oldPageLevel) - { - unset($this->last); - } - } - $this->_lastDocBlockWasPageLevel = - $this->data->clean = false; - if ($this->private_page) - { - unset($this->last); - return; - } - - if (empty($this->last)) - { - if (isset($this->db_template)) - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - else - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - } -// $this->last->setLineNumber($data->getLineNumber()); - if ($this->last->getKeyword('ignore')) - { - unset($this->last); - return; - } - $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'function'); - - foreach($data->listParams() as $param) - { - $update_params[] = $param[0]; - } - foreach($data->listGlobals() as $param) - { - $update_globals[] = $param[1]; - } - foreach($data->listStatics() as $param) - { - $update_statics[] = $param[0]; - } - if (isset($update_params)) - $this->last->updateParams($update_params); - if (isset($update_globals)) - $this->last->updateGlobals($update_globals); - if (isset($update_statics)) - $this->last->updateStatics($update_statics); - unset($update_params); - unset($update_globals); - unset($update_statics); - - if ($data->hasSource()) - { - $this->last->setSource($data->getSource()); - } - if (count($this->last->params) == 1 && !count($data->listParams())) - { - // if the function has no parameters, and 1 @param, add it to the list as optional, default value is description from @param - $pars = $this->last->listParams(); - $data->addParam($pars[0]['var'],$pars[0]['data']->getString()); - } - $data->setDocBlock($this->last); - $this->proceduralpages->addFunction($data); - $this->last = false; - } - - /** - * handles post-parsing of defines - * - * This function sets {@link $data}->clean to false to tell the - * phpDocumentor_IntermediateParser that a page-level DocBlock can't be - * found after this point on this page. It then sets the package to be the - * same as the page and adds itself to the {@link ProceduralPages} class - * @param integer $event Event number from {@link Parser.inc} - * @param parserDefine $data - */ - function handleDefine($event,$data) - { - if ($this->_lastDocBlockWasPageLevel) - { - addWarning(PDERROR_DOCBLOCK_CONFLICT, 'define', $data->getName()); - if (!$this->_oldPageLevel) - { - unset($this->last); - } - } - $this->_lastDocBlockWasPageLevel = - $this->data->clean = false; - if ($this->private_page) - { - unset($this->last); - return; - } - if (empty($this->last)) - { - if (isset($this->db_template)) - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - else - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - } -// $this->last->setLineNumber($data->getLineNumber()); - if ($this->last->getKeyword('ignore')) - { - unset($this->last); - return; - } - - $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'define'); - $data->setDocBlock($this->last); - $this->proceduralpages->addDefine($data); - $this->last = false; - } - - /** - * handles post-parsing of classes - * - * This function sets {@link $data}->clean to false to tell the - * phpDocumentor_IntermediateParser that a page-level DocBlock can't be - * found after this point on this page. It sets {@link $cur_class} to its - * name, and if an @ignore tag is found in the DocBlock, it sets - * {@link $private_class} to true, to prevent post-parsing of any of the - * class's vars or methods. Then it checks for the existence of a package - * page for the class's package - * @param integer $event Event number from {@link Parser.inc} - * @param parserClass $data - */ - function handleClass($event,$data) - { - global $_phpDocumentor_setting; - if ($this->_lastDocBlockWasPageLevel) - { - if (!$this->_oldPageLevel) - { - addWarning(PDERROR_DOCBLOCK_GOES_CLASS, $data->getName()); - $doc = new parserDocBlock; - $doc->category = $this->category; - $doc->package = $this->package; - $doc->subpackage = $this->subpackage; - if ($_phpDocumentor_setting['sourcecode']) { - $doc->canSource(); - $doc->addFileSource($this->data->parent->path, $this->data->parent->source); - } - $this->data->setDocBlock($doc); - unset($doc); - $this->last->cantSource(); - } - } - $this->_lastDocBlockWasPageLevel = - $this->data->clean = false; - if (empty($this->last)) - { - if (isset($this->db_template)) - // use the docblock template - $this->last = phpDocumentor_clone($this->db_template); - else - // we don't have a docblock, create an empty one to get rid of errors - $this->last = new parserDocblock(); - list($this->last->package, $this->last->subpackage) = $this->_guessPackage($this->data->parent->path, $this->data->parent->getSourceLocation('dummy')); - addWarning(PDERROR_NO_PACKAGE_TAG,'class',$data->getName(),$this->last->package); - } else - { - if (!$this->last->getExplicitPackage()) - { - list($this->last->package, $this->last->subpackage) = $this->_guessPackage($this->data->parent->path, $this->data->parent->getSourceLocation('dummy')); - addWarning(PDERROR_NO_PACKAGE_TAG,'class',$data->getName(),$this->last->package); - } else - { - if (isset($this->packagecategories[$this->package]) - && $this->packagecategories[$this->package] != $this->category) - addWarning(PDERROR_PACKAGECAT_SET,$this->package, - $this->packagecategories[$this->package], - $this->category); - $this->packagecategories[$this->package] = $this->category; - } - } - $this->last->updateModifiers($data->getModifiers()); -// $this->last->setLineNumber($data->getLineNumber()); - $data->setDocBlock($this->last); - $this->cur_class = $name = $data->getName(); - if ($this->last->getKeyword('ignore')) - { - $this->private_class = true; - unset($this->last); - return; - } - $data->path = $this->data->parent->path; - $this->classes->addClass($data); - $this->private_class = false; - if ($this->last->package) - { - $this->parsePackagePage($this->last->package, $this->data->parent->getPath()); - } - $this->last = false; - } - - /** - * handles post-parsing of procedural pages - * - * this event is called at the start of a new page, before the Parser knows - * whether the page will contain any procedural pages or not - * @param integer $event Event number from {@link Parser.inc} - * @param parserPage $data - */ - function handlePage($event,$data) - { - $type = 'page'; - $this->private_page = false; - $this->data = new parserData; - $data->category = $this->category = $GLOBALS['phpDocumentor_DefaultCategoryName']; - $this->package = $GLOBALS['phpDocumentor_DefaultPackageName']; - $this->subpackage = ''; - $this->proceduralpages->addPage($data); - $this->data->setParent($data); - $this->pages[$data->getPath()] = $this->data; - $this->classes->nextFile($data->getPath()); - $this->packageoutput = $data->getPackageOutput(); - } - - /** - * handles post-parsing of DocBlocks - * - * This function sets {@link $last} to the DocBlock represented by $data, to - * allow the next documentable element passed to - * phpDocumentor_IntermediateParser to link the DocBlock into its $docblock - * property. This function also checks for two special cases of DocBlocks: - *
              - *
            1. First DocBlock in the file contains a @package tag
            2. - *
            3. First DocBlock in the file is immediately followed by another - * DocBlock
            4. - *
            - * In both cases, the function extracts this tag and uses it as the - * page-level package. If the @package tag is in the DocBlock of an - * element (function, global variable, whatever) that isn't a page-level - * DocBlock, a warning will be raised to notify the author that a @package - * tag belongs in a page-level DocBlock. - * - * New in version 1.2.2, if the first DocBlock in a file contains - * a @package tag, it is a page-level DocBlock. - * - * If the DocBlock is page-level, it is processed with - * {@link _processPageLevelDocBlock} - * - * Finally, the function replaces the old parserPage in - * {@link parserData::$data}->parent with the new one containing information - * from the DocBlock by calling {@link addPage()}, and checks for - * package-level docs. - * @param integer $event Event number from {@link Parser.inc} - * @param parserDocBlock $data - */ - function handleDocBlock($event,$data) - { - $type = 'docblock'; - $data->postProcess(); - // Zend desc support - if ($tdesc = $data->getKeyword('desc')) - { - $data->setShortDesc($tdesc); - unset($data->tags['desc']); - } - $this->_lastDocBlockWasPageLevel = false; - // 1st docblock in file, check for @package - if ($this->data->isClean() && !isset($this->last)) - { - if ($data->getExplicitPackage()) - { - // new with 1.2.2: - // if the first docblock in a file - // contains a @package tag, then it is - // a page-level docblock - $this->_processPageLevelDocBlock($data); - $this->_lastDocBlockWasPageLevel = true; - $this->all_packages[$data->package] = 1; - $this->last = $data; - return; - } - $doc = new parserDocBlock; - $doc->category = $this->category; - $doc->package = $this->package; - $doc->subpackage = $this->subpackage; - $this->data->setDocBlock($doc); - $this->proceduralpages->addPagePackage($this->data->parent->getPath(),$this->package,$this->subpackage); - unset($doc); - } - // 2nd docblock in a row, and it's at the top of the file, page-level docblock - if ($this->lasttype == "docblock" && $this->data->isClean()) - { - $this->_processPageLevelDocBlock($this->last); - $this->_oldPageLevel = true; - $this->_lastDocBlockWasPageLevel = false; - } - $this->all_packages[$data->package] = 1; - $this->last = $data; - } - - /** - * Process a Page-level DocBlock - * - * First, it checks for an @ignore tag, - * and if found, calls {@link ProceduralPages::ignorePage()}. An @ignore - * tag in a page-level DocBlock will ignore all functions, defines, global - * variables, and includes. It will not ignore classes! The function next - * checks for an @access private, and if --parseprivate is off, performs the - * same actions as @ignore, raising a warning for the unsuspecting user. - * Next, it checks for the @name tag, which is used to rename the page. - * This is also a PEAR compatibility issue, and may not be very useful in - * the long run. Documentation is best when it refers to real entities in - * the package, and not to aliases. - * @access private - */ - function _processPageLevelDocBlock($data) - { - global $_phpDocumentor_setting; - // can only have 1 package-level docblock, others are ignored - if (!$this->data->isClean()) - { - return; - } - $this->data->clean = false; - $this->data->explicitDocBlock(); - $data->canSource(); - if ($_phpDocumentor_setting['sourcecode']) - { - $data->addFileSource($this->data->parent->path, $this->data->parent->source); - } - if (!$data->getExplicitPackage()) - { - list($data->package,$data->subpackage) = $this->_guessPackage($this->data->parent->getPath(), $this->data->parent->getSourceLocation('dummy')); - addWarning(PDERROR_NO_PACKAGE_TAG,'file',$this->data->parent->getPath(),$this->last->package); - } - if (isset($this->packagecategories[$this->package]) - && $this->packagecategories[$this->package] != $this->category) - addWarning(PDERROR_PACKAGECAT_SET,$this->package, - $this->packagecategories[$this->package], - $data->category); - $this->packagecategories[$this->package] = $data->category; - $this->category = $this->data->parent->category = $data->category; - $this->packagecategories[$this->package] = $this->category; - $this->subpackage = $this->data->parent->subpackage = $data->subpackage; - if ($data->getKeyword('ignore')) - { - $this->proceduralpages->ignorePage($this->data->parent); - $this->private_page = true; - unset($this->last); - $this->privatepages[$this->data->parent->getPath()] = $this->data; - unset($this->pages[$this->data->parent->getPath()]); - return; - } - $this->data->setDocBlock($data); - $this->package = $this->data->parent->package = $data->package; - $this->subpackage = $this->data->parent->subpackage = $data->subpackage; - $this->proceduralpages->addPagePackage($this->data->parent->getPath(),$this->package,$this->subpackage); - if ($access = $data->getKeyword('access')) - { - if (is_object($access) && ($access->getString() == 'private') && (!$this->parsePrivate)) - { - addWarning(PDERROR_PARSEPRIVATE, $this->data->parent->getPath()); - $this->proceduralpages->ignorePage($this->data->parent); - $this->private_page = true; - unset($this->last); - $this->privatepages[$this->data->parent->getPath()] = $this->data; - unset($this->pages[$this->data->parent->getPath()]); - return; - } - } - if ($data->getKeyword('name')) - { - $a = $data->getKeyword('name'); - if (is_object($a)) $a = $a->value; - $this->data->parent->setFile($a); - $this->proceduralpages->setName($a); - } - $this->addPage($this->data->parent, $this->data->parent->getPath()); - if ($this->package) - { - $this->parsePackagePage($this->package, $this->data->parent->getPath()); - } - } - - /** - * Backward-compatibility only, use the new tutorials for more power - * @tutorial tutorials.pkg - * @param string package name of package file to parse - * @param string directory of file that contains package name - */ - function parsePackagePage($package, $path) - { - if (!isset($this->package_pages[$package])) - { - if (file_exists(dirname($path) . SMART_PATH_DELIMITER . $package . '.html')) - { - if ($this->quietMode === false) - { - phpDocumentor_out("Reading package-level file ".$package . '.html'); - flush(); - } - $fp = fopen(dirname($path) . SMART_PATH_DELIMITER . $package . '.html',"r"); - $ret = fread($fp,filesize(dirname($path) . SMART_PATH_DELIMITER . $package . '.html')); - fclose($fp); - unset($fp); - if ($this->quietMode === false) - { - phpDocumentor_out(" -- Parsing File\n"); - flush(); - } - $pageParser = new ppageParser; - $tempp = $this->package; - $lp = $this->last; - $pageParser->subscribe('*',$this); - $pageParser->parse($ret,false,$package); - $this->package = $tempp; - $this->last = $lp; - unset($tempp); - unset($pageParser); - } - } - } - - /** - * called via {@link Parser::parse()} and Parser's inherited method - * {@link Publisher::publishEvent()} - * - * $event is one of the PHPDOC constants from Parser.inc. If it is not - * PHPDOCUMENTOR_EVENT_NEWSTATE, then a function name is retrieved from the - * {@link $event_handlers} array and called to handle the $data - * @param integer $event event number from {@link Parser.inc} - * @param mixed $data if $event is {@link PHPDOCUMENTOR_EVENT_NEWSTATE}, $data is a {@link PHP_DOC_EVENT_END_PAGE} or {@link STATE_END_CLASS}, - * otherwise $data is either a {@link parserDocBlock}, {@link parserPage} or descendant of {@link parserElement} - * @global array we use 'sourcecode' to determine whether to highlight the source - * of the current file if it has no file-level docblock - */ - function HandleEvent($event,$data) - { - global $_phpDocumentor_setting; - global $phpDocumentor_DefaultPackageName, $phpDocumentor_DefaultCategoryName; - if (empty($this->packagecategories)) - $this->packagecategories[$phpDocumentor_DefaultPackageName] = $phpDocumentor_DefaultCategoryName; - if ($event == PHPDOCUMENTOR_EVENT_NEWSTATE) - { - if ($data == STATE_END_CLASS) - { - } elseif ($data == PHPDOCUMENTOR_EVENT_END_PAGE) - { - if (!$this->private_page) - { - $this->all_packages[$this->package] = 1; - if (!$this->data->hasExplicitDocBlock()) - { - $doc = $this->data->docblock; - if (!$this->data->docblock) - { - $doc = new parserDocBlock; - } - if ($_phpDocumentor_setting['sourcecode']) - { - $doc->canSource(); - $doc->addFileSource($this->data->parent->path, $this->data->parent->source); - } - list($doc->package,$doc->subpackage) = $this->_guessPackage($this->data->parent->getPath(), $this->data->parent->getSourceLocation('dummy')); - addWarning(PDERROR_NO_PAGE_LEVELDOCBLOCK,$this->data->parent->getPath()); - $this->data->setDocBlock($doc); - $this->proceduralpages->addPage($this->data->parent,$doc->package,$doc->subpackage); - } - $this->pages[$this->data->parent->getPath()] = $this->data; - } - $this->private_page = false; - $this->private_class = false; - if (isset($this->db_template)) - { - addWarning(PDERROR_DB_TEMPLATE_UNTERMINATED); - } - unset($this->db_template); - unset($this->last); - } elseif ($data == PHPDOCUMENTOR_EVENT_END_DOCBLOCK_TEMPLATE) - { - unset($this->db_template); - } - //echo $this->state_lookup[$data] . "\n"; - //echo $data."\n"; - } - else - { - if ($event == PHPDOCUMENTOR_EVENT_README_INSTALL_CHANGELOG) - { - $this->ric[$data[0]] = $data[1]; - return; - } - if ($event == PHPDOCUMENTOR_EVENT_DOCBLOCK_TEMPLATE) - { - $data->postProcess(); - $this->db_template = $data; - $this->_lastDocBlockWasPageLevel = false; - // 2nd docblock in a row, and it's at the top of the file, page-level docblock - if ($this->type == "docblock" && $this->data->isClean()) - { - // can only have 1 package-level docblock, others are ignored - $this->data->clean = false; - if ($this->last->getKeyword('ignore')) - { - $this->proceduralpages->ignorePage($this->data->parent); - $this->private_page = true; - unset($this->last); - $this->privatepages[$this->data->parent->getPath()] = $this->data; - unset($this->pages[$this->data->parent->getPath()]); - return; - } - $this->data->setDocBlock($this->last); - $this->package = $this->data->parent->package = $this->last->package; - $this->subpackage = $this->data->parent->subpackage = $this->last->subpackage; - $this->proceduralpages->addPagePackage($this->data->parent->getPath(),$this->package,$this->subpackage); - if ($access = $this->last->getKeyword('access')) - { - if (is_object($access) && ($access->getString() == 'private') && (!$this->parsePrivate)) - { - addWarning(PDERROR_PARSEPRIVATE, $this->data->parent->getPath()); - $this->proceduralpages->ignorePage($this->data->parent); - $this->private_page = true; - unset($this->last); - $this->privatepages[$this->data->parent->getPath()] = $this->data; - unset($this->pages[$this->data->parent->getPath()]); - return; - } - } - if ($this->last->getKeyword('name')) - { - $a = $this->last->getKeyword('name'); - if (is_object($a)) $a = $a->value; - $this->data->parent->setFile($a); - $this->proceduralpages->setName($a); - } - $this->addPage($this->data->parent, $this->data->parent->getPath()); - if ($this->package) - { - $this->parsePackagePage($this->package, $this->data->parent->getPath()); - } - } - unset($this->last); - } else - { - $this->lasttype = $this->type; - $type = $data->getType(); -// fancy_debug($type,$data); - if (($type != 'page') && ($type != 'docblock') && ($type != 'packagepage') && ($type != 'tutorial')) - { - $data->setFile($this->data->parent->getFile()); - } - $this->type = $type; - //echo $type . "\n"; - - if (isset($this->event_handlers[$type])) - { - $handle = $this->event_handlers[$type]; - $this->$handle($event,$data); - } - } - } - } - - /** - * Replaces the {@link parserPage} represented by $this->pages[$path] with - * $page - * - * Called by {@link addPageIfNecessary(), handleDocBlock()} and - * {@link ProceduralPages::setupPages()}, this method first checks to see if - * the page has been added. If not, it assumes that the page has either - * been @ignored or set with @access private with --parseprivate off, and - * returns {@link addPrivatePage()}. Otherwise, it sets the pages[$path] to - * be the parserPage $page and sets the package and subpackage to that of - * $page - * @see $pages - * @param parserPage - * @param string full path to the file - */ - function addPage($page, $path) - { - if (!isset($this->pages[$path])) return $this->addPrivatePage($page, $path); - $this->pages[$path]->setParent($page); - if ($page->package != $GLOBALS['phpDocumentor_DefaultPackageName']) - { - if (!$this->pages[$path]->docblock) - { - $docblock = new parserDocBlock; - $docblock->package = $page->package; - $docblock->subpackage = $page->subpackage; - $this->pages[$path]->docblock = $docblock; - } else - { - $this->pages[$path]->docblock->package = $page->package; - $this->pages[$path]->docblock->subpackage = $page->subpackage; - } - } - } - - /** - * add a new {@link parserPage} to the $pages array if none is found - * - * This method is used when a page has been @ignored or marked with @access - * private, and a public class is in the page (a class with no @access - * private in its DocBlock). The method first creates a new page in the - * {@link $pages} array and then copies path information, and calls - * {@link addPage()} to set up packages - * @param string full path of page - */ - function addPageIfNecessary($path, &$class) - { - global $_phpDocumentor_setting; - if (!$this->parsePrivate) - { - if (!isset($this->pages[$path])) - { - $this->pages[$path] = new parserData; - $this->pages[$path]->docblock = new parserDocBlock; - $this->pages[$path]->docblock->package = $this->privatepages[$path]->docblock->package; - $this->pages[$path]->docblock->subpackage = $this->privatepages[$path]->docblock->subpackage; - $par = $this->privatepages[$path]->parent; - $this->pages[$path]->setParent($par); - $this->proceduralpages->addPage($par); - } - } - if (isset($_phpDocumentor_setting['packageoutput'])) - $packages = explode(',',$_phpDocumentor_setting['packageoutput']); - if (isset($_phpDocumentor_setting['packageoutput']) && - $this->pages[$path]->parent->package != $class->docblock->package && - !in_array($this->pages[$path]->parent->package,$packages)) - { - $this->pages[$path]->parent->package = $class->docblock->package; - $this->addPage($this->pages[$path]->parent, $path); - $this->proceduralpages->addPage($this->pages[$path]->parent); - } - } - - /** - * Adds a {@link parserPage} element to the {@link parserData} element in - * $this->privatepages[$path] - * - * Performs a similar function to addPage, but adds to the - * {@link $privatePages} array - * @param parserPage $page - * @param string $path full path to the page - * @see addPage() - */ - function addPrivatePage($page, $path) - { - $this->privatepages[$path]->setParent($page); - if ($page->package != $GLOBALS['phpDocumentor_DefaultPackageName']) - { - if (!$this->privatepages[$path]->docblock) - { - $docblock = new parserDocBlock; - $docblock->package = $page->package; - $docblock->subpackage = $page->subpackage; - $this->privatepages[$path]->docblock = $docblock; - } else - { - $this->privatepages[$path]->docblock->package = $page->package; - $this->privatepages[$path]->docblock->subpackage = $page->subpackage; - } - } - } - - /** - * adds a processed descendant of {@link parserElement} to the {@link $pages} - * array or {@link $privatepages} array - * - * This function expects the page to exist in either $pages or $privatepages. It calls the - * {@link parserData::addElement()} method to add $element to the page. - * @param parserElement $element this will actually be a descendant of parserElement - * @param string $path - */ - function addElementToPage($element, $path) - { - if (isset($this->privatepages[$path])) - { - if (isset($this->pages[$path])) - { - if ($element->type == 'class' || $element->type == 'method' - || $element->type == 'var' || $element->type == 'const') - { - $this->pages[$path]->addElement($element); - } else - $this->privatepages[$path]->addElement($element); - } else - $this->privatepages[$path]->addElement($element); - } else - { - if (isset($this->pages[$path])) - { - $this->pages[$path]->addElement($element); - } - } - } - - /** - * Add all the @uses tags from $element to the $uses array so that @usedby - * virtual tags can be added - * @uses parserUsesTag::getSeeElement() used to initialize {@link $uses} - * @uses parserUsesTag::getDescription() used to initialize {@link $uses} - * @param parserElement descendant of parserElement - * @param string full path to the file - */ - function addUses($element, $path) - { - if ($element->type == 'page') - { - $element = $this->pages[$element->path]; - } - if (!$this->parsePrivate && $element->docblock->hasaccess) - { - $a = $element->docblock->getKeyword('access'); - if (is_object($a) && $a->getString() == 'private') return; - } - if (isset($this->privatepages[$path])) - { - if (isset($this->pages[$path])) - { -// if ($element->type == 'function' || $element->type == 'method') - { - $uses = $element->docblock->getKeyword('uses'); - if ($uses) - { - if (!is_array($uses)) $uses = array($uses); - foreach($uses as $use) - { - if (!is_object($use)) continue; - $el = $use->getSeeElement(); - $description = $use->getDescription(); - $this->uses[$el][] = array($element, $description); - } - } - } - } - } else - { - if (isset($this->pages[$path])) - { -// if ($element->type == 'function' || $element->type == 'method') - { - $uses = $element->docblock->getKeyword('uses'); - if ($uses) - { - if (!is_array($uses)) $uses = array($uses); - foreach($uses as $use) - { - if (!is_object($use)) continue; - $el = $use->getSeeElement(); - $description = $use->getDescription(); - $this->uses[$el][] = array($element, $description); - } - } - } - } - } - } - - /** - * Add a {@link parserUsedByTag} link to every element referred to by @uses - * @param Converter temporary converter used to retrieve abstract links - * @uses phpDocumentor_IntermediateParser::addUses() indirectly, as - * addUses() sets up $uses, which is iterated over here - * @uses $pages sets up all @usedby tags from here - * @access private - */ - function _setupUsesList(&$converter) - { - ob_start(); - $converter->_createPkgElements($this->pages); - ob_end_clean(); - foreach($this->uses as $link => $elements) - { - foreach($elements as $element) - { - if ($element[0]->type == 'method' || $element[0]->type == 'var' || - $element[0]->type == 'const') - { - $converter->class = $element[0]->getClass(); - } - if ($element[0]->type == 'class') - { - $converter->class = $element[0]->getName(); - } - $reallink = $converter->getLink($link,$element[0]->docblock->package); - if (is_object($reallink)) - { - // add a used by tag to the docblock of the destination - switch(phpDocumentor_get_class($reallink)) - { - case 'pagelink' : - case 'functionlink' : - case 'definelink' : - case 'globallink' : - if (isset($this->pages[$reallink->path])) - { - for ($i=0;$ipages[$reallink->path]->elements);$i++) - { - if ($this->pages[$reallink->path]->elements[$i]->type == str_replace('link','',phpDocumentor_get_class($reallink)) && $this->pages[$reallink->path]->elements[$i]->getName() == $reallink->name) - { - $this->pages[$reallink->path]->elements[$i]->docblock->addUsedBy($element[0]->getLink($converter,false,true), $element[1]); -// debug('added @usedby to '.str_replace('link','',phpDocumentor_get_class($reallink)).' '.$reallink->name); - } - } - } - break; - case 'classlink' : - case 'methodlink' : - case 'varlink' : - case 'constlink' : - if (isset($this->pages[$reallink->path])) - { - for ($i=0;$ipages[$reallink->path]->classelements);$i++) - { - if ($this->pages[$reallink->path]->classelements[$i]->type == str_replace('link','',phpDocumentor_get_class($reallink)) && $this->pages[$reallink->path]->classelements[$i]->getName() == $reallink->name) - { - $this->pages[$reallink->path]->classelements[$i]->docblock->addUsedBy($element[0]->getLink($converter,false,true), $element[1]); -// debug('added @usedby to '.str_replace('link','',phpDocumentor_get_class($reallink)).' '.$reallink->name); - } - } - } - break; - } - } - } - } - } - - /** - * Interface to the Converter - * - * This function simply passes {@link $pages} and {@link package_pages} to - * the walk() method, and then calls the Output() method. Note that - * Output() is not required to do anything, and in fact doesn't in - * HTMLframesConverter. - * @uses Converter::walk() passes {@link $pages} and {@link $package_pages} - * @uses Converter::Output() - */ - function Convert($title, $converter) - { - $converter->walk($this->pages, $this->package_pages); - $converter->Output($title); - } - - /** - * Clean up classes - * - * {@source} - * @access private - * @uses Classes::Inherit() passes $this - */ - function fixClasses() - { - $this->classes->Inherit($this); - } - - /** - * Clean up Procedural Pages - * {@source} - * @access private - * @uses ProceduralPages::setupPages() passes $this - */ - function fixProcPages() - { - $this->proceduralpages->setupPages($this); - } - - /** - * If the parent class of $class is in a different package, adds it to the - * {@link $package_parents} array - * @param parserClass &$class - */ - function addPackageParent(&$class) - { - if (!is_array($class->parent)) return; - $par = $this->classes->getClass($class->parent[1], $class->parent[0]); - if ($class->docblock->package == $par->docblock->package) return; - $this->package_parents[$class->docblock->package] = $par->docblock->package; - if (!isset($this->package_parents[$par->docblock->package]) || !$this->package_parents[$par->docblock->package]) $this->package_parents[$par->docblock->package] = false; - } - - /** - * Add a converter name to use to the list of converters - * - * Sets up the {@link $converters} array. - * {@internal - * First, the Converter's file is included, and then, if successful, - * the converter classname is tested for existance. If all is good, - * then the templates are added to the list of converters/templates to use}} - * @param string $output output format (HTML, PDF, XML). Must be all caps - * @param string $name Converter name (frames, for example, is the name of - * HTMLframesConverter) - * @param string $template template to use, should be a relative path to the - * templates dir (like DOM/default) - */ - function addConverter($output,$name,$template) - { - if (strpos($name,PATH_DELIMITER)) - { - $parent = explode(PATH_DELIMITER,$name); - $parent = $parent[0]; - if ('@VER@' != '@'.'VER@') { - $filename = 'PhpDocumentor/phpDocumentor/Converters' . - PATH_DELIMITER . $output . PATH_DELIMITER . $parent . PATH_DELIMITER . $output . $parent . "Converter" . ".inc"; - if (Io::isIncludeable($filename)) - { - include_once($filename); - } - } else { - $filename = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . '/phpDocumentor/Converters' . - PATH_DELIMITER . $output . PATH_DELIMITER . $parent . PATH_DELIMITER . $output . $parent . "Converter" . ".inc"; - if (file_exists($filename) && is_readable($filename)) - { - include_once($filename); - } - } - if (!class_exists($output . $parent . 'Converter')) - { - addError(PDERROR_CONVERTER_NOT_FOUND,"parent Converter ".$output . $parent . "Converter of child Converter ".$output . str_replace(PATH_DELIMITER,'',$name) . "Converter"); - } - } - $filename = str_replace('\\', '/', $GLOBALS['_phpDocumentor_install_dir']) . '/phpDocumentor/Converters' . - PATH_DELIMITER . $output . PATH_DELIMITER . $name . PATH_DELIMITER . $output . - str_replace(PATH_DELIMITER, '', $name) . "Converter" . ".inc"; - if (file_exists($filename) && is_readable($filename)) - { - include_once($filename); - } - if (class_exists($output . str_replace(PATH_DELIMITER,'',$name) . 'Converter')) - { - $this->converters[$output][$output . str_replace(PATH_DELIMITER,'',$name) . "Converter"][] = $template; - } else - { - addError(PDERROR_CONVERTER_NOT_FOUND,$output . str_replace(PATH_DELIMITER,'',$name) . "Converter"); - } - } - - /** - * does a natural case sort on two {@link parserElement} descendants - * - * @param mixed $a - * @param mixed $b - * @return int - * @see generateElementIndex() - */ - function elementCmp ($a, $b) - { - return strnatcasecmp($a->getName(), $b->getName()); - } - - /** - * does a natural case sort on two class elements (either - * {@link parserClass, parserMethod} or {@link parserVar} - * - * @param mixed $a - * @param mixed $b - * @return int - * @see generateElementIndex() - */ - function ClasselementCmp ($a, $b) - { - if (phpDocumentor_get_class($a) == 'parserclass') $atest = $a->name; else $atest = $a->class; - if (phpDocumentor_get_class($b) == 'parserclass') $btest = $b->name; else $btest = $b->class; - - if(($c = strnatcasecmp($atest, $btest)) != 0) return $c; - if (phpDocumentor_get_class($a) != 'parserclass') $atest .= $a->name; - if (phpDocumentor_get_class($b) != 'parserclass') $btest .= $b->name; - if (phpDocumentor_get_class($a) == 'parsermethod' && phpDocumentor_get_class($b) == 'parsermethod') - { - if ($a->isConstructor) return -1; - if ($b->isConstructor) return 1; - if ($a->isDestructor) return -1; - if ($b->isDestructor) return 1; - } - return strnatcasecmp($atest,$btest); - } - - /** - * call this method once parsing has completed. - * - * This method calls the private methods fixClasses and fixProcPages, both - * of which adjust inheritance and package information based on complicated - * post-parsing rules described in {@link ProceduralPages::setupPages()} - * and {@link Classes::Inherit()}. Then, it sorts elements of the $pages - * array and calls Convert for each Converter in the $converters array - * @see $converters - * @see $pages - * @see Convert() - */ - function Output ($title = "Generated Documentation") - { - $GLOBALS['phpDocumentor_errors']->curfile = false; - $this->fixClasses(); - $this->fixProcPages(); -// var_dump($this->uses); -// exit; - phpDocumentor_out("\nSorting page elements..."); - flush(); - uasort($this->pages,'pagesort'); - foreach($this->pages as $i => $page) - { - usort($this->pages[$i]->elements,array($this,'elementCmp')); - usort($this->pages[$i]->classelements,array($this,'ClasselementCmp')); - } - phpDocumentor_out("done\n"); - flush(); - $complicatedout = false; - if (is_array($this->converters)) - { - if (count($this->converters) > 1) - { - $complicatedout = true; - } - phpDocumentor_out("Formatting @uses list..."); - flush(); - $a = new __dummyConverter($this->all_packages, $this->package_parents, $this->classes, $this->proceduralpages, $this->packageoutput, $this->parsePrivate, $this->quietMode, $this->targetDir , '', $this->title); - $this->_setupUsesList($a); - unset($a); - phpDocumentor_out("done\n\n"); - flush(); - foreach($this->converters as $converter => $blah) - { - if (is_array($blah)) - { - if (count($blah) > 1) - { - $complicatedout = true; - } - foreach($blah as $converter => $templates) - { - foreach($templates as $template) - { - $extraout = ''; - if ($complicatedout) - { - $extraout = SMART_PATH_DELIMITER . $converter; - } - if (count($templates) > 1) - { - $extraout .= SMART_PATH_DELIMITER . str_replace(PATH_DELIMITER, SMART_PATH_DELIMITER, substr($template,0,strlen($template) - 1)); - } - $a = new $converter($this->all_packages, $this->package_parents, $this->classes, $this->proceduralpages, $this->packageoutput, $this->parsePrivate, $this->quietMode, $this->targetDir . $extraout, $template, $this->title); - if (isset($this->templateBase)) - { - $a->setTemplateBase($this->templateBase, $template); - } - $a->ric = $this->ric; - $a->packagecategories = $this->packagecategories; - if (isset($this->tutorials)) $a->setTutorials($this->tutorials); - $this->Convert($title, $a); - unset($a); - } - } - } - } - } else - { - addErrorDie(PDERROR_NO_CONVERTERS); - } - } - - /** - * Sets the output directory - * - * @param string $dir the output directory - */ - function setTargetDir($dir) - { - $this->targetDir = $dir; - } - - /** - * Sets the template base directory - * - * @param string $dir the template base directory - * @tutorial phpDocumentor.howto.pkg#using.command-line.templatebase - */ - function setTemplateBase($dir) - { - $this->templateBase = $dir; - } - - /** - * set parsing information output mode (quiet or verbose) - * - * If set to false, no parsing information (parsing /php/file/thisfile.php, - * Converting etc.) will be displayed. - * Useful for cron jobs - * @param bool $quietMode - */ - function setQuietMode($quietMode) - { - $this->quietMode = $quietMode; - } - - /** - * set display of elements marked with @access private - * - * If set to true, elements will be displayed - * @param bool $parse - */ - function setParsePrivate($parse) - { - $this->parsePrivate = $parse; - } -} - -/** @access private */ -function pagesort($a, $b) -{ - return strnatcasecmp($a->parent->file,$b->parent->file); -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Io.inc b/buildscripts/PhpDocumentor/phpDocumentor/Io.inc deleted file mode 100644 index dac36bec..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Io.inc +++ /dev/null @@ -1,869 +0,0 @@ - - * @version $Id: Io.inc,v 1.5 2005/11/20 21:20:22 cellog Exp $ - * @package phpDocumentor - */ -/** - * Class to handle file and user io opperations - * - * @author Joshua Eichorn - * @version $Id: Io.inc,v 1.5 2005/11/20 21:20:22 cellog Exp $ - * @package phpDocumentor - */ -class Io -{ - - /** - * Holds all the options that are avaible to the cmd line interface - * and to the different web interfaces - */ - var $phpDocOptions; - /** - * Format: array(array(regexp-ready string to search for whole path, - * regexp-ready string to search for basename of ignore strings),...) - * @var false|array - */ - var $ignore = false; - - /** - * creates an array $this->phpDocOptions and sets program options in it. - * Array is in the format of: - *
            -     * [filename][tag][] = "f";
            -     * [filename][tag][] = "-file";
            -     * [filename][desc] "name of file to parse"
            -     * 
            - */ - function Io() - { - $this->phpDocOptions['filename']['tag'] = array( "-f", "--filename"); - $this->phpDocOptions['filename']['desc'] = "name of file(s) to parse ',' file1,file2. Can contain complete path and * ? wildcards"; - $this->phpDocOptions['filename']['type'] = "path"; - - $this->phpDocOptions['directory']['tag'] = array( "-d", "--directory"); - $this->phpDocOptions['directory']['desc'] = "name of a directory(s) to parse directory1,directory2"; - $this->phpDocOptions['directory']['type'] = "path"; - - $this->phpDocOptions['examplesdir']['tag'] = array( "-ed", "--examplesdir"); - $this->phpDocOptions['examplesdir']['desc'] = "full path of the directory to look for example files from @example tags"; - $this->phpDocOptions['examplesdir']['type'] = "path"; - - $this->phpDocOptions['templatebase']['tag'] = array( "-tb", "--templatebase"); - $this->phpDocOptions['templatebase']['desc'] = "base location of all templates for this parse."; - $this->phpDocOptions['templatebase']['type'] = "path"; - - $this->phpDocOptions['target']['tag'] = array("-t", "--target"); - $this->phpDocOptions['target']['desc'] = "path where to save the generated files"; - $this->phpDocOptions['target']['type'] = "path"; - - $this->phpDocOptions['ignore']['tag'] = array("-i", "--ignore"); - $this->phpDocOptions['ignore']['desc'] = "file(s) that will be ignored, multiple separated by ','. Wildcards * and ? are ok"; - $this->phpDocOptions['ignore']['type'] = "path"; - - $this->phpDocOptions['ignoretags']['tag'] = array("-it", "--ignore-tags"); - $this->phpDocOptions['ignoretags']['desc'] = "tags to ignore for this parse. @package, @subpackage, @access and @ignore may not be ignored."; - $this->phpDocOptions['ignoretags']['type'] = "value"; - - $this->phpDocOptions['hidden']['tag'] = array("-dh", "--hidden"); - $this->phpDocOptions['hidden']['desc'] = "set equal to on (-dh on) to descend into hidden directories (directories starting with '.'), default is off"; - $this->phpDocOptions['hidden']['type'] = "value"; - - $this->phpDocOptions['quiet']['tag'] = array("-q", "--quiet"); - $this->phpDocOptions['quiet']['desc'] = "do not display parsing/conversion messages. Useful for cron jobs on/off default off"; - $this->phpDocOptions['quiet']['type'] = "value"; - - $this->phpDocOptions['title']['tag'] = array("-ti","--title"); - $this->phpDocOptions['title']['desc'] = "title of generated documentation, default is 'Generated Documentation'"; - $this->phpDocOptions['title']['type'] = "value"; - - $this->phpDocOptions['help']['tag'] = array("-h", "--help"); - $this->phpDocOptions['help']['desc'] = " show this help message"; - - $this->phpDocOptions['useconfig']['tag'] = array("-c","--useconfig"); - $this->phpDocOptions['useconfig']['desc'] = "Use a Config file in the users/ subdirectory for all command-line options"; - $this->phpDocOptions['useconfig']['type'] = "value"; - - $this->phpDocOptions['parseprivate']['tag'] = array("-pp","--parseprivate"); - $this->phpDocOptions['parseprivate']['desc'] = "parse @internal and elements marked private with @access. Use on/off, default off"; - $this->phpDocOptions['parseprivate']['type'] = "value"; - - $this->phpDocOptions['packageoutput']['tag'] = array("-po","--packageoutput"); - $this->phpDocOptions['packageoutput']['desc'] = "output documentation only for selected packages. Use a comma-delimited list"; - $this->phpDocOptions['packageoutput']['type'] = "value"; - - $this->phpDocOptions['defaultpackagename']['tag'] = array("-dn","--defaultpackagename"); - $this->phpDocOptions['defaultpackagename']['desc'] = "name to use for the default package. If not specified, uses 'default'"; - $this->phpDocOptions['defaultpackagename']['type'] = "value"; - - $this->phpDocOptions['defaultcategoryname']['tag'] = array("-dc","--defaultcategoryname"); - $this->phpDocOptions['defaultcategoryname']['desc'] = "name to use for the default category. If not specified, uses 'default'"; - $this->phpDocOptions['defaultcategoryname']['type'] = "value"; - - $this->phpDocOptions['output']['tag'] = array("-o","--output"); - $this->phpDocOptions['output']['desc'] = "output information to use separated by ','. Format: output:converter:templatedir like \"HTML:frames:phpedit\""; - $this->phpDocOptions['output']['type'] = "value"; - - $this->phpDocOptions['converterparams']['tag'] = array("-cp","--converterparams"); - $this->phpDocOptions['converterparams']['desc'] = "dynamic parameters for a converter, separate values with commas"; - $this->phpDocOptions['converterparams']['type'] = "value"; - - $this->phpDocOptions['customtags']['tag'] = array("-ct","--customtags"); - $this->phpDocOptions['customtags']['desc'] = "custom tags, will be recognized and put in tags[] instead of unknowntags[]"; - $this->phpDocOptions['customtags']['type'] = "value"; - - $this->phpDocOptions['sourcecode']['tag'] = array("-s","--sourcecode"); - $this->phpDocOptions['sourcecode']['desc'] = "generate highlighted sourcecode for every parsed file (PHP 4.3.0+ only) on/off default off"; - $this->phpDocOptions['sourcecode']['type'] = "value"; - - $this->phpDocOptions['javadocdesc']['tag'] = array("-j","--javadocdesc"); - $this->phpDocOptions['javadocdesc']['desc'] = "JavaDoc-compliant description parsing. Use on/off, default off (more flexibility)"; - $this->phpDocOptions['javadocdesc']['type'] = "value"; - - $this->phpDocOptions['pear']['tag'] = array("-p","--pear"); - $this->phpDocOptions['pear']['desc'] = "Parse a PEAR-style repository (package is directory, _members are @access private) on/off default off"; - $this->phpDocOptions['pear']['type'] = "value"; - - $this->phpDocOptions['readmeinstallchangelog']['tag'] = array("-ric","--readmeinstallchangelog"); - $this->phpDocOptions['readmeinstallchangelog']['desc'] = "Specify custom filenames to parse like README, INSTALL or CHANGELOG files"; - $this->phpDocOptions['readmeinstallchangelog']['type'] = "value"; - - $this->phpDocOptions['general']['message'] ="You can have multiple directories and multiple files, as well as a combination of both options"; - } - - - /** - * create the help message for display on the command-line - * @return string a string containing a help message - */ - function displayHelpMsg() - { - unset($ret); - $ret = "\n"; - foreach($this->phpDocOptions as $data) - { - unset($tag); - $tag = ""; - if (isset($data['tag'])) - { - if (is_array($data['tag'])) { - foreach($data['tag'] as $param) { - $tag .= "$param "; - } - } - $taglen = 34; - $outputwidth = 79; - $tagspace = str_repeat(" ",$taglen); - $tmp = " ".trim($tag).$tagspace; - $tmp = substr($tmp,0,$taglen); - $d = wordwrap(ltrim($data['desc']),($outputwidth-$taglen)); - $dt = explode("\n",$d); - $dt[0] = $tmp .$dt[0]; - for($i=1;$idisplayHelpMsg(); - die(); - } - $setting[$valnext] = $cmd; - foreach( $this->phpDocOptions as $name => $data ) - { - if (!empty($data['tag'])) - { - if (in_array($cmd,$data['tag'])) - { - $valnext = $name; - break; - } - else - { - $valnext = "junk"; - } - } - } - if ($valnext == 'junk' && (strpos(trim($cmd),'-') === 0)) - { - addErrorDie(PDERROR_UNKNOWN_COMMANDLINE,$cmd); - } - } - } else - { - echo "Please use php-cli.exe in windows, or set register_argc_argv On"; - die; - } - /* $setting will always have at least 2 elements - [hidden] => off - [template] => templates/default - */ - if (count($setting) < 3) { - echo $this->displayhelpMsg(); - die(); - } - return $setting; - } - - - /** - * @return array list of files in a directory - * @param string $directory full path to the directory you want the list of - * @param off|on whether to list files that begin with . like .bash_history - */ - function dirList($directory,$hidden = "off") - { - $directory = realpath($directory); - $ret = false; - if (@is_dir($directory)) - { - $ret = array(); - $d = @dir($directory); // thanks to Jason E Sweat (jsweat@users.sourceforge.net) for fix - while($d && ($entry=$d->read()) !== false) { - if (strcmp($entry,".") != 0 && strcmp($entry,"..") != 0) { - if ($hidden == "off") - { - if (substr($entry,0,1) == ".") - { - $getentry = false; - } else { - $getentry = true; - } - - } else { - $getentry = true; - } - - if ($getentry == true) - { - if (is_file($directory . PATH_DELIMITER . $entry)) { - $ret[] = $directory . PATH_DELIMITER . $entry; - } - if (is_dir($directory . PATH_DELIMITER . $entry)) { - $tmp = $this->dirList($directory . PATH_DELIMITER . $entry, $hidden); - if (is_array($tmp)) { - foreach($tmp as $ent) { - $ret[] = $ent; - } - } - } - } - } - } - if ($d) $d->close(); - } else { - die("directory: '$directory' not found\n"); - } - return $ret; - } - - /** - * Retrieve common directory (case-insensitive in windows) - * - * takes the list of files, and returns the subdirectory they share in common, - * so in this list: - * - * - * array( - * "/dir1/dir2/subdir/dir3/filename.ext", - * "/dir1/dir2/subdir/dir4/filename.ext", - * "/dir1/dir2/mydir/dir5/filename.ext"); - * - * - * getBase will return "/dir1/dir2" - * @param array array of strings - */ - function getBase($filelist) - { - $masterPath = false; - foreach($filelist as $path) - { - if (!$masterPath) - { - $masterPath = str_replace('\\','/',dirname($path)); - } else - { - if (dirname($path) != $masterPath) - { - $mp = explode(PATH_DELIMITER, $masterPath); - $np = explode(PATH_DELIMITER, str_replace('\\', '/', dirname($path))); - - if (count($np) < count($mp)) - { - $masterPath = join($np, PATH_DELIMITER); - } else - { - $test = false; - $found = false; - for($i=0;$i < count($mp) && $i < count($np);$i++) - { - if (PHPDOCUMENTOR_WINDOWS) - { - if (strtolower($mp[$i]) != strtolower($np[$i])) $found = $i; - } else - { - if ($mp[$i] != $np[$i]) $found = $i; - } - } - if ($found !== false) - { - $mp = array_slice($mp,0,$found); - $masterPath = join($mp,PATH_DELIMITER); - } - } - } - } - } - return $masterPath; - } - - /** - * Retrieve tutorial subdirectories and their contents from the list of - * files to parse - * @param array array of paths (strings) - * @return array array(filelist - tutorials, tutorials) - */ - function getTutorials($filelist) - { - $list = $tutorials = array(); - foreach($filelist as $file) - { - if (strpos($file,'tutorials/') !== false) - { - $tutedir = explode('/',substr($file,strpos($file,'tutorials/'))); - array_shift($tutedir); - if (count($tutedir) <= 3) - { - $res = array(); - // kludge - will need to fix for 2.0 - $res['category'] = $GLOBALS['phpDocumentor_DefaultCategoryName']; - $res['package'] = array_shift($tutedir); - $res['subpackage'] = ''; - if (count($tutedir) > 1) - $res['subpackage'] = array_shift($tutedir); - $f = array_shift($tutedir); - $res['tutename'] = $f; - $f = explode('.',$f); - $res['tutetype'] = array_pop($f); - if ($res['tutetype'] == 'ini') continue; - $res['path'] = $file; - if (@file_exists($file . '.ini')) - { - $res['ini'] = phpDocumentor_parse_ini_file($file . '.ini', true); - } else - { - $res['ini'] = false; - } - $tutorials[] = $res; - } - } else $list[] = $file; - } - return array($list,$tutorials); - } - - /** - * @param string base directory from {@link getBase()} - * @param array file list from {@link dirList()} - * @return array array(filelist - README/INSTALL/CHANGELOG, - * README/INSTALL/CHANGELOG) - */ - function getReadmeInstallChangelog($base,$filelist) - { - $list = $ric = array(); - $names = $GLOBALS['_phpDocumentor_RIC_files']; - foreach($filelist as $file) - { - if ((dirname($file) == $base) && in_array(strtoupper(basename($file)), $names)) - { // be sure to change $this->checkIgnore() if any other files are added here!! - $ric[] = $file; - } else - { - $list[] = $file; - } - } - return array($list,$ric); - } - - function getDirTree($dir, $base_dir, $ignore = array(), $hidden="off") - { - $allfiles = $this->dirList($dir,$hidden); - $struc = array(); - foreach($allfiles as $file) - { - if ($this->checkIgnore(basename($file),dirname($file),$ignore)) continue; - $path = substr(dirname($file),strlen(str_replace('\\','/',realpath($base_dir)))+1); - if (!$path) $path = '/'; - $parts = pathinfo($file); - if (!isset($parts['extension'])) - { - $parts['extension'] = ''; - } - $struc[$path][] = array( - 'file' => $parts['basename'], - 'ext' => $parts['extension'], - 'path' => $file); - } - uksort($struc,'strnatcasecmp'); - foreach($struc as $key => $ind) - { - usort($ind,'Ioinc_sortfiles'); - $struc[$key] = $ind; - $save = $key; - if ($key != '/') - { - $key = explode('/',$key); - while (count($key)) - { - array_pop($key); - if (isset($struc[join('/',$key)])) - { - $struc[join('/',$key)][substr($save,strlen(join('/',$key)) + 1)] = $ind; - unset($struc[$save]); - } - } - } - } - foreach($struc as $key => $ind) - { - if ($key != '/') - { - if (count(explode('/',$key)) == 1) - { - $struc['/'][$key] = $struc[$key]; - unset($struc[$key]); - } - } - } - $tempstruc = $struc; - unset($tempstruc['/']); - $leftover_dirs = array_keys($tempstruc); - $splitdirs = array(); - foreach($leftover_dirs as $dir) - { - $splitdirs[] = explode('/',$dir); - } - $leftover_dirs = array(); - - foreach($splitdirs as $dir) - { - $save = join($dir,'/'); - $struc['/'] = setup_dirs($struc['/'], $dir, $tempstruc[$save]); - unset($struc[$save]); - } - @uksort($struc['/'],'Ioinc_mystrucsort'); - return $struc; - } - - /** - * Reads a file and returns it as a string - * Does basic error checking - * - * file extensions are set in {@link phpdoc.inc} - * - * @global array PHP File extensions, used to validate that $path is a PHP File - * @global array PHP File extensions in a CVS repository, used to validate that $path is a PHP File - * @param string $path - */ - function readPhpFile($path, $quietMode = false) - { - global $_phpDocumentor_cvsphpfile_exts, $_phpDocumentor_phpfile_exts; - // tiberiusblue addition - $cvsExt = $_phpDocumentor_cvsphpfile_exts; - $ext = $_phpDocumentor_phpfile_exts; - if (file_exists($path)) - { - if (is_file($path)) - { - // check extension - $tmp = explode(".",$path); - // tiberiusblue addition - $tmp2 = $tmp; - if (in_array(array_pop($tmp),$ext)) - { - phpDocumentor_out(" -- Parsing file\n"); - flush(); - $fp = fopen($path,"r"); - $ret = fread($fp,filesize($path)); - fclose($fp); - return $ret; - } elseif (in_array(array_pop($tmp2),$cvsExt)) - { - phpDocumentor_out(" CVS file [EXPERIMENTAL]\n"); - flush(); - $fp = fopen($path,"r"); - $ret = fread($fp,filesize($path)); - fclose($fp); - $ret = strstr($ret," - * @param string $file just the file name of the file or directory, - * in the case of directories this is the last dir - * @param string $path the full path - * @param array $ignore - * @return bool true if $path should be ignored, false if it should not - */ - function checkIgnore($file,$path,$ignore,$ignore_no_ext = true) - { - global $_phpDocumentor_RIC_files; - $path = realpath($path); - if (!count($ignore)) return false; - if ($ignore_no_ext && - !in_array(strtoupper($file), $_phpDocumentor_RIC_files)) - { - if (!is_numeric(strpos($file,'.'))) return true; - } - if (!isset($this->ignore) || !$this->ignore) - { - $this->_setupIgnore($ignore); - if (!$this->ignore) - { - return false; - } - } - if (is_array($this->ignore)) - { - foreach($this->ignore as $match) - { - // match is an array if the ignore parameter was a /path/to/pattern - if (is_array($match)) - { - // check to see if the path matches with a path delimiter appended - preg_match('/^' . strtoupper($match[0]).'$/', strtoupper($path) . PATH_DELIMITER,$find); - if (!count($find)) - { - // check to see if it matches without an appended path delimiter - preg_match('/^' . strtoupper($match[0]).'$/', strtoupper($path), $find); - } - if (count($find)) - { - // check to see if the file matches the file portion of the regex string - preg_match('/^' . strtoupper($match[1]).'$/', strtoupper($file), $find); - if (count($find)) - { - return true; - } - } - // check to see if the full path matches the regex - preg_match('/^' . strtoupper($match[0]).'$/', - strtoupper($path . DIRECTORY_SEPARATOR . $file), $find); - if (count($find)) - { - return true; - } - } else - { - // ignore parameter was just a pattern with no path delimiters - // check it against the path - preg_match('/^' . strtoupper($match).'$/', strtoupper($path), $find); - if (count($find)) - { - return true; - } - // check it against the file only - preg_match('/^' . strtoupper($match).'$/', strtoupper($file), $find); - if (count($find)) - { - return true; - } - } - } - } - return false; - } - - /** - * Construct the {@link $ignore} array - * @author Greg Beaver - * @param array strings of files/paths/wildcards to ignore - * @access protected - */ - function _setupIgnore($ignore) - { - $ig = array(); - if (is_array($ignore)) - { - for($i=0; $igetRegExpableSearchString($ignore[$i]); - } else - { - if (basename($ignore[$i]) . PATH_DELIMITER == $ignore[$i]) - $ig[] = $this->getRegExpableSearchString($ignore[$i]); - else - $ig[] = array($this->getRegExpableSearchString($ignore[$i]),$this->getRegExpableSearchString(basename($ignore[$i]))); - } - } - } - if (count($ig)) $this->ignore = $ig; - } else $this->ignore = false; - } - - /** - * Converts $s into a string that can be used with preg_match - * @param string $s string with wildcards ? and * - * @author Greg Beaver - * @return string converts * to .*, ? to ., etc. - */ - function getRegExpableSearchString($s) - { - $y = '\/'; - if (DIRECTORY_SEPARATOR == '\\') - { - $y = '\\\\'; - } - $s = str_replace('/', DIRECTORY_SEPARATOR, $s); - $x = strtr($s, array('?' => '.','*' => '.*','.' => '\\.','\\' => '\\\\','/' => '\\/', - '[' => '\\[',']' => '\\]','-' => '\\-')); - if (strpos($s, DIRECTORY_SEPARATOR) !== false && - strrpos($s, DIRECTORY_SEPARATOR) === strlen($s) - 1) - { - $x = "(?:.*$y$x?.*|$x.*)"; - } - return $x; - } - - /** - * Removes files from the $dir array that do not match the search string in - * $match - * @param array $dir array of filenames (full path) - * @param string $match search string with wildcards - * @author Greg Beaver - * @return string|array listing of every file in a directory that matches - * the search string - */ - function removeNonMatches($dir, $match) - { - $match = $this->getRegExpableSearchString($match); - $nodir = false; - if (!is_array($dir)) - { - $dir = array($dir); - $nodir = true; - } - foreach($dir as $i => $file) - { - preg_match('/^'.$match.'$/',basename($file),$find); - if (!count($find)) unset($dir[$i]); - } - if ($nodir) return $dir[0]; - return $dir; - } - - /** - * Take a filename with wildcards and return all files that match the - * wildcards - * @param string $file a full path from the -f command-line parameter, with - * potential * and ? wildcards. - * @return mixed if $file contains wildcards, returns an array of matching - * files, otherwise returns false - * @author Greg Beaver - */ - function getAllFiles($file) - { - $path = realpath(dirname($file)); - $file = basename($file); - // any wildcards? - if (is_numeric(strpos($file,'?')) || is_numeric(strpos($file,'*'))) - { - $files = $this->dirList($path); - $a = $this->removeNonMatches($files,$file); - return $a; - } - return false; - } -} - -/**#@+ - * Sorting functions for the file list - * @param string - * @param string - */ -function Ioinc_sortfiles($a, $b) -{ - return strnatcasecmp($a['file'],$b['file']); -} - -function Ioinc_mystrucsort($a, $b) -{ - if (is_numeric($a) && is_string($b)) return 1; - if (is_numeric($b) && is_string($a)) return -1; - if (is_numeric($a) && is_numeric($b)) - { - if ($a > $b) return 1; - if ($a < $b) return -1; - if ($a == $b) return 0; - } - return strnatcasecmp($a,$b); -} -/**#@-*/ - -/** - * Recursively add all the subdirectories of $contents to $dir without erasing anything in - * $dir - * @param array - * @param array - * @return array processed $dir - */ -function set_dir($dir,$contents) -{ - while(list($one,$two) = each($contents)) - { - if (isset($dir[$one])) - { - $dir[$one] = set_dir($dir[$one],$contents[$one]); - } else $dir[$one] = $two; - } - return $dir; -} - -/** - * Recursively move contents of $struc into associative array - * - * The contents of $struc have many indexes like 'dir/subdir/subdir2'. - * This function converts them to - * array('dir' => array('subdir' => array('subdir2'))) - * @param array struc is array('dir' => array of files in dir,'dir/subdir' => array of files in dir/subdir,...) - * @param array array form of 'dir/subdir/subdir2' array('dir','subdir','subdir2') - * @return array same as struc but with array('dir' => array(file1,file2,'subdir' => array(file1,...))) - */ -function setup_dirs($struc,$dir,$contents) -{ - if (!count($dir)) - { - foreach($contents as $dir => $files) - { - if (is_string($dir)) - { - if (strpos($dir,'/')) - { - $test = true; - $a = $contents[$dir]; - unset($contents[$dir]); - $b = explode('/',$dir); - $c = array_shift($b); - if (isset($contents[$c])) - { - $contents[$c] = set_dir($contents[$c],setup_dirs(array(),$b,$a)); - } else $contents[$c] = setup_dirs(array(),$b,$a); - } - } - } - return $contents; - } - $me = array_shift($dir); - if (!isset($struc[$me])) $struc[$me] = array(); - $struc[$me] = setup_dirs($struc[$me],$dir,$contents); - return $struc; -} - -if (!function_exists('get_include_path')) { -function get_include_path() -{ - return ini_get('include_path'); -} -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc b/buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc deleted file mode 100644 index d122f0d4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc +++ /dev/null @@ -1,206 +0,0 @@ -path = $path; - $this->fileAlias = $fileAlias; - $this->name = $name; - $this->category = $category; - $this->package = $package; - $this->subpackage = $subpackage; - } -} - -/** - * procedural page link - * @package phpDocumentor - * @subpackage Links - */ -class pageLink extends abstractLink -{ - /** @var string */ - var $type = 'page'; -} - -/** - * function link - * @package phpDocumentor - * @subpackage Links - */ -class functionLink extends abstractLink -{ - /** @var string */ - var $type = 'function'; -} - -/** - * define link - * @package phpDocumentor - * @subpackage Links - */ -class defineLink extends abstractLink -{ - /** @var string */ - var $type = 'define'; -} - -/** - * global variable link - * @package phpDocumentor - * @subpackage Links - */ -class globalLink extends abstractLink -{ - /** @var string */ - var $type = 'global'; -} - -/** - * class link - * @package phpDocumentor - * @subpackage Links - */ -class classLink extends abstractLink -{ - /** @var string */ - var $type = 'class'; -} - -/** - * method link - * @package phpDocumentor - * @subpackage Links - */ -class methodLink extends abstractLink -{ - /** @var string */ - var $type = 'method'; - /** @var string */ - var $class = ''; - - /** - * @param string class name - * @param string full path to file containing element - * @param string page name, as configured by {@link Parser::parse} - * @param string element name - * @param string package element is in - * @param string subpackage element is in - */ - function addLink($class, $path ,$fileAlias,$name,$package,$subpackage, $category = false) - { - $this->class = $class; - abstractLink::addLink($path, $fileAlias,$name,$package,$subpackage, $category); - } -} - -/** - * class variable link - * @package phpDocumentor - * @subpackage Links - */ -class varLink extends methodLink -{ - /** @var string */ - var $type = 'var'; -} - -/** - * class constant link - * @package phpDocumentor - * @subpackage Links - */ -class constLink extends methodLink -{ - /** @var string */ - var $type = 'const'; -} - -/** - * tutorial link - * @package phpDocumentor - * @subpackage Links - */ -class tutorialLink extends abstractLink -{ - /**#@+ @var string */ - var $type = 'tutorial'; - var $section = ''; - var $title = false; - /**#@-*/ - - /** - * @param string section/subsection name - * @param string full path to file containing element - * @param string page name, as configured by {@link Parser::parse} - * @param string element name - * @param string package element is in - * @param string subpackage element is in - * @param string title of tutorial - */ - function addLink($section,$path,$name,$package,$subpackage,$title = false, $category = false) - { - $this->section = $section; - $this->title = $title; - parent::addLink($path,'',$name,$package,$subpackage, $category); - } -} -?> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc b/buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc deleted file mode 100644 index 1b71b6b7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc +++ /dev/null @@ -1,387 +0,0 @@ -, - * contains every other tag and all text. - * @tutorial tutorials.pkg - * @package phpDocumentor - * @subpackage Tutorial - */ -/** - * Represents sections. - * - * These sections are interpreted as plain text - * @package phpDocumentor - * @subpackage Tutorial - */ -class parserCData extends parserStringWithInlineTags -{ - /** - * @uses Converter::getCData() convert contents to text - * @param Converter - */ - function Convert(&$c, $postprocess = true) - { - $val = $this->value; - if ($postprocess) - foreach($this->value as $key => $value) - { - if (is_string($value)) $this->value[$key] = $c->getCData($value); - } - $this->cache = false; - $x = parent::Convert($c, false); - $this->value = $val; - return $x; - } -} -/** - * a standard XML DocBook Tag - * - * This class is designed to represent all DocBook tags. It is intelligent - * enough to understand the tag, and also the <refname> tag for - * as title for <refentry> - * @since 1.2 - * @package phpDocumentor - * @subpackage Tutorial - */ -class parserXMLDocBookTag extends parserStringWithInlineTags -{ - /** - * Attributes from the XML tag - * - * Format: array(attrname => attrvalue, attrname => attrvalue,...) - * @var array - */ - var $attributes = array(); - /** - * Name of the tag - * @var string - */ - var $name; - /**#@+ @access private */ - /** @var parserCData */ - var $_cdata; - /** @var parserTag */ - var $_title; - /** @var parserIdLineTag */ - var $_id; - /** - * Set to <refpurpose> in <refsynopsisdiv> - * @var parserTag - */ - var $_description; - /**#@-*/ - /** - * @param string tag name - */ - function parserXMLDocBookTag($name) - { - $this->name = $name; - } - - /** - * @param Converter - * @param boolean - * @uses Converter::TranslateTag() Calls this to enclose the contents of the - * DocBook tag based on the values in template options.ini file - */ - function Convert(&$c, $postprocess = true) - { - $value = parent::Convert($c, $postprocess); - $simvalue = parent::Convert($c, false); - foreach($this->attributes as $a => $v) - { - $this->attributes[$a] = (is_string($v) ? $v : $v->Convert($c, $postprocess)); - } - if (isset($this->_title)) - { - list($this->attributes,$value) = $c->ConvertTitle($this->name, $this->attributes, $this->_title->Convert($c, $postprocess), $value); - } - return $c->TranslateTag($this->name,$this->attributes,$value,$simvalue); - } - - /** - * Begin a new CData section - * @see addCData() - */ - function startCData() - { - $this->_cdata = new parserCData; - } - - /** - * Adds {@link $_cdata} to {@link $value} - */ - function endCData() - { - $this->value[] = $this->_cdata; - unset($this->_cdata); - } - - /** - * Retrieve either the table of contents index, or the location that - * the TOC will go - * @see setTOC() - * @param false|integer either an index of the {@}toc} tag in $this->value - * or false, if the next index value of $this->value - * is needed - */ - function getTOC($state = false) - { - if ($state !== false) return $this->value[$state]; - return count($this->value); - } - - /** - * @param integer index of the TOC in $this->value - * @param parserTocInlineTag - */ - function setTOC($state, $val) - { - $this->value[$state] = $val; - } - - /** - * add a word to CData - * @param string - */ - function addCData($word) - { - $this->_cdata->add($word); - } - - /** - * Add an xml tag attribute name="value" pair - * - * if the attribute is id, value must be a {@link parserIdInlineTag} - * @param string attribute name - * @param string|parserIdInlineTag value of attribute - */ - function addAttribute($name,$value) - { - $this->attributes[$name] = $value; - if ($name == 'id') - { - // fix 1153593 - if (is_string($value)) - { - addWarning(PDERROR_ID_MUST_BE_INLINE,$this->name,$value,$this->name,$value); - } else { - $this->setId($value); - } - } - } - - /** - * Set the title of a DocBook tag section. - * - * For most DocBook tags, the title is represented with a <title> - * tag pair. The top-level tag is a little different. Instead - * of using , phpDocumentor uses the contents of the - * tag in the tag - * @param parserXMLDocBookTag the title element - */ - function setTitle($title) - { - $this->_title = $title; - } - - /** - * If the id attribute is present, this method will set its id - * @param parserIdInlineTag - */ - function setId($id) - { - $this->_id = $id; - } - - /** - * Return converter-specific formatting of ID. - * - * Passes $c to {@link parserIdInlineTag::Convert()} - * @param Converter - * @return string - */ - function getId(&$c) - { - if ($this->_id) return trim($this->_id->Convert($c)); - } - - /** - * Determine whether the docbook element has a title - * @return boolean - */ - function hasTitle() - { - return isset($this->_title); - } - - /** - * Retrieve Converter-specific formatting of the title of this element - * @return string - * @param Converter - */ - function getTitle(&$c) - { - if ($this->name == 'refentry') - { - foreach($this->value as $tag) - { - if (is_object($tag) && $tag->name == 'refnamediv') - { - return $tag->getTitle($c); - } - } - } - if ($this->name == 'refnamediv') - { - foreach($this->value as $tag) - { - if (is_object($tag) && $tag->name == 'refname') - { - $t = new parserStringWithInlineTags; - foreach($tag->value as $val) $t->add($val); - $this->_title = $t; - } - if (is_object($tag) && $tag->name == 'refpurpose') - { - $t = new parserStringWithInlineTags; - foreach($tag->value as $val) $t->add($val); - $this->_description = $t; - } - } - } - if (isset($this->_title)) - return $this->_title->Convert($c); - if (is_object($this->value[0])) return $this->value[0]->getTitle($c); - if (isset($this->value[1])) - if (is_object($this->value[1])) return $this->value[1]->getTitle($c); - return ''; - } - - /** - * Retrieve the contents of a subsection - * - * This method uses the $_id members of nested docbook tags to retrieve - * the section defined by $subsection - * @param Converter - * @param string converter-specific subsection - */ - function getSubsection(&$c,$subsection) - { - if (!is_object($this->_id)) { - return false; - } - $search = phpDocumentor_clone($this->_id); - if (is_string($this->_id)) return false; - if (phpDocumentor_get_class($search) != 'parseridinlinetag') return false; - $search->id = $subsection; - foreach($this->value as $el) - { - if (phpDocumentor_get_class($el) == 'parserxmldocbooktag') - { - if ($el->getId($c) == $search->Convert($c)) - { - return $el; - } elseif ($a = $el->getSubsection($c,$subsection)) - { - return $a; - } - } - } - return false; - } - - /** - * Add contents to this tag. - * - * There are four kinds of data in a DocBook tutorial: - * 1. tags - normal tags like - * 2. entities - normal entities like ” - * 3. - character data that should not be interpreted, - * like contents - * 4. text - normal non-markup text - * - * All four kinds of data are added here - * @param parserEntity|parserCData|parserXMLDocBookTag|string nested tag, - * entity, or text - */ - function add($el) - { - if (is_string($el)) return parent::add($el); - if (phpDocumentor_get_class($el) == 'parserxmldocbooktag') - { - if ($el->name == 'title') - { - $this->setTitle($el); - } else return parent::add($el); - } else return parent::add($el); - } -} - -/** - * a standard entity like ” - * - * This class is designed to represent all DocBook entities. - * @since 1.2 - * @package phpDocumentor - * @subpackage Tutorial - */ -class parserEntity -{ - /** - * @param string entity name - */ - function parserEntity($name) - { - $this->value = $name; - } - - /** - * @uses Converter::TranslateEntity() convert contents to text - * @param Converter - * @return string - */ - function Convert(&$c, $postprocess = true) - { - if ($postprocess) - return $c->TranslateEntity($this->value); - else - { - $trans_tbl = get_html_translation_table (HTML_ENTITIES); - $trans_tbl = array_flip ($trans_tbl); - $ret = strtr ('&'.$this->value.';', $trans_tbl); - return $ret; - } - } -} -?> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Parser.inc b/buildscripts/PhpDocumentor/phpDocumentor/Parser.inc deleted file mode 100644 index 55e67685..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Parser.inc +++ /dev/null @@ -1,3185 +0,0 @@ - is encountered in parsing an @author tag*/ -define("PARSER_EVENT_DOCKEYWORD_EMAIL" , 114); -/** currently parsing an email in brackets in an @author tag of a DocBlock */ -define("STATE_DOCKEYWORD_EMAIL" , 214); - -/** used when an array definition is encountered in parsing */ -define("PARSER_EVENT_ARRAY" , 115); -/** currently parsing an array */ -define("STATE_ARRAY" , 215); - -/** used when a var statement is encountered in parsing a class definition */ -define("PARSER_EVENT_VAR" , 116); -/** currently parsing a Class variable */ -define("STATE_VAR" , 216); - -/** used when a function definition is encountered in parsing */ -define("PARSER_EVENT_FUNCTION" , 117); -/** currently parsing a Function or Method */ -define("STATE_FUNCTION" , 217); - -/** used when a ? > (with no space) is encountered in parsing */ -define("PARSER_EVENT_OUTPHP" , 118); -/** currently out of php code */ -define("STATE_OUTPHP" , 218); - -/** used when an inline {@tag} is encountered in parsing a DocBlock */ -define("PARSER_EVENT_INLINE_DOCKEYWORD" , 119); -/** currently parsing an inline tag like { @link} in a DocBlock */ -define("STATE_INLINE_DOCKEYWORD" , 219); - -/** used when a define statement's opening parenthesis is encountered in parsing */ -define("PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS" , 120); -/** currently parsing an inner parenthetical statement of a define( ) */ -define("STATE_DEFINE_PARAMS_PARENTHESIS" , 220); - -define("PARSER_EVENT_END_STATEMENT", 121); - -/** used when a <<< is encountered in parsing */ -define("PARSER_EVENT_EOFQUOTE" , 122); -/** currently parsing a string defined using Perl <<< */ -define("STATE_EOFQUOTE" , 222); - -/** used when an include/require/include_once/include_once statement is encountered in parsing */ -define("PARSER_EVENT_INCLUDE" , 123); -/** currently parsing an include/require/include_once/include_once */ -define("STATE_INCLUDE" , 223); - -/** used when an opening parenthesis of an include/require/include_once/include_once statement is encountered in parsing */ -define("PARSER_EVENT_INCLUDE_PARAMS" , 124); -/** currently parsing the stuff in ( ) of a define statement */ -define("STATE_INCLUDE_PARAMS" , 224); - -/** used when an inner ( ) is encountered while parsing an include/require/include_once/include_once statement */ -define("PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS" , 125); -/** currently parsing an inner parenthetical statement of an include/includeonce/require/requireonce( ) */ -define("STATE_INCLUDE_PARAMS_PARENTHESIS" , 225); - -/** used when parsing the desc part of a docblock */ -define("PARSER_EVENT_DESC" , 126); -/** currently parsing the desc part of a docblock */ -define("STATE_DESC" , 226); - -/** used when parsing the @tag block of a docblock */ -define("PARSER_EVENT_TAGS" , 127); -/** currently parsing the @tag block of a docblock */ -define("STATE_TAGS" , 227); - -/** used when parsing a global variable declaration */ -define("PARSER_EVENT_DEFINE_GLOBAL" , 128); -/** currently parsing a global variable declaration */ -define("STATE_GLOBAL" , 228); - -/** used when parsing the default value in a global variable declaration */ -define("PARSER_EVENT_GLOBAL_VALUE" , 129); -/** currently parsing the default value in a global variable declaration */ -define("STATE_GLOBAL_VALUE" , 229); - -/** used when parsing a "global $var1, $var2;" declaration in a function */ -define("PARSER_EVENT_FUNC_GLOBAL" , 130); -/** currently parsing a "global $var1, $var2;" declaration in a function */ -define("STATE_FUNC_GLOBAL" , 230); - -/** used when parsing a "static $var1, $var2;" declaration in a function */ -define("PARSER_EVENT_STATIC_VAR" , 131); -/** currently parsing a "static $var1, $var2;" declaration in a function */ -define("STATE_STATIC_VAR" , 231); - -/** used when parsing the value in a "static $var1 = x" declaration in a function */ -define("PARSER_EVENT_STATIC_VAR_VALUE" , 132); -/** currently parsing the value in a "static $var1 = x" declaration in a function */ -define("STATE_STATIC_VAR_VALUE" , 232); - -/** used when encountering a /**#@+ comment marking a new docblock template */ -define("PARSER_EVENT_DOCBLOCK_TEMPLATE" , 133); -/** currently parsing the value in a "static $var1 = x" declaration in a function */ -define("STATE_DOCBLOCK_TEMPLATE" , 233); - -/** used when encountering a /**#@-* / comment (no space) marking the end of using a docblock template */ -define("PARSER_EVENT_END_DOCBLOCK_TEMPLATE" , 134); -/** currently parsing the value in a "static $var1 = x" declaration in a function */ -define("STATE_END_DOCBLOCK_TEMPLATE" , 234); - -/** used by the {@link HighlightParser} only, when a method starts */ -define("PARSER_EVENT_METHOD" , 135); -/** currently parsing a method using the {@link HighlightParser} */ -define("STATE_METHOD" , 235); - -/** used by the {@link HighlightParser} only, when a method body is parsed */ -define("PARSER_EVENT_METHOD_LOGICBLOCK" , 136); -/** currently parsing the method body using the {@link HighlightParser} */ -define("STATE_METHOD_LOGICBLOCK" , 236); - -/** used by the {@link HighlightParser} only, when ->var or ->function() is encountered in a method */ -define("PARSER_EVENT_CLASS_MEMBER" , 137); -/** currently parsing a class member using the {@link HighlightParser} */ -define("STATE_CLASS_MEMBER" , 237); - -/** used by the {@link HighlightParser} only, when {$var} is encountered in a string */ -define("PARSER_EVENT_QUOTE_VAR" , 138); -/** currently parsing a {$encapsed_var} using the {@link HighlightParser} */ -define("STATE_QUOTE_VAR" , 238); - -/** used when parsing an access modifier */ -define("PARSER_EVENT_ACCESS_MODIFIER" , 139); -/** currently parsing an access modifier */ -define("STATE_ACCESS_MODIFIER" , 239); - -/** used when a class implements interfaces */ -define("PARSER_EVENT_IMPLEMENTS" , 140); -/** currently parsing an implements clause */ -define("STATE_IMPLEMENTS" , 240); - -/** used when a class implements interfaces */ -define("PARSER_EVENT_CLASS_CONSTANT" , 141); -/** currently parsing a class constant */ -define("STATE_CLASS_CONSTANT" , 241); - -/** used when a variable value is an array */ -define("PARSER_EVENT_VAR_ARRAY" , 142); -/** currently parsing a variable value is an array */ -define("STATE_VAR_ARRAY" , 242); - -/** used when a comment is found in a variable array value */ -define("PARSER_EVENT_VAR_ARRAY_COMMENT" , 143); -/** currently parsing a comment in a variable array value */ -define("STATE_VAR_ARRAY_COMMENT" , 243); - -if (!defined('T_INTERFACE')) -{ - define('T_INTERFACE', 'foo'); - if (!defined('T_CONST')) { - define('T_CONST', 'foo'); - } - define('T_ABSTRACT', 'foo'); - define('T_PRIVATE', 'foo'); - define('T_PUBLIC', 'foo'); - define('T_PROTECTED', 'foo'); - define('T_FINAL', 'foo'); - define('T_IMPLEMENTS', 'foo'); -} -if (!defined('T_DOC_COMMENT')) -{ - define('T_DOC_COMMENT', T_ML_COMMENT); -} -/** - * PHP Parser for PHP 4.2.3- - * - * This parser is slower than the tokenizer-based parser, and is deprecated. - * @author Joshua Eichorn - * @author Gregory Beaver - * @version $Id: Parser.inc,v 1.1 2005/10/17 18:36:56 jeichorn Exp $ - * @package phpDocumentor - * @subpackage Parsers - * @deprecated in favor of {@link phpDocumentorTParser} - */ -class Parser extends Publisher -{ - /**#@+ - * @access private - */ - /** - * Word parser - * @see WordParser - */ - var $wp; - - /** - * temporary parser variables - */ - var $p_vars = array('func' => false, 'function_data' => '', 'quote_data' => '', 'event_stack' => false, 'last_pevent' => 0, - 'two_words_ago' => '', 'temp_word' => '', 'docblock' => false, 'line' => array(), 'linecount' => 0, 'startword' => '', - 'periodline' => 0, 'shortdesc' => '', 'docblock_desc' => '', 'class' => false, 'source_location' => '', - 'define_params_data' => '', 'define' => false, 'define_name' => '', 'define_value' => '', 'var' => false, - 'oldtoken' => false, 'comment_data' => '', 'function_param' => NULL, 'inline_dockeyword_type' => false, - 'inline_dockeyword_data' => false, 'dockeyword_type' => false, 'dockeyword_data' =>false, 'param_var' => false, - 'include_name' => '', 'include_value' => '','include' => false, 'return_type' => '', 'cur_class' => '', - 'function_data' => false, 'varname' => '', 'returntype' => false, 'vartype' => false, 'paramtype' => false, - 'tagname' => '', 'find_global' => '', 'global_type' => '', 'paramname' => false, 'statics' => array(), - 'static_count' => 0, 'static_val' => array(), 'docblock_type' => 'docblock', 'seelement' => false); - - /** - * parser flags, for states that don't warrant a new event (like new line in a docblock) - */ - var $p_flags = array('docblocknewline' => false, 'docblockintags' => false, 'useperiod' => false, - 'definename_isset' => false, 'define_parens' => false, 'reset_quote_data' => false, - 'in_desc' => true, 'in_tag' => false, 'newline' => true, 'tempnewline' => false, - 'start_docblock' => false, 'includename_isset' => false, 'return_isset' => false, - 'is_return' => false, 'in_class' => false, 'asterisk' => false, 'var_equals' => false, - 'arrayinvarname' => false, 'valid_newline' => true, 'startline' => false, - 'function_global' => false, 'define_global' => false, 'static_value' => false,'funcparam_val' => false, - 'get_source' => false, 'getting_source' => false); - - /** - * lookup table for event handler methods - * @see Parser::parse() - */ - var $eventHandlers = array( - 'handleArray' => PARSER_EVENT_ARRAY, - 'handleClass' => PARSER_EVENT_CLASS, - 'handleComment' => PARSER_EVENT_COMMENT, - 'handleDocBlockTemplate' => PARSER_EVENT_DOCBLOCK_TEMPLATE, - 'handleEndDocBlockTemplate' => PARSER_EVENT_END_DOCBLOCK_TEMPLATE, - 'handleEscape' => PARSER_EVENT_ESCAPE, - 'handleLogicBlock' => PARSER_EVENT_LOGICBLOCK, - 'defaultHandler' => PARSER_EVENT_NOEVENTS, -// 'defaultHandler' => PARSER_EVENT_COMMENTBLOCK, (set in constructor below) -// 'defaultHandler' => PARSER_EVENT_OUTPHP, - 'handleDefine' => PARSER_EVENT_DEFINE, - 'handleDefineParams' => PARSER_EVENT_DEFINE_PARAMS, - 'handleDefineParamsParenthesis' => PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS, - 'handleIncludeParamsParenthesis' => PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS, -// 'handleDocBlock' => PARSER_EVENT_DOCBLOCK, - 'BetterhandleDocBlock' => PARSER_EVENT_DOCBLOCK, - 'handleTags' => PARSER_EVENT_TAGS, - 'handleDesc' => PARSER_EVENT_DESC, -// 'handleDockeyword' => PARSER_EVENT_DOCKEYWORD, - 'handleTag' => PARSER_EVENT_DOCKEYWORD, - 'handleDockeywordEmail' => PARSER_EVENT_DOCKEYWORD_EMAIL, - 'handleEOFQuote' => PARSER_EVENT_EOFQUOTE, - 'handleFunction' => PARSER_EVENT_FUNCTION, - 'handleFunctionParams' => PARSER_EVENT_FUNCTION_PARAMS, - 'handleFuncGlobal' => PARSER_EVENT_FUNC_GLOBAL, - 'handleGlobal' => PARSER_EVENT_DEFINE_GLOBAL, - 'handleGlobalValue' => PARSER_EVENT_GLOBAL_VALUE, - 'handleInlineDockeyword' => PARSER_EVENT_INLINE_DOCKEYWORD, - 'handleInclude' => PARSER_EVENT_INCLUDE, - 'handleIncludeParams' => PARSER_EVENT_INCLUDE_PARAMS, - 'handleQuote' => PARSER_EVENT_QUOTE, - 'handlePhpCode' => PARSER_EVENT_PHPCODE, - 'handleSingleQuote' => PARSER_EVENT_SINGLEQUOTE, - 'handleStaticVar' => PARSER_EVENT_STATIC_VAR, - 'handleStaticValue' => PARSER_EVENT_STATIC_VAR_VALUE, - 'handleVar' => PARSER_EVENT_VAR, - ); - - /** - * event handlers for @tags - * @tutorial tags.pkg - */ - var $tagHandlers = array( - '*' => 'defaultTagHandler', - 'category' => 'categoryTagHandler', - 'example' => 'exampleTagHandler', - 'filesource' => 'invalidTagHandler', - 'return' => 'returnTagHandler', - 'returns' => 'returnTagHandler', - 'var' => 'varTagHandler', - 'package' => 'packageTagHandler', - 'param' => 'paramTagHandler', - 'parameter' => 'paramTagHandler', - 'global' => 'globalTagHandler', - 'staticvar' => 'staticvarTagHandler', - 'uses' => 'usesTagHandler' - ); - - var $laststart = false; - - /** - * An array of allowable @tags - */ - var $allowableTags; - - - /** - * An array of allowed inline @tags - */ - var $allowableInlineTags; - - /** - * Sets the states up, and creates a new WordParser - */ - - /** - * an array of parsing tokens organized by event number. - * A token is defined as the smallest group of characters that separates or - * defines a new parser element. In English, a space or punctuation are - * tokens that separate words. in PHP, tokens may be //, or even " - * Format: array(eventnum =>array(token1, token2, token3, ...),...) - * @var array - */ - var $tokens; - - /** - * array of events that are raised, organized by the tokens that raise them. - * Format: array(eventnum => array(token => neweventnum, token2 => neweventnum2,...),...) - * @var array - */ - var $pushEvent; - - /** - * array of tokens that end an event, organized by event - * Format: array(eventnum => array(token => neweventnum, token2 => neweventnum2,...),...) - * @var array - */ - var $popEvent; - /**#@-*/ - - /** - * Set up invariant parsing variables - */ - function Parser() - { - $this->allowableTags = $GLOBALS['_phpDocumentor_tags_allowed']; - $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_doc_tags_allowed']; - $this->wp = new WordParser; - // strange PHP 4.0.6 behavior: it converts constants to strings without warning if it's an array index - $this->eventHandlers = array_flip($this->eventHandlers); - $this->eventHandlers[PARSER_EVENT_COMMENTBLOCK] = 'defaultHandler'; - $this->eventHandlers[PARSER_EVENT_OUTPHP] = 'defaultHandler'; - $this->subscribe(PHPDOCUMENTOR_EVENT_NEWLINENUM,$GLOBALS['phpDocumentor_errors']); - $this->subscribe(PHPDOCUMENTOR_EVENT_NEWFILE,$GLOBALS['phpDocumentor_errors']); - } - - /** - * Parse a new file - * - * @param string $parse_data - * @param string $path - * @param int $base number of directories to drop off the bottom when creating names using path - * @staticvar integer used for recursion limiting if a handler for an event is not found - * @return bool - */ - function parse (&$parse_data, $path, $base = 0, $packages = false) - { - global $_phpDocumentor_options; - static $endrecur = 0; - $this->p_vars = array('func' => false, 'function_data' => '', 'quote_data' => '', 'event_stack' => false, 'last_pevent' => 0, - 'two_words_ago' => '', 'temp_word' => '', 'docblock' => false, 'line' => array(), 'linecount' => 0, 'startword' => '', - 'periodline' => 0, 'shortdesc' => '', 'docblock_desc' => '', 'class' => false, 'source_location' => '', - 'define_params_data' => '', 'define' => false, 'define_name' => '', 'define_value' => '', 'var' => false, - 'oldtoken' => false, 'comment_data' => '', 'function_param' => NULL, 'inline_dockeyword_type' => false, - 'inline_dockeyword_data' => false, 'dockeyword_type' => false, 'dockeyword_data' =>false, 'param_var' => false, - 'include_name' => '', 'include_value' => '','include' => false, 'return_type' => '', 'cur_class' => '', - 'function_data' => false, 'varname' => '', 'returntype' => false, 'vartype' => false, 'paramtype' => false, - 'tagname' => '', 'find_global' => '', 'global_type' => '', 'paramname' => false, 'statics' => array(), - 'static_count' => 0, 'static_val' => array(), 'docblock_type' => 'docblock', 'linenum' => false, - 'seelement' => false); - - $this->p_flags = array('docblocknewline' => false, 'docblockintags' => false, 'useperiod' => false, - 'definename_isset' => false, 'define_parens' => false, 'reset_quote_data' => false, - 'in_desc' => true, 'in_tag' => false, 'newline' => true, 'tempnewline' => false, - 'start_docblock' => false, 'includename_isset' => false, 'return_isset' => false, - 'is_return' => false, 'in_class' => false, 'asterisk' => false, 'var_equals' => false, - 'arrayinvarname' => false, 'valid_newline' => true, 'startline' => false, - 'function_global' => false, 'define_global' => false, 'static_value' => false,'funcparam_val' => false, - 'get_source' => false, 'getting_source' => false, 'in_define' => false, 'in_include' => false, - 'in_var' => false, 'in_global' => false); - $this->p_vars['parsepath'] = $path; - $this->setupStates(); - if (strlen($parse_data) == 0) - { - return false; - } - - // initialize variables so E_ALL error_reporting doesn't complain - $pevent = 0; - $word = 0; - $this->p_vars['event_stack'] = new EventStack; - - $this->wp->setup($parse_data); - - - $page = new ParserPage; - $page->setPath($path); - $page->setPackageOutput($packages); - $page->setFile(basename($path)); - $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWFILE,basename($path)); - //$name = str_replace("/","_",dirname($path)) . "_" . array_shift(explode(".",$page->getFile())); - // fc@fc.clever-soft.com 11/29/2001 - $name = str_replace(PATH_DELIMITER,"_",dirname($path)) . "_" . str_replace(".","_",$page->getFile()); - $tmp = explode("_",$name); - $name = str_replace(':','_',implode("_",array_slice($tmp,$base))); - // if base is '', drive letter is present in windows - - $page->setName($name); - $temploc = $_phpDocumentor_options['Program_Root'] . PATH_DELIMITER. implode(PATH_DELIMITER, - array_slice(explode(PATH_DELIMITER,$path),$base)); - - if ($temploc == $_phpDocumentor_options['Program_Root'] . PATH_DELIMITER) $temploc .= $path; - - $this->p_vars['source_location'] = $source_location = $temploc; - $page->setSourceLocation($source_location); - - $this->publishEvent(PHPDOCUMENTOR_EVENT_PAGE,$page); - unset($page); - $this->p_flags['reset_quote_data'] = true; - - do - { - $lpevent = $pevent; - $pevent = $this->p_vars['event_stack']->getEvent(); - if ($lpevent != $pevent) - { - $this->p_vars['last_pevent'] = $lpevent; - } - - if ($this->p_vars['last_pevent'] != $pevent) - { - // its a new event so the word parser needs to be reconfigured - $this->configWordParser($pevent); - } - - $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,($pevent + 100)); - - if ($pevent == PARSER_EVENT_GLOBAL_VALUE || $pevent == PARSER_EVENT_DOCBLOCK || $pevent == PARSER_EVENT_DOCBLOCK_TEMPLATE) - { - $this->wp->setWhitespace(true); - } - - $this->p_vars['last_word'] = $word; - $word = $this->wp->getWord(); - // in wordparser, have to keep track of lines - $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWLINENUM, $this->wp->linenum); - - if (0)//PHPDOCUMENTOR_DEBUG == true) - { - echo "\nLAST: |" . $this->p_vars['last_word'] . "|\n"; - echo "PEVENT: " . $this->getParserEventName($pevent) . "\n"; - echo "LASTPEVENT: " . $this->getParserEventName($this->p_vars['last_pevent']) . "\n"; - echo $this->wp->getPos() . ": |$word|\n--------------------------\n\n"; - } - if ($this->p_flags['get_source']) - { - if ($pevent == PARSER_EVENT_FUNCTION) - { - $this->wp->retrievesource("function $word"); - $this->p_flags['get_source'] = false; - $this->p_flags['getting_source'] = true; - } - } - if (false)//$this->p_flags['getting_source'] && ($pevent == PARSER_EVENT_DOCBLOCK) || ($pevent == PARSER_EVENT_NOEVENTS)) - { - addError(PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND); - // throw away source - $this->wp->getSource(); - } - if (isset($this->eventHandlers[$pevent])) - { - $handle = $this->eventHandlers[$pevent]; - $this->$handle($word, $pevent); - } else - { - debug('WARNING: possible error, no handler for event number '.$pevent); - if ($endrecur++ == 25) - { - die("FATAL ERROR, recursion limit reached"); - } - } - } while (!($word === false)); - $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,PHPDOCUMENTOR_EVENT_END_PAGE); - } - - /**#@+ - * @access private - * @param string token parsed from source - * @param integer parser constant from {@link Parser.inc} - */ - /** - * handler for NOEVENTS, OUTPHP, COMMENTBLOCK - */ - - function defaultHandler($word, $pevent) - { - $this->checkEventPush( $word, $pevent); - $this->checkEventPop($word,$pevent); - } - - /** - * handler for LOGICBLOCK - * - * Logic Blocks are the stuff between { and } in a function/method. A - * logic block can clearly contain other logic blocks, as in: - * - * - * function test($a) - * { - * if (testcondition) - * { // nested logic block - * } - * } - * - * - * So, the exit portion of the logic block handler must check to see if the - * logic block being exited is the top-level, and it does this by retrieving - * the last event from the stack. If it is a function (and not a logic block) - * then it backs up the word parser so that the function will exit properly. - * - * {@source 11} - */ - - function handleLogicBlock($word, $pevent) - { - $a = $this->checkEventPush( $word, $pevent); - if ($a == PARSER_EVENT_FUNC_GLOBAL || $a == PARSER_EVENT_STATIC_VAR) - { - if (substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != ' ' && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "\t" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "\n" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != ";" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "}" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "{") - { - $this->p_vars['event_stack']->popEvent(); - } - } - if ($this->checkEventPop($word,$pevent)) - { - $e = $this->p_vars['event_stack']->popEvent(); - $this->p_vars['event_stack']->pushEvent($e); - if ($e == PARSER_EVENT_FUNCTION) - { - $this->wp->backupPos($word); - } - } - } - - /** - * handler for ESCAPE. - * this event handler parses "this string \"with its escape backslashes\"" and returns: - * this string "with its escape backslashes" - * to make it human-readable - */ - - function handleEscape($word, $pevent) - { - $this->p_vars['event_stack']->popEvent(); - } - - /** - * handler for COMMENT. - * this event handler parses single-line comments like: - * // this one - */ - - function handleComment($word, $pevent) - { - $this->checkEventPush( $word, $pevent); - - if (!isset($this->p_vars['comment_data'])) $this->p_vars['comment_data'] = ''; - $this->p_vars['comment_data'] .= $word; - - $this->checkEventPop($word,$pevent); - } - - /** - * handler for ARRAY. - * this event handler parses arrays in default values of function and var definitions - */ - - function handleArray($word, $pevent) - { - $e = $this->checkEventPush( $word, $pevent); - if (($e == PARSER_EVENT_COMMENTBLOCK) || - ($e == PARSER_EVENT_COMMENT)) return; - - if (!isset($this->p_vars['function_data']) || (isset($this->p_vars['function_data']) && empty($this->p_vars['function_data']))) - { - $this->p_vars['function_data'] = "array"; - } - - if ( ($this->p_vars['last_word'] == "'")) - { - $this->p_vars['function_data'] .= $this->p_vars['quote_data']."'"; - } - if ( ($this->p_vars['last_word'] == "\"")) - { - $this->p_vars['function_data'] .= $this->p_vars['quote_data']."\""; - } - - $this->p_vars['function_data'] .= $word; - //echo "function_data = |$this->p_vars['function_data']|\n"; - - if ($this->checkEventPop($word,$pevent)) - { - } - } - - /** - * handler for DEFINE. - * handles define(constant, value); statements - */ - - function handleDefine($word, $pevent) - { - if (!$this->p_flags['in_define']) - { - $this->p_vars['linenum'] = $this->wp->linenum; - } - $this->p_flags['in_define'] = true; - $this->checkEventPush( $word, $pevent); - - $this->p_flags['definename_isset'] = false; - $this->p_vars['define_params_data'] = ''; - unset($this->p_vars['quote_data']); - if ($this->checkEventPop($word,$pevent)) - { - $this->p_flags['in_define'] = false; - $this->p_vars['define'] = new parserDefine; - $this->p_vars['define']->setLineNumber($this->p_vars['linenum']); - $this->p_vars['define']->setName($this->p_vars['define_name']); - $this->p_vars['define']->setValue($this->p_vars['define_value']); - $this->publishEvent(PHPDOCUMENTOR_EVENT_DEFINE,$this->p_vars['define']); - $this->p_flags['definename_isset'] = false; - unset($this->p_vars['define']); - unset($this->p_vars['define_name']); - unset($this->p_vars['define_value']); - $this->p_flags['in_define'] = false; - $this->p_vars['define_params_data'] = ''; - } - } - - /** - * handler for DEFINE_PARAMS. - * handles the parsing of constant and value in define(constant, value); - */ - - function handleDefineParams($word, $pevent) - { - if ($this->checkEventPush( $word, $pevent)) - { - if ($word == '(') - { - $this->p_vars['define_params_data'] .= $word; - } - return; - } - - $this->p_flags['define_parens'] = true; - if(!isset($this->p_vars['define_params_data'])) $this->p_vars['define_params_data'] = ''; - - if ($this->checkEventPop($word,$pevent)) - { - if (!empty($this->p_vars['quote_data'])) - { - $this->p_vars['define_params_data'] .= $this->p_vars['quote_data']; - } - if (!empty($this->p_vars['define_params_data'])) - { - //echo $this->p_vars['define_params_data']."\n"; - $this->p_vars['define_value'] = $this->p_vars['define_params_data']; - } - else - { - if ( $this->p_vars['last_word'] != "/*" && - $this->p_vars['last_word'] != "//" && $this->p_vars['last_word'] != "#") - { - $this->p_vars['define_value'] = trim($this->p_vars['last_word']); - } - else - { - $this->p_vars['define_value'] = ""; - } - } - } - if ($this->p_flags['definename_isset']) - { - if (isset($this->p_vars['quote_data'])) - { - $this->p_vars['define_params_data'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - $this->p_vars['define_params_data'] .= $word; - } else - { - if ($word != ",") - { - if (isset($this->p_vars['quote_data'])) - { - $this->p_vars['define_params_data'] .= $this->p_vars['quote_data']; - unset($this->p_vars['quote_data']); - } - $this->p_vars['define_params_data'] .= $word; - } else - { - if (isset($this->p_vars['quote_data']) && !$this->p_flags['definename_isset']) - { - $this->p_vars['define_params_data'] .= $this->p_vars['quote_data']; - unset($this->p_vars['quote_data']); - } - $this->p_flags['definename_isset'] = true; - $this->p_vars['define_name'] = $this->p_vars['define_params_data']; - unset($this->p_vars['quote_data']); - $this->p_vars['define_params_data'] = ''; - } - } - } - - /** - * handler for DEFINE_PARAMS_PARENTHESIS. - * this handler takes all parenthetical statements within constant or value in: - * define(constant, value) of a define statement, and handles them properly - */ - - function handleDefineParamsParenthesis($word, $pevent) - { - if (isset($this->p_vars['quote_data'])) - { - $this->p_vars['define_params_data'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - $this->p_vars['define_params_data'] .= $word; - $this->checkEventPush( $word, $pevent); - $this->checkEventPop( $word, $pevent); - } - - /** - * handler for CLASS. - * this handler parses a class statement - */ - - function handleClass($word, $pevent) - { - $this->p_flags['in_class'] = true; - $a = $this->checkEventPush( $word, $pevent); - if ($a == PARSER_EVENT_DOCBLOCK || $a == PARSER_EVENT_DOCBLOCK_TEMPLATE) - { - $this->wp->setWhitespace(true); - } - - if (!isset($this->p_vars['class'])) $this->p_vars['class'] = false; - if (!is_subclass_of($this->p_vars['class'],"parserBase")) - { - $this->p_vars['class'] = new parserClass; - $this->p_vars['class']->setLineNumber($this->wp->linenum); - $this->p_vars['class']->setname($word); - $this->p_vars['cur_class'] = $word; - $this->p_vars['class']->setSourceLocation($this->p_vars['source_location']); - } - - if (strtolower($this->p_vars['last_word']) == "extends") - { - $this->p_vars['class']->setExtends($word); - } - - if ($word == "{") - { - $this->publishEvent(PHPDOCUMENTOR_EVENT_CLASS,$this->p_vars['class']); - } - //echo $this->wp->getPos() . ": |$word|\n"; - if ($this->checkEventPop($word,$pevent)) - { - $this->p_flags['in_class'] = false; - // throw an event when class is done - $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,STATE_END_CLASS); - $this->p_vars['class'] = false; - } - } - - /** - * handler for VAR. - * handle a var $varname = default_value; or var $varname; statement in a class definition - */ - - function handleVar($word, $pevent) - { - if (!$this->p_flags['in_var']) - { - $this->p_vars['linenum'] = $this->wp->linenum; - } - $this->p_flags['in_var'] = true; - //echo $word."\n"; - $e = $this->checkEventPush( $word, $pevent); - - if (!isset($this->p_vars['var'])) $this->p_vars['var'] = false; - if ($word == '=' || $word == ';') $this->p_flags['var_equals'] = true; - if (!$this->p_flags['var_equals']) - { - // if we haven't parsed the = yet, no arrays are possible! - if ($e == PARSER_EVENT_ARRAY) - { - $this->p_flags['arrayinvarname'] = true; - $this->p_vars['event_stack']->popEvent(); - } - if (!$e || ($e == PARSER_EVENT_ARRAY)) - $this->p_vars['varname'] .= $word; - } - - if (!$this->p_flags['var_equals']) - { - if ($word != "/*" && $word != "//" && $word != "#") - { - $this->p_vars['var'] = new parserVar($this->p_vars['cur_class']); - $this->p_vars['var']->setName($this->p_vars['varname']); - } - } - if ($this->p_vars['last_word'] == "=") - { - if ($word != "/*" && $word != "//" && $word != "#") - { - $this->p_vars['var']->setValue($word); - } - } - // fix 1202772 - if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE || $this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE)) - { - $this->p_vars['var']->setValue($this->p_vars['quote_data']); - unset($this->p_vars['quote_data']); - } - if ($this->p_vars['last_pevent'] == PARSER_EVENT_ARRAY) - { - $this->p_vars['var']->setValue($this->p_vars['function_data']); - $this->p_vars['function_data'] = false; - } - - if ($this->checkEventPop($word,$pevent)) - { - $this->p_vars['var']->setLineNumber($this->p_vars['linenum']); - $this->publishEvent(PHPDOCUMENTOR_EVENT_VAR,$this->p_vars['var']); - unset($this->p_vars['var']); - $this->p_flags['in_var'] = false; - $this->p_flags['var_equals'] = false; - $this->p_flags['arrayinvarname'] = false; - $this->p_vars['varname'] = ''; - } - } - - /** - * handler for QUOTE. - * this handler recognizes strings defined with double quotation marks (") and handles them correctly - * in any place that they legally appear in php code - */ - - function handleQuote($word, $pevent) - { - if ($this->p_flags['reset_quote_data'] === true) - { - $this->p_flags['reset_quote_data'] = false; - $this->p_vars['quote_data'] = ""; - } - $this->checkEventPush( $word, $pevent); - if ($word != "\"") - { - $this->p_vars['quote_data'] .= $word; - } - if ($this->checkEventPop($word,$pevent)) - { - $this->p_flags['reset_quote_data'] = true; - } - } - - /** - * handler for SINGLEQUOTE. - * this handler recognizes strings defined with single quotation marks (') and handles them correctly - * in any place that they legally appear in php code - */ - - function handleSingleQuote($word, $pevent) - { - $this->checkEventPush( $word, $pevent); - if ($this->checkEventPop($word,$pevent)) - { - if ($this->p_vars['last_word'] != "'") - { - $this->p_vars['quote_data'] = $this->p_vars['last_word']; - } else { - $this->p_vars['quote_data'] = ""; - } - } - } - - /** - * handler for EOFQUOTE. - * this handler recognizes strings defined with perl-style <<< EOF quotes, and handles them correctly - * in any place that they legally appear in php code - * - * an example: - * $var <<< EOF - * blah blah blah - * EOF; - */ - - function handleEOFQuote($word, $pevent) - { - // echo $this->wp->getPos() . ": word=|$word|\t\t\tlastword=|$this->p_vars['last_word']|\n"; - if (trim($this->p_vars['last_word']) == "<<<") - { - // ok we found the keyword - //echo "Keyword == $word\n"; - $this->p_vars['oldtoken'] = $this->tokens[STATE_EOFQUOTE]; - $this->tokens[STATE_EOFQUOTE] = array($word); - } - else if ($this->p_vars['last_pevent'] || PARSER_EVENT_EOFQUOTE) - { - // i don't think anything will ever use this so were not going to set it - //$this->p_vars['quote_data'] = $this->p_vars['last_word']; - $this->p_vars['event_stack']->popEvent(); - $this->tokens[STATE_EOFQUOTE] = $this->p_vars['oldtoken']; - } - } - /**#@-*/ - - /** - * Tells the parser to search for a global variable definition as - * defined by a @global type $name tag. - * - * The parser is fooled into looking for the entire global variable as a - * single token by amending the {@link $tokens} array. - * - * {@source} - * @access private - * @param string name of global variable as it appears in the source code - */ - function findGlobal($name) - { - if (!isset($this->p_vars['globaltofind'])) - { - $this->p_vars['globaltofind'] = $name; - $this->pushEvent[PARSER_EVENT_PHPCODE][strtolower($name)] = PARSER_EVENT_DEFINE_GLOBAL; - $this->tokens[STATE_PHPCODE][] = $name; - } else - { - addError(PDERROR_MULTIPLE_GLOBAL_TAGS,$this->p_vars['globaltofind'],$name); - } - } - - /**#@+ - * @access private - * @param string token parsed from source - * @param integer parser constant from {@link Parser.inc} - */ - /** - * handler for PHPCODE. - * this handler recognizes the php processor directive, and begins parsing php code - */ - - function handlePhpCode($word, $pevent) - { - $e = $this->checkEventPush( $word, $pevent); - if ($e == PARSER_EVENT_DOCBLOCK || $e == PARSER_EVENT_DOCBLOCK_TEMPLATE) - { - $this->wp->setWhitespace(true); - } - if (isset($this->p_vars['globaltofind']) && $e) - { - if ($e != PARSER_EVENT_DEFINE_GLOBAL && $e != PARSER_EVENT_ARRAY && $e != PARSER_EVENT_QUOTE && $e != PARSER_EVENT_SINGLEQUOTE && $e != PARSER_EVENT_COMMENT && $e != PARSER_EVENT_COMMENTBLOCK) - { - addError(PDERROR_GLOBAL_NOT_FOUND,$this->p_vars['globaltofind']); - unset($this->pushEvent[PARSER_EVENT_PHPCODE][strtolower($this->p_vars['globaltofind'])]); - foreach($this->tokens[STATE_PHPCODE] as $i => $notme) - if ($this->tokens[STATE_PHPCODE][$i] == $this->p_vars['globaltofind']) - unset($this->tokens[STATE_PHPCODE][$i]); - unset($this->p_vars['globaltofind']); - } - } - } - - /** - * handler for global variables - */ - function handleGlobal($word, $pevent) - { - if (!$this->p_flags['in_global']) - { - $this->p_vars['linenum'] = $this->wp->linenum; - } - $this->p_flags['in_global'] = true; - $e = $this->checkEventPush($word, $pevent); - if ($this->checkEventPop($word, $pevent)) - { - $this->p_flags['in_global'] = false; - $a = new parserGlobal; - $a->setDataType($this->p_vars['global_type']); - $this->p_vars['global_type'] = ''; - $a->setLineNumber($this->p_vars['linenum']); - $a->setName($this->p_vars['globaltofind']); - if (isset($this->p_vars['global_val'])) - $a->setValue(trim($this->p_vars['global_val'])); - unset($this->p_vars['global_val']); - $this->publishEvent(PHPDOCUMENTOR_EVENT_GLOBAL,$a); - unset($this->pushEvent[PARSER_EVENT_PHPCODE][strtolower($this->p_vars['globaltofind'])]); - foreach($this->tokens[STATE_PHPCODE] as $i => $notme) - if ($this->tokens[STATE_PHPCODE][$i] == $this->p_vars['globaltofind']) - unset($this->tokens[STATE_PHPCODE][$i]); - unset($this->p_vars['globaltofind']); - } - } - - /** - * Handles the stuff after the = in $globalvar = value - */ - function handleGlobalValue($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) - { - $this->wp->setWhitespace(false); - return; - } - if (!isset($this->p_vars['global_val'])) $this->p_vars['global_val'] = ''; - if ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE || $this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE) - { - if (!isset($this->p_vars['quote_data'])) $this->p_vars['quote_data'] = ''; - $this->p_vars['global_val'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - $this->p_vars['last_pevent'] = PARSER_EVENT_GLOBAL_VALUE; - } - if ($this->p_vars['last_pevent'] == PARSER_EVENT_ARRAY) - { - $this->p_vars['global_val'] .= $this->p_vars['function_data']; - $this->p_vars['function_data'] = false; - } - if ($word != ';') - $this->p_vars['global_val'] .= $word; - if ($this->checkEventPop($word, $pevent)) - { - $this->wp->setWhitespace(false); - $this->wp->backupPos($word); - } - } - - /** - * handler for FUNC_GLOBAL. - * this handler recognizes "global $var1, $var2" declarations in a function, and parses them - */ - - function handleFuncGlobal($word, $pevent) - { - if ((substr(trim($word),0,1) != '$') && ($word != ',') && ($word != ';')) - { // not a global declaration, using a variable named "$global" - $this->p_vars['event_stack']->popEvent(); - return; - } - if ($this->checkEventPop($word, $pevent)) - { - return; - } - if (!$this->checkEventPush($word, $pevent)) - { - if ($word == ',') - { // another variable - $this->p_vars['global_count']++; - } else - { - if (!isset($this->p_vars['globals'][$this->p_vars['global_count']])) - $this->p_vars['globals'][$this->p_vars['global_count']] = ''; - if (!empty($this->p_vars['globals'][$this->p_vars['global_count']])) $this->p_vars['global_count']++; - $this->p_vars['globals'][$this->p_vars['global_count']] = trim($word); - } - } - } - - /** - * handler for STATIC_VAR. - * this handler recognizes "static $var1, $var2 = 6" declarations in a function, and parses them - */ - - function handleStaticVar($word, $pevent) - { - if ($this->checkEventPop($word, $pevent)) - { - $this->p_vars['static_count']++; - return; - } - if (!$this->checkEventPush($word, $pevent)) - { - if ($word == ',') - { - $this->p_vars['static_count']++; - return; - } - if (!isset($this->p_vars['statics'][$this->p_vars['static_count']])) - $this->p_vars['statics'][$this->p_vars['static_count']] = ''; - if (!empty($this->p_vars['statics'][$this->p_vars['static_count']])) $this->p_vars['static_count']++; - $this->p_vars['statics'][$this->p_vars['static_count']] = trim($word); - } - } - - /** - * handler for STATIC_VAR_VALUE. - * this handler parses the 6 in "static $var1, $var2 = 6" - */ - - function handleStaticValue($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) - { - return; - } - if (!isset($this->p_vars['static_val'][$this->p_vars['static_count']])) $this->p_vars['static_val'][$this->p_vars['static_count']] = ''; - if ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE || $this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE) - { - $this->p_vars['static_val'][$this->p_vars['static_count']] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - if ($this->p_vars['last_pevent'] == PARSER_EVENT_ARRAY) - { - $this->p_vars['static_val'][$this->p_vars['static_count']] .= $this->p_vars['function_data']; - $this->p_vars['function_data'] = false; - } - if ($this->checkEventPop($word, $pevent)) - { - $this->p_vars['static_val'][$this->p_vars['static_count']] = trim($this->p_vars['static_val'][$this->p_vars['static_count']]); - $this->wp->backupPos($word); - return; - } else $this->p_vars['static_val'][$this->p_vars['static_count']] .= $word; - } - - /** - * handler for FUNCTION. - * this handler recognizes function declarations, and parses them. The body - * of the function is parsed by handleLogicBlock() - * @see handleLogicBlock() - */ - - function handleFunction($word, $pevent) - { - if ($e = $this->checkEventPush( $word, $pevent)) - { - if ($e == PARSER_EVENT_COMMENT || $e == PARSER_EVENT_COMMENTBLOCK) return; - } - - if (!isset($this->p_vars['func'])) $this->p_vars['func'] = false; - if (! is_subclass_of($this->p_vars['func'],"parserBase")) - { - $this->p_vars['globals'] = array(); - $this->p_vars['global_count'] = 0; - if ($this->p_flags['in_class']) - $this->p_vars['func'] = new parserMethod($this->p_vars['cur_class']); - else - $this->p_vars['func'] = new parserFunction; - $this->p_vars['func']->setLineNumber($this->wp->linenum); - if (trim($word) != '&') - $this->p_vars['func']->setName(trim($word)); - else - $this->p_vars['func']->setReturnsReference(); - } else - { - if ($this->p_vars['func']->getReturnsReference()) - { - if ($this->p_vars['last_word'] == '&') - { - $this->p_vars['func']->setName(trim($word)); - } - } - } - if ($this->checkEventPop($word,$pevent)) - { - $this->p_vars['func']->addGlobals($this->p_vars['globals']); - $this->p_vars['func']->addStatics($this->p_vars['statics'],$this->p_vars['static_val']); - $this->p_vars['globals'] = array(); - $this->p_vars['global_count'] = 0; - if ($this->p_flags['getting_source']) - { - $x = $this->wp->getSource(); - $this->p_vars['func']->addSource($x); - $this->p_flags['get_source'] = false; - $this->p_flags['getting_source'] = false; - } - $this->publishEvent(PHPDOCUMENTOR_EVENT_FUNCTION,$this->p_vars['func']); - $this->p_vars['func'] = false; - } - } - - /**#@-*/ - /** - * Helper function for {@link handleFunctionParams()} - * - * This function adds a new parameter to the parameter list - * @access private - * @param string - */ - function endFunctionParam($word) - { - if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE)) - { - $this->p_vars['function_data'] .= "'".$this->p_vars['quote_data']."'"; - unset($this->p_vars['quote_data']); - } - if (isset($this->p_vars['quote_data']) && ($this->p_vars['quote_data'] != '') && ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE)) - { - $this->p_vars['function_data'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - if (isset($this->p_vars['function_param'])) - { - $this->p_vars['func']->addParam($this->p_vars['function_param'],$this->p_vars['function_data'], $this->p_flags['funcparam_val']); - unset($this->p_vars['function_param']); - $this->p_vars['function_data'] = ''; - $this->p_flags['funcparam_val'] = false; - } - } - /**#@+ - * @access private - * @param string token parsed from source - * @param integer parser constant from {@link Parser.inc} - */ - /** - * handler for FUNCTION_PARAMS. - * this handler recognizes the parameters of a function within parentheses like function(param, param = default_value) - * and parses them - * @see endFunctionParam() - */ - - function handleFunctionParams($word, $pevent) - { - //echo $this->wp->getPos() . ": word=|$word|\t\t\tlastword=|".$this->p_vars['last_word']."|\n"; - //echo "function_param = '".$this->p_vars['function_param']."'\n"; - //echo "function_data = '".$this->p_vars['function_data']."'\n"; - $e1 = $this->checkEventPush( $word, $pevent); - - if (!$e1) - { - if ($word == ',' || $this->checkEventPop($word,$pevent)) - { - $this->endFunctionParam($word); - } elseif ($word == '=') - { - $this->p_flags['funcparam_val'] = true; - } else - { - if ($this->p_flags['funcparam_val']) - { - if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE)) - { - $this->p_vars['function_data'] .= "'".$this->p_vars['quote_data']."'"; - unset($this->p_vars['quote_data']); - } - if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE)) - { - $this->p_vars['function_data'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - $this->p_vars['function_data'] .= $word; - } else - { - $this->p_vars['function_param'] = $word; - } - } - } - } - - - /** - * javadoc-desc-compliant handler for DOCBLOCK. - * this handler recognizes @tags in DocBlocks and parses them for display. - * It also parses out unknown tags into their own array for use by the docblock - */ - - function JavaDochandleDocblock($word, $pevent) - { - $e1 = $this->checkEventPush( $word, $pevent); - if (!isset($this->p_vars[$this->p_vars['docblock_type']]) || !$this->p_vars[$this->p_vars['docblock_type']]) - { - $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock(); - $this->p_vars['returntype'] = false; - $this->p_vars['vartype'] = false; - $this->p_flags['startdocblock'] = true; - $this->p_flags['valid_newline'] = true; - $this->p_flags['startline'] = true; - $this->p_flags['newline'] = true; - $this->p_flags['in_desc'] = true; - $this->p_flags['in_tag'] = false; - $this->p_flags['useperiod'] = false; - $this->p_vars['line'] = array(); - $this->p_vars['linecount'] = 0; - } - $e = $this->checkEventPop( $word, $pevent); - if (!$e1 && !$e) - { - if ($this->p_flags['in_desc']) $this->JavaDochandleDesc($word, $pevent); - else $this->handleTags($word, $pevent); - } - if ($e) - { - if (!isset($this->p_vars['periodline'])) $this->p_vars['periodline'] = 0; - if ($this->p_vars['periodline'] > 3) - { - $this->p_flags['useperiod'] = false; - } - - $this->p_vars['docblock_desc'] = new parserDesc; -// echo "i = ".$this->p_vars['periodline']."; i < " . count($this->p_vars['line']) . "\n"; - if ($this->p_vars['docblock_type'] == 'docblock') - { - if (isset($this->p_vars['docblock_template'])) - { - // copy template values if not overridden - if (!$this->p_vars['docblock']->getExplicitPackage()) - { - if ($p = $this->p_vars['docblock_template']->getKeyword('package')) - { - $this->p_vars['docblock']->addKeyword('package',$p); - $this->p_vars['docblock']->setExplicitPackage(); - } - if ($p = $this->p_vars['docblock_template']->getKeyword('category')) - { - $this->p_vars['docblock']->addKeyword('category',$p); - $this->p_vars['docblock']->setExplicitCategory(); - } - if ($p = $this->p_vars['docblock_template']->getKeyword('subpackage')) - { - $this->p_vars['docblock']->addKeyword('subpackage',$p); - } - } - $tags = $this->p_vars['docblock_template']->listTags(); - foreach($tags as $tag) - { - $this->p_vars['docblock']->addKeyword($tag->keyword,$tag->value); - } - $this->p_vars['docblock_desc']->add($this->p_vars['docblock_template']->desc); - if (!count($this->p_vars['docblock']->params)) $this->p_vars['docblock']->params = $this->p_vars['docblock_template']->params; - } - if ($a = strpos(trim($this->p_vars['shortdesc']),'

            ') === 0) - $this->p_vars['shortdesc'] = substr($this->p_vars['shortdesc'],strpos($this->p_vars['shortdesc'],'

            ') + 4); - $this->p_vars[$this->p_vars['docblock_type']]->setShortDesc($this->p_vars['shortdesc']); - } - for($i = 0; $i < count($this->p_vars['line']); $i++) - { - // the line will not be set if it doesn't start with a * - if (isset($this->p_vars['line'][$i])) - $this->p_vars['docblock_desc']->add($this->p_vars['line'][$i]); - } - - - $this->p_vars[$this->p_vars['docblock_type']]->setDesc($this->p_vars['docblock_desc']); - unset($this->p_vars['docblock_desc']); -// var_dump($this->p_vars[$this->p_vars['docblock_type']]); -// exit; - if ($this->p_vars['docblock_type'] == 'docblock') - { - $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK,$this->p_vars[$this->p_vars['docblock_type']]); - unset($this->p_vars[$this->p_vars['docblock_type']]); - $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock(); - } - $this->p_flags['in_desc'] = true; - $this->p_flags['in_tag'] = false; - $this->p_flags['useperiod'] = false; - $this->p_vars['line'] = array(); - $this->p_vars['linecount'] = 0; - $this->p_flags['start_docblock'] = true; - $this->p_flags['valid_newline'] = true; - $this->wp->setWhitespace(false); - } - } - - /** - * handler for DOCKEYWORD_DESC. - * this handler parses the short and long description of a dockeyword - */ - - function JavaDochandleDesc($word, $pevent) - { - if ($this->p_flags['valid_newline']) - { - if ($word == '@' && $this->p_flags['startline']) - { - return $this->handleTag($word, $pevent); - } - if (!isset($this->p_vars['line'][$this->p_vars['linecount']])) - { - $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags; - } - if ($this->p_vars['last_word'] == "." && $this->p_flags['useperiod'] == false) - { - $this->p_vars['periodline'] = $this->p_vars['linecount']; - $this->p_vars['shortdesc'] = new parserDesc; - for($i = 0; ($i <= $this->p_vars['periodline']) && ($i < count($this->p_vars['line'])); $i++) - { - if (isset($this->p_vars['line'][$i])) - $this->p_vars['shortdesc']->add($this->p_vars['line'][$i]); - } - $this->p_flags['useperiod'] = true; - } - $this->p_vars['line'][$this->p_vars['linecount']]->add($word); -// debug("DESC $word"); - } - $this->handleCR($word); - } - - /** - * handler for DOCBLOCK. - * this handler recognizes @tags in DocBlocks and parses them for display. - * It also parses out unknown tags into their own array for use by the docblock - */ - - function BetterhandleDocblock($word, $pevent) - { - $e1 = $this->checkEventPush( $word, $pevent); - if (!$this->wp->returnWhiteSpace) - { - addErrorDie(PDERROR_NEED_WHITESPACE); - } - if (!isset($this->p_vars[$this->p_vars['docblock_type']]) || !$this->p_vars[$this->p_vars['docblock_type']]) - { - $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock(); - $this->p_vars['returntype'] = false; - $this->p_vars['vartype'] = false; - $this->p_flags['startdocblock'] = true; - $this->p_flags['valid_newline'] = true; - $this->p_flags['startline'] = true; - $this->p_flags['newline'] = true; - $this->p_flags['in_desc'] = true; - $this->p_flags['in_tag'] = false; - $this->p_flags['useperiod'] = false; - $this->p_vars['line'] = array(); - $this->p_vars['linecount'] = 0; - } - $e = $this->checkEventPop( $word, $pevent); - if (!$e1 && !$e) - { - if ($this->p_flags['in_desc']) $this->handleDesc($word, $pevent); - else $this->handleTags($word, $pevent); - } - if ($e) - { - if (!isset($this->p_vars['periodline'])) $this->p_vars['periodline'] = 0; - if ($this->p_vars['periodline'] > 3) - { - $this->p_flags['useperiod'] = false; - } else - { - for($i = 0; $i < $this->p_vars['periodline']; $i++) - { - if (isset($this->p_vars['line'][$i])) - { - if ($this->p_vars['line'][$i]->trimmedStrlen() == 0 && isset($this->p_vars['line'][$i - 1]) && $this->p_vars['line'][$i - 1]->trimmedStrlen()) - { - $this->p_vars['periodline'] = $i; - } - } - } - } - // figure out the shortdesc - if ($this->p_flags['useperiod'] === false) - { - // use the first non blank line for short desc - for($i = 0; $i < count($this->p_vars['line']); $i++) - { - if (!isset($this->p_vars['line'][$i])) - $this->p_vars['line'][$i] = new parserStringWithInlineTags; - if ($this->p_vars['line'][$i]->trimmedStrlen() > 0) - { - $this->p_vars['periodline'] = $i; - $i = count($this->p_vars['line']); - } - } - - // check to see if we are going to use a blank line to end the shortdesc - // this can only be in the first 4 lines - if (count($this->p_vars['line']) > 4) - { - $max = 4; - } else { - $max = count($this->p_vars['line']); - } - - for($i = $this->p_vars['periodline']; $i < $max; $i++) - { - if (isset($this->p_vars['line'][$i])) - if ($this->p_vars['line'][$i]->trimmedStrlen() == 0) - { - $this->p_vars['periodline'] = $i; - $i = $max; - } - } - } - - if ($this->p_vars['docblock_type'] == 'docblock') - { - $this->p_vars['shortdesc'] = new parserDesc; - for($i = 0; ($i <= $this->p_vars['periodline']) && ($i < count($this->p_vars['line'])); $i++) - { - if (isset($this->p_vars['line'][$i])) - $this->p_vars['shortdesc']->add($this->p_vars['line'][$i]); - } - $this->p_vars['periodline']++; - - $this->p_vars['docblock_desc'] = new parserDesc; - if (isset($this->p_vars['docblock_template'])) - { - // copy template values if not overridden - if (!$this->p_vars['docblock']->getExplicitPackage()) - { - if ($p = $this->p_vars['docblock_template']->getKeyword('package')) - { - $this->p_vars['docblock']->addKeyword('package',$p); - $this->p_vars['docblock']->setExplicitPackage(); - } - if ($p = $this->p_vars['docblock_template']->getKeyword('category')) - { - $this->p_vars['docblock']->addKeyword('category',$p); - $this->p_vars['docblock']->setExplicitCategory(); - } - if ($p = $this->p_vars['docblock_template']->getKeyword('subpackage')) - { - $this->p_vars['docblock']->addKeyword('subpackage',$p); - } - } - $tags = $this->p_vars['docblock_template']->listTags(); - foreach($tags as $tag) - { - $this->p_vars['docblock']->addKeyword($tag->keyword,$tag->value); - } - if (!count($this->p_vars['docblock']->params)) $this->p_vars['docblock']->params = $this->p_vars['docblock_template']->params; - $this->p_vars['docblock_desc']->add($this->p_vars['docblock_template']->desc); - } - // echo "i = ".$this->p_vars['periodline']."; i < " . count($this->p_vars['line']) . "\n"; - for($i = $this->p_vars['periodline']; $i < count($this->p_vars['line']); $i++) - { - // the line will not be set if it doesn't start with a * - if (isset($this->p_vars['line'][$i])) - $this->p_vars['docblock_desc']->add($this->p_vars['line'][$i]); - } - } else - { - $this->p_vars['shortdesc'] = new parserDesc; - for($i = 0; ($i <= $this->p_vars['periodline']) && ($i < count($this->p_vars['line'])); $i++) - { - if (isset($this->p_vars['line'][$i])) - $this->p_vars['shortdesc']->add($this->p_vars['line'][$i]); - } - $this->p_vars['periodline']++; - - $this->p_vars['docblock_desc'] = new parserDesc; - for($i=$this->p_vars['periodline']; $i < count($this->p_vars['line']); $i++) - { - if (isset($this->p_vars['line'][$i])) - $this->p_vars['docblock_desc']->add($this->p_vars['line'][$i]); - } - } - - - $this->p_vars[$this->p_vars['docblock_type']]->setShortDesc($this->p_vars['shortdesc']); - $this->p_vars[$this->p_vars['docblock_type']]->setDesc($this->p_vars['docblock_desc']); - unset($this->p_vars['docblock_desc']); -// var_dump($this->p_vars[$this->p_vars['docblock_type']]); -// exit; - if ($this->p_vars['docblock_type'] == 'docblock') - { - $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK,$this->p_vars[$this->p_vars['docblock_type']]); - unset($this->p_vars[$this->p_vars['docblock_type']]); - $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock(); - } else - { - $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK_TEMPLATE,$this->p_vars[$this->p_vars['docblock_type']]); - } - $this->p_flags['in_desc'] = true; - $this->p_flags['in_tag'] = false; - $this->p_flags['useperiod'] = false; - $this->p_vars['line'] = array(); - $this->p_vars['linecount'] = 0; - $this->p_flags['start_docblock'] = true; - $this->p_flags['valid_newline'] = true; - $this->wp->setWhitespace(false); - $this->p_vars['docblock_type'] = 'docblock'; - } - } - - /** - * Handles docblock templates - * @tutorial phpDocumentor.howto.pkg#basics.docblocktemplate - */ - function handleDocBlockTemplate($word, $pevent) - { - $this->p_vars['docblock_type'] = 'docblock_template'; - $this->p_vars['event_stack']->popEvent(); - $this->p_vars['event_stack']->pushEvent(PARSER_EVENT_DOCBLOCK); - // fool the docblock handler into thinking everything is totally normal - $this->p_vars['last_word'] = '/**'; - $pevent = PARSER_EVENT_DOCBLOCK; - $this->BetterhandleDocBlock($word, $pevent); - } - - /** - * Handles closing docblock templates /**#@-* / - * @tutorial phpDocumentor.howto.pkg#basics.docblocktemplate - */ - function handleEndDocBlockTemplate($word, $pevent) - { - unset($this->p_vars['docblock_template']); - $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,PHPDOCUMENTOR_EVENT_END_DOCBLOCK_TEMPLATE); - $this->p_vars['event_stack']->popEvent(); - } - /**#@-*/ - /** - * Handles a new line in a DocBlock - * @param string token containing a newline \n - * @access private - */ - function handleCR($word) - { - $this->laststart = $this->p_flags['startline']; - if ($word == "\n" || $word == ".\n") - { - $this->p_flags['start_docblock'] = false; - $this->p_flags['newline'] = true; - $this->p_flags['valid_newline'] = false; - if ($this->p_flags['in_desc'] && !$this->p_flags['useperiod']) - { - if ($word == ".\n") - { - $this->p_flags['useperiod'] = true; - $this->p_vars['periodline'] = $this->p_vars['linecount']; - } - } - } else - { - if ($this->p_flags['valid_newline'] && strlen(trim($word))) - { - $this->p_flags['startline'] = false; - } - if ($this->p_flags['newline'] && ($word == '*' || $this->p_flags['start_docblock'])) - { - $this->p_flags['newline'] = false; - $this->p_flags['valid_newline'] = true; - if (!$this->p_flags['start_docblock']) - $this->p_vars['linecount']++; - $this->p_flags['startline'] = true; - $justset = true; -// debug('valid newline'); - } - } - } - - /** - * handler for DOCKEYWORD_DESC. - * this handler parses the short and long description of a dockeyword - * @access private - */ - - function handleDesc($word, $pevent) - { -// echo "|$word|\n"; - if ($this->p_flags['valid_newline']) - { - if ($word == '@' && $this->p_flags['startline']) - { - return $this->handleTag($word, $pevent); - } - if ($this->p_vars['last_word'] == ". " || $this->p_vars['last_word'] == ".\t") - { - $this->p_flags['useperiod'] = true; - $this->p_vars['periodline'] = $this->p_vars['linecount']; - $this->p_vars['linecount']++; - } - if (!isset($this->p_vars['line'][$this->p_vars['linecount']])) - { - $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags; - } - if ($this->p_flags['startline']) - { - if ($word[0] == ' ') $word = substr($word,1); -// $word = ltrim($word," \t"); - } - if ($word != '') $this->p_vars['line'][$this->p_vars['linecount']]->add($word); -// debug("DESC $word"); - } - $this->handleCR($word); - } - - /**#@+ - * @access private - * @param string token parsed from source - * @param integer parser constant from {@link Parser.inc} - */ - /** - * handler for DOCKEYWORD_TAGS. - * this handler recognizes @tags in DocBlocks and parses them for display - * I think this may be unused. We'll delete from 1.1 if so - */ - function handleTags($word, $pevent) - { - if ($this->p_flags['valid_newline']) - { -// debug("TAGS $word"); - } - $this->handleCR($word); - } - - /** - * handler for DOCKEYWORD. - * this handler recognizes @tags in DocBlocks and parses them for display - */ - function handleTag($word, $pevent) - { - if ($this->p_flags['in_desc'] && !$this->p_flags['valid_newline']) - { - $this->p_vars['event_stack']->popEvent(); - return $this->handleDesc($word, $pevent); - } -// if ($this->p_vars['last_word'] == '@') fancy_debug('here'.$word,$this->p_flags['startline'],$this->p_flags['in_tag']); - if ($this->p_vars['tagname'] == 'author') - { - if ($word == '<') - { - $this->p_vars['event_stack']->pushEvent(PARSER_EVENT_DOCKEYWORD_EMAIL); - return $this->handleDockeywordEmail($word, $pevent); - } - } - if ($this->checkEventPush( $word, $pevent)) return; - if ($this->p_vars['last_word'] == '@' && !$this->p_flags['startline'] && $this->p_flags['in_desc']) - { - // fix 1203445 - if (!isset($this->p_vars['line'][$this->p_vars['linecount']])) - { - $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags; - } - $this->p_vars['event_stack']->popEvent(); - $this->p_vars['line'][$this->p_vars['linecount']]->add('@'); - return $this->handleDesc($word, $pevent); - } elseif($this->p_vars['last_word'] == '@' && !strlen(trim($word)) && empty($this->p_vars['tagname']) && $this->p_flags['in_desc']) - { - // fix 1203445 - if (!isset($this->p_vars['line'][$this->p_vars['linecount']])) - { - $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags; - } - $pevent = $this->p_vars['event_stack']->popEvent(); - $this->p_vars['line'][$this->p_vars['linecount']]->add('@'); - return $this->handleDesc($word, $pevent); - } - if ($word == '@' && $this->p_flags['startline'] && $this->p_flags['in_tag']) - { - $this->wp->backupPos($word); - $white = $this->wp->returnWhiteSpace; - $this->wp->setWhitespace(true); - $word1 = $this->wp->getWord(); - $this->wp->backupPos($word1); - if (strlen(trim($word1))) - { - $this->endTag(); - } - $this->wp->getWord(); - $this->wp->setWhitespace($white); - } - $this->p_flags['in_tag'] = true; - $e = $this->checkEventPop($word, $pevent); - if (!$e) - { - if ($this->p_flags['valid_newline']) - { - if (($this->p_flags['startline'] || $this->laststart) && $word != '@') - { - if ($this->p_vars['last_word'] == '@') - { -// debug("TAGSTART $word"); - $this->p_flags['in_tag'] = true; - $this->p_vars['tagname'] = $word; - $this->p_flags['startline'] = false; - $this->p_vars['tag_value'] = new parserStringWithInlineTags; - } else - { -// debug("TAG1 $word"); - if (isset($this->tagHandlers[$this->p_vars['tagname']])) - $handler = $this->tagHandlers[$this->p_vars['tagname']]; - else $handler = $this->tagHandlers['*']; - $this->$handler($word); - } - } else - { - if (empty($this->p_vars['tagname'])) - { - if ($this->p_flags['in_desc']) - { - $this->p_flags['in_tag'] = false; - // fix 1203445 - if (!isset($this->p_vars['line'][$this->p_vars['linecount']])) - { - $this->p_vars['line'][$this->p_vars['linecount']] = - new parserStringWithInlineTags; - } - $this->p_vars['line'][$this->p_vars['linecount']]->add('@'); - $this->p_vars['event_stack']->popEvent(); - $this->handleCR($word); - return $this->handleDesc($word, $pevent); - } - } -// debug("TAG2 $word"); - if (isset($this->tagHandlers[$this->p_vars['tagname']])) - $handler = $this->tagHandlers[$this->p_vars['tagname']]; - else $handler = $this->tagHandlers['*']; - $this->$handler($word); - } - } - $this->handleCR($word); - } - $this->p_flags['in_desc'] = false; - if ($e) - { - $this->endTag(); - $this->wp->setWhitespace(false); - // walk back a word - $this->wp->backupPos($word); - $this->wp->setWhitespace(true); - } - } - /**#@-*/ - /** - * Called to clean up at the end of parsing a @tag in a docblock - */ - function endTag() - { - if (isset($this->tagHandlers[$this->p_vars['tagname']])) - $handler = $this->tagHandlers[$this->p_vars['tagname']]; - else $handler = $this->tagHandlers['*']; - $this->$handler(false); - $this->p_vars['tagname'] = ''; - $this->p_flags['startline'] = true; -// debug("ENDTAG"); - } - - /**#@+ - * Tag Handlers - * @param string - */ - /** - * Handles all standard tags that only have a description - */ - function defaultTagHandler($word) - { - if ($word !== false) - { - $this->p_vars['tag_value']->add($word); - } else - { - $this->p_vars[$this->p_vars['docblock_type']]->addKeyword($this->p_vars['tagname'],$this->p_vars['tag_value']); - } - } - - /** - * Handles tags like '@filesource' that only work in PHP 4.3.0+ - */ - function invalidTagHandler($word) - { - if ($word === false) - { - addError(PDERROR_TAG_NOT_HANDLED,$this->p_vars['tagname']); - } - } - - /** - * handles @package - * @tutorial tags.package.pkg - */ - function packageTagHandler($word) - { - if ($word !== false) - { - $this->p_vars['tag_value']->add($word); - } else - { - $this->p_vars[$this->p_vars['docblock_type']]->addKeyword($this->p_vars['tagname'],$this->p_vars['tag_value']); - $this->p_vars[$this->p_vars['docblock_type']]->setExplicitPackage(); - } - } - - /** - * handles @example - * @tutorial tags.example.pkg - */ - function exampleTagHandler($word) - { - if ($word !== false) - { - $this->p_vars['tag_value']->add($word); - } else - { - $this->p_vars[$this->p_vars['docblock_type']]->addExample($this->p_vars['tag_value'], $this->p_vars['parsepath']); - } - } - - /** - * handles @category - * @tutorial tags.category.pkg - */ - function categoryTagHandler($word) - { - if ($word !== false) - { - $this->p_vars['tag_value']->add($word); - } else - { - $this->p_vars[$this->p_vars['docblock_type']]->addKeyword($this->p_vars['tagname'],$this->p_vars['tag_value']); - $this->p_vars[$this->p_vars['docblock_type']]->setExplicitCategory(); - } - } - - /** - * handles @global - * @tutorial tags.global.pkg - */ - function globalTagHandler($word) - { - if ($word !== false) - { - // no data yet - $a = trim($this->p_vars['tag_value']->getString()); - if (empty($a)) - { - // not an empty word - if (trim($word) != '') - { - if (!empty($this->p_vars['global_type'])) - { - if (!$this->p_flags['define_global'] && !$this->p_flags['function_global']) - { - // @global type $GLOBALVARNAME ? - if (substr($word,0,1) == '$') - { - $this->p_flags['define_global'] = true; - $this->p_flags['function_global'] = false; - $this->p_vars['find_global'] = $word; - } else - { // function @global type description - $this->p_flags['function_global'] = true; - $this->p_flags['define_global'] = false; - $this->p_vars['tag_value']->add($word); - } - } else - { - if ($this->p_flags['define_global']) - { - $this->p_vars['find_global'] .= $word; - } elseif($this->p_flags['function_global']) - { - // description, to be added to the tag - $this->p_vars['tag_value']->add($word); - } - } - } else - { - $this->p_vars['global_type'] = $word; - } - } else $this->p_vars['tag_value']->add($word); // add whitespace to the tag description - } else - { // tag_value has data, must be a function @global - $this->p_vars['tag_value']->add($word); - } - } else - { // endtag - if ($this->p_flags['define_global']) - { - $this->findGlobal($this->p_vars['find_global']); - } - elseif ($this->p_flags['function_global']) - { - $this->p_vars[$this->p_vars['docblock_type']]->addFuncGlobal($this->p_vars['global_type'],$this->p_vars['tag_value']); - $this->p_vars['global_type'] = ''; - } - else - { - addError(PDERROR_MALFORMED_GLOBAL_TAG); - } - $this->p_vars['find_global'] = ''; - $this->p_flags['define_global'] = false; - $this->p_flags['function_global'] = false; - } - } - - /** - * handles @staticvar - * @tutorial tags.staticvar.pkg - */ - function staticvarTagHandler($word) - { - if ($word !== false) - { - if (!$this->p_vars['returntype']) $this->p_vars['returntype'] = trim($word); - else - { - if (!$this->p_vars['paramname']) - { - if (substr(trim($word),0,1) == "$") - $this->p_vars['paramname'] = trim($word); - else $this->p_vars['tag_value']->add($word); - } else - { - if (0)//strtolower($this->p_vars['paramtype']) == 'object') - { - if (strlen(trim($word))) - $this->p_vars['paramname'] = trim($word); - } else $this->p_vars['tag_value']->add($word); - } - } - } else - { - if (!$this->p_vars['paramname']) - $this->p_vars[$this->p_vars['docblock_type']]->addStaticVar(null,$this->p_vars['returntype'],$this->p_vars['tag_value']); - else - $this->p_vars[$this->p_vars['docblock_type']]->addStaticVar($this->p_vars['paramname'],$this->p_vars['returntype'],$this->p_vars['tag_value']); - $this->p_vars['paramname'] = false; - $this->p_vars['returntype'] = false; - } - } - - /** - * handles @uses - * @tutorial tags.uses.pkg - */ - function usesTagHandler($word) - { - if ($word !== false) - { - if (!$this->p_vars['seelement']) $this->p_vars['seelement'] = trim($word); - else - { - $this->p_vars['tag_value']->add($word); - } - } else - { - $see = new parserStringWithInlineTags; - $see->add($this->p_vars['seelement']); - $this->p_vars[$this->p_vars['docblock_type']]->addUses($see,$this->p_vars['tag_value']); - $this->p_vars['seelement'] = false; - } - } - - /** - * handles @param - * @tutorial tags.param.pkg - */ - function paramTagHandler($word) - { - if ($word !== false) - { - if (!$this->p_vars['returntype']) $this->p_vars['returntype'] = trim($word); - else - { - if (!$this->p_vars['paramname']) - { - if (substr(trim($word),0,1) == "$" || substr(trim($word),0,2) == "&$") - $this->p_vars['paramname'] = trim($word); - else $this->p_vars['tag_value']->add($word); - } else - { - if (0)//strtolower($this->p_vars['paramtype']) == 'object') - { - if (strlen(trim($word))) - $this->p_vars['paramname'] = trim($word); - } else $this->p_vars['tag_value']->add($word); - } - } - } else - { - if (!$this->p_vars['paramname']) - $this->p_vars[$this->p_vars['docblock_type']]->addParam(null,$this->p_vars['returntype'],$this->p_vars['tag_value']); - else - $this->p_vars[$this->p_vars['docblock_type']]->addParam($this->p_vars['paramname'],$this->p_vars['returntype'],$this->p_vars['tag_value']); - $this->p_vars['paramname'] = false; - $this->p_vars['returntype'] = false; - } - } - - /** - * handles @return - * @tutorial tags.return.pkg - */ - function returnTagHandler($word) - { - if ($word !== false) - { - if (!$this->p_vars['returntype']) $this->p_vars['returntype'] = trim($word); - else - { - if (strtolower($this->p_vars['returntype']) == 'object') - { - if (strlen(trim($word))) - $this->p_vars['returntype'] = trim($word); - } else $this->p_vars['tag_value']->add($word); - } - } else - { - $this->p_vars[$this->p_vars['docblock_type']]->addReturn($this->p_vars['returntype'],$this->p_vars['tag_value']); - $this->p_vars['returntype'] = false; - } - } - - /** - * handles @var - * @tutorial tags.var.pkg - */ - function varTagHandler($word) - { - if ($word) - { - if (!$this->p_vars['vartype']) $this->p_vars['vartype'] = trim($word); - else - { - if (strtolower($this->p_vars['vartype']) == 'object') - { - if (strlen(trim($word))) - $this->p_vars['vartype'] = trim($word); - } - else $this->p_vars['tag_value']->add($word); - } - } elseif ($word === false) - { - $this->p_vars[$this->p_vars['docblock_type']]->addVar($this->p_vars['vartype'],$this->p_vars['tag_value']); - $this->p_vars['vartype'] = false; - } - } - /**#@-*/ - /** @access private */ - function getSource() - { - $this->p_flags['get_source'] = true; - } - /**#@+ - * @access private - * @param string token parsed from source - * @param integer parser constant from {@link Parser.inc} - */ - /** - * handler for DOCKEYWORD_EMAIL. - * this handler recognizes angle brackets < and > surrounding an email address in an @author tag, - * and returns a mailto: hyperlink - */ - - function handleDockeywordEmail($word, $pevent) - { - //echo $this->wp->getPos() . ": |$word|\n"; - if (!$this->checkEventPop($word,$pevent) && $word != "<") - { - if (strstr($word,"@")) - { - $this->p_vars['tag_value']->add('<'); - $this->p_vars['tag_value']->add(new parserLinkInlineTag("mailto:$word",$word)); - $this->p_vars['tag_value']->add('>'); - } else { - $this->p_vars['tag_value']->add("<$word>"); - } - } - } - - /** - * handler for INLINE_DOCKEYWORD. - * this handler recognizes {@inline tags} like link, and parses them, replacing them directly - * in the text flow with their output. - */ - - function handleInlineDockeyword($word, $pevent) - { - // echo $this->wp->getPos() . ": |$word|\n"; - - // echo "docktype: $this->p_vars['inline_dockeyword_type']\n"; - if (!isset($this->p_vars['inline_dockeyword_type'])) $this->p_vars['inline_dockeyword_type'] = false; - if (!isset($this->p_vars['inline_dockeyword_data'])) $this->p_vars['inline_dockeyword_data'] = ''; - if (!$this->p_vars['inline_dockeyword_type']) - { - if (in_array($word,$this->allowableInlineTags)) - { - if ($word == '}') - $this->p_vars['inline_dockeyword_type'] = ''; - else - $this->p_vars['inline_dockeyword_type'] = strtolower($word); - $this->p_vars['whitesp'] = $this->wp->returnWhiteSpace; - $this->wp->setWhiteSpace(true); - } else { - if ($this->p_flags['in_desc']) - { - // fix 1203445 - if (!isset($this->p_vars['line'][$this->p_vars['linecount']])) - { - $this->p_vars['line'][$this->p_vars['linecount']] = - new parserStringWithInlineTags; - } - if ($word == '}') - { - $this->p_vars['line'][$this->p_vars['linecount']]->add('{@'); - } else - { - $this->p_vars['line'][$this->p_vars['linecount']]->add('{@'.$word); - } - } elseif($this->p_flags['in_tag']) - { - if ($word == '}') - $this->p_vars['tag_value']->add('{@'.$word); - else - $this->p_vars['tag_value']->add('{@'.$word); - } - $this->p_vars['event_stack']->popEvent(); - $this->p_vars['inline_dockeyword_type'] = false; - $this->p_vars['inline_dockeyword_data'] = ''; - return; - } - } else - { - if ($word != "}") - { - $this->p_vars['inline_dockeyword_data'] .= $word; - } - } - if ($this->checkEventPop($word,$pevent)) - { - $this->wp->setWhiteSpace($this->p_vars['whitesp']); - if ($this->p_vars['inline_dockeyword_type']=='link') - { - // support hyperlinks of any protocol - if (is_numeric(strpos($this->p_vars['inline_dockeyword_data'],'://')) || (strpos(trim($this->p_vars['inline_dockeyword_data']),'mailto:') === 0)) - { - // if there is more than 1 parameter, the stuff after the space is the hyperlink text - if (strpos(trim($this->p_vars['inline_dockeyword_data']),' ')) - { - $i1 = strpos(trim($this->p_vars['inline_dockeyword_data']),' ') + 1; - $link = substr(trim($this->p_vars['inline_dockeyword_data']),0,$i1 - 1); - $text = substr(trim($this->p_vars['inline_dockeyword_data']),$i1); - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($link,$text); -// ''.$text.''; - } - else - { - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']); - } -// ''.$this->p_vars['inline_dockeyword_data'].''; - } else - { - if (!strpos($this->p_vars['inline_dockeyword_data'],',')) - { - $testp = explode('#',$this->p_vars['inline_dockeyword_data']); - if (count($testp) - 1) - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$testp[1]); - else - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']); - } else - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']); - } - } - if ($this->p_vars['inline_dockeyword_type'] == 'tutorial') - { - $this->p_vars['inline_dockeyword_data'] = new parserTutorialInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']); - } - if ($this->p_vars['inline_dockeyword_type'] == 'source') - { - $this->getSource(); - $this->p_vars['inline_dockeyword_data'] = new parserSourceInlineTag($this->p_vars['inline_dockeyword_data']); - } - if ($this->p_vars['inline_dockeyword_type'] == 'inheritdoc') - { - $this->p_vars['inline_dockeyword_data'] = new parserInheritdocInlineTag(); - } - if ($word == '*/') - { - if (!isset($this->p_vars['inline_dockeyword_type'])) $this->p_vars['inline_dockeyword_type'] = ''; - if (!isset($this->p_vars['tagname'])) $this->p_vars['tagname'] = ''; - if (!isset($this->p_vars['tag_value']) || !is_object($this->p_vars['tag_value'])) $this->p_vars['tag_value'] = new parserStringWithInlineTags; - addError(PDERROR_UNTERMINATED_INLINE_TAG,$this->p_vars['inline_dockeyword_type'],$this->p_vars['tagname'],'@'.$this->p_vars['tagname'].' '.$this->p_vars['tag_value']->getString()); - // when we add the error class, raise error here: we reached the end of the docblock - $this->wp->backupPos($word); - } - if ($this->p_flags['in_desc']) - { - $this->p_vars['line'][$this->p_vars['linecount']]->add($this->p_vars['inline_dockeyword_data']); - $this->p_vars['inline_dockeyword_type'] = false; - $this->p_vars['inline_dockeyword_data'] = ''; - } - elseif ($this->p_flags['in_tag']) - { - $this->p_vars['tag_value']->add($this->p_vars['inline_dockeyword_data']); - $this->p_vars['inline_dockeyword_type'] = false; - $this->p_vars['inline_dockeyword_data'] = ''; - } - } - } - - /** - * handler for INCLUDE. - * this handler recognizes include/require/include_once/include_once statements, and publishes the - * data to Render - */ - - function handleInclude($word, $pevent) - { - if (!$this->p_flags['in_include']) - { - $this->p_vars['linenum'] = $this->wp->linenum; - } - $this->p_flags['in_include'] = true; - $a = $this->checkEventPush( $word, $pevent); - if (!$this->p_flags['includename_isset']) - { - $this->p_flags['includename_isset'] = true; - $this->p_vars['include_name'] = $this->p_vars['last_word']; - if ($a) - $this->p_vars['include_value'] = ''; - else - $this->p_vars['include_value'] = $word; - unset($this->p_vars['quote_data']); - } else - { - if (!$a) - { - if (empty($this->p_vars['include_params_data'])) - { - if (isset($this->p_vars['quote_data'])) - { - $this->p_vars['include_value'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - if ($word != ';') - $this->p_vars['include_value'] .= $word; - } - } else - { - $this->p_vars['include_params_data'] = ''; - } - } - - if ($this->checkEventPop($word,$pevent)) - { - $this->p_vars['include'] = new parserInclude; - $this->p_vars['include']->setLineNumber($this->p_vars['linenum']); - $this->p_flags['in_include'] = false; - $this->p_vars['include']->setName($this->p_vars['include_name']); - $this->p_vars['include']->setValue($this->p_vars['include_value']); - $this->publishEvent(PHPDOCUMENTOR_EVENT_INCLUDE,$this->p_vars['include']); - $this->p_flags['includename_isset'] = false; - unset($this->p_vars['include']); - unset($this->p_vars['include_name']); - unset($this->p_vars['include_value']); - unset($this->p_vars['include_params_data']); - } - } - - /** - * handler for INCLUDE_PARAMS. - * this handler parses the contents of ( ) in include/require/include_once/include_once statements - */ - - function handleIncludeParams($word, $pevent) - { - $this->checkEventPush( $word, $pevent); - - $this->p_flags['include_parens'] = true; - if(!isset($this->p_vars['include_params_data'])) $this->p_vars['include_params_data'] = ''; - - if ($this->checkEventPop($word,$pevent)) - { - if (isset($this->p_vars['quote_data'])) - { - $this->p_vars['include_value'] = $this->p_vars['include_params_data'].'"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } else { - if (!empty($this->p_vars['include_params_data'])) - $this->p_vars['include_value'] = $this->p_vars['include_params_data']; - else - $this->p_vars['include_value'] = trim($this->p_vars['last_word']); - } - } - if (isset($this->p_vars['quote_data'])) - { - $this->p_vars['include_params_data'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - if (($word != "'") && ($word != '"')) - $this->p_vars['include_params_data'] .= $word; - } - - /** - * handler for INCLUDE_PARAMS_PARENTHESIS. - * this handler takes all parenthetical statements within file in: - * include statement include(file), and handles them properly - */ - - function handleIncludeParamsParenthesis($word, $pevent) - { - if (isset($this->p_vars['quote_data'])) - { - $this->p_vars['include_params_data'] .= '"'.$this->p_vars['quote_data'].'"'; - unset($this->p_vars['quote_data']); - } - $this->p_vars['include_params_data'] .= $word; - $this->checkEventPush( $word, $pevent); - $this->checkEventPop( $word, $pevent); - } - /**#@-*/ - /** - * this function checks whether parameter $word is a token for pushing a new event onto the Event Stack. - * @return mixed returns false, or the event number - */ - - function checkEventPush($word,$pevent) - { - $e = false; - if (isset($this->pushEvent[$pevent])) - { - if (isset($this->pushEvent[$pevent][strtolower($word)])) - $e = $this->pushEvent[$pevent][strtolower($word)]; - } - if ($e) - { - $this->p_vars['event_stack']->pushEvent($e); - return $e; - } else { - return false; - } - } - - /** - * this function checks whether parameter $word is a token for popping the current event off of the Event Stack. - * @return mixed returns false, or the event number popped off of the stack - */ - - function checkEventPop($word,$pevent) - { - if (!isset($this->popEvent[$pevent])) return false; - if (in_array(strtolower($word),$this->popEvent[$pevent])) - { - return $this->p_vars['event_stack']->popEvent(); - } else { - return false; - } - } - - /** - * setup the parser tokens, and the pushEvent/popEvent arrays - * @see $tokens, $pushEvent, $popEvent - */ - - function setupStates() - { - $this->tokens[STATE_PHPCODE] = array(" ", "\t",";","?>","","/**#@+","/**#@-*/","/**", "//","/*","#","\r\n","\n","\r","(",'<<<','"',"'"); - $this->tokens[STATE_QUOTE] = array("\\\"","\\\\","\""); - $this->tokens[STATE_LOGICBLOCK] = array("{","}","\"","'","/*","//","#","?>","",'<<<','global','static'); - $this->tokens[STATE_FUNC_GLOBAL] = array("\"","'","/*","//","#",";",","); - $this->tokens[STATE_STATIC_VAR] = array("\"","'","/*","//","#",";",",",'=','array'); - $this->tokens[STATE_STATIC_VAR_VALUE] = array("/*","//","#"," ","\t",";","=","\"","'","array",","); - $this->tokens[STATE_NOEVENTS] = array("'); - $this->tokens[STATE_COMMENTBLOCK] = array("*/","\n"); - $this->tokens[STATE_COMMENT] = array("\r\n","\r","\n"); - $this->tokens[STATE_DEFINE] = array(" ","(",";"); - $this->tokens[STATE_DEFINE_PARAMS] = array("/*","//","#",",",")"," ","'","\"","("); - $this->tokens[STATE_DEFINE_PARAMS_PARENTHESIS] = array("(","'","\"",")"); - $this->tokens[STATE_FUNCTION_PARAMS] = array("/*","//","#","\"",",",")","="," ","'","("); - $this->tokens[STATE_SINGLEQUOTE] = array("'","\\'","\\\\"); - $this->tokens[STATE_CLASS] = array(" ", "\t", "?>", "", ";", "}", "{", - "/**#@+", "/**#@-*/", "/**", "//", "/*", "#", - "\r\n", "\n", "\r","("); - $this->tokens[STATE_DOCBLOCK] = array("*/","*","@","\r\n","\n","\r",". ",".\n",".\t",'{@'); - $this->tokens[STATE_DOCBLOCK_TEMPLATE] = array("*/","*","@","\r\n","\n","\r",". ",".\n",".\t",'{@'); - $this->tokens[STATE_DOCKEYWORD] = array("@","*/","*","\n","\r\n","\r","\t"," ","<",">",'{@'); - $this->tokens[STATE_INLINE_DOCKEYWORD] = array("{@","}","\t"," ","*/"); - $this->tokens[STATE_DOCKEYWORD_EMAIL] = array(">","\n","\r\n","\r"); - $this->tokens[STATE_VAR] = array("/*","//","#"," ","\t",";","=",",","\"","'","array"); - $this->tokens[STATE_GLOBAL] = array("/*","//","#"," ","\t",";","=","\"","'"); - $this->tokens[STATE_GLOBAL_VALUE] = array("/*","//","#"," ","\t",";","=","\"","'","array"); - $this->tokens[STATE_ARRAY] = array("/*","//","#","(",")","\"","'","array"); - $this->tokens[STATE_FUNCTION] = array("(","{","}"," ","\t","&","/*","//","#"); - $this->tokens[STATE_OUTPHP] = array("'); - $this->tokens[STATE_EOFQUOTE] = array(" ","\t","\n"); - $this->tokens[STATE_ESCAPE] = false;// this tells the word parser to just cycle - $this->tokens[STATE_INCLUDE] = array(" ","(",";","'",'"'); - $this->tokens[STATE_INCLUDE_PARAMS] = array("/*",")"," ","'","\"","("); - $this->tokens[STATE_INCLUDE_PARAMS_PARENTHESIS] = array("(","'","\"",")"); - - // For each event word to event mapings - $this->pushEvent[PARSER_EVENT_QUOTE] = - array( - "\\" => PARSER_EVENT_ESCAPE - ); - $this->popEvent[PARSER_EVENT_QUOTE] = array("\""); -########################## - - $this->pushEvent[PARSER_EVENT_LOGICBLOCK] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT, - "global" => PARSER_EVENT_FUNC_GLOBAL, - "static" => PARSER_EVENT_STATIC_VAR, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "{" => PARSER_EVENT_LOGICBLOCK, - "?>" => PARSER_EVENT_OUTPHP, - "" => PARSER_EVENT_OUTPHP, - "<<<" => PARSER_EVENT_EOFQUOTE - ); - $this->popEvent[PARSER_EVENT_LOGICBLOCK] = array("}"); -########################## - - $this->pushEvent[PARSER_EVENT_FUNC_GLOBAL] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT, - "/*" => PARSER_EVENT_COMMENTBLOCK, - ); - $this->popEvent[PARSER_EVENT_FUNC_GLOBAL] = array(";"); -########################## - - $this->pushEvent[PARSER_EVENT_STATIC_VAR] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "=" => PARSER_EVENT_STATIC_VAR_VALUE, - ); - $this->popEvent[PARSER_EVENT_STATIC_VAR] = array(";"); -########################## - - $this->pushEvent[PARSER_EVENT_STATIC_VAR_VALUE] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "array" => PARSER_EVENT_ARRAY, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT - ); - $this->popEvent[PARSER_EVENT_STATIC_VAR_VALUE] = array(";",","); -########################## - - $this->pushEvent[PARSER_EVENT_NOEVENTS] = - array( - " PARSER_EVENT_PHPCODE, - " PARSER_EVENT_PHPCODE, - '" => PARSER_EVENT_OUTPHP, - ); -########################## - - $this->pushEvent[PARSER_EVENT_FUNCTION] = - array( - "(" => PARSER_EVENT_FUNCTION_PARAMS, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "{" => PARSER_EVENT_LOGICBLOCK - ); - $this->popEvent[PARSER_EVENT_FUNCTION] = array("}"); -########################## - - $this->pushEvent[PARSER_EVENT_DOCBLOCK] = - array( - "@" => PARSER_EVENT_DOCKEYWORD, - "{@" => PARSER_EVENT_INLINE_DOCKEYWORD - ); - $this->popEvent[PARSER_EVENT_DOCBLOCK] = array("*/"); -########################## - - $this->pushEvent[PARSER_EVENT_DOCBLOCK_TEMPLATE] = - array( - "@" => PARSER_EVENT_DOCKEYWORD, - "{@" => PARSER_EVENT_INLINE_DOCKEYWORD - ); - $this->popEvent[PARSER_EVENT_DOCBLOCK_TEMPLATE] = array("*/"); -########################## - - $this->pushEvent[PARSER_EVENT_CLASS] = - array( - "function" => PARSER_EVENT_FUNCTION, - "var" => PARSER_EVENT_VAR, - "/**" => PARSER_EVENT_DOCBLOCK, - "/**#@+" => PARSER_EVENT_DOCBLOCK_TEMPLATE, - "/**#@-*/" => PARSER_EVENT_END_DOCBLOCK_TEMPLATE, - "//" => PARSER_EVENT_COMMENT, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "#" => PARSER_EVENT_COMMENT, - "?>" => PARSER_EVENT_OUTPHP, - "" => PARSER_EVENT_OUTPHP, - ); - $this->popEvent[PARSER_EVENT_CLASS] = array("}"); -########################## - - $this->pushEvent[PARSER_EVENT_DEFINE] = - array( - "/*" => PARSER_EVENT_COMMENTBLOCK, - "(" => PARSER_EVENT_DEFINE_PARAMS - ); - $this->popEvent[PARSER_EVENT_DEFINE] = array(";"); -########################## - - $this->pushEvent[PARSER_EVENT_INCLUDE] = - array( - "/*" => PARSER_EVENT_COMMENTBLOCK, - "(" => PARSER_EVENT_INCLUDE_PARAMS, - "'" => PARSER_EVENT_SINGLEQUOTE, - '"' => PARSER_EVENT_QUOTE, - ); - $this->popEvent[PARSER_EVENT_INCLUDE] = array(";"); -########################## - - $this->pushEvent[PARSER_EVENT_DEFINE_PARAMS] = - array( - "(" => PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS, - "'" => PARSER_EVENT_SINGLEQUOTE, - '"' => PARSER_EVENT_QUOTE, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT - ); - $this->popEvent[PARSER_EVENT_DEFINE_PARAMS] = array(")"); -########################## - - $this->pushEvent[PARSER_EVENT_INCLUDE_PARAMS] = - array( - "(" => PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS, - "'" => PARSER_EVENT_SINGLEQUOTE, - '"' => PARSER_EVENT_QUOTE, - ); - $this->popEvent[PARSER_EVENT_INCLUDE_PARAMS] = array(")"); -########################## - - $this->pushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = - array( - "(" => PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS, - "'" => PARSER_EVENT_SINGLEQUOTE, - '"' => PARSER_EVENT_QUOTE, - ); - $this->popEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = array(")"); -########################## - - $this->pushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = - array( - "(" => PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS, - "'" => PARSER_EVENT_SINGLEQUOTE, - '"' => PARSER_EVENT_QUOTE, - ); - $this->popEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = array(")"); -########################## - - $this->pushEvent[PARSER_EVENT_VAR] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "array" => PARSER_EVENT_ARRAY, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT - ); - $this->popEvent[PARSER_EVENT_VAR] = array(";"); -########################## - - $this->pushEvent[PARSER_EVENT_DEFINE_GLOBAL] = - array( - "=" => PARSER_EVENT_GLOBAL_VALUE, - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT - ); - $this->popEvent[PARSER_EVENT_DEFINE_GLOBAL] = array(";"); -########################## - - $this->pushEvent[PARSER_EVENT_GLOBAL_VALUE] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "array" => PARSER_EVENT_ARRAY, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT - ); - $this->popEvent[PARSER_EVENT_GLOBAL_VALUE] = array(";"); -########################## - - $this->pushEvent[PARSER_EVENT_COMMENT] = - array( - "\\" => PARSER_EVENT_ESCAPE - ); - $this->popEvent[PARSER_EVENT_COMMENT] = array("\n"); -########################## - - $this->popEvent[PARSER_EVENT_COMMENTBLOCK] = array("*/"); -########################## - $this->pushEvent[PARSER_EVENT_SINGLEQUOTE] = - array( - "\\" => PARSER_EVENT_ESCAPE - ); - - $this->popEvent[PARSER_EVENT_SINGLEQUOTE] = array("'"); -########################## - $this->pushEvent[PARSER_EVENT_FUNCTION_PARAMS] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "array" => PARSER_EVENT_ARRAY, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT - ); - $this->popEvent[PARSER_EVENT_FUNCTION_PARAMS] = array(")"); -########################## - $this->pushEvent[PARSER_EVENT_DOCKEYWORD] = - array( -// "<" => PARSER_EVENT_DOCKEYWORD_EMAIL, - "{@" => PARSER_EVENT_INLINE_DOCKEYWORD, - ); - - $this->popEvent[PARSER_EVENT_DOCKEYWORD] = array("*/"); -########################## - - $this->popEvent[PARSER_EVENT_INLINE_DOCKEYWORD] = array("}","*/"); -########################## - - $this->popEvent[PARSER_EVENT_OUTPHP] = array("'); -########################## - - $this->popEvent[PARSER_EVENT_DOCKEYWORD_EMAIL] = array(">","\n"); - -########################## - $this->pushEvent[PARSER_EVENT_ARRAY] = - array( - "\"" => PARSER_EVENT_QUOTE, - "'" => PARSER_EVENT_SINGLEQUOTE, - "array" => PARSER_EVENT_ARRAY, - "/*" => PARSER_EVENT_COMMENTBLOCK, - "//" => PARSER_EVENT_COMMENT, - "#" => PARSER_EVENT_COMMENT - ); - $this->popEvent[PARSER_EVENT_ARRAY] = array(")"); -########################## - } - - /** - * tell the parser's WordParser {@link $wp} to set up tokens to parse words by. - * tokens are word separators. In English, a space or punctuation are examples of tokens. - * In PHP, a token can be a ;, a parenthesis, or even the word "function" - * @param $value integer an event number - * @see WordParser - */ - - function configWordParser($e) - { - $this->wp->setSeperator($this->tokens[($e + 100)]); - } - - /** - * Debugging function, takes an event number and attempts to return its name - * @param $value integer an event number - */ - - - function getParserEventName ($value) - { - $lookup = array( - PARSER_EVENT_NOEVENTS => "PARSER_EVENT_NOEVENTS", - PARSER_EVENT_PHPCODE => "PARSER_EVENT_PHPCODE", - PARSER_EVENT_DOCBLOCK => "PARSER_EVENT_DOCBLOCK", - PARSER_EVENT_FUNCTION => "PARSER_EVENT_FUNCTION", - PARSER_EVENT_CLASS => "PARSER_EVENT_CLASS", - PARSER_EVENT_DEFINE => "PARSER_EVENT_DEFINE", - PARSER_EVENT_DEFINE_PARAMS => "PARSER_EVENT_DEFINE_PARAMS", - PARSER_EVENT_COMMENT => "PARSER_EVENT_COMMENT", - PARSER_EVENT_COMMENTBLOCK => "PARSER_EVENT_COMMENTBLOCK", - PARSER_EVENT_ESCAPE => "PARSER_EVENT_ESCAPE", - PARSER_EVENT_QUOTE => "PARSER_EVENT_QUOTE", - PARSER_EVENT_FUNCTION_PARAMS => "PARSER_EVENT_FUNCTION_PARAMS", - PARSER_EVENT_SINGLEQUOTE => "PARSER_EVENT_SINGLEQUOTE", - PARSER_EVENT_VAR => "PARSER_EVENT_VAR", - PARSER_EVENT_LOGICBLOCK => "PARSER_EVENT_LOGICBLOCK", - PARSER_EVENT_OUTPHP => "PARSER_EVENT_OUTPHP", - PARSER_EVENT_DOCKEYWORD => "PARSER_EVENT_DOCKEYWORD", - PARSER_EVENT_DOCKEYWORD_EMAIL => "PARSER_EVENT_DOCKEYWORD_EMAIL", - PARSER_EVENT_ARRAY => "PARSER_EVENT_ARRAY", - PARSER_EVENT_INLINE_DOCKEYWORD => "PARSER_EVENT_INLINE_DOCKEYWORD", - PARSER_EVENT_EOFQUOTE => "PARSER_EVENT_EOFQUOTE", - PARSER_EVENT_INCLUDE => "PARSER_EVENT_INCLUDE", - PARSER_EVENT_INCLUDE_PARAMS => "PARSER_EVENT_INCLUDE_PARAMS", - PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS => "PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS", - PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS => "PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS", - PARSER_EVENT_DEFINE_GLOBAL => "PARSER_EVENT_DEFINE_GLOBAL", - PARSER_EVENT_GLOBAL_VALUE => "PARSER_EVENT_GLOBAL_VALUE", - PARSER_EVENT_FUNC_GLOBAL => "PARSER_EVENT_FUNC_GLOBAL", - PARSER_EVENT_STATIC_VAR => "PARSER_EVENT_STATIC_VAR", - PARSER_EVENT_DOCBLOCK_TEMPLATE => "PARSER_EVENT_DOCBLOCK_TEMPLATE", - PARSER_EVENT_END_DOCBLOCK_TEMPLATE => "PARSER_EVENT_END_DOCBLOCK_TEMPLATE", - PARSER_EVENT_METHOD_LOGICBLOCK => 'PARSER_EVENT_METHOD_LOGICBLOCK', - PARSER_EVENT_CLASS_MEMBER => 'PARSER_EVENT_CLASS_MEMBER', - PARSER_EVENT_METHOD => 'PARSER_EVENT_METHOD', - PARSER_EVENT_QUOTE_VAR => 'PARSER_EVENT_QUOTE_VAR', - PARSER_EVENT_ACCESS_MODIFIER => 'PARSER_EVENT_ACCESS_MODIFIER', - PARSER_EVENT_IMPLEMENTS => 'PARSER_EVENT_IMPLEMENTS', - PARSER_EVENT_CLASS_CONSTANT => 'PARSER_EVENT_CLASS_CONSTANT', - PARSER_EVENT_VAR_ARRAY => 'PARSER_EVENT_VAR_ARRAY', - PARSER_EVENT_VAR_ARRAY_COMMENT =>'PARSER_EVENT_VAR_ARRAY_COMMENT', - ); - if (isset($lookup[$value])) - return $lookup[$value]; - else return $value; - } -} - -/** - * Global package page parser - * - * @deprecated in favor of tutorials - * @tutorial tutorials.pkg - * @package phpDocumentor - * @subpackage Parsers - */ -class ppageParser extends Parser -{ - /** @var string */ - var $package = false; - /** @var string */ - var $subpackage = ''; - /** - * set up invariant Parser variables - */ - function ppageParser() - { - Parser::Parser(); - $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_tutorial_tags_allowed']; - $this->eventHandlers = array(); - $this->eventHandlers[PARSER_EVENT_NOEVENTS] = 'defaultHandler'; - $this->eventHandlers[PARSER_EVENT_INLINE_DOCKEYWORD] = 'handleInlineDocKeyword'; - } - - /** - * set up invariant Parser variables - */ - function setupStates() - { - $this->tokens[STATE_NOEVENTS] = array("{@","}"); - $this->tokens[STATE_INLINE_DOCKEYWORD] = array("{@","}","\t"," "); - -########################## - - $this->pushEvent[PARSER_EVENT_NOEVENTS] = - array( - "{@" => PARSER_EVENT_INLINE_DOCKEYWORD - ); -########################## - - $this->popEvent[PARSER_EVENT_INLINE_DOCKEYWORD] = array("}"); - } - - /** - * Parse a new file - * - * @param string $parse_data - * @param string $package - * @param int $subpackage - * @return mixed false or parsed data - */ - function parse (&$parse_data,$xml,$package = 'default',$subpackage = '',$tutorial = '', - $category='default', $path='') - { - $this->setupStates(); - $this->p_vars['total'] = new parserPackagePage($package,$xml); - $this->p_vars['tutorial'] = $tutorial; - $this->_path = $path; - $this->category = $category; - $this->package = $package; - if (!isset($subpackage) || !$subpackage) $subpackage = ''; - $this->subpackage = $subpackage; - if (strlen($parse_data) == 0) - { - return false; - } - - // initialize variables so E_ALL error_reporting doesn't complain - $pevent = 0; - $word = 0; - $this->p_vars['event_stack'] = new EventStack; - // change this to a new ParserStringWithInlineTags, and change all $total .= blah to $total->add(blah) - // then modify phpDocumentor_IntermediateParser->Convert to convert all package pages (the package page handler in phpDocumentor_IntermediateParser should - // save them all in a variable) to perform the linking. then, remove the legacy code from handleDocBlock - // and handleClass in Render.inc, and do a loop that converts each package page, and passes it to handleEvent - // just like Converter::walk does with the other elements. The only other addition that might be good is a - // new descendant of parserElement parserPackagePage that contains the data and stuff. Hope this helps :) - $total = ''; - - $this->wp->setup($parse_data); - - $this->p_flags['reset_quote_data'] = true; - - do - { - $lpevent = $pevent; - $pevent = $this->p_vars['event_stack']->getEvent(); - if ($lpevent != $pevent) - { - $this->p_vars['last_pevent'] = $lpevent; - } - - if ($this->p_vars['last_pevent'] != $pevent) - { - // its a new event so the word parser needs to be reconfigured - $this->configWordParser($pevent); - } - - if (!$xml) - $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,($pevent + 100)); - - - $this->p_vars['last_word'] = $word; - $word = $this->wp->getWord(); - - if (0)//PHPDOCUMENTOR_DEBUG == true) - { - echo "LAST: |" . $this->p_vars['last_word'] . "|\n"; - echo "PEVENT: " . $this->getParserEventName($pevent) . "\n"; - echo $this->wp->getPos() . ": |$word|\n"; - } - if (isset($this->eventHandlers[$pevent])) - { - $handle = $this->eventHandlers[$pevent]; - $this->$handle($word, $pevent); - } - } while (!($word === false)); - if (!$xml) - $this->PublishEvent(PHPDOCUMENTOR_EVENT_PACKAGEPAGE,$this->p_vars['total']); - else - return $this->p_vars['total']->value; - } - - /** - * Handles all non-inline tags - * - * @param string token - * @param integer parser event - */ - function defaultHandler($word, $pevent) - { - if (!$this->checkEventPush( $word, $pevent)) - { - if ($word) $this->p_vars['total']->add($word); - } - } - - /** - * handler for INLINE_DOCKEYWORD. - * this handler recognizes {@inline tags} like link, and parses them, replacing them directly - * in the text flow with their output. - * @param string token - * @param integer parser event - */ - - function handleInlineDockeyword($word, $pevent) - { - // echo $this->wp->getPos() . ": |$word|\n"; - - // echo "docktype: $this->p_vars['inline_dockeyword_type']\n"; - if (!isset($this->p_vars['inline_dockeyword_type'])) $this->p_vars['inline_dockeyword_type'] = false; - if (!isset($this->p_vars['inline_dockeyword_data'])) $this->p_vars['inline_dockeyword_data'] = ''; - if (!$this->p_vars['inline_dockeyword_type']) - { - if (in_array($word,$this->allowableInlineTags)) - { - $this->p_vars['inline_dockeyword_type'] = strtolower($word); - $this->p_vars['whitesp'] = $this->wp->returnWhiteSpace; - $this->wp->setWhiteSpace(true); - } else { - if ($word == '}') - $this->p_vars['total']->add('{@'); - else - { - $this->p_vars['total']->add('{@'.$word); - $this->p_vars['event_stack']->popEvent(); - } - $this->p_vars['inline_dockeyword_type'] = false; - $this->p_vars['inline_dockeyword_data'] = ''; - } - } else - { - if ($word != "}") - { - $this->p_vars['inline_dockeyword_data'] .= $word; - } - } - if ($this->checkEventPop($word,$pevent)) - { - $this->wp->setWhiteSpace($this->p_vars['whitesp']); - if ($this->p_vars['inline_dockeyword_type']=='link') - { - // support hyperlinks of any protocol - if (is_numeric(strpos($this->p_vars['inline_dockeyword_data'],'://')) || (strpos(trim($this->p_vars['inline_dockeyword_data']),'mailto:') === 0)) - { - // if there is more than 1 parameter, the stuff after the space is the hyperlink text - if (strpos(trim($this->p_vars['inline_dockeyword_data']),' ')) - { - $i1 = strpos(trim($this->p_vars['inline_dockeyword_data']),' ') + 1; - $link = substr(trim($this->p_vars['inline_dockeyword_data']),0,$i1 - 1); - $text = substr(trim($this->p_vars['inline_dockeyword_data']),$i1); - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($link,$text); -// ''.$text.''; - } - else - { - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']); - } -// ''.$this->p_vars['inline_dockeyword_data'].''; - } else - { - $testp = explode('#',$this->p_vars['inline_dockeyword_data']); - if (count($testp) - 1) $this->p_vars['inline_dockeyword_data'] = $testp[1]; - $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']); - } - } - if ($this->p_vars['inline_dockeyword_type']=='id') - { - $this->p_vars['inline_dockeyword_data'] = new parserIdInlineTag($this->category,$this->package,$this->subpackage,$this->p_vars['tutorial'],trim($this->p_vars['inline_dockeyword_data'])); - } - if ($this->p_vars['inline_dockeyword_type'] == 'tutorial') - { - $this->p_vars['inline_dockeyword_data'] = new parserTutorialInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']); - } - if ($this->p_vars['inline_dockeyword_type'] == 'toc') - { - $this->p_vars['inline_dockeyword_data'] = new parserTocInlineTag(); - } - if ($this->p_vars['inline_dockeyword_type'] == 'example') - { - $example = - new parserExampleInlineTag($this->p_vars['inline_dockeyword_data'], $this->_path, true); - $this->p_vars['total']->add($example->getProgramListing()); - } else - { - $this->p_vars['total']->add($this->p_vars['inline_dockeyword_data']); - } - $this->p_vars['inline_dockeyword_type'] = false; - $this->p_vars['inline_dockeyword_data'] = ''; - } - } -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc deleted file mode 100644 index d7d0f285..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc +++ /dev/null @@ -1,725 +0,0 @@ - - * @since 1.0rc1 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -/** - * Contains information about a PHP file, used to group procedural elements - * together. - * @package phpDocumentor - * @subpackage ParserData - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -class parserPage -{ - /** - * Type is used by many functions to skip the hassle of if - * phpDocumentor_get_class($blah) == 'parserBlah' - * @var string - */ - var $type = 'page'; - /** - * not implemented in this version, will be used to link xml output pages - * @var string - */ - var $id = ''; - /** - * filename.ext (no path) - * @var string - */ - var $file = ''; - /** - * relative source location - * @var string - */ - var $sourceLocation = ''; - /** - * phpdoc-safe name (only letters, numbers and _) - * @var string - */ - var $name = ''; - /** - * @var string - */ - var $category = 'default'; - /** - * @var string - */ - var $package = 'default'; - /** - * @var string - */ - var $subpackage = ''; - /** - * @var string - */ - var $parserVersion = PHPDOCUMENTOR_VER; - /** - * not implemented yet - * file modification date, will be used for makefiles - * @var string - */ - var $modDate = ''; - /** - * @var string full path this page represents - */ - var $path = ''; - /** - * Tokenized source code of the file - * @var array - */ - var $source = array(); - /** - * Used to limit output, contains contents of --packageoutput commandline. - * Does not increase parsing time. Use --ignore for that - * @see phpDocumentor_IntermediateParser::$packageoutput, Converter::$package_output - * @var mixed either false or an array of packages - */ - var $packageOutput = false; - - /** - * sets package to default package - * @global string default package name - */ - function parserPage() - { - global $phpDocumentor_DefaultPackageName; - $this->package = $GLOBALS['phpDocumentor_DefaultPackageName']; - } - - /** - * @return string always "page" - */ - function getType() - { - return 'page'; - } - - /** - * Sets the source code of the file for highlighting. - * - * PHP 4.3.0+ passes an array of tokenizer tokens by line number. PHP - * 4.2.3- passes a string to be passed to {@link highlight_string()} - * @param string|array - */ - function setSource($source) - { - $this->source = $source; - } - - /** - * Sets the name to display in documentation (can be an alias set with @name) - * @param string $file - */ - function setFile($file) - { - $this->file = $file; - } - - /** - * @return string filename.ext or @name alias - */ - function getFile() - { - if (!isset($this->file)) return false; - return $this->file; - } - - /** - * @param string $path full path to file - */ - function setPath($path) - { - // look for special windows case - if(SMART_PATH_DELIMITER === '\\') - $this->path = strtr($path,'/','\\'); - else - $this->path = $path; - } - - /** - * @return string fully delimited path (OS-dependent format) - */ - function getPath() - { - if (!isset($this->path)) return false; - return $this->path; - } - - /** - * @param array $packages array of packages to display in documentation (package1,package2,...) - * @see phpDocumentor_IntermediateParser::$packageoutput - */ - function setPackageOutput($packages) - { - $this->packageOutput = $packages; - } - - /** - * @return array array of packages (package1,package2,...) - * @see phpDocumentor_IntermediateParser::$packageoutput - */ - function getPackageOutput() - { - return $this->packageOutput; - } - - /** - * @param string $name phpdoc-safe name (only _, numbers and letters) set by Parser::parse() - * @see Parser::parse() - */ - function setName($name) - { - $this->name = $name; - } - - /** - * @return string phpdoc-safe name (only _, numbers and letters) - */ - function getName() - { - if (!isset($this->name)) return false; - return $this->name; - } - - /** - * @param string $source path of this file relative to program root - */ - function setSourceLocation($source) - { - $this->sourceLocation = $source; - } - - /** - * @param Converter - * @param boolean if this parameter is true, it will truncate the source location to the - * subdirectory of pear - * @return string path of this file relative to program root - */ - function getSourceLocation ($c,$pearize = false) - { - global $_phpDocumentor_options; - if (!isset($this->sourceLocation)) return false; - if ($pearize) - { - $sl = $this->sourceLocation; - if (strpos($sl,'pear/')) - { - $sl = substr($sl,strpos($sl,'pear/') + 5); - return $sl; - } else - { - return str_replace($_phpDocumentor_options['Program_Root'] . PATH_DELIMITER,'',$sl); - } - return $sl; - } - return $this->sourceLocation; - } - /** - * Not implemented in this version - * @return boolean tell the parser whether to parse the file, otherwise - * this function will retrieve the parsed data from external file - */ - function getParseData() - { - return true; - } -} - -/** - * Contains an in-memory representation of all documentable elements - * ({@link parserPage}, {@link parserFunction}, {@link parserDefine}, - * {@link parserInclude}, {@link parserClass}, {@link parserMethod}, - * {@link parserVar}) and their DocBlocks ({@link parserDocBlock}). - * - * This class works in coordination with {@link phpDocumentor_IntermediateParser} - * to take output from {@link Parser::handleEvent()} and create indexes, links, - * and other assorted things (all documented in phpDocumentor_IntermediateParser - * and {@link Converter}) - * @package phpDocumentor - * @subpackage ParserData - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -class parserData -{ - /** - * {@link parserPage} element that is this parserData's parent, or false if - * not set. - * @var false|parserPage - */ - var $parent = false; - /** - * array of parsed elements - * @var array - */ - var $elements = array(); - /** - * array of parsed elements with @access private - * @var array - */ - var $privateelements = array(); - /** - * array of parsed class elements - * @var array - */ - var $classelements = array(); - - /** - * @var parserTutorial|false - */ - var $tutorial = false; - /** - * array of parsed class elements with @access private - * @var array - */ - var $privateclasselements = array(); - /** - * array of links descended from {@link abstractLink} - * @var array - * @see pageLink, defineLink, classLink, functionLink, methodLink, varLink - */ - var $links = array(); - /** - * used by {@link phpDocumentor_IntermediateParser::handleDocBlock()} to - * determine whether a docblock is a page-level docblock or not. $clean is - * true as long as only 0 or 1 docblock has been parsed, and no element - * other than parserPage has been parsed - * @var boolean - */ - var $clean = true; - /** - * DocBlock ({@link parserDocBlock}) for this page, or false if not set - * @var mixed - */ - var $docblock = false; - /** - * Flag used to determine whether a page-level docblock is present - * @var boolean - * @access private - */ - var $_explicitdocblock = false; - /** - * Type is used by many functions to skip the hassle of if - * phpDocumentor_get_class($blah) == 'parserBlah' - * always 'page', used in element indexing and conversion functions found in - * {@link Converter} - * @var string - */ - var $type = 'page'; - - /** - * @param parserElement add a parsed element to the {@link $elements} array, - * also sets {@link $clean} to false - */ - function addElement(&$element) - { - $element->setPath($this->parent->path); - if ($element->getType() == 'class' || $element->getType() == 'method' || $element->getType() == 'var' - || $element->getType() == 'const') - { - $this->classelements[] = $element; - } else - { - $this->elements[] = $element; - } - $this->clean = false; - } - - /** - * @param parserTutorial - * @param Converter - */ - function addTutorial($t,&$c) - { - $this->tutorial = new tutorialLink; - $this->tutorial->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($c)); - } - - /** - * If this file has a tutorial associated with it, returns a link to the - * tutorial. - * @return tutorialLink - */ - function getTutorial() - { - return $this->tutorial; - } - - /** - * If the page-level DocBlock was present in the source, returns true - * @return boolean - */ - function hasExplicitDocBlock() - { - return $this->_explicitdocblock; - } - - /** - * Tells this page that its DocBlock was not implicit - */ - function explicitDocBlock() - { - $this->_explicitdocblock = true; - } - - /** - * @param parserElement element to add a new link (descended from - * {@link abstractLink})to the {@link $links} array - * @param string classname for elements that are class-based (this may be - * deprecated in the future, as the classname should be - * contained within the element. if $element is a page, this - * parameter is a package name - * @param string subpackage name for page elements - */ - function addLink(&$element,$classorpackage = '', $subpackage = '') - { - switch($element->type) - { - case 'function': - $x = new functionLink; - $x->addLink($this->parent->path, $this->parent->name, $element->name, $element->docblock->package, $element->docblock->subpackage); - return $x; - break; - case 'define': - $x = new defineLink; - $x->addLink($this->parent->path, $this->parent->name, $element->name, $element->docblock->package, $element->docblock->subpackage); - return $x; - break; - case 'global': - $x = new globalLink; - $x->addLink($this->parent->path, $this->parent->name, $element->name, $element->docblock->package, $element->docblock->subpackage); - return $x; - break; - case 'class': - $x = new classLink; - $x->addLink($this->parent->path, $this->parent->name, $element->name, $element->docblock->package, $element->docblock->subpackage); - return $x; - break; - case 'method': - $x = new methodLink; - $x->addLink($classorpackage, $this->parent->path, $this->parent->name, $element->name, $element->docblock->package, $element->docblock->subpackage); - return $x; - break; - case 'var': - $x = new varLink; - $x->addLink($classorpackage, $this->parent->path, $this->parent->name, $element->name, $element->docblock->package, $element->docblock->subpackage); - return $x; - break; - case 'page': - if (empty($classorpackage)) $classorpackage = $GLOBALS['phpDocumentor_DefaultPackageName']; - $x = new pageLink; - $x->addLink($element->path,$element->name,$element->file,$classorpackage, $subpackage); - return $x; - break; - } - } - - function &getLink(&$c, $text = false) - { - return $c->getPageLink($this->parent->file, $this->docblock->package, $this->parent->path, $text); - } - - /** - * returns a list of all classes declared in a file - * @param Converter &$c - * @return array Format: array(packagename => parserClass,packagename => parserClass,...) - */ - function getClasses(&$c) - { - $r = $c->classes->getClassesInPath($this->parent->path); - $rr = array(); - if ($r) - foreach($r as $class => $obj) - { - $rr[$obj->docblock->package][] = $obj; - } - return $rr; - } - - /** - * Get the output-safe filename (. changed to _) - * @return string - */ - function getName() - { - if (isset($this->parent) && $this->parent) - return $this->parent->getName(); - } - - /** - * @param parserPage parent element of this parsed data - */ - function setParent(&$parent) - { - $this->parent = $parent; - } - - /** - * @return bool returns the value of {@link $clean} - */ - function isClean() - { - return $this->clean; - } - - /** - * @param parserDocBlock - * @see parserDocBlock - */ - function setDocBlock(&$docblock) - { - $this->docblock = $docblock; - } -} - -/** - * Base class for all elements - * @package phpDocumentor - * @subpackage ParserData - * @abstract - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -class parserBase -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * always base - * @var string - */ - var $type = 'base'; - /** - * set to different things by its descendants - * @abstract - * @var mixed - */ - var $value = false; - - /** - * @return string returns value of {@link $type} - */ - function getType() - { - return $this->type; - } - - /** - * @param mixed set the value of this element - */ - function setValue($value) - { - $this->value = $value; - } - - /** - * @return mixed get the value of this element (element-dependent) - */ - function getValue() - { - return $this->value; - } -} - - -/** - * Used to represent strings that contain inline tags, so that they can be properly parsed at link time - * @package phpDocumentor - * @subpackage ParserData - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -class parserStringWithInlineTags extends parserBase -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * always '_string' - * @var string - */ - var $type = '_string'; - /** @access private */ - var $cache = false; - /** - * array of strings and {@link parserInlineTag}s - * Format: - * array(string1,string2,parserInlineTag1,string3,parserInlineTag2,...) - * @var array - */ - var $value = array(); - - /** - * equivalent to the . operator ($a = $b . $c) - * @param mixed either a string or a {@link parserInlineTag} - */ - function add($stringOrInlineTag) - { - if (is_string($stringOrInlineTag)) - { - if (!count($this->value)) - { - $this->value[] = $stringOrInlineTag; - return; - } - if (is_string($this->value[count($this->value) - 1])) - { - $this->value[count($this->value) - 1] .= $stringOrInlineTag; - return; - } else - { - $this->value[] = $stringOrInlineTag; - return; - } - } else - { - if (is_a($stringOrInlineTag,'parserinlinetag') && phpDocumentor_setup::checkIgnoreTag($stringOrInlineTag->inlinetype, true)) return; - $this->value[] = $stringOrInlineTag; - } - } - - /** - * Determine whether the string contains any inline tags - * @tutorial inlinetags.pkg - * @return boolean - */ - function hasInlineTag() - { - for($i=0;$ivalue);$i++) - { - if (is_a($this->value[$i],'parserinlinetag')) return true; - } - return false; - } - - /** - * Pass source code to any {@}source} tags contained within the string - * for later conversion. - * @param string|array source code ready to be highlighted - */ - function setSource($source) - { - for($i=0;$ivalue);$i++) - { - if (phpDocumentor_get_class($this->value[$i]) == 'parsersourceinlinetag') - { - $this->value[$i]->setSource($source); - } - } - } - - /** - * equivalent to trim(strlen($string)) - * @return integer length of the string this object represents - */ - function trimmedStrlen() - { - $a = 0; - for($i=0;$ivalue);$i++) - { - if (is_string($this->value[$i])) - { - if ($i == 0) - { - $a += strlen(ltrim($this->value[$i])); - } elseif ($i == count($this->value[$i]) - 1) - { - $a += strlen(chop($this->value[$i])); - } - } else - { - $a += $this->value[$i]->Strlen(); - } - } - return $a; - } - - /** - * return the string unconverted (all inline tags are taken out - this - * should only be used in pre-parsing to see if any other text - * is in the string) - * @uses parserInlineTag::getString() removes inline tag length, as it is - * indeterminate until conversion. - * @return string trimmed value - */ - function getString($trim = true) - { - $a = ''; - for($i=0; $ivalue); $i++) - { - if (is_string($this->value[$i])) - { - $a .= $this->value[$i]; - } else - { - $a .= $this->value[$i]->getString(); - } - } - if ($trim) $a = trim($a); - return $a; - } - - /** - * Use to convert the string to a real string with all inline tags parsed and linked - * @see Converter::returnSee() - * @param Converter - * @param boolean true if one needs to postprocess - * @param boolean false if the output should not be trimmed - */ - function Convert(&$converter,$postprocess = true, $trim = true) - { - if ($this->cache) - { - if ($converter->name == $this->cache['name'] && $converter->outputformat == $this->cache['output'] && $converter->checkState($this->cache['state']) && $this->cache['postprocess'] === $postprocess) return $this->cache['contents']; - if ($converter->name != $this->cache['name']) { - $this->cache = false; - } - } - if (is_string($this->value)) return $this->value; - $a = ''; - for($i=0; $ivalue); $i++) - { - if (is_string($this->value[$i])) - { - if ($postprocess && !method_exists($converter,'postProcess')) var_dump('a',$converter); - if ($postprocess) $a .= $converter->postProcess($this->value[$i]); - else $a .= $this->value[$i]; - } else - { - $a .= $this->value[$i]->Convert($converter, $postprocess); - } - } - if ($trim) { - $a = trim($a); - } - $this->cache = array('name' => $converter->name,'output' => $converter->outputformat, 'contents' => $a, 'state' => $converter->getState(), 'postprocess' => $postprocess); - return $a; - } -} - -?> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc deleted file mode 100644 index bd80d104..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc +++ /dev/null @@ -1,1456 +0,0 @@ - - * @since 1.2 - */ -/**#@+ - * {@link parserDescParser} token constants - */ -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_CODE', 600); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_CODE', 700); -/** when <

            > is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_P', 601); -/** when <

            > is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_P', 701); -/** when \n\n is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_DOUBLECR', 602); -/** when \n\n is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_DOUBLECR', 702); -/** when <

            > is found in a desc */
            -define('PHPDOCUMENTOR_PDP_EVENT_PRE', 603);
            -/** when <
            > is found in a desc */
            -define('PHPDOCUMENTOR_PDP_STATE_PRE', 703);
            -/** when <
              >/<
                > is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_LIST', 604); -/** when <
                  >/<
                    > is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_LIST', 704); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_B', 605); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_B', 705); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_I', 606); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_I', 706); -/** when <
                    > is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_BR', 607); -/** when <
                    > is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_BR', 707); -/** when the << potential escape for tags is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE',608); -/** when the << potential escape for tags is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_ESCAPE',708); -/** when << /pre>> is found in a <
                    ><
                    > section */ -define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE',609); -/** when << /pre>> is found in a <
                    ><
                    > section */ -define('PHPDOCUMENTOR_PDP_STATE_ESCAPE_PRE',709); -/** when << /code>> is found in a <><> section */ -define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE',610); -/** when << /code>> is found in a <><> section */ -define('PHPDOCUMENTOR_PDP_STATE_ESCAPE_CODE',710); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_VAR',611); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_VAR',711); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_SAMP',612); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_SAMP',712); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_EVENT_KBD',613); -/** when <> is found in a desc */ -define('PHPDOCUMENTOR_PDP_STATE_KBD',713); -/** when a simple list is found in a desc - * - * like - *
                    - *  o item 1
                    - *  o item 2
                    - * 
                    - */ -define('PHPDOCUMENTOR_PDP_EVENT_SIMLIST',614); -/** when a simple list is found in a desc - * - * like - *
                    - *  o item 1
                    - *  o item 2
                    - * 
                    - */ -define('PHPDOCUMENTOR_PDP_STATE_SIMLIST',714); -/**#@-*/ -/** -* Like WordParser but designed to handle an array with strings and -* {@link parserInlineTag}s -* @package phpDocumentor -* @subpackage WordParsers -* @author Greg Beaver -* @since 1.2 -*/ -class ObjectWordParser extends WordParser -{ - /** - * Determines whether text searching is case-sensitive or not - * @access private - */ - var $_casesensitive = false; - - function ObjectWordParser($casesensitive = false) - { - $this->_casesensitive = $casesensitive; - } - - /** - * Set the word parser to go. - * - * @param array {@link parserStringWithInlineTags::$value} style-array, with - * alternating text and inline tags - */ - function setup(&$input) - { -// if (is_string($input[0])) $input[0] = ltrim($input[0]); - $this->data = & $input; - $this->pos = 0; - $this->linenum = 0; - $this->linenumpos = 0; - $this->cache = array(); - reset($this->data); - list($this->index,) = each($this->data); - if (!is_object($this->data[$this->index])) - $this->size = strlen($this->data[$this->index]); - else $this->size = 0; - //$this->run = 0; - //$this->word = WORD_PARSER_RET_WORD; - } - - function getWord() - { - if (!isset($this->data[$this->index])) return false; - // return any inline tags unchanged - if (is_object($this->data[$this->index])) - { - $index = $this->index; - list($this->index,) = each($this->data); - $this->pos = 0; - if ($this->index) - { - if (!is_object($this->data[$this->index])) - $this->size = strlen($this->data[$this->index]); - else $this->size = 0; - $this->cache = array(); - return $this->data[$index]; - } else - { - return false; - } - } - //$st = $this->mtime(); - if ($this->size == $this->pos) - { - // cycle to next line in the array - list($this->index,) = each($this->data); - if (!$this->index) return false; - $this->pos = 0; - if (!is_object($this->data[$this->index])) - $this->size = strlen($this->data[$this->index]); - else $this->size = 0; - $this->cache = array(); - return $this->getWord(); - } - - $npos = $this->size; - if (is_array($this->wordseperators)) - { - //$this->wordseperators = array(); - foreach($this->wordseperators as $sep) - { - if (isset($this->cache[$sep])) - $tpos = $this->cache[$sep]; - else - $tpos = false; - if ($tpos < $this->pos || !is_int($tpos)) - { - if ($this->_casesensitive) - $tpos = strpos($this->data[$this->index],$sep,$this->pos); - else - $tpos = strpos(strtolower($this->data[$this->index]),$sep,$this->pos); - } - - if ( ($tpos < $npos) && !($tpos === false)) - { - //echo trim($sep) . "=$tpos\n"; - $npos = $tpos; - $seplen = strlen($sep); - } - else if (!($tpos === false)) - { - $this->cache[$sep] = $tpos; - } - } - } else { - // its time to cycle - return ""; - } - - $len = $npos - $this->pos; - if ($len == 0) - { - $len = $seplen; - } - - //$st3 = $this->mtime(); - $word = substr($this->data[$this->index],$this->pos,$len); - - // Change random other os newlines to the unix one - if ($word == "\r" || $word == "\r\n") - { - $word = "\n"; - } - - if ($this->linenumpos <= $this->pos) - { - $this->linenumpos = $this->pos + $len; - $this->linenum += count(explode("\n",$word)) - 1; - } - - if ($this->getsource) - { - $this->source .= $word; - } - $this->pos = $this->pos + $len; - //$this->word = WORD_PARSER_RET_SEP; - - // Things like // commenats rely on the newline to find their end so im going to have to return them - // never return worthless white space /t ' ' - if ($this->returnWhiteSpace == false) - { - if (strlen(trim($word)) == 0 && $word != "\n") - { - $word = $this->getWord(); - } - } - //$this->time3 = $this->time3 + ($this->mtime() - $st3); - //$this->time = $this->time + ($this->mtime() - $st); - return $word; - } - - /** - * Determine if the next word is an inline tag - * @return boolean - */ - function nextIsObjectOrNonNL() - { - return (($this->size == $this->pos) && isset($this->data[$this->index + 1]) - && is_object($this->data[$this->index + 1])) || - (($this->size > $this->pos) && !in_array($this->data[$this->index]{$this->pos}, array("\n", "\r"))); - } -} - -/** - * Parses a DocBlock description to retrieve abstract representations of - * <
                    >,<>,<

                    >,<

                      >,<
                        >,<
                      1. >,<>,<> - * @tutorial phpDocumentor.howto.pkg#basics.desc - * @package phpDocumentor - * @subpackage Parsers - * @author Greg Beaver - * @since 1.2 - */ -class parserDescParser extends Parser -{ - /**#@+ - * @access private - */ - /** - * @var array - */ - var $eventHandlers = array(PHPDOCUMENTOR_PDP_EVENT_CODE => 'handleCode', - PHPDOCUMENTOR_PDP_EVENT_PRE => 'handlePre', - PHPDOCUMENTOR_PDP_EVENT_P => 'handleP', - PHPDOCUMENTOR_PDP_EVENT_DOUBLECR => 'handleDoubleCR', - PHPDOCUMENTOR_PDP_EVENT_LIST => 'handleList', - PHPDOCUMENTOR_PDP_EVENT_B => 'handleB', - PHPDOCUMENTOR_PDP_EVENT_I => 'handleI', - PHPDOCUMENTOR_PDP_EVENT_VAR => 'handleVar', - PHPDOCUMENTOR_PDP_EVENT_KBD => 'handleKbd', - PHPDOCUMENTOR_PDP_EVENT_SAMP => 'handleSamp', - PHPDOCUMENTOR_PDP_EVENT_BR => 'handleBr', - PHPDOCUMENTOR_PDP_EVENT_ESCAPE => 'handleEscape', - PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE => 'handleEscapeCode', - PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE => 'handleEscapePre', - PHPDOCUMENTOR_PDP_EVENT_SIMLIST => 'handleSimpleList', - PARSER_EVENT_NOEVENTS => 'defaultHandler', - ); - - /** - * @var array - */ - var $pars = array(); - /** - * Determines whether parsing of <p> tags will occur, or double CR will - * be used - * @var boolean - */ - var $parse_Ps; - /** - * Context stack. - * - * Values can be 'normal', or any tag container like 'my_i', 'my_b'. This - * is used to determine which tag text or nested tags should be added to - * @var array - */ - var $_context = array('normal'); - /**#@-*/ - - /** - * sets $wp to be a {@link ObjectWordParser} - * - * $wp is the word parser that retrieves tokens - */ - function parserDescParser() - { - $this->wp = new ObjectWordParser; - } - - /** - * Parse a long or short description for tags - * - * @param array array of strings or {@link parserInlineTag}s - * @param boolean true if the description is a short description. (only 1 paragraph allowed in short desc) - * @param string name of the class to instantiate for each paragraph. parserDesc for desc/sdesc, - * parserStringWithInlineTags for tag data - * @staticvar integer used for recursion limiting if a handler for an event is not found - */ - function parse (&$parse_data,$sdesc = false,$ind_type = 'parserDesc') - { - static $endrecur = 0; - global $_phpDocumentor_setting; - if (!is_array($parse_data) || count($parse_data) == 0) - { - return false; - } - $this->p_vars['indtype'] = $ind_type; - $this->setupStates($sdesc); - if (isset($_phpDocumentor_setting['javadocdesc']) && $_phpDocumentor_setting['javadocdesc'] == 'on') - $this->parse_Ps = true; - - // initialize variables so E_ALL error_reporting doesn't complain - $pevent = 0; - $word = 0; - $this->p_vars['curpar'] = 0; - $this->pars = array(); - $this->p_vars['start'] = true; - $this->p_vars['event_stack'] = new EventStack; - - $this->wp->setup($parse_data,$sdesc); - $this->wp->setWhitespace(true); - $this->p_vars['list_count'] = 0; - if ($sdesc) $this->p_vars['start'] = false; - do - { - if (!isset($this->pars[$this->p_vars['curpar']])) $this->pars[$this->p_vars['curpar']] = new $ind_type; - $lpevent = $pevent; - $pevent = $this->p_vars['event_stack']->getEvent(); - if ($lpevent != $pevent) - { - $this->p_vars['last_pevent'] = $lpevent; - } - - if ($this->p_vars['last_pevent'] != $pevent) - { - // its a new event so the word parser needs to be reconfigured - $this->configWordParser($pevent); - } - - - $this->p_vars['last_word'] = $word; - $word = $this->wp->getWord(); - - if (0)//PHPDOCUMENTOR_DEBUG == true) - { - echo "----------------\n"; - echo "LAST: |" . htmlentities($this->p_vars['last_word']) . "|\n"; -// echo "INDEX: ".$this->p_vars['curpar']."\n"; - echo "PEVENT: " . $this->getParserEventName($pevent) . "\n"; - echo "LASTPEVENT: " . $this->getParserEventName($this->p_vars['last_pevent']) . "\n"; - echo $this->wp->getPos() . " WORD: |".htmlentities($word)."|\n\n"; - var_dump($this->_context); - } - if (isset($this->eventHandlers[$pevent])) - { - $handle = $this->eventHandlers[$pevent]; - if ($word !== false) $this->$handle($word, $pevent); - else - { - if (!count($this->pars[$this->p_vars['curpar']]->value)) unset($this->pars[$this->p_vars['curpar']]); - } - } else - { - debug('WARNING: possible error, no ParserDescParser handler for event number '.$pevent); - if ($endrecur++ == 25) - { - die("FATAL ERROR, recursion limit reached"); - } - } - if (is_object($word) || trim($word) != '') - { - $this->p_vars['start'] = false; - } - } while (is_object($word) || !($word === false) && $word != ''); - $context = $this->getContext(); - if ($context != 'normal') - { - if ($context == 'list' && $this->p_flags['simplelist']) - { - $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]); - unset($this->p_vars['list_item'][0]); - $this->setContext('normal'); - $this->addText($this->p_vars['lists'][0]); - } else addError(PDERROR_UNCLOSED_TAG,str_replace('my_','',$context)); - } - if ($this->p_vars['list_count'] > 0) addError(PDERROR_UNMATCHED_LIST_TAG); - if ($sdesc) - $this->publishEvent(2,$this->pars); - else - $this->publishEvent(1,$this->pars); - } - /**#@+ @access private */ - /** - * basic handling - * - * This function checks to see if the first thing in - * a description is the

                        tag. If so, it will switch - * into a mode of parsing out paragraphs by

                        instead - * of a double line-break - * - * It also removes extra whitespace - * @uses doSimpleList() - */ - function defaultHandler($word, $pevent) - { - $context = $this->getContext(); - if ($context != 'normal') $this->setContext('normal'); - if ($this->p_vars['start'] && is_string($word) && strtolower($word) == '

                        ') - { - $this->parse_Ps = true; - } - if (is_string($word) && $this->checkEventPush($word, $pevent)) return; -// if (!isset($this->parse_Ps) || !$this->parse_Ps) - { - if (!is_object($word) && ($word == ' ' && $this->p_vars['last_word'] == ' ')) return; - if ($pevent == PARSER_EVENT_NOEVENTS) - { - if ($this->doSimpleList($word)) return; - } - $this->addText($word); - } - } - - /** - * Retrieve the current top-level tag to add text into - * @uses $_context - */ - function getContext() - { - array_push($this->_context,$a = array_pop($this->_context)); - return $a; - } - - /** - * Pop a context off of the context stack - * @uses $_context - */ - function dropContext() - { - array_pop($this->_context); - if (count($this->_context) == 0) - $this->_context = array('normal'); - } - - /** - * @uses $_context - * @param string context name - */ - function setContext($context) - { - array_push($this->_context,$context); - } - - /** - * add input as text to the current paragraph or list - * @param string|parserInlineTag - */ - function addText($text) - { - $context = $this->getContext(); - if ($context == 'list') - { -// debug('aded to '.$context); - $this->p_vars['list_item'][$this->p_vars['list_count']]->add($text); - } elseif ($context != 'normal') - { -// debug('added to '.$context); - $this->p_vars[$context]->add($text); - } else - { -// debug('added to normal '); - $indtype = $this->p_vars['indtype']; - if (!isset($this->pars[$this->p_vars['curpar']])) - $this->pars[$this->p_vars['curpar']] = new $indtype; - $this->pars[$this->p_vars['curpar']]->add($text); - } - } - - /**#@-*/ - /**#@+ - * @access private - * @param string|parserInlineTag token from the ObjectWordParser - * @param integer parser event from {@link ParserDescCleanup.inc} - */ - /** - * Handles special case where a description needs the text "" and tag - * is one of code, b, i, pre, var, or any other valid in-DocBlock html tag. - * - * the text <<>> in a DocBlock will parse out as <>, instead - * of being parsed as markup. - */ - function handleEscape($word, $pevent) - { - $this->p_vars['event_stack']->popEvent(); - if (!in_array($word, $this->tokens[PHPDOCUMENTOR_PDP_STATE_ESCAPE])) - { - if ($word == '<') - { - $this->addText($word); - $this->wp->backupPos($word.$word); - } else - $this->wp->backupPos($word); - return; - } - $this->addText('<'.str_replace('>>','>',$word)); - } - - /** - * Just like {@link handleEscape}, except the only valid escape is - * <<

                    >> - */ - function handleEscapePre($word, $pevent) - { - $this->p_vars['event_stack']->popEvent(); - $this->addText('
            '); - } - - /** - * Just like {@link handleEscape}, except the only valid escape is - * <<>> - */ - function handleEscapeCode($word, $pevent) - { - $this->p_vars['event_stack']->popEvent(); - $this->addText(''); - } - - /** - * Handle "<
            >" - * Add a new {@link parserBr} - * @uses addText() - */ - function handleBr($word, $pevent) - { - if (is_string($word) && $this->checkEventPop($word, $pevent)) - { - $this->addText(new parserBr); - } - } - - /** - * Handles simple lists - * - * phpEdit has an ingenious facility to handle simple lists used in a - * DocBlock like this: - * - * - item 1 - * - item 2 - * - item 3 - * - * The DocBlock is: - *
            -     * * - item 1
            -     * * - item 2
            -     * * - item 3
            -     * 
            - * This function converts these simple lists into the parserList class - * @param boolean true if this is the first list item in the list - */ - function handleSimpleList($word, $pevent, $start = false) - { - if (is_object($word) && $this->p_flags['in_item']) - { - $this->p_vars['list_item'][0]->add($word); - return; - } - if (is_string($word) && $this->checkEventPush($word, $pevent)) - { - $this->p_flags['in_event'] = true; - return; - } - $ltrimword = @substr($word, @strpos($word, ltrim($word))); - $is_valid = false; - if (strlen(trim($word)) == 0) - { - if ($this->wp->nextIsObjectOrNonNL()) - { - $is_valid = true; - } - } - if ($word == "\n" && is_string($this->p_vars['last_word']) - && $this->p_vars['last_word']{strlen($this->p_vars['last_word']) - 1} - == "\n") - { - if ($this->p_flags['in_item']) - { - $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]); - unset($this->p_vars['list_item'][0]); - $this->setContext('normal'); - $this->p_flags['simplelist'] = false; - $this->addText($this->p_vars['lists'][0]); - unset($this->p_vars['lists']); - unset($this->p_vars['last_list']); - $this->wp->backuppos($word); - $this->p_vars['event_stack']->popEvent(); - $this->p_flags['in_item'] = false; -// debug('end of list 3'); - return; - } else - { - $this->wp->backuppos($word); - $this->p_vars['event_stack']->popEvent(); - $this->p_flags['in_item'] = false; -// debug('not a list 2'); - return; - } - } - $start_list = $this->getStartList($word); - if (substr($ltrimword,0,strlen($start_list)) != $start_list - || $this->p_flags['in_event'] || is_object($this->p_vars['last_word'])) - { - if (((strlen($this->p_vars['whitespace']) + 1) < strlen(substr($word,0,strpos($word, $ltrimword)))) - || $word == "\n" - || $is_valid - || $this->p_flags['in_event'] - || (is_object($this->p_vars['last_word']) && $this->p_flags['in_item'])) - { - $this->p_vars['list_item'][0]->add($word); - $this->resetStartList($start_list); - $this->p_flags['in_event'] = false; -// debug('middle of list'); - } else - { - if ($this->p_flags['in_item']) - { - $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]); - unset($this->p_vars['list_item'][0]); - $this->setContext('normal'); - $this->p_flags['simplelist'] = false; - $this->addText($this->p_vars['lists'][0]); - unset($this->p_vars['lists']); - unset($this->p_vars['last_list']); - $this->wp->backuppos($word); - $this->p_vars['event_stack']->popEvent(); - $this->p_flags['in_item'] = false; -// debug('end of list 1'); - return; - } else - { - $this->wp->backuppos($word); - $this->p_vars['event_stack']->popEvent(); - $this->p_flags['in_item'] = false; -// debug('not a list'); - return; - } - } - } else - { - if ($this->p_vars['whitespace'] != substr($word,0,strpos($word, $start_list))) - { // if the whitespace is greater than that preceding the list - // delimiter, it's a multi-line list item - $this->setContext('normal'); - $this->p_flags['simplelist'] = false; - $this->addText($this->p_vars['lists'][0]); - unset($this->p_vars['lists']); - $this->wp->backuppos($word); - $this->p_vars['event_stack']->popEvent(); - unset($this->p_vars['last_list']); - $this->p_flags['in_item'] = false; -// debug('end of list 2'); - return; - } else - { - if ($this->p_flags['in_item']) - { - // end of a list item, add it to the list - $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]); - unset($this->p_vars['list_item'][0]); - } -// debug('next list item'); - $this->p_vars['list_item'][0] = new parserStringWithInlineTags; - $this->p_vars['list_item'][0]->add(ltrim(substr($ltrimword,strlen($start_list)))); - $this->p_flags['in_item'] = true; - } - } - } - /**#@-*/ - /** - * Get the next list marker - * - * In unordered lists, this will be something like "o", "-" - * - * In ordered lists, this will be either the number "3", "5" or "3.", "5." - * @return string text of the next list marker to look for - * @param string current word from the parser - * @access private - */ - function getStartList($word) - { - // unordered, return the first marker found - if (!$this->p_flags['orderedlist']) return $this->p_vars['start_list']; - if (isset($this->p_vars['last_list'])) - { - $this->p_vars['save_list'] = $this->p_vars['last_list']; - $next = $this->p_vars['last_list']; - // increment to next list number, convert to string - if (substr($this->p_vars['start_list'], strlen($this->p_vars['start_list']) - 1) == '.') - $next = (substr($next, 0, strpos($next,'.')) + 1) . '.'; - else - $next = ($next + 1) . ''; -// debug("next is '$next'"); - if ($this->p_vars['whitespace'] == substr($word,0,strpos($word, $next))) - return $this->p_vars['last_list'] = $next; - // the next number is not in this word, so return but don't save - return $next; - } else - { - $this->p_vars['last_list'] = $this->p_vars['start_list']; - return $this->p_vars['start_list']; - } - } - - /** - * Set the next list marker to the current list marker - * - * In ordered lists, this will ensure that the next number returned is the - * right number - * @param string token for next list marker - * @access private - */ - function resetStartList($start) - { - if (!isset($this->p_vars['save_list'])) return false; - $this->p_vars['last_list'] = $this->p_vars['save_list']; - } - - /**#@+ - * @access private - * @param string|parserInlineTag token from the ObjectWordParser - * @param integer parser event from {@link ParserDescCleanup.inc} - */ - /** - * Handles <
              >,<
            1. >,<
                > - * - * This allows parsing of lists nested to any level. Using - * the lists and list_item temporary variables and using - * list_count to control nesting, the method creates a {@link parserList} - * for each <
                  > or <
                    > tag, and a - * standard {@link parserStringWithInlineTags} for all the text, adding - * in nested lists as if they were inline tags (the conversion interface - * is the same for both object types) - */ - function handleList($word, $pevent) - { - if (is_string($word) && $this->checkEventPush($word, $pevent)) - { - return; - } - $ordered = false; - if (!is_object($this->p_vars['last_word']) && strtolower($this->p_vars['last_word']) == '
                      ') - { - // ordered list - $ordered = true; - } - // start a new list - if (!is_object($this->p_vars['last_word']) && (strtolower($this->p_vars['last_word']) == '
                        ' || strtolower($this->p_vars['last_word']) == '
                          ')) - { - $this->p_flags['in_item'] = false; - $this->setContext('list'); - $this->p_vars['lists'][++$this->p_vars['list_count']] = new parserList($ordered); - } - if (!is_object($word) && strtolower($word) == '
                        • ') - { - if ($this->p_flags['in_item']) - { - // end of a list item (no end tag), add it to the list - $this->p_vars['lists'][$this->p_vars['list_count']]->addItem($this->p_vars['list_item'][$this->p_vars['list_count']]); - unset($this->p_vars['list_item'][$this->p_vars['list_count']]); - } - // start a new list item - $this->p_vars['list_item'][$this->p_vars['list_count']] = new parserStringWithInlineTags; - $this->p_flags['in_item'] = true; - } else - { - if (is_object($word) || (strtolower($word) != '
                        • ')) - { - if (is_object($word) || (strtolower($word) != '
                        ' && strtolower($word) != '
                      ')) - { - // item text - if (isset($this->p_vars['list_item'][$this->p_vars['list_count']])) - { - if ($word == ' ' && $this->p_vars['last_word'] == ' ') return; - $this->p_vars['list_item'][$this->p_vars['list_count']]->add($word); - } - } else - { - if ($this->p_flags['in_item']) - { - // end the current list item before ending a list - $this->p_vars['lists'][$this->p_vars['list_count']]->addItem($this->p_vars['list_item'][$this->p_vars['list_count']]); - unset($this->p_vars['list_item'][$this->p_vars['list_count']]); - $this->p_flags['in_item'] = false; - } - if (is_string($word) && $this->checkEventPop($word, $pevent)) - { - if ($this->p_vars['list_count'] > 1) - { - // this is a sublist, add it to the list item of the parent list - $this->p_vars['list_item'][$this->p_vars['list_count'] - 1]->add($this->p_vars['lists'][$this->p_vars['list_count']]); - // remove the sublist item and sublist, drop to parent list - unset($this->p_vars['lists'][$this->p_vars['list_count']]); - unset($this->p_vars['lists'][$this->p_vars['list_count']]); - $this->p_vars['list_count']--; - $this->p_flags['in_item'] = true; - } else - { - // this is a primary list and it has concluded - $this->pars[$this->p_vars['curpar']]->add($this->p_vars['lists'][$this->p_vars['list_count']]); - unset($this->p_vars['lists']); - unset($this->p_vars['list_item']); - $this->p_vars['list_count'] = 0; - $this->dropContext(); - } - } - } - } else - { - // check to make sure our list item is not unclosed - if (!$this->p_flags['in_item']) - { - addError(PDERROR_TEXT_OUTSIDE_LI); - } else - { - // end of a list item, add it to the list - $this->p_vars['lists'][$this->p_vars['list_count']]->addItem($this->p_vars['list_item'][$this->p_vars['list_count']]); - unset($this->p_vars['list_item'][$this->p_vars['list_count']]); - $this->p_flags['in_item'] = false; - } - } - } - } - - /** - * Handles <><> blocks - */ - function handleCode($word, $pevent) - { - if (!isset($this->p_vars['my_code'])) - { - $this->setContext('my_code'); - $this->p_vars['my_code'] = new parserCode; - } - if (is_string($word) && $this->checkEventPush($word, $pevent)) return; - if (is_object($word) || strtolower($word) != '
                      ') $this->p_vars['my_code']->add($word); - if (is_string($word)) - { - if ($this->checkEventPop($word,$pevent)) - { - $this->dropContext(); - $this->addText($this->p_vars['my_code']); - unset($this->p_vars['my_code']); - } - } - } - - /** - * Handles <
                      ><
                      > blocks - */ - function handlePre($word, $pevent) - { - if (!isset($this->p_vars['my_pre'])) - { - $this->setContext('my_pre'); - $this->p_vars['my_pre'] = new parserPre; - } - if (is_string($word) && $this->checkEventPush($word, $pevent)) return; - if (is_object($word) || strtolower($word) != '
            ') $this->p_vars['my_pre']->add($word); - if (is_string($word)) - { - if ($this->checkEventPop($word,$pevent)) - { - $this->dropContext(); - $this->addText($this->p_vars['my_pre']); - unset($this->p_vars['my_pre']); - } - } - } - - /** - * Handles <><> blocks - */ - function handleB($word, $pevent) - { - if (!isset($this->p_vars['my_b'])) - { - $this->setContext('my_b'); - $this->p_vars['my_b'] = new parserB; - } - if (is_string($word)) - { - if ($this->checkEventPop($word,$pevent)) - { - $this->dropContext(); - $this->addText($this->p_vars['my_b']); - unset($this->p_vars['my_b']); - } else - { - $this->p_vars['my_b']->add($word); - } - } else $this->p_vars['my_b']->add($word); - } - - /** - * Handles <><> blocks - */ - function handleI($word, $pevent) - { - if (!isset($this->p_vars['my_i'])) - { - $this->p_vars['my_i'] = new parserI; - $this->setContext('my_i'); - } - if (is_string($word)) - { - if ($this->checkEventPop($word,$pevent)) - { - $this->dropContext(); - $this->addText($this->p_vars['my_i']); - unset($this->p_vars['my_i']); - } else - { - $this->p_vars['my_i']->add($word); - } - } else $this->p_vars['my_i']->add($word); - } - - /** - * Handles <><> blocks - */ - function handleVar($word, $pevent) - { - if (!isset($this->p_vars['my_var'])) - { - $this->setContext('my_var'); - $this->p_vars['my_var'] = new parserDescVar; - } - if (is_string($word)) - { - if ($this->checkEventPop($word,$pevent)) - { - $this->dropContext(); - $this->addText($this->p_vars['my_var']); - unset($this->p_vars['my_var']); - } else - { - $this->p_vars['my_var']->add($word); - } - } else $this->p_vars['my_var']->add($word); - } - - /** - * Handles <><> blocks - */ - function handleSamp($word, $pevent) - { - if (!isset($this->p_vars['my_samp'])) - { - $this->setContext('my_samp'); - $this->p_vars['my_samp'] = new parserSamp; - } - if (is_string($word)) - { - if ($this->checkEventPop($word,$pevent)) - { - $this->dropContext(); - $this->addText($this->p_vars['my_samp']); - unset($this->p_vars['my_samp']); - } else - { - $this->p_vars['my_samp']->add($word); - } - } else $this->p_vars['my_samp']->add($word); - } - - /** - * Handles <><> blocks - */ - function handleKbd($word, $pevent) - { - if (!isset($this->p_vars['my_kbd'])) - { - $this->setContext('my_kbd'); - $this->p_vars['my_kbd'] = new parserKbd; - } - if (is_string($word)) - { - if ($this->checkEventPop($word,$pevent)) - { - $this->dropContext(); - $this->addText($this->p_vars['my_kbd']); - unset($this->p_vars['my_kbd']); - } else - { - $this->p_vars['my_kbd']->add($word); - } - } else $this->p_vars['my_kbd']->add($word); - } - - /** - * Handles <

            ><

            > blocks - * - * Note that the only time <

            > will be interpreted as delimiting a - * paragraph is if it is the first thing in the description. - */ - function handleP($word, $pevent) - { - if (!isset($this->parse_Ps)) $this->parse_Ps = false; - if (is_string($word)) - { - if (is_string($word) && $this->checkEventPush($word, $pevent)) return; - } - if (!$this->parse_Ps) - { - $this->p_vars['event_stack']->popEvent(); - if (!is_object($word) && strtolower($this->p_vars['last_word']) == '

            ') $this->addText('

            '); - $this->addText($word); - return; - } - if ($word == "\n") $word = " "; - if (is_string($word)) - { - if ($this->checkEventPop($word, $pevent)) - { - $this->p_vars['curpar']++; - return; - } - // if no closing tag, pretend there was one - if (!is_object($word) && strtolower($word) == '

            ' && $this->parse_Ps) - { - $this->p_vars['curpar']++; - return; - } - } - if ($this->p_vars['start']) - { - $this->addText($word); - } else - {// if the

            is not at the beginning of the desc, then it is not - // possible to parse into paragraphs using this tag - if ($word == ' ' && $this->p_vars['last_word'] == ' ') return; - $this->addText($word); - } - } - - /** - * Handles \n\n as a paragraph marker - * @uses doSimpleList() - */ - function handleDoubleCR($word, $pevent) - { - $this->p_vars['event_stack']->popEvent(); - if ($word == "\n") - { - // only use this if

            isn't being used - if ((!isset($this->parse_Ps) || !$this->parse_Ps)) - { - if ($this->p_vars['last_word'] == "\n") - { - $this->p_vars['curpar']++; - $this->parse_Ps = false; - } else - { - if (is_string($word) && !$this->checkEventPush($word, $pevent)) - { - if ($word == ' ' && $this->p_vars['last_word'] == ' ') return; - $this->addText($word); - } - } - } else - { - if (is_string($word) && !$this->checkEventPush($word, $pevent)) - { - if ($word == ' ' && $this->p_vars['last_word'] == ' ') return; - $this->addText($word); - } - } - } else - { - if ($this->p_vars['last_word'] == "\n") - { - if ((!isset($this->parse_Ps) || !$this->parse_Ps)) - { - $this->addText(' '); - } - } - if (is_string($word) && !($e = $this->checkEventPush($word, $pevent))) - { - if ($word == ' ' && $this->p_vars['last_word'] == ' ') return; - if ($this->doSimpleList($word)) return; - $this->addText($word); - } - } - } - - /**#@-*/ - /** - * Return a simple list, if found - * - * This helper function extracts a simple list beginning with any of - * 'o','-'.'#','+','0','1','0.','1.' and starts parsing it. - * @param string line that may contain a simple list - * @return boolean true if a list is found, false otherwise - */ - function doSimpleList($word) - { - if ($this->p_flags['in_event']) return true; - if (is_object($word)) return false; - $ltrimword = ltrim($word); - if ((strlen($ltrimword) != strlen($word)) - && strlen($ltrimword) > 1 - && ((in_array($ltrimword{0},array('o','-','1','0','#','+')) && $ltrimword{1} == ' ')) - || ((strlen($ltrimword) >= 2) && (in_array(substr($ltrimword,0,2),array('1.','0.')) && $ltrimword{2} == ' '))) - { - // save the whitespace for comparison - $this->p_vars['whitespace'] = substr($word,0,strlen($word) - strlen($ltrimword)); - $this->p_vars['start_list'] = $ltrimword{0}; - if ($this->p_vars['start_list'] != '1' && $this->p_vars['start_list'] != '1.' && - $this->p_vars['start_list'] != '0' && $this->p_vars['start_list'] != '0.') - { - $this->p_flags['orderedlist'] = false; - } else - { - if (substr($ltrimword,0,2) == '1.') - { - $this->p_vars['start_list'] = '1.'; - } - $this->p_flags['orderedlist'] = true; - } - $this->p_vars['event_stack']->pushEvent(PHPDOCUMENTOR_PDP_EVENT_SIMLIST); - $this->setContext('list'); - $this->p_flags['simplelist'] = true; - $this->p_vars['lists'][0] = new parserList($this->p_flags['orderedlist']); - $this->p_vars['list_count'] = 0; - $this->handleSimpleList($word, PHPDOCUMENTOR_PDP_EVENT_SIMLIST, true); - return true; - } - return false; - } - /** - * setup the parser tokens, and the pushEvent/popEvent arrays - * @see $tokens, $pushEvent, $popEvent - * @param boolean determines whether to allow paragraph parsing - * @global boolean used to determine whether to slow things down or not by - * eliminating whitespace from comments - */ - - function setupStates($sdesc) - { - $this->p_flags['in_item'] = false; - $this->p_flags['in_event'] = false; - $this->p_flags['simplelist'] = false; - $this->_context = array('normal'); - $this->tokens[STATE_NOEVENTS] = array("\n", "", "

            ", "
              ", "
                ", - "", "", '', '', '', "tokens[STATE_NOEVENTS][] = "

                "; - $this->tokens[STATE_NOEVENTS][] = "

                "; - } - if (PHPDOCUMENTOR_KILL_WHITESPACE) $this->tokens[STATE_NOEVENTS][] = ' '; - $this->tokens[PHPDOCUMENTOR_PDP_STATE_P] = array("

                ","","
                ", '<
                ","\n","
                  ","
                    ","","","", '<<', - '', '', ''); - if (PHPDOCUMENTOR_KILL_WHITESPACE) $this->tokens[PHPDOCUMENTOR_PDP_STATE_P][] = ' '; - $this->tokens[PHPDOCUMENTOR_PDP_STATE_CODE] = array("", '<>'); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_PRE] = array("
            >'); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_LIST] = array("
              ","
                ","
            ","
        ","
      • ","
      • ","","","","
        ","', '', '');
        -        $this->tokens[PHPDOCUMENTOR_PDP_STATE_DOUBLECR]        = array("\n","
          ","
            ","","
            ","","","","

            ", - '', '', '', '<<'); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_SIMLIST] = array("\n",'', '', '','','', '
            ', '',
            -                                                                    'tokens[PHPDOCUMENTOR_PDP_STATE_B]    = array("","\n","
            ","
              ","
                ","","","', '', ''); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_KBD] = array("","\n","
                ","
                  ","
                    ","","","', '', ''); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_VAR] = array("","\n","
                    ","
                      ","
                        ","","","', '', ''); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_SAMP] = array("","\n","
                        ","
                          ","
                            ","","","', '', ''); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_I] = array("","\n","
                            ","
                              ","
                                ","","","', '', ''); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_BR] = array(">","/>"); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_ESCAPE] = array('code>>', '/code>>', 'pre>>', '/pre>>', 'b>>', '/b>>', - 'i>>', '/i>>', 'ol>>', '/ol>>', 'ul>>', '/ul>>', - 'br>>', 'br />>', 'p>>', '/p>>', 'samp>>', '/samp>>', - 'kbd>>', '/kbd>>', 'var>>', '/var>>'); - if (PHPDOCUMENTOR_KILL_WHITESPACE) $this->tokens[PHPDOCUMENTOR_PDP_STATE_DOUBLECR][] = ' '; - - // For each event word to event mapings - $this->pushEvent[PARSER_EVENT_NOEVENTS] = - array( - "" => PHPDOCUMENTOR_PDP_EVENT_CODE, - ">' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE, - ); - - $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_PRE] = array("
                                "    => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                -                "

                                " => PHPDOCUMENTOR_PDP_EVENT_P, - "" => PHPDOCUMENTOR_PDP_EVENT_VAR, - "" => PHPDOCUMENTOR_PDP_EVENT_SAMP, - "" => PHPDOCUMENTOR_PDP_EVENT_KBD, - "

                                  " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                    " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "" => PHPDOCUMENTOR_PDP_EVENT_B, - "" => PHPDOCUMENTOR_PDP_EVENT_I, - " PHPDOCUMENTOR_PDP_EVENT_BR, - "\n" => PHPDOCUMENTOR_PDP_EVENT_DOUBLECR, - '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE, - ); -########################## - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_CODE] = - array( - '<>' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE, - ); - - $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_CODE] = array(""); -########################## - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_PRE] = - array( - '<
                            "); -########################## - - $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_BR] = array(">","/>"); -########################## - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_P] = - array( - "" => PHPDOCUMENTOR_PDP_EVENT_CODE, - "
                              " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "" => PHPDOCUMENTOR_PDP_EVENT_VAR, - "" => PHPDOCUMENTOR_PDP_EVENT_SAMP, - "" => PHPDOCUMENTOR_PDP_EVENT_KBD, - "
                                " => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                -                "" => PHPDOCUMENTOR_PDP_EVENT_B,
                                -                "" => PHPDOCUMENTOR_PDP_EVENT_I,
                                -                " PHPDOCUMENTOR_PDP_EVENT_BR,
                                -                '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
                                -            );
                                -         
                                -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_P] = array("

                                "); -########################## - - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_LIST] = - array( - "
                                  " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                    " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "" => PHPDOCUMENTOR_PDP_EVENT_CODE, - "" => PHPDOCUMENTOR_PDP_EVENT_VAR, - "" => PHPDOCUMENTOR_PDP_EVENT_SAMP, - "" => PHPDOCUMENTOR_PDP_EVENT_KBD, - "" => PHPDOCUMENTOR_PDP_EVENT_B, - "" => PHPDOCUMENTOR_PDP_EVENT_I, - "
                                    " => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                    -                " PHPDOCUMENTOR_PDP_EVENT_BR,
                                    -                '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
                                    -            );
                                    -        
                                    -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_LIST] = array("
                                ","
                            "); -########################## - - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_SIMLIST] = - array( - "" => PHPDOCUMENTOR_PDP_EVENT_CODE, - "
                            "    => PHPDOCUMENTOR_PDP_EVENT_PRE,
                            -                "

                            " => PHPDOCUMENTOR_PDP_EVENT_P, - "" => PHPDOCUMENTOR_PDP_EVENT_VAR, - "" => PHPDOCUMENTOR_PDP_EVENT_SAMP, - "" => PHPDOCUMENTOR_PDP_EVENT_KBD, - "" => PHPDOCUMENTOR_PDP_EVENT_B, - "" => PHPDOCUMENTOR_PDP_EVENT_I, - " PHPDOCUMENTOR_PDP_EVENT_BR, - '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE, - ); -########################## - - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_DOUBLECR] = - array( - "" => PHPDOCUMENTOR_PDP_EVENT_CODE, - "

                              " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                " => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                -                "" => PHPDOCUMENTOR_PDP_EVENT_B,
                                -                "" => PHPDOCUMENTOR_PDP_EVENT_I,
                                -                "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
                                -                "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
                                -                "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
                                -                " PHPDOCUMENTOR_PDP_EVENT_BR,
                                -                "

                                " => PHPDOCUMENTOR_PDP_EVENT_P, - '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE, - ); - -########################## - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_B] = - array( - "" => PHPDOCUMENTOR_PDP_EVENT_CODE, - "

                                  " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                    " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                    " => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                    -                "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
                                    -                "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
                                    -                "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
                                    -                " PHPDOCUMENTOR_PDP_EVENT_BR,
                                    -                '' => PHPDOCUMENTOR_PDP_EVENT_I,
                                    -                '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
                                    -            );
                                    -         
                                    -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_B] = array("");
                                    -
                                    -##########################
                                    -        $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_I] =
                                    -            array(
                                    -                "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
                                    -                "
                                      " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                        " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                        " => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                        -                "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
                                        -                "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
                                        -                "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
                                        -                " PHPDOCUMENTOR_PDP_EVENT_BR,
                                        -                '' => PHPDOCUMENTOR_PDP_EVENT_B,
                                        -                '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
                                        -            );
                                        -         
                                        -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_I] = array("");
                                        -
                                        -##########################
                                        -        $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_VAR] =
                                        -            array(
                                        -                "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
                                        -                "
                                          " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                            " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                            " => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                            -                "" => PHPDOCUMENTOR_PDP_EVENT_I,
                                            -                "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
                                            -                "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
                                            -                " PHPDOCUMENTOR_PDP_EVENT_BR,
                                            -                '' => PHPDOCUMENTOR_PDP_EVENT_B,
                                            -                '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
                                            -            );
                                            -         
                                            -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_VAR] = array("");
                                            -
                                            -##########################
                                            -        $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_SAMP] =
                                            -            array(
                                            -                "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
                                            -                "
                                              " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                                " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                                " => PHPDOCUMENTOR_PDP_EVENT_PRE,
                                                -                "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
                                                -                "" => PHPDOCUMENTOR_PDP_EVENT_I,
                                                -                "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
                                                -                " PHPDOCUMENTOR_PDP_EVENT_BR,
                                                -                '' => PHPDOCUMENTOR_PDP_EVENT_B,
                                                -                '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
                                                -            );
                                                -         
                                                -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_SAMP] = array("");
                                                -
                                                -##########################
                                                -        $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_KBD] =
                                                -            array(
                                                -                " PHPDOCUMENTOR_PDP_EVENT_CODE,
                                                -                "
                                                  " => PHPDOCUMENTOR_PDP_EVENT_LIST, - "
                                                    " => PHPDOCUMENTOR_PDP_EVENT_LIST, - " PHPDOCUMENTOR_PDP_EVENT_PRE, - "" => PHPDOCUMENTOR_PDP_EVENT_VAR, - "" => PHPDOCUMENTOR_PDP_EVENT_SAMP, - "" => PHPDOCUMENTOR_PDP_EVENT_I, - " PHPDOCUMENTOR_PDP_EVENT_BR, - '' => PHPDOCUMENTOR_PDP_EVENT_B, - '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE, - ); - - $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_KBD] = array(""); - } - - function getParserEventName ($value) - { - $lookup = array( - PARSER_EVENT_NOEVENTS => "PARSER_EVENT_NOEVENTS", - PHPDOCUMENTOR_PDP_EVENT_CODE => "PHPDOCUMENTOR_PDP_EVENT_CODE", - PHPDOCUMENTOR_PDP_EVENT_P => "PHPDOCUMENTOR_PDP_EVENT_P", - PHPDOCUMENTOR_PDP_EVENT_B => "PHPDOCUMENTOR_PDP_EVENT_B", - PHPDOCUMENTOR_PDP_EVENT_I => "PHPDOCUMENTOR_PDP_EVENT_I", - PHPDOCUMENTOR_PDP_EVENT_BR => "PHPDOCUMENTOR_PDP_EVENT_BR", - PHPDOCUMENTOR_PDP_EVENT_VAR => "PHPDOCUMENTOR_PDP_EVENT_VAR", - PHPDOCUMENTOR_PDP_EVENT_SAMP => "PHPDOCUMENTOR_PDP_EVENT_SAMP", - PHPDOCUMENTOR_PDP_EVENT_KBD => "PHPDOCUMENTOR_PDP_EVENT_KBD", - PHPDOCUMENTOR_PDP_EVENT_ESCAPE => "PHPDOCUMENTOR_PDP_EVENT_ESCAPE", - PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE => "PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE", - PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE => "PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE", - PHPDOCUMENTOR_PDP_EVENT_DOUBLECR => "PHPDOCUMENTOR_PDP_EVENT_DOUBLECR", - PHPDOCUMENTOR_PDP_EVENT_LIST => "PHPDOCUMENTOR_PDP_EVENT_LIST", - PHPDOCUMENTOR_PDP_EVENT_PRE => "PHPDOCUMENTOR_PDP_EVENT_PRE", - PHPDOCUMENTOR_PDP_EVENT_SIMLIST => "PHPDOCUMENTOR_PDP_EVENT_SIMLIST", - ); - if (isset($lookup[$value])) - return $lookup[$value]; - else return $value; - } -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc deleted file mode 100644 index 96ea1b20..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc +++ /dev/null @@ -1,1165 +0,0 @@ - - * @since 1.0rc1 - * @version $Id: ParserDocBlock.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -class parserDesc extends parserStringWithInlineTags -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * always '_desc' - * @var string - */ - var $type = '_desc'; - - /** - * @param mixed like {@link parserStringWithInlineTags::add()}, this can be a string or parserInlineTag, but it can also be a - * parserStringWithInlineTags, and the contents will be merged - */ - function add($stringOrClass) - { - if (is_object($stringOrClass)) - { - if (phpDocumentor_get_class($stringOrClass) == 'parserstringwithinlinetags' || - phpDocumentor_get_class($stringOrClass) == 'parserdesc') - { - for($i=0;$ivalue);$i++) - { - parserStringWithInlineTags::add($stringOrClass->value[$i]); - } - } else - { - parserStringWithInlineTags::add($stringOrClass); - } - } else return parserStringWithInlineTags::add($stringOrClass); - } - - /** - * @return boolean whether this desc has an {@}inheritdoc} inline tag - */ - function hasInheritDoc() - { - for($i=0;$ivalue);$i++) - { - if (phpDocumentor_get_class($this->value[$i])=='parserinheritdocinlinetag') return true; - } - } - - /** - * @return boolean whether this desc has an {@}source} inline tag - */ - function hasSource() - { - for($i=0;$ivalue);$i++) - { - if (phpDocumentor_get_class($this->value[$i])=='parsersourceinlinetag') return true; - } - } - - /** - * replaces {@}inheritdoc} with the contents of the parent DocBlock - * @param parserDesc parent parserDesc, used to retrieve the description - */ - function replaceInheritDoc($desc) - { - $value = $this->value; - $this->value = array(); - for($i=0;$ivalue);$j++) - { - $this->add($desc->value[$j]); - } - } else $this->add($value[$i]); - } - } -} - -/** - * Represents a docblock and its components, {@link $desc}, {@link $sdesc}, {@link $tags}, and also {@link $params} for functions - * @package phpDocumentor - * @subpackage ParserDocBlock - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserDocBlock.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -class parserDocBlock -{ - /** - * @var parserDesc - */ - var $desc = false; - /** - * @var array array of {@link parserDesc}s - */ - var $processed_desc = false; - /** - * @var array array of {@link parserDesc}s - */ - var $processed_sdesc = false; - /** - * @var parserDesc - */ - var $sdesc = false; - /** - * Line number in the source on which this docblock begins - * @since 1.2 - * @var false|integer - */ - var $linenumber = false; - /** - * Line number in the source on which this docblock ends - * @since 1.2 - * @var false|integer - */ - var $endlinenumber = false; - /** - * array of {@link parserTag}s - * @var array - */ - var $tags = array(); - /** - * array of unrecognized {@link parserTag}s - * @var array - */ - var $unknown_tags = array(); - /** - * array of param data. - * Format: - * array(index of param in function parameter list -OR- parameter name => - * parserStringWithInlineTags,...) - * @var array - */ - var $params = array(); - /** - * array of global variable data. - * Format: - * array(index of global variable in @global tag list -OR- global variable name => - * array(datatype,parserStringWithInlineTags),...) - * @var array - */ - var $funcglobals = array(); - - /** - * array of static variable data. - * Format: - * array(index of static variable in @global tag list -OR- static variable name => - * {@link parserStaticvarTag},...) - * @var array - */ - var $statics = array(); - /** - * This is either a {@link parserReturnTag} or false if no return tag is present - * @var mixed - */ - var $return = false; - /** - * This is either a {@link parserVarTag} or false if no var tag is present - * @var mixed - */ - var $var = false; - /** - * fix for bug 591396 - * @var boolean - */ - var $explicitpackage = false; - /** - * fix for bug 708559 - * @var boolean - */ - var $explicitcategory = false; - /** @var string */ - var $category; - /** @var string */ - var $package = 'default'; - /** @var string */ - var $subpackage = ''; - /** - * whether this DocBlock has an @access tag - * @var boolean */ - var $hasaccess = false; - /** - * whether this DocBlock has a @name tag - * @var boolean */ - var $hasname = false; - /** - * description of package parsed from @package tag - * Unused in this version - * @var string - */ - var $packagedescrip = ''; - /** - * description of subpackage parsed from @package tag - * Unused in this version - * @var string - */ - var $subpackagedescrip = ''; - /** - * Determines whether a DocBlock can legally have a {@}source} tag - * @tutorial tags.inlinesource.pkg - * @var boolean - * @access private - */ - var $_canSource = false; - - /** - * sets package to default - * @global string default package name - */ - function parserDocBlock() - { - global $phpDocumentor_DefaultPackageName; - $this->package = $GLOBALS['phpDocumentor_DefaultPackageName']; - $this->category = $GLOBALS['phpDocumentor_DefaultCategoryName']; - } - - /** - * Sets the starting line number for the DocBlock - * @param integer - */ - function setLineNumber($number) - { - $this->linenumber = $number; - } - - /** - * Retrieve starting line number - * @return integer - */ - function getLineNumber() - { - return $this->linenumber; - } - - /** - * Sets the ending line number for the DocBlock - * @param integer - */ - function setEndLineNumber($number) - { - $this->endlinenumber = $number; - } - - /** - * Retrieve ending line number - * @return integer - */ - function getEndLineNumber() - { - return $this->endlinenumber; - } - - /** - * Parse out any html tags from doc comments, and make them into - * abstract structures - * @uses parserDescParser::parse() - */ - function postProcess() - { - if ($this->sdesc) - { - $parser = new parserDescParser; - $parser->subscribe('*',$this); - if ($this->desc) $parser->parse($this->desc->value); - $parser->parse($this->sdesc->value,true); - } - } - - /** - * Tells the DocBlock it can have a @filesource tag - * - * Only page-level DocBlocks may have a @filesource tag - */ - function canSource() - { - $this->_canSource = true; - } - - /** - * Tells the DocBlock it can't have a @filesource tag - * - * Only page-level DocBlocks may have a @filesource tag - */ - function cantSource() - { - $this->_canSource = false; - } - - /** - * Indirectly called after parsing by {@link postProcess} - * - * @param integer either 1 for long desc or 2 for short desc - * @param array data organized into paragraphs. Each entry is a {@link parserStringWithInlineTags} - * @uses $processed_desc sets to the array passed from {@link parserDescParser::parse()} - * @uses $processed_sdesc sets to the array passed from {@link parserDescParser::parse()} - * @access private - */ - function HandleEvent($event,$data) - { - if ($event == 1) - $this->processed_desc = $data; - else - $this->processed_sdesc = $data; - } - - /** - * @param array - */ - function updateModifiers($modifiers) - { - if (is_array($modifiers) && count($modifiers)) - { - foreach ($modifiers as $modifier) - { - switch ($modifier) - { - case 'private' : - case 'public' : - case 'protected' : - unset($this->tags['access']); - $x = new parserAccessTag($modifier); - if ($x->isvalid) - { - $this->hasaccess = true; - $this->tags['access'][] = $x; - } - break; - case 'static' : - case 'abstract' : - unset($this->tags[$modifier]); - $this->addKeyword($modifier, ''); - break; - } - } - } - } - - /** - * Set the short description of the DocBlock - * - * Setting the short description is possible by passing in one of three - * possible parameters: - *
                                                      - *
                                                    • another DocBlock's short description
                                                    • - *
                                                    • another DocBlock, the short description will be extracted
                                                    • - *
                                                    • a Zend Studio-compatible @desc tag
                                                    • - *
                                                    - * @param parserDesc|parserDocBlock|parserTag sets {@link $sdesc} - */ - function setShortDesc($desc) - { - if (phpDocumentor_get_class($desc) == 'parsertag') - { - $this->sdesc = new parserDesc; - $this->processed_sdesc = $desc->value; - return; - } - if (phpDocumentor_get_class($desc) == 'parserdesc') { - $this->sdesc = $desc; - } else - { - $this->sdesc = $desc->sdesc; - $this->processed_sdesc = $desc->processed_sdesc; - } - - if ($this->sdesc && $this->sdesc->hasSource()) - { - addWarning(PDERROR_SOURCE_TAG_IGNORED,$this->sdesc->getString()); - } - } - - /** - * Passes to {@link parserStringWithInlineTags::setSource()} - * - * After passing, it calls {@link postProcess()} to set up the new - * source - * @param string|array tokenized highlight-ready source code - * @param false|string name of class if this is a method source - */ - function setSource($source, $class = false) - { - if ($this->desc) - { - $this->desc->setSource($source, $class); - $this->postProcess(); - } - } - - /** - * @param parserDesc|parserDocBlock sets {@link $desc} - */ - function setDesc($desc) - { - if (phpDocumentor_get_class($desc) == 'parserdesc') - $this->desc = $desc; - else - { - $this->desc = $desc->desc; - $this->processed_desc = $desc->processed_desc; - } - } - - /** - * Wrapper for {@link parserDesc::hasInheritDoc()} - * @return boolean - */ - function hasInheritDoc() - { - if (!$this->desc) return false; - return $this->desc->hasInheritDoc(); - } - - /** - * Wrapper for {@link parserDesc::replaceInheritDoc()} - * - * Also replaces {@}inheritdoc} in the {@link $processed_desc} - * @param parserDesc - */ - function replaceInheritDoc($desc) - { - if (!$this->desc) return false; - $this->desc->replaceInheritDoc($desc->desc); - $this->postProcess(); - } - - /** - * @param Converter takes {@link $sdesc} and converts it to a string and returns it if present, otherwise returns '' - * @return string - */ - function getSDesc(&$converter) - { - if ($this->sdesc && $this->processed_sdesc) - { - $result = ''; - foreach($this->processed_sdesc as $desc) - { - if (count($desc->value)) - $result .= $desc->Convert($converter); - } - return $result; - } else - { -// var_dump($this->desc,$this->processed_desc); - } - return ''; - } - - /** - * @param Converter takes {@link $desc} and converts it to a string and returns it if present, otherwise returns '' - * @return string - */ - function getDesc(&$converter) - { - if ($this->desc && $this->processed_desc) - { - $result = ''; - foreach($this->processed_desc as $desc) - { - if (count($desc->value)) - $result .= $converter->EncloseParagraph($desc->Convert($converter)); - } - return $result; - } else - { -// var_dump($this->desc,$this->processed_desc); - } - return ''; - } - - /** - * @param string $paramVar if empty, param is indexed in the order received and set using {@link changeParam()} - * @param parserStringWithInlineTags $value - */ - function addParam($paramVar, $paramType, $value) - { - if (empty($paramVar)) - $this->params[count($this->params)] = new parserParamTag($paramType,$value); - else - $this->params[$paramVar] = new parserParamTag($paramType,$value); - } - - /** - * @param integer $index index of parameter in the {@link $params} array - * @param string $name name of the parameter to set in the $params array - */ - function changeParam($index,$name) - { - $this->params[$name] = $this->params[$index]; - unset($this->params[$index]); - } - - /** - * replaces nameless parameters in the {@link $params} array with their names - * @param array $params Format: array(parameter index => parameter name,...) - */ - function updateParams($params) - { - for($i=0;$iparams[$i])) - { - $this->changeParam($i,$params[$i]); - } - } - if (isset($this->tags)) - unset($this->tags['param']); - } - - /** - * Used to insert DocBlock Template tags into a docblock - * @param parserTag tag - * @global array used to determine whether to add ignored tags, or not - */ - function addTag($tag) - { - global $_phpDocumentor_setting; - if (phpDocumentor_setup::checkIgnoreTag($tag->keyword)) return; - $value = $tag->value; - if (is_array($value)) $value = $value[0]; - if ($tag->keyword == 'uses') - { - $this->addUses($value, $tag->_description); - } else - { - $this->addKeyword($tag->keyword, $value); - } - } - - /** - * @param string $keyword tag name - * @param parserStringWithInlineTags $value the contents of the tag - * @global array used to determine whether to add the @internal tag or not - */ - function addKeyword($keyword, $value) - { - global $_phpDocumentor_setting; - if (phpDocumentor_setup::checkIgnoreTag($keyword)) return; - // don't add the tag at all if it was specified to ignore it with --ignore-tags - if ($keyword == 'package' || $keyword == 'subpackage' || $keyword == 'category') return $this->addPackage($keyword, $value); - if ($keyword == 'access') return $this->addAccess($value); - if ($keyword == 'link') return $this->addLink($value); - if ($keyword == 'see' || $keyword == 'tutorial') return $this->addSee($keyword,$value); - if ($keyword == 'uses') return $this->addUses($keyword, $value); - if ($keyword == 'name') return $this->addName($value); - if (!in_array($keyword,$GLOBALS['_phpDocumentor_tags_allowed'])) - $this->addUnknownTag($keyword,$value); - else - { - if ($keyword == 'internal' && (!isset($_phpDocumentor_setting['parseprivate']) || $_phpDocumentor_setting['parseprivate'] == 'off')) return; - if (!isset($this->tags[$keyword])) { - $this->tags[$keyword] = array(); - } - $ptag = 'parserTag'; - if (class_exists('parser'.$keyword.'tag')) - $ptag = 'parser'.ucfirst($keyword).'Tag'; - array_unshift($this->tags[$keyword], new $ptag($keyword, $value)); - } - } - - /** - * adds an @example tag - * @param string contents of the tag - * @param string path to the file containing this tag - */ - function addExample($value, $path) - { - $this->tags['example'][] = new parserExampleTag($value, $path); - } - - /** - * adds an unknown tag to the {@link $unknown_tags} array for use by custom converters - * @param string tag name - * @param string tag value - */ - function addUnknownTag($keyword, $value) - { - addWarning(PDERROR_UNKNOWN_TAG,$keyword); - $this->unknown_tags[$keyword][] = new parserTag($keyword, $value); - } - - /** - * set the element's package to the passed values. Used in {@link phpDocumentor_IntermediateParser} to align package of - * elements inside a class or procedural page to the package of the class/procedural page - * @param string - * @param string - * @param string - * @param string element name - * @param string element type (include, define, var, method, global, function, const) - */ - function overridePackage($category, $package,$subpackage,$elname,$type) - { - if ($this->package != $GLOBALS['phpDocumentor_DefaultPackageName']) - { - addError(PDERROR_OVERRIDDEN_PACKAGE_TAGS,$elname,$type,$this->package); - $this->explicitpackage = false; - } - if (!empty($this->subpackage)) - addError(PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS,$type,$elname,$this->subpackage); - $this->package = $GLOBALS['phpDocumentor_DefaultPackageName']; - $this->subpackage = ''; - $this->category = $category; - $this->addPackage('package',$package); - $this->addPackage('subpackage',$subpackage); - } - - /** - * Used if this docblock has a @package tag. - * - * phpDocumentor will guess package for DocBlocks that don't have - * a @package tag - * @uses $explicitpackage - */ - function setExplicitPackage() - { - $this->explicitpackage = true; - } - - /** - * If the DocBlock has a @package tag, then this returns true - * @return boolean - */ - function getExplicitPackage() - { - return $this->explicitpackage; - } - - /** - * Used if this docblock has a @category tag. - * - * phpDocumentor will guess category for DocBlocks that don't have - * a @category tag - * @uses $explicitcategory - */ - function setExplicitCategory() - { - $this->explicitcategory = true; - } - - /** - * If the DocBlock has a @category tag, then this returns true - * @return boolean - */ - function getExplicitCategory() - { - return $this->explicitcategory; - } - - /** - * @param string $keyword tag name (either package or subpackage) - * @param mixed $value either a string or a parserStringWithInlineTags. Strips all inline tags and use the text as the package - */ - function addPackage($keyword, $value) - { - if ($keyword == 'package') - { - if (!$this->explicitpackage) - { - if (!is_string($value)) - $value = $value->getString(); - $rest = ''; - $value = explode(' ',$value); - if (count($value) - 1) - { - $rest = $value; - $value = $value[0]; - unset($rest[0]); - $rest = implode($rest,' '); - } else - { - $value = explode("\t",$value[0]); - if (count($value) - 1) - { - $rest = $value; - $value = $value[0]; - unset($rest[0]); - $rest = implode($rest,"\t"); - } else $value = $value[0]; - } - preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match); - if (!isset($match[0])) - { - // if were a single line and the only bad character is a space then will fix things for them - preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match); - if (!isset($match[0])) - { - addError(PDERROR_ILLEGAL_PACKAGENAME,'package','package',$value); - $value = $GLOBALS['phpDocumentor_DefaultPackageName']; - } - else - { - $value = - str_replace(array(" ","/","\\",":"),"_", - trim($value)); - } - } - $this->packagedescrip = $this->package = trim($value); - if (!empty($rest)) $this->packagedescrip = $rest; - } else - { - if (is_string($value)) - addError(PDERROR_MULTIPLE_PACKAGE_TAGS,$value); - else - addError(PDERROR_MULTIPLE_PACKAGE_TAGS,$value->getString()); - } - } elseif ($keyword == 'subpackage') - { - if (empty($this->subpackage)) - { - if (!is_string($value)) - $value = $value->getString(); - $rest = ''; - $value = explode(' ',$value); - if (count($value) - 1) - { - $rest = $value; - $value = $value[0]; - unset($rest[0]); - $rest = implode($rest,' '); - } else - { - $value = explode("\t",$value[0]); - if (count($value) - 1) - { - $rest = $value; - $value = $value[0]; - unset($rest[0]); - $rest = implode($rest,"\t"); - } else $value = $value[0]; - } - if (!empty($value)) - { - preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match); - if (!isset($match[0])) - { - // if were a single line and the only bad character is a space then will fix things for them - preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match); - if (!isset($match[0])) - { - addError(PDERROR_ILLEGAL_PACKAGENAME,'subpackage','subpackage',$value); - $value = ''; - } - else - { - $value = - str_replace(array(" ","/","\\",":"),"_", - trim($value)); - } - } - } - $this->subpackage = trim($value); - if (!empty($rest)) $this->subpackagedescrip = $rest; - } else - { - if (is_string($value)) - addError(PDERROR_MULTIPLE_SUBPACKAGE_TAGS,$value); - else - addError(PDERROR_MULTIPLE_SUBPACKAGE_TAGS,$value->getString()); - } - } elseif ($keyword == 'category') - { - if (!$this->explicitcategory) - { - if (!is_string($value)) - $value = $value->getString(); - $this->category = $value; - } else - { - if (is_string($value)) - addError(PDERROR_MULTIPLE_CATEGORY_TAGS,$value); - else - addError(PDERROR_MULTIPLE_CATEGORY_TAGS,$value->getString()); - } - } - } - - /** - * Adds a @name tag to the tag list - * @param string new name of element - */ - function addName($value) - { - if (is_object($value)) $value = $value->getString(); - if (!$this->hasname) - { - $x = new parserNameTag('name',$value); - $this->hasname = true; - $this->tags['name'][] = $x; - } else - { - addError(PDERROR_MULTIPLE_NAME_TAGS,$value); - } - } - - /** - * @param string if empty, staticvar is indexed in the order received and set using {@link changeStatic()} - * @param string data type - * @param parserStringWithInlineTags - */ - function addStaticVar($staticvar, $type, $descrip) - { - if (empty($staticvar)) - $this->statics[] = new parserStaticvarTag($type,$descrip); - else - $this->statics[$staticvar] = new parserStaticvarTag($type,$descrip); - } - - /** - * adds a function declaration of @global to the {@link $funcglobals} array - * @param string global type - * @param string description of how the global is used in the function - */ - function addFuncGlobal($type,$value) - { - $this->funcglobals[] = array($type,$value); - } - - /** - * @param integer $index index of parameter in the {@link $funcglobals} array - * @param string $name name of the parameter to set in the $funcglobals array - */ - function changeGlobal($index,$name) - { - $this->funcglobals[$name] = $this->funcglobals[$index]; - unset($this->funcglobals[$index]); - } - - /** - * @param integer $index index of parameter in the {@link $statics} array - * @param string $name name of the parameter to set in the $statics array - */ - function changeStatic($index,$name) - { - $this->statics[$name] = $this->statics[$index]; - unset($this->statics[$index]); - } - - /** - * replaces nameless global variables in the {@link $funcglobals} array with their names - * @param array - */ - function updateGlobals($funcs) - { - for($i=0;$ifuncglobals[$i])) - { - $this->changeGlobal($i,$funcs[$i]); - } - } - } - - /** - * replaces nameless static variables in the {@link $statics} array with their names - * @param array - */ - function updateStatics($funcs) - { - for($i=0;$istatics[$i])) - { - $this->changeStatic($i,$funcs[$i]); - } - } - } - - /** - * add an @access tag to the {@link tags} array - * @param string should be either public or private - */ - function addAccess($value) - { - if (is_object($value)) $value = $value->getString(); - $value = strtolower($value); - if (!$this->hasaccess) - { - $x = new parserAccessTag($value); - if ($x->isvalid) - { - $this->hasaccess = true; - $this->tags['access'][] = $x; - } - } else - { - if (is_string($value)) - addError(PDERROR_MULTIPLE_ACCESS_TAGS,$value); - else - addError(PDERROR_MULTIPLE_ACCESS_TAGS,$value->getString()); - } - } - - /** - * Adds a new @filesource tag to the DocBlock - * @tutorial tags.filesource.pkg - * @param string full path to the file - * @param array tokenized source code, ordered by line number - */ - function addFileSource($path, $source) - { - if (isset($this->tags['filesource'])) return; - $this->tags['filesource'][] = new parserFileSourceTag($path, $source); - } - - /** - * creates a {@link parserLinkTag} and adds it to the {@link $tags} array - * @param string $link - */ - function addLink($link) - { - if (phpDocumentor_setup::checkIgnoreTag('@link')) return; - $this->tags['link'][] = new parserLinkTag($link); - } - - /** - * creates a {@link parserLinkTag} and adds it to the {@link $tags} array - * @param string either see or uses - * @param string $value - */ - function addSee($keyword,$value) - { - if (phpDocumentor_setup::checkIgnoreTag($keyword)) return; - $tag = 'parser'.ucfirst($keyword).'Tag'; - $this->tags[$keyword][] = new $tag($value); - } - - /** - * creates a {@link parserReturnTag} and adds it to the {@link $tags} array - * @param string $returnType the one-word name of the return type (mixed should be used if more than one type) - * @param parserStringWithInlineTags $value - */ - function addReturn($returnType, $value) - { - // only take the first one - if (!$this->return) - { - $this->return = new parserReturnTag($returnType, $value); - } else - { - addError(PDERROR_MULTIPLE_RETURN_TAGS,$returnType,$value->getString()); - } - } - - /** - * creates a {@link parserVarTag} and adds it to the {@link $tags} array - * @param string $varType the one-word name of the variable type (mixed should be used if more than one type) - * @param parserStringWithInlineTags $value - */ - function addVar($varType, $value) - { - // only take the first one - if (!$this->var) - { - $this->var = new parserVarTag($varType, $value); - } else - { - addError(PDERROR_MULTIPLE_VAR_TAGS,$varType,$value->getString()); - } - } - - /** - * Adds a virtual @usedby tag to output - * @param abstractLink link to the element that has a @uses tag - * @param parserStringWithInlinetags description of how the elements uses - * this one - * @access private - */ - function addUsedBy($link, $descrip) - { - $this->tags['usedby'][] = new parserUsedByTag($link, $descrip); - } - - /** - * Add a @uses tag to the DocBlock - * @param string @see-style text, used for {@link Converter::getLink()} - * @param parserStringWithInlineTags description of how the used element is - * used - * @tutorial tags.uses.pkg - */ - function addUses($seeel, $description) - { - $this->tags['uses'][] = new parserUsesTag($seeel, $description); - } - - /** - * @param string - * @return mixed false if no keyword, unconverted value if one keyword, array of unconverted values if more than one keyword - */ - function getKeyword($keyword) - { - if ($keyword == 'filesource' && !$this->_canSource) return false; - if (isset($this->tags[$keyword])) - { - if (count($this->tags[$keyword]) == 1) - { - return $this->tags[$keyword][0]; - } else return $this->tags[$keyword]; - } else return false; - } - - /** - * @return array Format: array('var' => tag name, 'data' => unconverted tag value) - */ - function listParams() - { - if (isset($this->params)) - { - $ret = array(); - foreach($this->params as $key => $val) - { - $ret[] = array("var" => ucfirst($key),"data" => $val); - } - return $ret; - } else { - return array(); - } - } - - /** - * @param Converter - */ - function listTags() - { - $tags = array(); - foreach($this->tags as $keyword => $vals) - { - if ($keyword == 'filesource' && !$this->_canSource) continue; - foreach($vals as $val) - { - $tags[] = $val; - } - } - usort($tags,'tagsort'); - return $tags; - } - - /** @return string always 'docblock' */ - function getType() - { - return 'docblock'; - } -} - -/** - * @access private - */ -function tagsort($a, $b) -{ - switch(phpDocumentor_get_class($a)) - { - case 'parsertag' : - switch ($a->keyword) - { - case 'author' : - $o = 3; - break; - case 'version' : - $o = 4; - break; - case 'deprecated' : - case 'deprec' : - $o = 7; - break; - case 'todo' : - case 'TODO' : - $o = 8; - break; - case 'abstract' : - $o = 9; - break; - } - case 'parseraccesstag' : - $o = 10; - break; - case 'parsernametag' : - $o = 11; - break; - case 'parserseetag' : - $o = 5; - break; - case 'parserlinktag' : - $o = 6; - break; - case 'parserreturntag' : - $o = 0; - break; - case 'parservartag' : - $o = 1; - break; - case 'parserstaticvartag' : - $o = 2; - break; - default : - $o = 12; - break; - } - switch(phpDocumentor_get_class($b)) - { - case 'parsertag' : - switch ($b->keyword) - { - case 'author' : - $p = 3; - case 'version' : - $p = 4; - case 'deprecated' : - case 'deprec' : - $p = 7; - case 'todo' : - case 'TODO' : - $p = 8; - case 'abstract' : - $p = 9; - } - case 'parseraccesstag' : - $p = 10; - case 'parsernametag' : - $p = 11; - case 'parserseetag' : - $p = 5; - case 'parserlinktag' : - $p = 6; - case 'parserreturntag' : - $p = 0; - case 'parservartag' : - $p = 1; - case 'parsertutorialtag' : - $p = 1; - case 'parserstaticvartag' : - $p = 2; - default : - $p = 12; - } - if ($o == $p) return 0; - if ($o < $p) return -1; - if ($o > $p) return 1; -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc deleted file mode 100644 index a95d24b8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc +++ /dev/null @@ -1,1910 +0,0 @@ - - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserElement extends parserBase -{ - /** - * @var mixed either false or a {@link parserDocBlock} - */ - var $docblock = false; - /** - * name of this element, or include type if element is a {@link parserInclude} - */ - var $name; - - /** - * @var mixed either false or an array of paths to files with conflicts - */ - var $conflicts = false; - - /** - * location of this element (filename) - * @var string - */ - var $file = ''; - - /** - * full path location of this element (filename) - * @var string - */ - var $path = ''; - - /** - * line number on file where this element stops - * @since 1.2 - * @var false|integer - */ - var $endlinenumber = 0; - - /** - * Line number in the source on which this element appears - * @since 1.2 - * @var false|integer - */ - var $linenumber = false; - - /** - * @param parserDocBlock - */ - function setDocBlock($docblock) - { - $this->docblock = $docblock; - } - - /** - * @param string - */ - function setName($name) - { - $this->name = trim($name); - } - - /** - * Set starting line number - * @param integer - */ - function setLineNumber($number) - { - $this->linenumber = $number; - } - - /** - * Sets the ending line number of elements - * @param integer - */ - function setEndLineNumber($l) - { - $this->endlinenumber = $l; - } - - /** - * @return integer - */ - function getLineNumber() - { - return $this->linenumber; - } - - /** - * @return integer - */ - function getEndLineNumber() - { - return $this->endlinenumber; - } - - /** @return string package containing this element */ - function getPackage() - { - if ($this->docblock) - { - return $this->docblock->package; - } else return $GLOBALS['phpDocumentor_DefaultPackageName']; - } - - /** @param string */ - function setFile($file) - { - $this->file = $file; - } - - /** @param string */ - function setPath($file) - { - // look for special windows case - if(SMART_PATH_DELIMITER === '\\') - $this->path = strtr($file,'/','\\'); - else - $this->path = $file; - $this->path = $file; - } - - /** - * @return string - */ - function getName() - { - if (!isset($this->name)) return false; - return $this->name; - } - - /** - * @return string - */ - function getFile() - { - if (!isset($this->file)) return false; - return $this->file; - } - - /** - * @return string - */ - function getPath() - { - if (!isset($this->path)) return false; - return $this->path; - } -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserInclude extends parserElement -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'include' - */ - var $type = 'include'; -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserGlobal extends parserElement -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'global' - */ - var $type = 'global'; - - /** - * Name of the global's data type - * @var string - */ - var $datatype = 'mixed'; - - /** - * quick way to link to this element - * @return mixed converter-specific link to this global variable - * @param Converter - * @param string text to display for the link or false for default text - */ - function getLink(&$c, $text = false, $returnobj = false) - { - if ($returnobj) - { - return $c->getLink('global ' . $this->name, $this->docblock->package); - } - return $c->getGlobalLink($this->name, $this->docblock->package, $this->path, $text); - } - - /** - * Returns all global variables in other packages that have the same name as this global variable - * @return mixed false or an array Format: (package => {@link parserGlobal} of conflicting global variable) - * @param Converter - */ - function getConflicts(&$c) - { - $a = $c->proceduralpages->getGlobalConflicts($this->name); - unset($a[$this->docblock->package]); - return $a; - } - - /** - * Sets the name of the global variable's type - * @param string - */ - function setDataType($type) - { - $this->datatype = $type; - } - - /** - * Retrieve converter-specific representation of the data type - * - * If the data type is a documented class name, then this function will - * return a Converter-specific link to that class's documentation, so users - * can click/browse to the documentation directly from the global variable - * declaration - * @return string - * @param Converter - */ - function getDataType(&$converter) - { - $converted_datatype = $this->datatype; - if (strpos($this->datatype,'|')) - { - $types = explode('|',$this->datatype); - foreach($types as $returntype) - { - $a = $converter->getLink($returntype); - if (is_object($a) && phpDocumentor_get_class($a) == 'classlink') - { - if (!empty($my_types)) $my_types .= '|'; - $my_types .= $converter->returnSee($a,$converter->type_adjust($returntype)); - } else - { - if (!empty($my_types)) $my_types .= '|'; - $my_types .= $converter->type_adjust($returntype); - } - } - $converted_datatype = $my_types; - } else - { - $a = $converter->getLink($this->datatype); - if (is_object($a) && phpDocumentor_get_class($a) == 'classlink') - { - $converted_datatype = $converter->returnSee($a,$converter->type_adjust($this->datatype)); - } else - { - $converted_dataype = $converter->type_adjust($this->datatype); - } - } - return $converted_datatype; - } - -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserFunction extends parserElement -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'function' - */ - var $type = 'function'; - /** - * parameters parsed from function definition. - * - * param name may be null, in which case, updateParams() must be called from the Converter - * @var array Format: array(param name => default value parsed from function definition) - * @see updateParams() - */ - var $params = false; - /** - * Function returns a reference to an element, instead of a value - * - * set to true if function is declared as: - * - * function &func(... - * - * @var boolean - */ - var $returnsreference = false; - /** - * global declarations parsed from function definition - * - * @var array Format: array(globalname1, globalname2,....) - */ - var $globals = false; - /** - * static variable declarations parsed from function definition - * @var array Format: array(array('name' => staticvar1,'val' => '' or default val of staticvar1),...) - */ - var $statics = false; - - var $source = ''; - /** - * @param string - * @param string default value parsed from function definition - * @param boolean indicates whether this parameter has a default value - */ - function addParam($name, $value, $has_default = true) - { - $this->params[$name] = array($value, $has_default); - } - - /** - * Set the source code. Always array in PHP 4.3.0+ - * @param string|array - */ - function addSource($source) - { - $this->source = $source; - } - - /** - * Determine whether the source code has been requested via {@}source} - * @return boolean - */ - function hasSource() - { - if (is_array($this->source)) return true; - return strlen($this->source); - } - - /** - * @return string|array source code ready for highlighting - */ - function getSource() - { - return $this->source; - } - - /** - * quick way to link to this element - * @return mixed converter-specific link to this function - * @param Converter - * @param string text to display for the link or false for default text - */ - function getLink($c, $text = false, $returnobj = false) - { - if ($returnobj) - { - return $c->getLink('function ' . $this->name, $this->docblock->package); - } - return $c->getFunctionLink($this->name, $this->docblock->package, $this->path, $text); - } - - /** - * Returns all functions in other packages that have the same name as this function - * @return mixed false or an array Format: (package => {@link parserFunction} of conflicting functions) - * @param Converter - */ - function getConflicts(&$c) - { - $a = $c->proceduralpages->getFuncConflicts($this->name); - unset($a[$this->docblock->package]); - return $a; - } - - /** - * Add all "global $var, $var2" declarations to this function - * @param array $globals Format: array(globalname1, globalname2,....) - */ - function addGlobals($globals) - { - $this->globals = $globals; - } - - /** - * Add all "static $var, $var2 = 6" declarations to this function - * @param array Format: array(varname1, varname2,...) - * @param array Format: array(default val of var 1, default val of var 2,...) if var 1 has no default, array(default val of var 2,...) - */ - function addStatics($static,$vals) - { - if (count($static)) - { - $this->statics = array(); - for($i=0;$istatics[] = array('name' => $static[$i],'val' => $a); - } - } - } - } - - /** - * @return string default value of param $name - * @param string - */ - function getParam ($name) - { - if (!isset($this->params[$name])) return false; - $test = $this->params[$name]; - if ($test[1]) - { - return $this->params[$name]; - } else - { - return false; - } - } - - /** - * @return array format: array(array(paramname, default value),...) - */ - function listParams () - { - if (isset($this->params)) - { - $ret = array(); - if ($this->params) - foreach($this->params as $key => $val) - { - if ($val[1]) - { - $arr = array($key,$val[0]); - if (isset($val[2])) - { - $arr[2] = $val[2]; - } - $ret[] = $arr; - } else - { - $arr = array($key,false); - if (isset($val[2])) - { - $arr[2] = $val[2]; - } - $ret[] = $arr; - } - } - return $ret; - } else { - return array(); - } - } - - /** - * @return array format: array(array(index, globalname),...) - */ - function listGlobals () - { - if (isset($this->globals)) - { - $ret = array(); - if ($this->globals) - foreach($this->globals as $key => $val) - { - $ret[] = array($key,$val); - } - return $ret; - } else { - return array(); - } - } - - /** - * @return array format: array(array(static var name, static var default value),...) - */ - function listStatics () - { - if (isset($this->statics)) - { - $ret = array(); - if ($this->statics) - foreach($this->statics as $key => $val) - { - $ret[] = array($val['name'],$val['val']); - } - return $ret; - } else { - return array(); - } - } - - /** - * sets {@link $returnsreference} to true - */ - function setReturnsReference() - { - $this->returnsreference = true; - } - - /** - * @return boolean returns value of {@link $returnsreference} - */ - function getReturnsReference() - { - return $this->returnsreference; - } - - /** - * Get a human-friendly description of the function call - * - * takes declaration like: - * - * /** @returns string ... {rest of docblock} - * function &func($param1, $param2 = 6, - * $param3 = array('20',9 => "heroo")) - * {...} - * - * and returns: - * string &func( $param1, [$param2 = 6], [$param3 = array('20',9 => "heroo")] ) - * @return string stylized function declaration - */ - function getFunctionCall() - { - $a = ''; - if ($this->getReturnsReference()) $a = '&'; - $function_call = $a.$this->getName() . " ( "; - $tmp = 0; - foreach($this->listParams() as $param) - { - if ($tmp == 0) - { - $tmp = 1; - } else { - $function_call .= ", "; - } - if ($param[1] !== false) - { - $function_call .= "[$param[0] = $param[1]]"; - } else { - $function_call .= $param[0]; - } - $update_params[] = $param[0]; - } - $function_call .= " )"; - return $function_call; - } - - /** - * Like getFunctionCall(), but has no English or pre-determined formatting. - * - * Much more flexible. - * @return array Format: - * - * array('name' => function name, - * 'returnsref' => boolean if declared as "function &name()" - * 'params' => array('type' => data type of parameter, - * 'description' => from @param tag, - * 'name' => variable name, - * 'default' => default value if any)) - * - * @see getFunctionCall() - */ - function getIntricateFunctionCall($converter,$paramtags) - { - $a = array(); - if ($this->getReturnsReference()) $a['returnsref'] = true; - $a['name'] = $converter->type_adjust($this->getName()); - $c = $this->listParams(); - foreach($c as $param) - { - $b = array(); - $b['type'] = 'mixed'; - if (isset($paramtags[$param[0]])) - { - $b['type'] = $paramtags[$param[0]]['datatype']; - $b['description'] = $paramtags[$param[0]]['data']; - unset($paramtags[$param[0]]); - } elseif(isset($paramtags[substr($param[0],1)])) - { - $b['type'] = $paramtags[substr($param[0],1)]['datatype']; - $b['description'] = $paramtags[substr($param[0],1)]['data']; - unset($paramtags[substr($param[0],1)]); - } - if (isset($param[2])) - { - $b['type'] = $param[2]; - } - $b['name'] = $param[0]; - $b['default'] = $param[1]; - $b['hasdefault'] = ($param[1] !== false); - $a['params'][] = $b; - } - // @param tags that don't correspond to actual parameters (like extra function values) - if (count($paramtags)) - { - foreach($paramtags as $param) - { - $b = array(); - $b['type'] = $param['datatype']; - $b['description'] = $param['data']; - $b['name'] = $param['var']; - $b['default'] = ''; - $b['hasdefault'] = false; - $a['params'][] = $b; - } - } - return $a; - } -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserClass extends parserElement -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'class' - */ - var $type = 'class'; - /** @var string - * @see parserPage::$sourceLocation */ - var $sourceLocation = ''; - /** - * @var mixed false or contents of extends clause in class declaration - */ - var $extends = false; - /** - * @var array a list of interfaces this class implements - */ - var $_implements = array(); - /** - * @var array a list of interfaces this class implements - * @access private - */ - var $_modifiers = false; - /** - * @var boolean determines whether a class is considered to be an interface - * @access private - */ - var $_isInterface = false; - /** - * Format: array(file, parent) where parent class is found or false if no parent - * @var mixed - */ - var $parent = false; - /** - * Used to determine whether a class should be ignored or not. Helps maintain integrity of parsing - * @var boolean - * @see Classes::getParentClass() - */ - var $ignore = false; - - /** - * @var string same as {@link parserElement::$path} - */ - var $curfile = false; - /** - * @var tutorialLink|false either a link to the tutorial associated with this class, or false - */ - var $tutorial = false; - - /** - * Return name of the class that contains this method - * @return string - */ - function getModifiers() - { - return $this->_modifiers; - } - - /** - * Return name of the class that contains this method - * @return string - */ - function setModifiers($m) - { - $this->_modifiers = $m; - } - - /** - * @param parserTutorial - * @param Converter - */ - function addTutorial($t,&$c) - { - $this->tutorial = new tutorialLink; - $this->tutorial->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($c)); - } - - /** - * Get the associated tutorial for this class, if any - * @tutorial tutorials.pkg - * @return parserTutorial - */ - function getTutorial() - { - return $this->tutorial; - } - - /** - * Returns all classes in other packages that have the same name as this class - * @return mixed false or an array Format: (package => {@link parserClass} of conflicting classes) - * @param Converter - */ - function getConflicts(&$c) - { - $a = $c->classes->getConflicts($this->name); - unset($a[$this->docblock->package]); - return $a; - } - - /** - * quick way to link to this element - * @return mixed converter-specific link to this class - * @param Converter - * @param string text to display for the link or false for default text - */ - function getLink($c, $text = false, $returnobj = false) - { - if ($returnobj) - { - return $c->getLink('object ' . $this->name, $this->docblock->package); - } - return $c->getClassLink($this->name, $this->docblock->package, $this->curfile, $text); - } - - /** - * @param string parent class name - * @param string parent class file - * @param Classes {@link Classes} object currently calling setParent - * @see Classes::setClassParent() - */ - - function setParent($p,$f, &$c) - { - $this->parent = array($f, $p); - $p = $c->getClass($p, $f); - // inherit package if no @package tag is in the docblock, fixes 591396 - if (!$this->docblock->getExplicitPackage()) - { - $this->docblock->package = $p->docblock->package; - } - if ($this->docblock->package == $p->docblock->package) - { - if ($this->docblock->subpackage == '') - $this->docblock->subpackage = $p->docblock->subpackage; - } - $author = $p->docblock->getKeyword('author'); - $version = $p->docblock->getKeyword('version'); - $copyright = $p->docblock->getKeyword('copyright'); - // inherit tags - if (!$this->docblock->getKeyword('author')) - { - if ($author && !is_array($author)) $author = array($author); - if ($author) $this->docblock->tags['author'] = $author; - } - if (!$this->docblock->getKeyword('version')) - { - if ($version && !is_array($version)) $version = array($version); - if ($version) $this->docblock->tags['version'] = $version; - } - if (!$this->docblock->getKeyword('copyright')) - { - if ($copyright && !is_array($copyright)) $copyright = array($copyright); - if ($copyright) $this->docblock->tags['copyright'] = $copyright; - } - if (!$this->docblock->sdesc) - { - $this->docblock->setShortDesc($p->docblock); - $this->docblock->setDesc($p->docblock); - } else - { - if ($this->docblock->hasInheritDoc()) - { - $this->docblock->replaceInheritDoc($p->docblock); - } - } - } - - /** - * @param string $par parent class name (used by {@link Classes::setClassParent()} if parent class not found - */ - function setParentNoClass($par) - { - $this->parent = $par; - } - - /** - * Use this method to set the type of class to be an interface - */ - function setInterface() - { - $this->_isInterface = true; - } - - /** - * @return boolean true if this is an interface class - */ - function isInterface() - { - return $this->_isInterface; - } - - /** - * Use this method to set access modifiers for a class - * @param array - */ - function setAccessModifiers($modifiers) - { - $this->_modifiers = $modifiers; - } - - /** - * retrieve object that represents the parent class - * @param Converter this function will not work before the Conversion stage of parsing - * @return mixed returns the {@link parserClass} representation of the parent class, or false if no parent class - */ - function &getParent(&$c) - { - $a = false; - if (!$this->parent) return $a; - if (is_array($this->parent)) - { - return $c->classes->getClass($this->parent[1],$this->parent[0]); - } else return $this->parent; - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @return array returns a simple array of method objects - */ - function getMethods(&$c) - { - return $c->classes->getMethods($this->name,$this->curfile); - } - - /** - * @return mixed {@link parserMethod} or false if not found - * @param Converter this function will not work before the Conversion stage of parsing - * @param string method name in this class - */ - function getMethod(&$c, $name) - { - return $c->classes->getMethod($this->name,$this->curfile,$name); - } - - /** - * @return mixed {@link parserVar} or false if not found - * @param Converter this function will not work before the Conversion stage of parsing - * @param string var name in this class - */ - function getVar(&$c, $name) - { - return $c->classes->getVar($this->name,$this->curfile,$name); - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @return array returns a simple array of method name strings - */ - function getMethodNames(&$c) - { - if (!$c->classes->hasMethods($this->curfile, $this->name)) return array(); - $arr = array(); - $arr1 = $this->getMethods($c); - for($i=0; $i < count($arr1); $i++) - { - $arr[] = $arr1[$i]->name; - } - return $arr; - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @param string method name - * @return boolean whether this class has a method of name $name - */ - function hasMethod(&$c,$name) - { - return $c->classes->hasMethod($this->name, $this->curfile, $name); - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @param string var name - * @return boolean whether this class has a var of name $name - */ - function hasVar(&$c,$name) - { - return $c->classes->hasVar($this->name, $this->curfile, $name); - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @param string class constant name - * @return boolean whether this class has a constant of name $name - */ - function hasConst(&$c,$name) - { - return $c->classes->hasConst($this->name, $this->curfile, $name); - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @return array returns a simple array of var objects - */ - function getVars(&$c) - { - return $c->classes->getVars($this->name,$this->curfile); - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @return array returns a simple array of const objects - */ - function getConsts(&$c) - { - return $c->classes->getConsts($this->name,$this->curfile); - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @return array returns a simple array of var name strings - */ - function getVarNames(&$c) - { - if (!$c->classes->hasVars($this->curfile, $this->name)) return array(); - $arr = array(); - $arr1 = $this->getVars($c); - for($i=0; $i < count($arr1); $i++) - { - $arr[] = $arr1[$i]->name; - } - return $arr; - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @return array returns a simple array of const name strings - */ - function getConstNames(&$c) - { - if (!$c->classes->hasConsts($this->curfile, $this->name)) return array(); - $arr = array(); - $arr1 = $this->getConsts($c); - for($i=0; $i < count($arr1); $i++) - { - $arr[] = $arr1[$i]->name; - } - return $arr; - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @param boolean determines whether overriden methods should be included in the list of inherited methods - * @return array returns an array of methods by parent classname array(name => array(method1,method2..),name2 => array(method1....)) - */ - function getInheritedMethods(&$c,$override = false) - { - $x = $this; - $methods = array(); - $arr = array(); - while ($x->parent && is_array($x->parent)) - { - $methods = array_merge($methods,$x->getMethodNames($c)); - $par = $x->getParent($c); - $parmethodnames = $par->getMethodNames($c); - $parmethods = $par->getMethods($c); - for($i=0; $idocblock && $parmethods[$i]->docblock->hasaccess && !$c->parseprivate && $parmethods[$i]->docblock->tags['access'][0]->value == 'private') - { - continue; - } - $methods[] = $parmethodnames[$i]; - $arr[$par->getName()]['methods'][] = $parmethods[$i]; - $arr[$par->getName()]['file'] = $par->curfile; - } - } else - { - // fix for bug 587733 - if ($parmethods[$i]->docblock && $parmethods[$i]->docblock->hasaccess && !$c->parseprivate && $parmethods[$i]->docblock->tags['access'][0]->value == 'private') - { - continue; - } - $arr[$par->getName()]['methods'][] = $parmethods[$i]; - $arr[$par->getName()]['file'] = $par->curfile; - } - } - $x = &$par; - } - return $arr; - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @param boolean determines whether overriden vars should be included in the list of inherited vars - * @return array returns an array of vars by parent classname array(name => array(var1,var1..),name2 => array(var1....)) - */ - function getInheritedVars(&$c,$override = true, $vars = false) - { - $x = $this; - $vars = array(); - $arr = array(); - while ($x->parent && is_array($x->parent)) - { - $vars = array_merge($vars,$x->getVarNames($c)); - $par = $x->getParent($c); - $parvarnames = $par->getVarNames($c); - $parvars = $par->getVars($c); - for($i=0; $idocblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private') - { - continue; - } - $vars[] = $parvarnames[$i]; - $arr[$par->getName()]['vars'][] = $parvars[$i]; - $arr[$par->getName()]['file'] = $par->curfile; - } - } else - { - // fix for bug 587733 - if ($parvars[$i]->docblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private') - { - continue; - } - $arr[$par->getName()]['vars'][] = $parvars[$i]; - $arr[$par->getName()]['file'] = $par->curfile; - } - } - $x = &$par; - } - return $arr; - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @param boolean determines whether overriden vars should be included in the list of inherited vars - * @return array returns an array of consts by parent classname array(name => array(const1,const2..),name2 => array(const1....)) - */ - function getInheritedConsts(&$c,$override = false, $consts = false) - { - $x = $this; - $consts = array(); - $arr = array(); - while ($x->parent && is_array($x->parent)) - { - $consts = array_merge($consts,$x->getConstNames($c)); - $par = $x->getParent($c); - $parvarnames = $par->getConstNames($c); - $parvars = $par->getConsts($c); - for($i=0; $idocblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private') - { - continue; - } - $consts[] = $parvarnames[$i]; - $arr[$par->getName()]['consts'][] = $parvars[$i]; - $arr[$par->getName()]['file'] = $par->curfile; - } - } else - { - // fix for bug 587733 - if ($parvars[$i]->docblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private') - { - continue; - } - $arr[$par->getName()]['consts'][] = $parvars[$i]; - $arr[$par->getName()]['file'] = $par->curfile; - } - } - $x = &$par; - } - return $arr; - } - - /** - * @param Converter this function will not work before the Conversion stage of parsing - * @return array Format: array(parentclassname => parserClass/false if no parent, parentclassname2 => ...) - */ - function getParentClassTree(&$c) - { - $result = array(); - $result[$this->name] = $arr = $this->getParent($c); - if (is_string($arr)) $result[$arr] = false; - while ($arr && is_object($arr)) - { - $result[$arr->name] = $arr->getParent($c); - $arr = $arr->getParent($c); - if (is_string($arr)) $result[$arr] = false; - } - return $result; - } - - /** - * returns a list of all child classes of this class - * @param Converter this function will not work before the Conversion stage of parsing - * @return array Format: array(parserClass child1,parserClass child2,...) - */ - function getChildClassList(&$c) - { - $list = array(); - $kids = $c->classes->getDefiniteChildren($this->name,$this->curfile); - if ($kids) - { - foreach($kids as $chile => $file) - { - $list[] = $c->classes->getClass($chile,$file); - } - } - return $list; - } - - /** - * @param string - * @see $sourceLocation - */ - function setSourceLocation($sl) - { - $this->sourceLocation = $sl; - } - - /** - * @param Converter - * @param boolean - * @return string - * @see $sourceLocation - */ - function getSourceLocation($c,$pearize = false) - { - global $_phpDocumentor_options; - if (!isset($this->sourceLocation)) return false; - if ($pearize) - { - $sl = $this->sourceLocation; - if (strpos($sl,'pear/')) - { - $sl = substr($sl,strpos($sl,'pear/') + 5); - return $sl; - } else - { - return $sl; - } - return $sl; - } - return $this->sourceLocation; - } - - /** - * @param string - * @see $extends - */ - function setExtends($extends) - { - $this->extends = $extends; - } - - /** - * @param string - */ - function addImplements($implements) - { - $this->_implements[] = $implements; - } - - /** - * @return array - */ - function getImplements() - { - return $this->_implements; - } - - /** - * @return boolean - * @see $extends - */ - function getExtends() - { - if (!isset($this->extends)) return false; - return $this->extends; - } -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserVar extends parserElement -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'var' - */ - var $type = 'var'; - /** @var string class that contains this var */ - var $class = ''; - /** @var array */ - var $_modifiers; - - /** - * @param string - */ - function parserVar($class) - { - $this->class = $class; - } - - /** - * Retrieve the class name - * @return string Class name that this var belongs to - */ - function getClass() - { - return $this->class; - } - - /** - * Return name of the class that contains this method - * @return string - */ - function getModifiers() - { - return $this->_modifiers; - } - - /** - * Return name of the class that contains this method - * @return string - */ - function setModifiers($m) - { - $this->_modifiers = $m; - } - - /** - * quick way to link to this element - * @return mixed converter-specific link to this var - * @param Converter $c - * @param string $text text to display for the link or false for default text - */ - function getLink($c, $text = false, $returnobj = false) - { - if ($returnobj) - { - return $c->getLink($this->class . '::' . $this->name, $this->docblock->package); - } - return $c->getVarLink($this->name, $this->class, $this->docblock->package, false, $text); - } - - /** - * @param Converter - * @return mixed {@link parserVar} representing var this var overrides from the parent class, or false if none - */ - function getOverrides(&$c) - { - $class = $c->classes->getClass($this->class,$this->path); - $par = $class->getParent($c); - - while (is_object($par)) - { - if ($par->hasVar($c,$this->name)) - { - $var = $par->getVar($c,$this->name); - if (!($var->docblock && $var->docblock->hasaccess && !$c->parseprivate && $var->docblock->tags['access'][0]->value == 'private')) - return $var; - } - $par = $par->getParent($c); - } - - return false; - } - - /** - * @param Converter - * @return array an array of parserVars from ALL child classes that override this var - */ - function getOverridingVars(&$c) - { - $class = $c->classes->getClass($this->class,$this->path); - - return $this->getOverridingVarsForClass($c, $class); - } - - /** - * @param Converter - * @param parserClass - * @return array an array of parserVars from ALL child classes that override this var in the given class - */ - function getOverridingVarsForClass(&$c, &$class) - { - $vars = array(); - if (!$class) return $meths; - $kids = $class->getChildClassList($c); - for($i=0; $ihasVar($c, $this->name)) - { - $var = $kids[$i]->getVar($c,$this->name); - if (!($var->docblock && $var->docblock->hasaccess && !$c->parseprivate && $var->docblock->tags['access'][0]->value == 'private')) - $vars[] = $var; - } - - $vars = array_merge($vars, $this->getOverridingVarsForClass($c, $kids[$i])); - } - return $vars; - } -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.2.4 - */ -class parserConst extends parserElement -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'const' - */ - var $type = 'const'; - /** @var string class that contains this var */ - var $class = ''; - - /** - * @param string - */ - function parserConst($class) - { - $this->class = $class; - } - - /** - * Retrieve the class name - * @return string Class name that this var belongs to - */ - function getClass() - { - return $this->class; - } - - /** - * quick way to link to this element - * @return mixed converter-specific link to this var - * @param Converter $c - * @param string $text text to display for the link or false for default text - */ - function getLink($c, $text = false, $returnobj = false) - { - if ($returnobj) - { - return $c->getLink($this->class . '::'. $this->name, $this->docblock->package); - } - return $c->getConstLink($this->name, $this->class, $this->docblock->package, false, $text); - } -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserMethod extends parserFunction -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'method' - */ - var $type = 'method'; - /** @var boolean whether this method is a constructor */ - var $isConstructor = false; - /** @var boolean whether this method is a destructor by PEAR standards */ - var $isDestructor = false; - /** @var string class that contains this method */ - var $class = ''; - var $_modifiers = array(); - - /** - * @param string - */ - function parserMethod($class) - { - $this->class = $class; - } - - /** - * @param string - * @param string default value parsed from function definition - * @param boolean indicates whether this parameter has a default value - * @param null|string class type hint - */ - function addParam($name, $value, $has_default = true, $typehint = null) - { - $this->params[$name] = array($value, $has_default); - if (isset($typehint)) - { - $this->params[$name][2] = $typehint; - } - } - - /** - * adds "constructor " to start of function call if {@link $isConstructor} is true - * @return string - * @see parent::getFunctionCall() - */ - function getFunctionCall() - { - $a = parserFunction::getFunctionCall(); - if ($this->isConstructor) $a = "constructor $a"; - return $a; - } - - function getIntricateFunctionCall($converter,$paramtags) - { - $a = parserFunction::getIntricateFunctionCall($converter,$paramtags); - if ($this->isConstructor) $a['constructor'] = true; - if ($this->isDestructor) $a['destructor'] = true; - return $a; - } - - /** - * Return name of the class that contains this method - * @return string - */ - function getClass() - { - return $this->class; - } - - /** - * Return name of the class that contains this method - * @return string - */ - function getModifiers() - { - return $this->_modifiers; - } - - /** - * Return name of the class that contains this method - * @return string - */ - function setModifiers($m) - { - $this->_modifiers = $m; - } - - /** - * @param Converter - * @return mixed {@link parserMethod} representing method this method overrides from the parent class, or false if none - */ - function getOverrides(&$c) - { - $class = $c->classes->getClass($this->class,$this->path); - - $par = $class->getParent($c); - - while (is_object($par)) - { - if ($par->hasMethod($c,$this->name)) - { - $meth = $par->getMethod($c,$this->name); - if (!($meth->docblock && $meth->docblock->hasaccess && !$c->parseprivate && $meth->docblock->tags['access'][0]->value == 'private')) - return $meth; - } - - $par = $par->getParent($c); - } - - return false; - } - - /** - * quick way to link to this element - * @return mixed converter-specific link to this method - * @param Converter $c - * @param string $text text to display for the link or false for default text - */ - function getLink($c, $text = false, $returnobj = false) - { - if ($returnobj) - { - return $c->getLink($this->class . '::' . $this->name . '()', $this->docblock->package); - } - return $c->getMethodLink($this->name, $this->class, $this->docblock->package, false, $text); - } - - /** - * Use this method to tell the parser that this method is the class constructor - */ - function setConstructor() - { - $this->isConstructor = true; - } - - /** - * Use this method to tell the parser that this method is the class constructor - */ - function setDestructor() - { - $this->isDestructor = true; - } - - /** - * @param Converter - * @return array an array of parserMethods from child classes that override this method - */ - function getOverridingMethods(&$c) - { - $class = $c->classes->getClass($this->class,$this->path); - - return $this->getOverridingMethodsForClass($c, $class); - } - - /** - * @param Converter - * @param parserClass - * @return array an array of parserMethods from ALL child classes that override this method in the given class - */ - function getOverridingMethodsForClass(&$c, &$class) - { - $meths = array(); - if (!$class) return $meths; - $kids = $class->getChildClassList($c); - for($i=0; $ihasMethod($c, $this->name)) - { - $meth = $kids[$i]->getMethod($c,$this->name); - if (!($meth->docblock && $meth->docblock->hasaccess && !$c->parseprivate && $meth->docblock->tags['access'][0]->value == 'private')) - $meths[] = $meth; - } - - $meths = array_merge($meths, $this->getOverridingMethodsForClass($c, $kids[$i])); - } - return $meths; - } -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserDefine extends parserElement -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'define' - */ - var $type = 'define'; - - /** - * quick way to link to this element - * @return mixed converter-specific link to this define - * @param Converter $c - * @param string $text text to display for the link or false for default text - */ - function getLink($c, $text = false, $returnobj = false) - { - if ($returnobj) - { - return $c->getLink('constant ' . $this->name, $this->docblock->package); - } - return $c->getDefineLink($this->name, $this->docblock->package, false, $text); - } - - /** - * Returns all defines in other packages that have the same name as this define - * @return mixed false or an array Format: (package => {@link parserDefine} of conflicting defines) - * @param Converter - */ - function getConflicts(&$c) - { - $a = $c->proceduralpages->getDefineConflicts($this->name); - unset($a[$this->docblock->package]); - return $a; - } - -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @author Greg Beaver - * @since 1.0rc1 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $ - */ -class parserPackagePage extends parserStringWithInlineTags -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'packagepage' - */ - var $type = 'packagepage'; - /** @var string */ - var $package = 'default'; - - /** - * @param string - */ - function parserPackagePage($package) - { - $this->package = $package; - } - - /** - * @param Converter - */ - function Convert(&$c) - { - return parent::Convert($c,false); - } -} - -/** - * @package phpDocumentor - * @subpackage ParserElements - * @since 1.2 - */ -class parserTutorial extends parserPackagePage -{ - /** - * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah' - * @var string always 'tutorial' - */ - var $type = 'tutorial'; - /** @var string */ - var $package = 'default'; - /** - * Either cls, pkg, or proc - * @var string - */ - var $tutorial_type; - /** - * The documentable element this tutorial is linked to - * - * Can be a parserData, parserClass, or nothing for package/subpackage docs - */ - var $linked_element; - /** - * path to the tutorial page - * @var string - */ - var $path; - /** - * filename minus extension of this tutorial (used for @tutorial tag) - * @var string - */ - var $name; - /** @var boolean */ - var $_xml = true; - /** - * output from tutorialname.ext.ini - * - * an array generated by {@link phpDocumentor_parse_ini_file()} containing - * an index 'Linked Tutorials' with an array of tutorial names in the order - * they should appear. This is used to generate a linked list of tutorials like - * {@tutorial phpDocumentor/tags.pkg} - * @var array - */ - var $ini = false; - /** - * link to the next tutorial in a document series, or false if none - * @var tutorialLink - */ - var $next = false; - /** - * link to the previous tutorial in a document series, or false if none - * @var tutorialLink - */ - var $prev = false; - /** - * link to the parent tutorial in a document series, or false if none - * - * This is used to generate an "Up" or "Home" link like the php manual. - * The parent is defined as a tutorial that has a parenttutorialname.ext.ini - * file and is not contained by any other tutorial's tutorialname.ext.ini - * @var tutorialLink - */ - var $parent = false; - /** - * links to the child tutorials, or false if none - * @var array - */ - var $children = false; - - /** - * @param parserXMLDocBookTag top-level tag ( for 1.2.0) - * @param information about the tutorial file. Format: - * - *
                                                    -     * array('tutename' => tutorial name,
                                                    -     *       'path' => relative path of tutorial to tutorials/ directory
                                                    -     *       'ini' => contents of the tutorial .ini file, if any)
                                                    -     * 
                                                    - */ - function parserTutorial($data, $info) - { - $this->value = $data; - $this->package = $info['package']; - $this->subpackage = $info['subpackage']; - $this->tutorial_type = $info['tutetype']; - $this->name = $info['tutename']; - $this->path = $info['path']; - $this->ini = $info['ini']; - } - - /** - * Retrieve the title of the tutorial, or of any subsection - * @param Converter - * @param string which subsection to retrieve the title from, if any - * @uses parserXMLDocBookTag::getSubSection() retrieve the subsection to - * to get a title from - */ - function getTitle(&$c,$subsection = '') - { - if (!empty($subsection)) - { - $z = $this->value->getSubSection($c,$subsection); - if (!$z) - { - addWarning(PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND,$this->name,$subsection); - return $subsection; - } - return $z->getTitle($c); - } - return $this->value->getTitle($c); - } - - /** - * @param Converter - * @param boolean determines whether character data is postprocessed to be - * Converter-friendly or not. - */ - function Convert(&$c, $postprocess = true) - { - return $this->value->Convert($c, $postprocess); - } - - /** - * @uses $parent creates a link to the documentation for the parent tutorial - * @param parserTutorial - * @param Converter - */ - function setParent($parent,&$c) - { - $this->parent = new tutorialLink; - $this->parent->addLink('', $parent->path, $parent->name, $parent->package, $parent->subpackage, $parent->getTitle($c)); - } - - /** - * @param array array of parserTutorials that have child tutorials - */ - function isChildOf($parents) - { - foreach($parents as $i => $parent) - { - if ($parent->path == $this->path) continue; - if ($parent->ini && ($parent->package == $this->package) && ($parent->subpackage == $this->subpackage) && ($parent->tutorial_type == $this->tutorial_type)) - { - foreach($parent->ini['Linked Tutorials'] as $child) - { - if ($child . '.' . $this->tutorial_type == $this->name) return true; - } - } - } - } - - /** - * Retrieve converter-specific link to the parent tutorial's documentation - * @param Converter - */ - function getParent(&$c) - { - if (!$this->parent) return false; - return $c->returnSee($this->parent); - } - - /** - * @uses $next creates a link to the documentation for the next tutorial - * @param parserTutorial - * @param Converter - */ - function setNext($next,&$c) - { - if (phpDocumentor_get_class($next) == 'tutoriallink') return $this->next = $next; - $this->next = new tutorialLink; - $this->next->addLink('', $next->path, $next->name, $next->package, $next->subpackage, $next->getTitle($c)); - } - - /** - * Retrieve converter-specific link to the next tutorial's documentation - * @param Converter - */ - function getNext(&$c) - { - if (!$this->next) return false; - return $c->returnSee($this->next); - } - - /** - * @uses $prev creates a link to the documentation for the previous tutorial - * @param parserTutorial - * @param Converter - */ - function setPrev($prev,&$c) - { - if (phpDocumentor_get_class($prev) == 'tutoriallink') return $this->prev = $prev; - $this->prev = new tutorialLink; - $this->prev->addLink('', $prev->path, $prev->name, $prev->package, $prev->subpackage, $prev->getTitle($c)); - } - - /** - * Retrieve converter-specific link to the previous tutorial's documentation - * @param Converter - */ - function getPrev(&$c) - { - if (!$this->prev) return false; - return $c->returnSee($this->prev); - } - - /** - * Get a link to this tutorial, or to any subsection of this tutorial - * @param Converter - * @param boolean if true, returns a {@link tutorialLink} instead of a string - * @param string section name to link to - * @return string|tutorialLink - */ - function getLink(&$c,$pure = false,$section = '') - { - $link = new tutorialLink; - $link->addLink($section, $this->path, $this->name, $this->package, $this->subpackage, $this->getTitle($c), $this->category); - if ($pure) return $link; - return $c->returnSee($link); - } -} - -?> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc b/buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc deleted file mode 100644 index a26fbacc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc +++ /dev/null @@ -1,782 +0,0 @@ - - * @since 1.1 - * @version $Id: ProceduralPages.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -/** - * Intermediate procedural page parsing structure. - * This structure parses defines, functions, and global variables by file, - * and then iterates over the elements to document conflicts. - * @package phpDocumentor - * @author Greg Beaver - * @since 1.1 - * @version $Id: ProceduralPages.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - */ -class ProceduralPages -{ - /** - * file being parsed, used in every add function to match up elements with the file that contains them - * @see addClass(), addMethod(), addVar(), nextFile() - * @var string - */ - var $curfile; - /** - * array of all procedural pages ordered by name - * Format: - * array(name => array(fullpath => parserPage,fullpath => parserPage2 [if there are name conflicts],...)) - * @var array - */ - var $pages = array(); - /** - * array of all procedural pages ordered by name that have been ignored via -po or @access private or @ignore - * Format: - * array(name => array(fullpath => parserPage,fullpath => parserPage2 [if there are name conflicts],...)) - * @var array - */ - var $ignorepages = array(); - /** - * array of all procedural page names ordered by full path to the file - * Format: - * array(fullpath => name) - * @var array - */ - var $pathpages = array(); - /** - * array of parsed includes organized by the full path of the file that contains the include. - * Format: - * array(full path => array(includename => {@link parserInclude})) - * @var array - */ - var $includesbyfile = array(); - /** - * array of parsed functions organized by the full path of the file that contains the function. - * Format: - * array(full path => array(functionname => {@link parserFunction})) - * @var array - */ - var $functionsbyfile = array(); - /** - * array of parsed defines organized by the full path of the file that contains the define. - * Format: - * array(full path => array(definename => {@link parserDefine})) - * @var array - */ - var $definesbyfile = array(); - /** - * array of parsed global variables organized by the full path of the file that contains the global variable definition. - * Format: - * array(full path => array(globalname => {@link parserGlobal})) - * @var array - */ - var $globalsbyfile = array(); - /** - * array of file names organized by functions that are in the file. - * This structure is designed to handle name conflicts. Two files can contain functions with the same name, and this array will - * record both filenames to help control namespace errors - * Format: - * array(functionname => array(full path of file containing functionname, full path of file 2 containing functionname...) - * @var array - */ - var $functionsbynamefile = array(); - /** - * array of file names organized by defines that are in the file. - * This structure is designed to handle name conflicts. Two files can contain defines with the same name, and this array will - * record both filenames to help control namespace errors - * Format: - * array(definename => array(full path of file containing definename, full path of file 2 containing definename...) - * @var array - */ - var $definesbynamefile = array(); - /** - * array of file names organized by global variables that are in the file. - * This structure is designed to handle name conflicts. Two files can contain global variables with the same name, and this array will - * record both filenames to help control namespace errors - * Format: - * array(global variablename => array(full path of file containing global variablename, full path of file 2 containing global variablename...) - * @var array - */ - var $globalsbynamefile = array(); - /** - * array of packages ordered by full path - * Format: - * array(fullpath => array(packagename,subpackagename)) - * @var array - */ - var $pagepackages = array(); - /** - * array of packages assigned to classes in a file, ordered by fullpath - * Format: - * array(fullpath => array(packagename => array(subpackagename => 1,subpackagename => 1,..),packagename2 =>...) - * @var array - */ - var $pageclasspackages = array(); - /** - * Namespace conflicts within all documented packages of functions - * Format: - * array(functionname => array(full path, full path,...)) - * @var array - */ - var $functionconflicts = array(); - /** - * Namespace conflicts within all documented pages - * Format: - * array(pagename => array(fullpath, fullpath,...)) - * @var array - */ - var $pageconflicts = array(); - /** - * Namespace conflicts within all documented packages of functions - * Format: - * array(functionname => array(full path, full path,...)) - * @var array - */ - var $defineconflicts = array(); - /** - * Namespace conflicts within all documented packages of functions - * Format: - * array(functionname => array(full path, full path,...)) - * @var array - */ - var $globalconflicts = array(); - /** @access private - * @var array */ - var $revcpbf = array(); - /** @access private - * @var boolean */ - var $packagesetup = false; - - /** - * sets up the {@link $pages} array - * @param parserPage &$element - */ - function addPage(&$element) - { - $this->curfile = $element->getPath(); - $this->pages[$element->getFile()][$element->getPath()] = $element; - $this->pathpages[$this->curfile] = $element->getFile(); - $this->addPagePackage($this->curfile, $element->package, $element->subpackage); - } - - /** - * moves a page from the {@link $pages} array to the {@link $ignorepages} array - * @param parserPage &$element - */ - function ignorePage(&$element) - { - $this->ignorepages[$element->getFile()][$element->getPath()] = $this->pages[$element->getFile()][$element->getPath()]; - unset($this->pages[$element->getFile()][$element->getPath()]); - } - - function getPathInfo($path,&$c) - { - $path = str_replace('/',SMART_PATH_DELIMITER,$path); - $info = array(); - if (!isset($this->pathpages[$path])) return false; - $p = $this->pages[$this->pathpages[$path]][$path]; - $p->name = $c->getPageName($p); - $info['package'] = $p->package; - $info['subpackage'] = $p->subpackage; - $info['name'] = $p->getFile(); - $info['source_loc'] = $p->getSourceLocation($c); - $x = new pageLink; - $x->addLink($p->path,$p->name,$p->file,$p->package, $p->subpackage); - $info['docs'] = $c->returnSee($x); - return $info; - } - - /** - * Change a page's name from its file to alias $name - * - * This function is used to handle a @name tag in a page-level DocBlock - * @param string $name - */ - function setName($name) - { - $this->pages[$name][$this->curfile] = $this->pages[$this->pathpages[$this->curfile]][$this->curfile]; - $this->pages[$name][$this->curfile]->file = $name; - unset($this->pages[$this->pathpages[$this->curfile]][$this->curfile]); - $this->pathpages[$this->curfile] = $name; - } - - /** - * Changes the package of the page represented by $path - * - * changes package in both the {@link $pages} array and the {@link pagepackages} array - * @param string $path full path - * @param string $package - * @param string $subpackage - */ - function addPagePackage($path,$package,$subpackage) - { - $this->pages[$this->pathpages[$path]][$path]->package = $package; - $this->pages[$this->pathpages[$path]][$path]->subpackage = $subpackage; - $this->pagepackages[$path] = array($package, $subpackage); - if (isset($this->includesbyfile[$path])) - { - foreach($this->includesbyfile[$path] as $i => $el) - { - $el->package = $package; - $el->subpackage = $subpackage; - $this->includesbyfile[$path][$i] = $el; - } - } - if (isset($this->functionsbyfile[$path])) - { - foreach($this->functionsbyfile[$path] as $i => $el) - { - $el->package = $package; - $el->subpackage = $subpackage; - $this->functionsbyfile[$path][$i] = $el; - } - } - if (isset($this->definesbyfile[$path])) - { - foreach($this->definesbyfile[$path] as $i => $el) - { - $el->package = $package; - $el->subpackage = $subpackage; - $this->definesbyfile[$path][$i] = $el; - } - } - if (isset($this->globalsbyfile[$path])) - { - foreach($this->globalsbyfile[$path] as $i => $el) - { - $el->package = $package; - $el->subpackage = $subpackage; - $this->globalsbyfile[$path][$i] = $el; - } - } - } - - /** - * sets up the {@link $includesbyfile} array using {@link $curfile} - * @param parserInclude &$element - */ - function addInclude(&$element) - { - $this->includesbyfile[$this->curfile][] = $element; - } - - /** - * sets up the {@link $functionsbyfile} array using {@link $curfile} - * @param parserFunction &$element - */ - function addFunction(&$element) - { - if (isset($this->functionsbyfile[$this->curfile])) - { - foreach($this->functionsbyfile[$this->curfile] as $i => $function) - { - if ($function->getName() == $element->getName()) - { - addWarning(PDERROR_ELEMENT_IGNORED,'function',$element->getName(),$this->curfile); - return; - } - } - } - $this->functionsbyfile[$this->curfile][] = $element; - $this->functionsbynamefile[$element->getName()][] = $this->curfile; - } - - /** - * sets up the {@link $globalsbyfile} array using {@link $curfile} - * @param parserGlobal &$element - */ - function addGlobal(&$element) - { - if (isset($this->globalsbyfile[$this->curfile])) - { - foreach($this->globalsbyfile[$this->curfile] as $i => $global) - { - if ($global->getName() == $element->getName()) - { - addWarning(PDERROR_ELEMENT_IGNORED,'global variable',$element->getName(),$this->curfile); - return; - } - } - } - $this->globalsbyfile[$this->curfile][] = $element; - $this->globalsbynamefile[$element->getName()][] = $this->curfile; - } - - /** - * sets up the {@link $definesbyfile} array using {@link $curfile} - * @param parserDefine &$element - */ - function addDefine(&$element) - { - if (isset($this->definesbyfile[$this->curfile])) - { - foreach($this->definesbyfile[$this->curfile] as $i => $define) - { - if ($define->getName() == $element->getName()) - { - addWarning(PDERROR_ELEMENT_IGNORED,'define',$element->getName(),$this->curfile); - return; - } - } - } - $this->definesbyfile[$this->curfile][] = $element; - $this->definesbynamefile[$element->getName()][] = $this->curfile; - } - - /** - * Used to align an element with the package of its parent page prior to Conversion. - * @param parserElement &$element - */ - function replaceElement(&$element) - { - if ($element->type == 'define') - { - foreach($this->definesbyfile[$element->getPath()] as $i => $el) - { - if ($el->getName() == $element->getName()) - { - $this->definesbyfile[$element->getPath()][$i] = &$element; - } - } - } elseif ($element->type == 'global') - { - foreach($this->globalsbyfile[$element->getPath()] as $i => $el) - { - if ($el->getName() == $element->getName()) - { - $this->globalsbyfile[$element->getPath()][$i] = &$element; - } - } - } elseif ($element->type == 'include') - { - foreach($this->includesbyfile[$element->getPath()] as $i => $el) - { - if ($el->getName() == $element->getName()) - { - $this->includesbyfile[$element->getPath()][$i] = &$element; - } - } - } elseif ($element->type == 'function') - { - foreach($this->functionsbyfile[$element->getPath()] as $i => $el) - { - if ($el->getName() == $element->getName()) - { - $this->functionsbyfile[$element->getPath()][$i] = &$element; - } - } - } - } - - /** - * adds a package from a class to the current file - * @param string $file full path to the file that contains the class - * @param string $package package name - */ - function addClassPackageToFile($file,$package,$subpackage) - { - // don't care about default -// if ($package == $GLOBALS['phpDocumentor_DefaultPackageName']) -// $this->revcpbf[$file][$package][$subpackage] = 1; - if (!isset($this->revcpbf[$file][$package][$subpackage])) - { - $this->pageclasspackages[$file][$package][$subpackage] = 1; - } - $this->revcpbf[$file][$package][$subpackage] = 1; - } - - /** - * if there is one class package in a file, the parent path inherits the package if its package is default. - * helps with -po to avoid dumb bugs - */ - function setupPagePackages() - { - if ($this->packagesetup) return; - foreach($this->pageclasspackages as $fullpath => $packages) - { - if (isset($this->pagepackages[$fullpath])) - { - if ($this->pagepackages[$fullpath][0] == $GLOBALS['phpDocumentor_DefaultPackageName']) - { - if (count($packages) == 1) - { - list($package,$subpackage) = each($packages); - if (count($subpackage) == 1) list($subpackage,) = each($subpackage); - else $subpackage = ''; - $this->addPagePackage($fullpath,$package,$subpackage); - } - } - } - } - $this->packagesetup = true; - } - - /** - * extracts function, define, and global variable name conflicts within the same package and between different - * packages. No two elements with the same name are allowed in the same package, to keep automatic linking - * possible. - * @access private - */ - function setupConflicts(&$render) - { - - foreach($this->functionsbynamefile as $function => $paths) - { - if (count($paths) - 1) - { //conflict - $package = array(); - foreach($paths as $path) - { - // create a list of conflicting functions in each package - $package[$this->pagepackages[$path][0]][] = $path; - } - foreach($package as $pathpackages) - { - // if at least 2 functions exist in the same package, delete all but the first one and add warnings - if (count($pathpackages) - 1) - { - for($i=1; $i < count($pathpackages); $i++) - { - addWarning(PDERROR_ELEMENT_IGNORED,'function',$function,$pathpackages[$i]); - foreach($this->functionsbyfile[$pathpackages[$i]] as $j => $blah) - { - if ($this->functionsbyfile[$pathpackages[$i]][$j]->getName() == $function) - unset($this->functionsbyfile[$pathpackages[$i]][$j]); - } - $oth = array_flip($paths); - unset($paths[$oth[$pathpackages[$i]]]); - } - } - } - $this->functionconflicts[$function] = $paths; - } - } - - foreach($this->definesbynamefile as $define => $paths) - { - if (count($paths) - 1) - { //conflict - $package = array(); - foreach($paths as $path) - { - // create a list of conflicting functions in each package - $package[$this->pagepackages[$path][0]][] = $path; - } - foreach($package as $pathpackages) - { - // if at least 2 functions exist in the same package, delete all but the first one and add warnings - if (count($pathpackages) - 1) - { - for($i=1; $i < count($pathpackages); $i++) - { - addWarning(PDERROR_ELEMENT_IGNORED,'define',$define,$pathpackages[$i]); - foreach($this->definesbyfile[$pathpackages[$i]] as $j => $blah) - { - if ($this->definesbyfile[$pathpackages[$i]][$j]->getName() == $define) - unset($this->definesbyfile[$pathpackages[$i]][$j]); - } - $oth = array_flip($paths); - unset($paths[$oth[$pathpackages[$i]]]); - } - } - } - $this->defineconflicts[$define] = $paths; - } - } - - foreach($this->globalsbynamefile as $global => $paths) - { - if (count($paths) - 1) - { //conflict - $package = array(); - foreach($paths as $path) - { - // create a list of conflicting functions in each package - $package[$this->pagepackages[$path][0]][] = $path; - } - foreach($package as $pathpackages) - { - // if at least 2 functions exist in the same package, delete all but the first one and add warnings - if (count($pathpackages) - 1) - { - for($i=1; $i < count($pathpackages); $i++) - { - addWarning(PDERROR_ELEMENT_IGNORED,'global variable',$global,$pathpackages[$i]); - foreach($this->globalsbyfile[$pathpackages[$i]] as $j => $blah) - { - if ($this->globalsbyfile[$pathpackages[$i]][$j]->getName() == $global) - unset($this->globalsbyfile[$pathpackages[$i]][$j]); - } - $oth = array_flip($paths); - unset($paths[$oth[$pathpackages[$i]]]); - } - } - } - $this->globalconflicts[$global] = $paths; - } - } - - foreach($this->pages as $name => $pages) - { - if (count($pages) - 1) - { // possible conflict - - } - } - } - - /** - * called by {@link parserFunction::getConflicts()} to get inter-package conflicts, should not be called directly - * @access private - * @return array Format: (package => {@link parserFunction} of conflicting function) - */ - function getFuncConflicts($name) - { - if (!isset($this->functionconflicts[$name])) return false; - $a = array(); - foreach($this->functionconflicts[$name] as $conflict) - { - foreach($this->functionsbyfile[$conflict] as $i => $func) - { - if ($func->getName() == $name) - $a[$this->functionsbyfile[$conflict][$i]->docblock->package] = $this->functionsbyfile[$conflict][$i]; - } - } - return $a; - } - - /** - * called by {@link parserGlobal::getConflicts()} to get inter-package conflicts, should not be called directly - * @access private - * @return array Format: (package => {@link parserGlobal} of conflicting global variable) - */ - function getGlobalConflicts($name) - { - if (!isset($this->globalconflicts[$name])) return false; - $a = array(); - foreach($this->globalconflicts[$name] as $conflict) - { - foreach($this->globalsbyfile[$conflict] as $i => $func) - { - if ($func->getName() == $name) - $a[$this->globalsbyfile[$conflict][$i]->docblock->package] = $this->globalsbyfile[$conflict][$i]; - } - } - return $a; - } - - /** - * called by {@link parserDefine::getConflicts()} to get inter-package conflicts, should not be called directly - * @access private - * @return array Format: (package => {@link parserDefine} of conflicting define) - */ - function getDefineConflicts($name) - { - if (!isset($this->defineconflicts[$name])) return false; - $a = array(); - foreach($this->defineconflicts[$name] as $conflict) - { - foreach($this->definesbyfile[$conflict] as $i => $func) - { - if ($func->getName() == $name) - $a[$this->definesbyfile[$conflict][$i]->docblock->package] = $this->definesbyfile[$conflict][$i]; - } - } - return $a; - } - - /** - * Adjusts packages of all pages and removes name conflicts within a package - * - * Automatic linking requires that each linkable name have exactly one element associated with it. In other words, there - * cannot be two functions named foo() in the same package. This also adheres to php rules with one exception: - * - * - * if ($test == 3) - * { - * define('whatever','this thing'); - * } else - * { - * define('whatever','this other thing'); - * } - * - * - * phpDocumentor is not aware of conditional control structures because it would slow things down considerably. - * So, what phpDocumentor does is automatically ignore the second define and raise a warning. The warning can - * be eliminated with an @ignore tag on the second element like so: - * - * - * if ($test == 3) - * { - * define('whatever','this thing'); - * } else - * { - * /** @ignore {@*} - * define('whatever','this other thing'); - * } - * - * - * if there are two files that contain the same procedural elements in the same package (for example, - * a common configuration file common.php), they will also be ignored as if they were in the same file. The - * reasoning behind this is simple. A package is an indivisible set of files and classes that a user will - * include in their code. Name conflicts must be avoided to allow successful execution. - * - * This function also plays the all-important role of calling {@link phpDocumentor_IntermediateParser::addElementToPage()} in - * order to add processed elements to their pages for Conversion. - * @param phpDocumentor_IntermediateParser &$render - */ - function setupPages(&$render) - { - global $_phpDocumentor_setting; - phpDocumentor_out("\nProcessing Procedural Page Element Name Conflicts\n\n"); - flush(); - $this->setupPagePackages(); - $this->setupConflicts($render); -// phpDocumentor_out("\nProcessing Procedural Pages\n\n"); - foreach($this->pathpages as $path => $name) - { -// phpDocumentor_out("Processing $path\n"); - $a = $this->pagepackages[$path]; - $b = &$this->pages[$name][$path]; - $render->addPage($b, $path); - $render->addUses($b, $path); - if (isset($this->includesbyfile[$path])) - foreach($this->includesbyfile[$path] as $include) - { - $include->docblock->package = $a[0]; - $include->docblock->subpackage = $a[1]; - $render->addElementToPage($include,$path); - } - - if (isset($this->functionsbyfile[$path])) - foreach($this->functionsbyfile[$path] as $function) - { - $function->docblock->package = $a[0]; - $function->docblock->subpackage = $a[1]; - $render->addElementToPage($function,$path); - $render->addUses($function,$path); - } - - if (isset($this->definesbyfile[$path])) - foreach($this->definesbyfile[$path] as $define) - { - $define->docblock->package = $a[0]; - $define->docblock->subpackage = $a[1]; - $render->addElementToPage($define,$path); - $render->addUses($define,$path); - } - - if (isset($this->globalsbyfile[$path])) - foreach($this->globalsbyfile[$path] as $global) - { - $global->docblock->package = $a[0]; - $global->docblock->subpackage = $a[1]; - $render->addElementToPage($global,$path); - $render->addUses($global,$path); - } - } - } - - function setParseBase($pbase) - { - $this->_parsedbase = $pbase; - } - - /** - * @return false|parserPage returns matched parserPage if found - */ - function pathMatchesParsedFile($path, $infile) - { - $test = $this->getRealPath($path, $infile); - if (is_string($test)) - { - if (isset($this->pathpages[$test])) - return $this->pages[$this->pathpages[$test]][$test]; - if (PHPDOCUMENTOR_WINDOWS) $test = str_replace('/','\\',$test); - if (isset($this->pathpages[$test])) - { - $a = $this->pages[$this->pathpages[$test]][$test]; - if (is_array($a->packageOutput) && !in_array($a->package, $a->packageOutput)) - return false; - return $this->pages[$this->pathpages[$test]][$test]; - } - } else - { - foreach($test as $file) - { - if (isset($this->pathpages[$file])) - return $this->pages[$this->pathpages[$file]][$file]; - if (PHPDOCUMENTOR_WINDOWS) $file = str_replace('/','\\',$file); - if (isset($this->pathpages[$file])) - { - $a = $this->pages[$this->pathpages[$file]][$file]; - if (is_array($a->packageOutput) && !in_array($a->package, $a->packageOutput)) - return false; - return $this->pages[$this->pathpages[$file]][$file]; - } - } - } - return false; - } - - /** - * @param string include() statement path to check - * @param string full path of file the statement is in - * @param string full path to base directory of parsing, used for . - * @return array|string returns an array of possible file locations or - * a string if there is an exact match - */ - function getRealPath($path, $file) - { - $curdir = str_replace('\\','/',dirname($file)); - $path = str_replace('\\','/',$path); - if (strpos($path,':') !== false) - { // windows, and we have a drive letter - return $path; - } elseif(strpos($path,'/') === 0) - { - return $path; - } - // not an absolute path - $path = explode('/',$path); - if ($path[0] == '.') - { - $path[0] = dirname($file); - return join($path,'/'); - } elseif ($path[0] == '..') - { - $dirfile = explode('/',dirname(str_replace('\\','/',$file))); - array_pop($dirfile); // remove the current directory - if (!count($dirfile)) return false; // we were at a top-level dir! - $path[0] = join($dirfile,'/'); // replace .. with parent dirname - return join($path,'/'); - } else - { - $path = join($path,'/'); - return array($curdir . PATH_DELIMITER . $path, - str_replace('\\','/',PHPDOCUMENTOR_BASE) . PATH_DELIMITER . $path); - } - } -} -?> \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc b/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc deleted file mode 100644 index 7e038021..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc +++ /dev/null @@ -1,84 +0,0 @@ - - * @author Joshua Eichorn - * @version $Id: Publisher.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - * @package phpDocumentor - */ -/** - * a class for handling the publishing of data - * - * @author Kellin - * @author Joshua Eichorn - * @version $Id: Publisher.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - * @package phpDocumentor - */ -class Publisher -{ - /**#@+ - * @var array - */ - /** - * Array of references objects that have Subscribed to this publisher - */ - var $subscriber = array(); - - var $tokens = array(); - - var $pushEvent = array(); - var $popEvent = array(); - /**#@-*/ - - - /** - * Adds a subscriber to the {@link $subscriber} array(). - * if $event is '*', the publisher will use $object as the default event handler - * @param integer $event see {@link Parser.inc} PARSER_EVENT_* constants - * @param class $object any class that has a HandleEvent() method like {@link phpDocumentor_IntermediateParser::HandleEvent()} or {@link Classes::HandleEvent()} - */ - function subscribe($event, &$object) - { - $this->subscriber[$event] =& $object; - } - - /** - * @param integer $event see {@link Parser.inc} PARSER_EVENT_* constants - * @param mixed $data anything the subscribed event handler is expecting - */ - function publishEvent($event,$data) - { - - // see if there is a specific event handler - if (!empty($this->subscriber[$event])) - { - $this->subscriber[$event]->HandleEvent($event,$data); - } - else if (isset($this->subscriber['*']) && is_object($this->subscriber['*'])) // check to see if a generic handler exists - { - $this->subscriber['*']->HandleEvent($event,$data); - } - } -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php b/buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php deleted file mode 100644 index b53634de..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php +++ /dev/null @@ -1,785 +0,0 @@ - - * @version $Revision: 1.6 $ - * @package phpDocumentor - * @since 1.2 - */ -error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT); -/** common settings */ -include_once("phpDocumentor/common.inc.php"); - -include_once("phpDocumentor/Io.inc"); -include_once("phpDocumentor/Publisher.inc"); -include_once("phpDocumentor/Classes.inc"); -include_once("phpDocumentor/ProceduralPages.inc"); -include_once("phpDocumentor/IntermediateParser.inc"); -include_once("phpDocumentor/WordParser.inc"); -include_once("phpDocumentor/EventStack.inc"); -include_once("phpDocumentor/ParserData.inc"); -include_once("phpDocumentor/InlineTags.inc"); -include_once("phpDocumentor/DocBlockTags.inc"); -include_once("phpDocumentor/DescHTML.inc"); -include_once("phpDocumentor/ParserDocBlock.inc"); -include_once("phpDocumentor/ParserElements.inc"); -include_once("phpDocumentor/Parser.inc"); -include_once("phpDocumentor/phpDocumentorTWordParser.inc"); -include_once("phpDocumentor/phpDocumentorTParser.inc"); -include_once("phpDocumentor/HighlightParser.inc"); -include_once("phpDocumentor/TutorialHighlightParser.inc"); -include_once("phpDocumentor/ParserDescCleanup.inc"); -include_once("phpDocumentor/PackagePageElements.inc"); -include_once("phpDocumentor/XMLpackagePageParser.inc"); -include_once("phpDocumentor/LinkClasses.inc"); -include_once("phpDocumentor/Converter.inc"); -include_once("phpDocumentor/Errors.inc"); -if (isset($_GET)) -{ -/** - * $interface is either 'web' or is not set at all - * @global array $interface - */ - if (isset($_GET['interface'])) $interface = $_GET['interface']; -/** - * $_phpDocumentor_setting is either the value from the web interface, or is set up by {@link Io::parseArgv()} - * @global array $_phpDocumentor_setting - */ - if (isset($_GET['setting'])) $_phpDocumentor_setting = $_GET['setting']; -} - -/** - * default package name, set using -dn --defaultpackagename - * @global string $GLOBALS['phpDocumentor_DefaultPackageName'] - * @name $phpDocumentor_DefaultPackageName - */ -$GLOBALS['phpDocumentor_DefaultPackageName'] = 'default'; - -/** - * default package name, set using -dn --defaultcategoryname - * @global string $GLOBALS['phpDocumentor_DefaultCategoryName'] - * @name $phpDocumentor_DefaultCategoryName - */ -$GLOBALS['phpDocumentor_DefaultCategoryName'] = 'default'; - -/** - * @package phpDocumentor - */ -class phpDocumentor_setup -{ - /** - * The main parser - * @var Parser|phpDocumentorTParser - */ - var $parse; - /** - * Used to parse command-line options - * @var Io - */ - var $setup; - /** - * Used to organize output from the Parser before Conversion - * @var phpDocumentor_IntermediateParser - */ - var $render = false; - /** - * Packages to create documentation for - * @var string - */ - var $packages = false; - /** - * contents of --filename commandline - * @tutorial phpDocumentor.howto.pkg#using.command-line.filename - * @var string - */ - var $files = ''; - /** - * contents of --directory commandline - * @tutorial phpDocumentor.howto.pkg#using.command-line.directory - * @var string - */ - var $dirs = ''; - /** - * contents of --hidden commandline - * @tutorial phpDocumentor.howto.pkg#using.command-line.hidden - * @var boolean - */ - var $hidden = false; - /** - * time that parsing was started, used for informative timing of output - * @access private - */ - var $parse_start_time; - /** - * contents of --ignore commandline - * @tutorial phpDocumentor.howto.pkg#using.command-line.ignore - * @var string - */ - var $ignore_files = array(); - /** - * Checks PHP version, makes sure it is 4.2.0+, and chooses the - * phpDocumentorTParser if version is 4.3.0+ - * @uses parseIni() - */ - function phpDocumentor_setup() - { - global $_phpDocumentor_cvsphpfile_exts; - if (!function_exists('is_a')) - { - print "phpDocumentor requires PHP version 4.2.0 or greater to function"; - exit; - } - - // set runtime to a large value since this can take quite a while - // we can only set_time_limit when not in safe_mode bug #912064 - if (!ini_get('safe_mode')) - { - set_time_limit(0); // unlimited runtime - } else - { - phpDocumentor_out("time_limit cannot be set since your in safe_mode, please edit time_limit in your php.ini to allow enough time for phpDocumentor to run"); - } - ini_set("memory_limit","1024M"); - - $phpver = phpversion(); - $phpdocver = PHPDOCUMENTOR_VER; - if (isset($_GET['interface'])) { - $phpver = "$phpver"; - $phpdocver = "$phpdocver"; - } - phpDocumentor_out("PHP Version $phpver\n"); - phpDocumentor_out("phpDocumentor version $phpdocver\n\n"); - - $this->parseIni(); - // create new classes - $this->setup = new Io; - if (tokenizer_ext) - { - phpDocumentor_out("using tokenizer Parser\n"); - $this->parse = new phpDocumentorTParser; - } else - { - phpDocumentor_out("using default (slower) Parser - get PHP 4.3.0+ -and load the tokenizer extension for faster parsing (your version is ".phpversion()."\n"); - $this->parse = new Parser; - } - } - - /** - * Get phpDocumentor settings from a user configuration file - * @param string user configuration file - */ - function readConfigFile($file) - { - global $_phpDocumentor_setting, $_phpDocumentor_options; - // security - $file = str_replace(array('..','.ini','\\'),array('','','/'),$file); - if (is_file($file . '.ini')) - { - $_phpDocumentor_setting = phpDocumentor_parse_ini_file($file.'.ini'); - } else - { - if ('@DATA-DIR@' != '@'.'DATA-DIR@') - { - $configdir = str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'user' . PATH_DELIMITER; - } else { - $configdir = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'user' . PATH_DELIMITER; - } - if (isset($_phpDocumentor_options['userdir'])) $configdir = $_phpDocumentor_options['userdir']; - if (substr($configdir,-1) != '/') - { - $configdir .= '/'; - } - $_phpDocumentor_setting = phpDocumentor_parse_ini_file( $configdir . $file . '.ini'); - if (empty($_phpDocumentor_setting['defaultpackagename'])) - { - $_phpDocumentor_setting['defaultpackagename'] = 'default'; - } - } - // don't want a loop condition! - unset($_phpDocumentor_setting['useconfig']); - $this->readCommandLineSettings(); - } - - /** - * Get phpDocumentor settings from command-line or web interface - */ - function readCommandLineSettings() - { - global $_phpDocumentor_setting,$interface,$_phpDocumentor_RIC_files; - // subscribe $render class to $parse class events - if (!isset($interface) && !isset($_GET['interface']) && !isset($_phpDocumentor_setting)) - { - // Parse the argv settings - $_phpDocumentor_setting = $this->setup->parseArgv(); - } - if (isset($_phpDocumentor_setting['useconfig']) && !empty($_phpDocumentor_setting['useconfig'])) return $this->readConfigFile($_phpDocumentor_setting['useconfig']); - if (!isset($_phpDocumentor_setting['junk'])) $_phpDocumentor_setting['junk'] = ''; - if (!isset($_phpDocumentor_setting['title'])) $_phpDocumentor_setting['title'] = 'Generated Documentation'; - $temp_title = $_phpDocumentor_setting['title']; - $this->render = new phpDocumentor_IntermediateParser($temp_title); - if (isset($_phpDocumentor_setting['help']) || $_phpDocumentor_setting['junk'] == "-h" || $_phpDocumentor_setting['junk'] == "--help") - { - echo $this->setup->displayHelpMsg(); - die(); - } - - if (isset($_phpDocumentor_setting['hidden'])) $this->hidden = true; - - // set to parse elements marked private with @access private - if (isset($_phpDocumentor_setting['parseprivate']) && $_phpDocumentor_setting['parseprivate'] == 'on') - { - $this->render->setParsePrivate(true); - } - - if (isset($_phpDocumentor_setting['ignoretags'])) - { - $ignoretags = explode(',', $_phpDocumentor_setting['ignoretags']); - $ignoretags = array_map('trim', $ignoretags); - $tags = array(); - foreach($ignoretags as $tag) - { - if (!in_array($tag,array('@global', '@access', '@package', '@ignore', '@name', '@param', '@return', '@staticvar', '@var'))) - $tags[] = $tag; - } - $_phpDocumentor_setting['ignoretags'] = $tags; - } - - if (isset($_phpDocumentor_setting['readmeinstallchangelog'])) - { - $_phpDocumentor_setting['readmeinstallchangelog'] = explode(',',str_replace(' ','',$_phpDocumentor_setting['readmeinstallchangelog'])); - $rics = array(); - foreach($_phpDocumentor_setting['readmeinstallchangelog'] as $ric) - { - $rics[] = strtoupper(trim($ric)); - } - $_phpDocumentor_RIC_files = $rics; - } - - if (isset($_phpDocumentor_setting['javadocdesc']) && $_phpDocumentor_setting['javadocdesc'] == 'on') - { - $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock'; - } - if (tokenizer_ext) - { - if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on') - { - $_phpDocumentor_setting['sourcecode'] = true; - } else - { - $_phpDocumentor_setting['sourcecode'] = false; - } - } else - { - if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on') - { - addWarning(PDERROR_SOURCECODE_IGNORED); - } - $_phpDocumentor_setting['sourcecode'] = false; - } - if (isset($_phpDocumentor_setting['converterparams'])) - { - $_phpDocumentor_setting['converterparams'] = explode($_phpDocumentor_setting['converterparams']); - foreach($_phpDocumentor_setting['converterparams'] as $i => $p) - { - $_phpDocumentor_setting['converterparams'][$i] = trim($p); - } - } - if (isset($_phpDocumentor_setting['customtags']) && !empty($_phpDocumentor_setting['customtags'])) - { - $c = explode(',',$_phpDocumentor_setting['customtags']); - for($i=0;$irender->setQuietMode(true); - } - - // Setup the different classes - if (isset($_phpDocumentor_setting['templatebase'])) - { - $this->render->setTemplateBase($_phpDocumentor_setting['templatebase']); - } - if (isset($_phpDocumentor_setting['target']) && !empty($_phpDocumentor_setting['target'])) - { - $this->render->setTargetDir($_phpDocumentor_setting['target']); - } - else - { - echo "a target directory must be specified\n try phpdoc -h\n"; - die(); - } - if (!empty($_phpDocumentor_setting['packageoutput'])) - { - $this->packages = explode(",",$_phpDocumentor_setting['packageoutput']); - foreach($this->packages as $p => $v) - { - $this->packages[$p] = trim($v); - } - } - if (!empty($_phpDocumentor_setting['filename'])) - $this->files = $_phpDocumentor_setting['filename']; - if (!empty($_phpDocumentor_setting['directory'])) - $this->dirs = $_phpDocumentor_setting['directory']; - } - - function checkIgnoreTag($tagname, $inline = false) - { - global $_phpDocumentor_setting; - $tagname = '@'.$tagname; - if (!isset($_phpDocumentor_setting['ignoretags'])) return false; - if ($inline) $tagname = '{'.$tagname.'}'; - return in_array($tagname, $_phpDocumentor_setting['ignoretags']); - } - - function setJavadocDesc() - { - $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock'; - } - - function setParsePrivate() - { - $this->render->setParserPrivate(true); - } - - function setQuietMode() - { - $this->render->setQuietMode(true); - } - - function setTargetDir($target) - { - $this->render->setTargetDir($target); - } - - function setTemplateBase($dir) - { - $this->render->setTemplateBase($dir); - } - - function setPackageOutput($po) - { - $this->packages = explode(",",$po); - } - - function setTitle($ti) - { - $this->render = new phpDocumentor_IntermediateParser($ti); - } - - function setFilesToParse($files) - { - $this->files = $files; - } - - function setDirectoriesToParse($dirs) - { - $this->dirs = $dirs; - } - - function parseHiddenFiles() - { - $this->hidden = true; - } - - function setIgnore($ig) - { - if (strstr($ig,",")) - { - $this->ignore_files = explode(",",$ig); - } else { - if (!empty($ig)) - $this->ignore_files = array($ig); - } - $this->ignore_files = array_map('trim', $this->ignore_files); - } - - function createDocs($title = false) - { - $this->parse_start_time = time(); - global $_phpDocumentor_setting; - if (!$this->render) - { - $this->render = new phpDocumentor_IntermediateParser($title); - } - // setup ignore list - $this->ignore_files =array(); - if(isset($_phpDocumentor_setting['ignore'])) - { - $this->setIgnore($_phpDocumentor_setting['ignore']); - } - $this->parse->subscribe("*",$this->render); - // parse the directory - if (!empty($this->files)) - { - $files = explode(",",$this->files); - foreach($files as $file) - { - $file = trim($file); - $test = $this->setup->getAllFiles($file); - if ($test) - { - foreach($test as $file) - { - $file = trim($file); - $dir = realpath(dirname($file)); - $dir = strtr($dir, "\\", "/"); - $dir = str_replace('//','/',$dir); - // strip trailing directory seperator - if (substr($dir,-1) == "/" || substr($dir,-1) == "\\") - { - $dir = substr($dir,0,-1); - } - $file = strtr(realpath($file), "\\", "/"); - $file = str_replace('//','/',$file); - - if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files)) - { - $filelist[] = str_replace('\\','/',$file); - } else { - phpDocumentor_out("File $file Ignored\n"); - flush(); - } - } - } else - { - $dir = realpath(dirname(realpath($file))); - $dir = strtr($dir, "\\", "/"); - $dir = str_replace('//','/',$dir); - // strip trailing directory seperator - if (substr($dir,-1) == "/" || substr($dir,-1) == "\\") - { - $dir = substr($dir,0,-1); - } - $base = count(explode("/",$dir)); - $file = strtr(realpath($file), "\\", "/"); - $file = str_replace('//','/',$file); - flush(); - - if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files)) - { - $filelist[] = str_replace('\\','/',$file); - } else { - phpDocumentor_out("File $file Ignored\n"); - flush(); - } - } - } - } - if (!empty($this->dirs)) - { - $dirs = explode(",",$this->dirs); - foreach($dirs as $dir) - { - $dir = trim(realpath($dir)); - $dir = strtr($dir, "\\", "/"); - $dir = str_replace('//','/',$dir); - // strip trailing directory seperator - if (substr($dir,-1) == "/" || substr($dir,-1) == "\\") - { - $dir = substr($dir,0,-1); - } - $files = $this->setup->dirList($dir,$this->hidden); - if (is_array($files)) - { - foreach($files as $file) - { - // Make sure the file isn't a hidden file - $file = strtr($file, "\\", "/"); - if (substr(basename($file),0,1) != ".") - { - if (!$this->setup->checkIgnore(basename($file),str_replace('\\','/',dirname($file)),$this->ignore_files)) - { - $filelist[] = str_replace('\\','/',$file); - } else { - phpDocumentor_out("File $file Ignored\n"); - flush(); - } - } - } - } - } - } - if (isset($filelist)) - { - if (PHPDOCUMENTOR_WINDOWS) - { - // case insensitive array_unique - usort($filelist,'strnatcasecmp'); - reset($filelist); - - $newarray = array(); - $i = 0; - - $element = current($filelist); - for ($n=0;$nsetup->getBase($filelist))); - define("PHPDOCUMENTOR_BASE",$source_base); - list($filelist,$ric) = $this->setup->getReadmeInstallChangelog($source_base, $filelist); - phpDocumentor_out("\n\nGrabbing README/INSTALL/CHANGELOG\n"); - flush(); - foreach($ric as $file) - { - phpDocumentor_out(basename($file).'...'); - flush(); - $fp = fopen($file,'r'); - $contents = fread($fp,filesize($file)); - $this->render->HandleEvent(PHPDOCUMENTOR_EVENT_README_INSTALL_CHANGELOG, array(basename($file),$contents)); - fclose($fp); - } - phpDocumentor_out("\ndone\n"); - flush(); - list($filelist,$tutorials) = $this->setup->getTutorials($filelist); - phpDocumentor_out("\n\nTutorial/Extended Documentation Parsing Stage\n\n"); - flush(); - if (count($tutorials)) - { - $tuteparser = new XMLPackagePageParser; - $tuteparser->subscribe('*',$this->render); - foreach($tutorials as $tutorial) - { - switch($tutorial['tutetype']) - { - case 'pkg' : - case 'cls' : - case 'proc' : - switch($tutorial['tutetype']) - { - case 'pkg' : - $ptext = 'Package-level Docs '; - if (!empty($tutorial['subpackage'])) - $ptext = 'Sub-Package Docs '; - break; - case 'cls' : - $ptext = 'Class-level Docs '; - break; - case 'proc' : - $ptext = 'Procedural-level Docs '; - break; - } - $fp = @fopen($tutorial['path'],"r"); - if ($fp) - { - $ret = fread($fp,filesize($tutorial['path'])); - // fix 1151650 - if (stristr($ret, "utf-8") !== "") - { - $ret = utf8_decode($ret); - } - fclose($fp); - unset($fp); - phpDocumentor_out('Parsing '.$ptext.$tutorial['path'].'...'); - flush(); - $tuteparser->parse($ret,$tutorial); - phpDocumentor_out("done\n"); - flush(); - } else - { - phpDocumentor_out('Error '.$ptext.$tutorial['path'].' doesn\'t exist'."\n"); - flush(); - } - default : - break; - } - } - } - phpDocumentor_out("done\n"); - flush(); - phpDocumentor_out("\n\nGeneral Parsing Stage\n\n"); - flush(); - foreach($filelist as $file) - { - phpDocumentor_out("Reading file $file"); - flush(); - $this->parse->parse($a = $this->setup->readPhpFile($file, $this->render->quietMode),$file,$base,$this->packages); - - } - $b = (time() - $this->parse_start_time); - phpDocumentor_out("done\n"); - flush(); - // render output - phpDocumentor_out("\nConverting From Abstract Parsed Data\n"); - flush(); - $this->render->output(); - $a = (time() - $this->parse_start_time); - $c = ($a - $b); - phpDocumentor_out("\nParsing time: $b seconds\n"); - phpDocumentor_out("\nConversion time: $c seconds\n"); - phpDocumentor_out("\nTotal Documentation Time: $a seconds\n"); - phpDocumentor_out("done\n"); - flush(); - } else - { - print "ERROR: nothing parsed"; - exit; - } - } - /** - * Parse configuration file phpDocumentor.ini - */ - function parseIni() - { - phpDocumentor_out("Parsing configuration file phpDocumentor.ini..."); - flush(); - if ('@DATA-DIR@' != '@'.'DATA-DIR@') - { - $options = phpDocumentor_parse_ini_file(str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'phpDocumentor.ini',true); - } else { - $options = phpDocumentor_parse_ini_file(str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'phpDocumentor.ini',true); - } - - if (!$options) - { - print "ERROR: cannot open phpDocumentor.ini in directory " . $GLOBALS['_phpDocumentor_install_dir']."\n"; - print "-Is phpdoc in either the path or include_path in your php.ini file?"; - exit; - } - - foreach($options as $var => $values) - { - if ($var != 'DEBUG') - { -// phpDocumentor_out("\n$var"); - if ($var != '_phpDocumentor_setting' && $var != '_phpDocumentor_options' && $var != '_phpDocumentor_install_dir' ) $values = array_values($values); -// fancy_debug("\n$var",$values); - $GLOBALS[$var] = $values; - } - } - phpDocumentor_out("\ndone\n"); - flush(); - /** Debug Constant */ - define("PHPDOCUMENTOR_DEBUG",$options['DEBUG']['PHPDOCUMENTOR_DEBUG']); - define("PHPDOCUMENTOR_KILL_WHITESPACE",$options['DEBUG']['PHPDOCUMENTOR_KILL_WHITESPACE']); - $GLOBALS['_phpDocumentor_cvsphpfile_exts'] = $GLOBALS['_phpDocumentor_phpfile_exts']; - foreach($GLOBALS['_phpDocumentor_cvsphpfile_exts'] as $key => $val) - { - $GLOBALS['_phpDocumentor_cvsphpfile_exts'][$key] = "$val,v"; - } - // none of this stuff is used anymore - if (isset($GLOBALS['_phpDocumentor_html_allowed'])) - { - $___htmltemp = array_flip($GLOBALS['_phpDocumentor_html_allowed']); - $___html1 = array(); - foreach($___htmltemp as $tag => $trans) - { - $___html1['<'.$tag.'>'] = htmlentities('<'.$tag.'>'); - $___html1[''] = htmlentities(''); - } - $GLOBALS['phpDocumentor___html'] = array_flip($___html1); - } - } - - function setupConverters($output = false) - { - global $_phpDocumentor_setting; - if ($output) - { - $_phpDocumentor_setting['output'] = $output; - } - if (isset($_phpDocumentor_setting['output']) && !empty($_phpDocumentor_setting['output'])) - { - $c = explode(',',$_phpDocumentor_setting['output']); - for($i=0; $i< count($c); $i++) - { - $c[$i] = explode(':',$c[$i]); - $a = $c[$i][0]; - $b = false; - $d = 'default/'; - if (count($c[$i]) > 1) - { - $a = $c[$i][0]; - $b = $c[$i][1]; - if (isset($c[$i][2])) - { - $d = $c[$i][2]; - $d = str_replace("\\","/",$d); - if (substr($d,-1) != "/") - { - $d .= "/"; - } - } - else $d = 'default/'; - } - if (strtoupper(trim($a)) == 'HTML' && (trim($b) == 'default')) - { - phpDocumentor_out("WARNING: HTMLdefaultConverter is deprecated, using HTMLframesConverter.\n"); - phpDocumentor_out("WARNING: template output is identical, HTMLframes is more flexible.\n"); - phpDocumentor_out("WARNING: please adjust your usage\n"); - flush(); - $b = 'frames'; // change default to frames. - } - $this->render->addConverter(strtoupper(trim($a)),trim($b),trim($d)); - } - } else - { - $this->render->addConverter('HTML','frames','default/'); - } - if (empty($this->render->converters)) addErrorDie(PDERROR_NO_CONVERTERS); - } -} - -/** - * Print parse information if quiet setting is off - */ -function phpDocumentor_out($string) -{ - global $_phpDocumentor_setting; - if (!isset($_phpDocumentor_setting['quiet']) || !$_phpDocumentor_setting['quiet']) - { - print $string; - } - -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS deleted file mode 100644 index fcbe48af..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS +++ /dev/null @@ -1,7 +0,0 @@ -Smarty is supported only in PHP 4.0.6 or later. - -Smarty versions previous to 2.0 require the PEAR libraries. Be sure to include -the path to the PEAR libraries in your php include_path. Config_file.class.php -uses the PEAR library for its error handling routines. PEAR comes with the PHP -distribution. Unix users check /usr/local/lib/php, windows users check -C:/php/pear. diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib deleted file mode 100644 index 3b204400..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib +++ /dev/null @@ -1,458 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog deleted file mode 100644 index 6dcda589..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog +++ /dev/null @@ -1,5421 +0,0 @@ -2003-11-18 Messju Mohr - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - move Smarty::quote_replace() to Smarty_Compiler::_quote_replace() - - * libs/Smarty.class.php: - removed extract-calls from _include()- and _eval()-wrappers - variables passed with {include_php} have to accessed as members of $params - now - -2003-11-17 Messju Mohr - - * docs/designers.sgml: - fixed typo - -2003-11-13 Messju Mohr - - * libs/Config_File.class.php: - fix occasional notice - -2003-11-13 andreas halter - - * docs/de/designers.sgml: - - added cat modifier, thanks messju :-) - -2003-11-13 Monte Ohrt - - * (Smarty_2_6_0-RC3) - NEWS - libs/Config_File.class.php - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - commit RC3 tags - -2003-11-13 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - fix handling of $var.key inside [] - - * libs/Smarty.class.php: - fix unnecessary loading of core.load_resource_plugin.php - - * (Smarty_2_6_0-RC3) - docs/fr/designers.sgml: - fixed example of html_table - -2003-11-11 Messju Mohr - - * NEWS - libs/core/core.process_cached_inserts.php: - fix handling of assign inside {insert}-tags - -2003-11-06 Messju Mohr - - * libs/core/core.read_cache_file.php: - added $exp_time-parameter - - * docs/programmers.sgml: - added $exp_time to cache_handler_func-example - - * libs/Smarty.class.php - libs/core/core.write_cache_file.php: - added $exp_time-parameter of clear_cache() and clear_all_cache() to - cache_handler_func. - -2003-11-05 Messju Mohr - - * NEWS - libs/Config_File.class.php: - fix handling if [...] inside triple-quotes in config-files - -2003-11-04 Messju Mohr - - * libs/Smarty.class.php: - fixed little bug in _parse_resource_name() (jlgunter, messju) - -2003-11-03 andreas halter - - * docs/designers.sgml - docs/de/designers.sgml - docs/fr/designers.sgml: - - changed Smarty.php.class occurences to Smarty.class.php - -2003-10-29 boots - - * docs/appendixes.sgml - docs/designers.sgml - docs/manual.sgml - docs/programmers.sgml - docs/de/appendixes.sgml - docs/de/designers.sgml - docs/de/programmers.sgml - docs/fr/appendixes.sgml - docs/fr/designers.sgml - docs/fr/getting-started.sgml - docs/fr/manual.sgml - docs/fr/preface.sgml - docs/fr/programmers.sgml: - Fixes to documentation syntax so that all content can be processed used - xsltproc docbook-xsl tools. In particular, fixes unescaped entities, - broken tags, unquoted attributes. - -2003-10-27 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - fix handling of simple-math-operators inside modifiers - -2003-10-25 Messju Mohr - - * libs/Smarty_Compiler.class.php: - removed unused property _output_type - removed unused param $tag_attrs of _parse_var_props() - cleaned up alignment of class-properties - -2003-10-23 Messju Mohr - - * libs/Smarty_Compiler.class.php: - removed notice in php-tag handling in Smarty_Compiler::_compile_file() - - * libs/Smarty_Compiler.class.php: - removed two occasional E_NOTICES from - Smarty_Compiler::_compile_include_php_tag() - - * NEWS - libs/core/core.create_dir_structure.php: - fix handling of trailing-slashes in open_basedir in - smarty_core_create_dir_structure() - -2003-10-20 Messju Mohr - - * libs/Smarty_Compiler.class.php: - elements inside `` are bracketed now inside the compiled-tpl. this - fixes some issues with simple-math inside backticks. - -2003-10-16 Monte Ohrt - - * docs/designers.sgml: - update overlib docs, no working examples - -2003-10-12 Messju Mohr - - * libs/Smarty.class.php - libs/core/core.is_secure.php: - move check for template_dir in secure_dir-array into core.is_secure.php - - this makes template_exists() work correctly with security=true even if - template_dir is not inside the secure_dir-array - -2003-10-11 Messju Mohr - - * libs/plugins/shared.make_timestamp.php: - tightened check for YYYYMMDDHHMMSS-format. thanks konstantin for - pointing this out. - - removed a few tabs. - - * libs/Smarty_Compiler.class.php: - fix precedence of simple-math-operators before modifiers. - thanks dominik! - - * libs/Config_File.class.php - libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.assemble_plugin_filepath.php - libs/core/core.assign_smarty_interface.php - libs/core/core.create_dir_structure.php - libs/core/core.display_debug_console.php - libs/core/core.get_include_path.php - libs/core/core.get_microtime.php - libs/core/core.get_php_resource.php - libs/core/core.is_secure.php - libs/core/core.is_trusted.php - libs/core/core.load_plugins.php - libs/core/core.load_resource_plugin.php - libs/core/core.process_cached_inserts.php - libs/core/core.process_compiled_include.php - libs/core/core.read_cache_file.php - libs/core/core.rm_auto.php - libs/core/core.rmdir.php - libs/core/core.run_insert_handler.php - libs/core/core.smarty_include_php.php - libs/core/core.write_compiled_include.php - libs/core/core.write_compiled_resource.php - libs/core/core.write_file.php: - removed tabs from the main and the core/*.php files - -2003-10-08 Monte Ohrt - - * (Smarty_2_6_0-RC2) - NEWS - libs/Config_File.class.php - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - update version numbers to RC2 - -2003-09-18 Messju Mohr - - * docs/designers.sgml - docs/de/designers.sgml: - fixed description of cycle's advance-attribute - -2003-09-16 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - apply modifiers only once to section-loop and foreach-from attributes - -2003-09-15 Messju Mohr - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.write_cache_paths_file.php: - backed out _smarty_cached_paths-file-handling - - * libs/Smarty.class.php - libs/core/core.rm_auto.php: - fixed clear_compiled_tpl with explicit $tpl_file given - fixed return value of smarty_core_rm_auto() + Smarty::_unlink() - - * libs/Smarty.class.php: - little fix in _get_auto_filename() - -2003-09-14 Messju Mohr - - * libs/Smarty.class.php - libs/core/core.assemble_auto_filename.php: - removed auto-filenames from path-cache. merged assemble_auto_filename - back into Smarty::_get_auto_filename() - -2003-09-12 Messju Mohr - - * libs/Smarty_Compiler.class.php: - fixed quoting of modifier parameters - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.get_php_resource.php - libs/core/core.load_plugins.php - libs/core/core.load_resource_plugin.php: - remove Smarty::_plugin_implementation_exists() - use php's native - is_callable() - -2003-09-11 Messju Mohr - - * libs/Smarty.class.php: - silenced two notices acces HTTP_SERVER_VARS - -2003-09-10 andreas halter - - * docs/de/designers.sgml - docs/de/getting-started.sgml - docs/de/programmers.sgml: - - minor fixes (2 rep), slight wording changes - - jade transform problem fixed - -2003-09-08 andreas halter - - * docs/de/designers.sgml - docs/de/getting-started.sgml - docs/de/manual.sgml - docs/de/preface.sgml - docs/de/programmers.sgml: - all updated for 2.6.0 release, translated everything from 2_5_0 branch to - 20030908 - -2003-09-04 Messju Mohr - - * libs/Smarty.class.php: - proper checking for files in _fetch_resource_info() - -2003-09-02 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - ignore {strip}/{/strip) inside {strip}-blocks - - * libs/plugins/function.mailto.php: - fixed 2 notices in smarty_function_mailto() - -2003-09-01 Messju Mohr - - * libs/Smarty.class.php: - re-include cache_paths on multiple calls to fetch() to avoid - inconsistencies - at multiple calls to fetch() in one script - - * libs/Smarty_Compiler.class.php: - fixed handling of \r in {strip} - renamed $_trailing_lf to $_additional_newline - - * libs/Smarty_Compiler.class.php: - the weekly fix for {strip} :) - - * docs/designers.sgml: - fixed example for simple math. - -2003-08-29 Messju Mohr - - * libs/core/core.assign_smarty_interface.php - libs/core/core.display_debug_console.php - libs/plugins/function.assign.php - libs/plugins/function.html_options.php - libs/plugins/function.html_table.php: - fixed PHPDocumentor-comments (thanks Konstantin) - - * libs/core/core.rmdir.php: - made rmdir a bit more optimistic. especially it now removes - directories correctly that where created accidently by "safe_mode=On - && $use_sub_dirs=true" - -2003-08-27 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - fixed removal of leading/trailing newlines in {strip}-blocks - -2003-08-25 Messju Mohr - - * INSTALL: - added note emphasizing the introduction of "libs/" with 2.5.0 - - * NEWS - libs/plugins/modifier.escape.php: - fixed proper escaping of " and ' with escape:javascript - -2003-08-22 Messju Mohr - - * NEWS - libs/core/core.assemble_plugin_filepath.php: - fixed bug in traversal of $smarty->plugins_dir-array in - smarty_core_assemble_plugin_filepath(). the first matching plugin in - the path should be used, not the last one. - - * libs/core/core.read_cache_file.php: - discard $_cache_info when the cache should be regenerated - -2003-08-20 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php - libs/plugins/block.strip.php: - reverted {strip} from a block-plugin back into the compiler - - * docs/programmers.sgml: - fixed examples for register_function() and register_block() - - * libs/Smarty.class.php: - made template_exists() quiet when the template does not exist (thanks - to konstatin for pointing this out) - -2003-08-18 Monte Ohrt - - * docs/getting-started.sgml: - fix example title - - * docs/README - docs/getting-started.sgml: - change installation wording confusion - -2003-08-18 Messju Mohr - - * libs/Smarty.class.php - libs/core/core.read_cache_file.php: - fixed unnecessary load of source in template_exists() and the - compile-check of smarty_core_read_cache_file() - - * libs/Smarty_Compiler.class.php: - allow section-, array- and object-dereference in $smarty-references - -2003-08-15 Messju Mohr - - * docs/designers.sgml: - added parameter-descriptions for count_characters (thanks Konstantin - A. Pelepelin) - - fixed docs for {html_checkboxes} - -2003-08-14 Messju Mohr - - * libs/Smarty.class.php - libs/core/core.read_cache_file.php: - fixed timestamp-check of config-files in smarty_core_read_cache_file() - - * libs/Smarty.class.php: - fixed typecasting for arrays in _parse_resource_name() - - * NEWS - libs/plugins/function.config_load.php: - fixes in config_load: - - handling of section-attribute - - reusing the same config-file multiple times - - serialization of config-data for php<4.2.0 (no var_export) - - many thanks to atu for pointing this out and for testing - -2003-08-13 Messju Mohr - - * libs/Smarty.class.php - libs/core/core.smarty_include_php.php: - fixed problem with vars as attributes in {include_php} - -2003-08-13 Monte Ohrt - - * docs/README: - commit README file for documentation compiling - -2003-08-13 Messju Mohr - - * libs/debug.tpl - libs/plugins/modifier.debug_print_var.php: - removed '\r' from debug_print_vars' output - properly escape vars in javascript-version of debug.tpl - -2003-08-11 Monte Ohrt - - * (Smarty_2_6_0_RC1) - NEWS - docs/designers.sgml - docs/html.dsl - docs/php.dsl - libs/Config_File.class.php - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - get ready for 2.6.0-RC1 release - -2003-08-10 Messju Mohr - - * NEWS - libs/Smarty.class.php: - fixed status-header for cache_modified_check under cgi-sapi - -2003-08-09 Messju Mohr - - * libs/core/core.is_secure.php - libs/core/core.is_trusted.php: - synced secure_dir-checking with trusted_dir-checking - - * libs/core/core.is_secure.php: - tightenend path checking in smarty_core_is_secure() - -2003-08-08 Messju Mohr - - * libs/Smarty.class.php: - fix: proper nesting of $smarty->_cache_including flag in cascaded - cached/not-cached/fetched/inserted/foo-templates - - * libs/debug.tpl: - better escaping for $_debug_tpls[templates].filenames - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - removed redundant $smarty from Smarty::_smarty_include() - - * libs/debug.tpl: - proper escaping of filenames in debug-console (thanks to prossel). - -2003-08-07 Messju Mohr - - * docs/programmers.sgml: - added docs for block-methods of registered objects - - * docs/programmers.sgml: - fixed typo in example for registered objects - - * docs/designers.sgml: - fixed exampls of html_image and html_checkboxes - - * libs/plugins/function.debug.php: - fixed {debug} and removed tabs in function.debug.php - - * docs/programmers.sgml: - fixed example for register_object - - * docs/designers.sgml - docs/programmers.sgml: - updated docs for capture, html_table, html_image and register_object - -2003-08-07 Monte Ohrt - - * docs/designers.sgml - docs/programmers.sgml: - add math and default_resource_type to docs - - * docs/getting-started.sgml: - add core to example, add tech note - -2003-08-07 Messju Mohr - - * docs/manual.sgml - docs/fr/manual.sgml: - upd copyright in the docs - -2003-08-07 Monte Ohrt - - * docs/getting-started.sgml: - added core directory to install instructions - -2003-08-07 Messju Mohr - - * docs/designers.sgml - docs/programmers.sgml: - added docs for php-functions as modifiers - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - better caching of attributes for $cacheable=false-plugins - - * docs/programmers.sgml: - added section "caching.cacheable" to the docs, explaining the usage of - the $cacheable-flag of the register_(block|compiler|function)-functions - - * libs/Smarty_Compiler.class.php: - fixed output of custom-functions with cached attributes - - * docs/programmers.sgml: - docs update on callbacks to the register_*-functions - -2003-08-06 Messju Mohr - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.process_compiled_include.php: - added optional parameter $cache_attrs to register_function() and - register_block(). $cache_attrs is an array containing attribute- names - that should be cached on calls to functions that have $cacheable set - to false. - - * libs/Smarty.class.php: - fixed bug in _run_mod_handler - - * libs/Smarty_Compiler.class.php: - fixed bug with autoload-handling of modifiers. thanks ándre. - -2003-08-05 Messju Mohr - - * libs/Config_File.class.php - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - updated copyright notice - - * libs/Smarty.class.php - libs/core/core.load_plugins.php: - fixed bug that occurred when using the same not-cacheable plugin in - multiple includes - - * docs/programmers.sgml: - docs-update for plugins.writing - -2003-08-04 Messju Mohr - - * docs/designers.sgml - docs/programmers.sgml: - updated docs for register_block_function(), block-functions, - $request_use_auto_globals and html_checkboxes - -2003-07-31 Messju Mohr - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - enabled registration of class-methods as callbacks for the - register_*-functions - - use: array('classname', 'method_name')) as callback - -2003-07-29 Messju Mohr - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - modifiers are resolved at compile-time now. _run_mod_handler() is - still used for modifiers with map_array=true (== no preceeding '@') - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.smarty_include.php: - moved _smarty_include() back into Smarty.class.php - - * libs/Smarty.class.php - libs/core/core.load_plugins.php: - prevent unnecessary calls to _read_file() in _is_compiled() - converted method-call to internal function-call in - smarty_core_load_plugins() - -2003-07-28 Messju Mohr - - * libs/Smarty_Compiler.class.php: - quote smarty-header properly to prevent resource-names from escaping from - the comment - -2003-07-25 Messju Mohr - - * libs/core/core.create_dir_structure.php: - weakend race-condition and removed bogus error-message caused by that - in smarty_core_create_dir_structure(). - -2003-07-23 Messju Mohr - - * libs/Smarty.class.php - libs/core/core.display_debug_console.php - libs/core/core.fetch_resource_info.php - libs/core/core.get_php_resource.php - libs/core/core.parse_resource_name.php - libs/core/core.process_cached_inserts.php - libs/core/core.read_cache_file.php - libs/core/core.run_insert_handler.php - libs/core/core.smarty_include.php - libs/core/core.smarty_include_php.php - libs/plugins/function.eval.php: - moved _fetch_resource_info and _parse_resource_name back into - Smarty.class.php - renamed smarty_include and smarty_eval wrappers to _include and _eval - -2003-07-17 Messju Mohr - - * libs/core/core.process_compiled_include.php - libs/core/core.read_cache_file.php: - improved checking of compiled_include against cached-template with - non-cached-chunks - - * libs/core/core.write_compiled_include.php: - fixed too short open-tag - - * libs/plugins/function.eval.php: - fixed assign parameter for eval (must have gotton lost on its way to 2.5.0) - cleaned up indentiation - -2003-07-03 Messju Mohr - - * libs/Smarty_Compiler.class.php: - resurrected $foo->$bar syntax - - * libs/Smarty_Compiler.class.php: - i'm so stupid. kick me. - - * libs/Smarty_Compiler.class.php: - fixed initialisation of $this->_plugins in compile_block_tag() - -2003-07-03 Monte Ohrt - - * libs/Config_File.class.php: - add preg_quote delimiter - -2003-07-03 Messju Mohr - - * libs/Smarty_Compiler.class.php: - applied fix for {$var1->p1|modifier:$var2->p2}-syntax - thanks Dominik - -2003-07-02 Messju Mohr - - * libs/Smarty_Compiler.class.php: - fixed duplicate generation of arg-list in _compile_block_tag() - - * libs/Smarty_Compiler.class.php: - fixed off-by-one-error in nocache-tag-handling - -2003-06-30 Messju Mohr - - * libs/Smarty_Compiler.class.php: - backed out errornously committed support for $foo->$bar - - * libs/core/core.write_file.php: - fixed indentiation, silenced occasional warning - - * libs/plugins/function.html_image.php: - match first character of file-attribute against "/" instead of - DIRECTORY_SEPARATOR since it is a url-path and not a file-path. - - * libs/Smarty_Compiler.class.php - libs/core/core.write_file.php - libs/plugins/function.html_image.php: - libs/plugins/function.html_image.php - - * libs/Smarty_Compiler.class.php: - re-fixed cacheable_state-handling - - * libs/core/core.display_debug_console.php - libs/core/core.process_cached_inserts.php - libs/core/core.process_compiled_include.php - libs/core/core.run_insert_handler.php: - extincting $this out of smarty_core_*-functions - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - fixed handling of nocache-state - -2003-06-29 Messju Mohr - - * libs/Smarty.class.php - libs/core/core.smarty_include.php - libs/core/core.smarty_include_php.php - libs/plugins/function.eval.php: - removed $this from smarty_include and smarty_include_php - added cleaner handling of $this to {eval} - - * libs/core/core.load_resource_plugin.php: - fixed inlude_once-call - - * docs/de/designers.sgml - docs/fr/designers.sgml: - fixed examples of html_radios and html_checkboxes in german and french docs - -2003-06-25 Monte Ohrt - - * libs/core/core.assemble_auto_filename.php - libs/core/core.write_cache_paths_file.php: - fix typo, fix write_cache_paths logic - - * libs/Smarty.class.php - libs/core/core.assemble_auto_filename.php: - fix SMARTY_COMPILE_DIR_SEP problem, make local var - -2003-06-24 Monte Ohrt - - * libs/Smarty.class.php - libs/core/core.assemble_auto_filename.php - libs/core/core.write_cache_paths_file.php: - fixed cache_paths bug, simplified filename assembly logic - -2003-06-24 Messju Mohr - - * libs/plugins/function.html_image.php: - added parsing of forgotton param "basedir" - - * libs/Smarty_Compiler.class.php: - fixed $smarty.get-reference - - * libs/plugins/block.textformat.php: - removed warning - - * libs/Smarty_Compiler.class.php: - fixed value of _cacheable_state on compiler-startup - -2003-06-23 Monte Ohrt - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.write_cache_paths_file.php: - make cache_path per resource, fix a couple directory path issues - -2003-06-23 Messju Mohr - - * libs/Smarty_Compiler.class.php: - removed warning when compiling empty template - - * libs/core/core.write_compiled_include.php: - fixed bug in write_compiled_include - - * libs/core/core.assemble_plugin_filepath.php: - fixed warning - -2003-06-22 Messju Mohr - - * libs/plugins/function.eval.php: - fixed propagation of $this into evald code in smarty_function_eval() - - * libs/core/core.write_cache_paths_file.php - libs/core/core.write_compiled_include.php: - fix in compiled-include-handling - - * libs/core/core.assemble_auto_filename.php - libs/core/core.assemble_plugin_filepath.php - libs/core/core.assign_smarty_interface.php - libs/core/core.create_dir_structure.php - libs/core/core.fetch_resource_info.php - libs/core/core.get_include_path.php - libs/core/core.get_microtime.php - libs/core/core.get_php_resource.php - libs/core/core.is_secure.php - libs/core/core.is_trusted.php - libs/core/core.load_plugins.php - libs/core/core.load_resource_plugin.php - libs/core/core.parse_resource_name.php - libs/core/core.read_cache_file.php - libs/core/core.rm_auto.php - libs/core/core.rmdir.php - libs/core/core.write_cache_file.php - libs/core/core.write_cache_paths_file.php - libs/core/core.write_compiled_include.php - libs/core/core.write_compiled_resource.php - libs/core/core.write_file.php - libs/plugins/modifier.date_format.php: - started moving from $this to $smarty in core.*.php - -2003-06-21 Monte Ohrt - - * libs/core/core.create_dir_structure.php - libs/core/core.write_file.php - libs/plugins/function.config_load.php: - fix more dir paths - - * NEWS - libs/Smarty.class.php - libs/core/core.assemble_auto_filename.php - libs/core/core.assemble_plugin_filepath.php - libs/core/core.fetch_resource_info.php - libs/core/core.get_php_resource.php - libs/core/core.parse_resource_name.php - libs/core/core.process_cached_inserts.php - libs/core/core.read_cache_file.php - libs/core/core.rm_auto.php - libs/core/core.rmdir.php - libs/core/core.run_insert_handler.php - libs/core/core.smarty_include.php - libs/core/core.smarty_include_php.php - libs/core/core.write_cache_file.php - libs/core/core.write_cache_paths_file.php - libs/core/core.write_compiled_include.php - libs/core/core.write_compiled_resource.php - libs/core/core.write_file.php - libs/plugins/function.config_load.php - libs/plugins/function.fetch.php - libs/plugins/function.html_image.php: - fix filepaths to core files to use DIRECTORY_SEPARATOR - -2003-06-21 Messju Mohr - - * libs/Smarty_Compiler.class.php: - fixed {plugin|modifier} syntax - - * libs/Smarty.class.php - libs/core/core.write_compiled_include.php: - fixed compiled include handling - -2003-06-21 Monte Ohrt - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.assemble_auto_filename.php - libs/core/core.assemble_plugin_filepath.php - libs/core/core.write_cache_paths_file.php: - added filepath caching - -2003-06-20 Monte Ohrt - - * libs/Smarty_Compiler.class.php: - update more varnames - - * libs/Smarty.class.php - libs/core/core.display_debug_console.php - libs/core/core.fetch_file_info.php - libs/core/core.fetch_resource_info.php - libs/core/core.get_php_resource.php - libs/core/core.parse_file_path.php - libs/core/core.parse_resource_name.php - libs/core/core.process_cached_inserts.php - libs/core/core.read_cache_file.php - libs/core/core.run_insert_handler.php - libs/core/core.smarty_include.php - libs/core/core.smarty_include_php.php - libs/core/core.write_compiled_resource.php - libs/core/core.write_compiled_template.php - libs/plugins/function.config_load.php: - refactored var naming to better reflect "resource" instead of "file" where - appropriate - -2003-06-19 Messju Mohr - - * libs/Smarty.class.php: - updated version-number to 2.5.0-cvs - - * libs/core/core.write_cache_file.php: - omit is-cache_dir-writable-check if a cache_handler_function is in use - - * libs/core/core.smarty_include_php.php: - fixed comments in smarty_include_php - -2003-06-19 Monte Ohrt - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.display_debug_console.php - libs/core/core.smarty_include.php - libs/plugins/function.eval.php: - split up _compile_template to _compile_file and _compile_source, fix eval - function - VS: ---------------------------------------------------------------------- - - * libs/plugins/function.config_load.php: - fix logic for _is_compiled() - -2003-06-19 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - added optional assign-attribute to {capture}-tag - - * NEWS - libs/Smarty.class.php: - added $cacheable-parameter to register_compiler_function() - -2003-06-18 Messju Mohr - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.load_plugins.php - libs/core/core.process_compiled_include.php - libs/core/core.read_cache_file.php - libs/core/core.write_cache_file.php - libs/core/core.write_compiled_include.php: - added $cacheable-parameter to register_function() and register_block() - - * libs/Smarty.class.php: - append '.php' to all compiled templates regardless of the settings of - $use_sub_dirs - - * libs/Smarty.class.php - libs/core/core.read_cache_file.php: - fixed $file_path-parameters passed to smarty_core_fetch_file_info() - -2003-06-17 Monte Ohrt - - * NEWS: - fix name - - * libs/Smarty_Compiler.class.php: - change varnames to follow coding methods - - * NEWS - libs/Smarty_Compiler.class.php: - add math patch to core - -2003-06-17 Messju Mohr - - * libs/core/core.smarty_include.php: - switched _process_template() to _is_compiled()-logic - -2003-06-17 Monte Ohrt - - * libs/Smarty.class.php: - fix _is_compiled logic - - * NEWS: - update news file - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - fix _run_mod_handler routine - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.display_debug_console.php - libs/core/core.fetch_file_info.php - libs/core/core.parse_file_path.php - libs/core/core.write_compiled_template.php - libs/plugins/function.config_load.php: - fix path problems, rename some varibles from "template" to "file" - -2003-06-16 Monte Ohrt - - * libs/core/core.fetch_file_info.php - libs/core/core.fetch_template_info.php: - rename file, commit - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.parse_file_path.php - libs/core/core.read_cache_file.php - libs/plugins/block.strip.php - libs/plugins/block.textformat.php - libs/plugins/compiler.config_load.php - libs/plugins/function.config_load.php - libs/plugins/function.eval.php - libs/plugins/function.fetch.php - libs/plugins/function.html_image.php: - fix config_load, compile fetched arrays to compile_dir, switch display - back to runtime. clean up var names and function names, split up compile - testing and compiling to separate funcs, rename some template_* functions - to - file_* functions and update logic so they can be used for file resources - other than templates. - -2003-06-16 Messju Mohr - - * libs/Smarty_Compiler.class.php: - fixed little bug in _compile_custom_tag() - -2003-06-16 Monte Ohrt - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/core/core.assign_smarty_interface.php - libs/core/core.create_dir_structure.php - libs/core/core.display_debug_console.php - libs/core/core.fetch_template_info.php - libs/core/core.get_include_path.php - libs/core/core.get_microtime.php - libs/core/core.get_php_resource.php - libs/core/core.is_secure.php - libs/core/core.is_trusted.php - libs/core/core.load_plugins.php - libs/core/core.load_resource_plugin.php - libs/core/core.parse_file_path.php - libs/core/core.process_cached_inserts.php - libs/core/core.read_cache_file.php - libs/core/core.rm_auto.php - libs/core/core.rmdir.php - libs/core/core.run_insert_handler.php - libs/core/core.smarty_include.php - libs/core/core.smarty_include_php.php - libs/core/core.write_cache_file.php - libs/core/core.write_compiled_template.php - libs/core/core.write_file.php - libs/plugins/core.assign_smarty_interface.php - libs/plugins/core.create_dir_structure.php - libs/plugins/core.display_debug_console.php - libs/plugins/core.fetch_template_info.php - libs/plugins/core.get_include_path.php - libs/plugins/core.get_microtime.php - libs/plugins/core.get_php_resource.php - libs/plugins/core.is_secure.php - libs/plugins/core.is_trusted.php - libs/plugins/core.load_plugins.php - libs/plugins/core.load_resource_plugin.php - libs/plugins/core.parse_file_path.php - libs/plugins/core.process_cached_inserts.php - libs/plugins/core.read_cache_file.php - libs/plugins/core.rm_auto.php - libs/plugins/core.rmdir.php - libs/plugins/core.run_insert_handler.php - libs/plugins/core.smarty_include.php - libs/plugins/core.smarty_include_php.php - libs/plugins/core.write_cache_file.php - libs/plugins/core.write_compiled_template.php - libs/plugins/core.write_file.php: - move core files into their own directory under SMARTY_DIR, - remove abstraction function _execute_core_function - - * libs/Smarty_Compiler.class.php: - fix newline handling for template for all template tags - -2003-06-11 Monte Ohrt - - * libs/plugins/compiler.config_load.php: - add compiler function to cvs repository - -2003-06-11 Messju Mohr - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - added config-option "request_use_auto_globals" to make auto-globals be - used as request vars instead of HTTP_*_VARS - -2003-06-11 Monte Ohrt - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/plugins/function.config_load.php: - make config vars compile statically - -2003-06-11 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - backed out newlines patch - - * NEWS - libs/Smarty_Compiler.class.php: - removed newlines in compiled templates after closing tags - -2003-06-10 Messju Mohr - - * docs/de/designers.sgml: - fixed german note on html_image and disk-access - -2003-06-10 Monte Ohrt - - * libs/plugins/core.parse_file_path.php: - fix bug with resource_type resolving - -2003-06-09 Monte Ohrt - - * docs/designers.sgml: - replace example with more practical one - -2003-06-08 Messju Mohr - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - added block-methods for registered objects - -2003-06-07 Messju Mohr - - * docs/programmers.sgml: - fixed bug in documentation for $smarty->default_modifiers - -2003-06-06 Monte Ohrt - - * libs/plugins/core.parse_file_path.php: - fix problem with new default_resource_type changes - - * NEWS: - update NEWS file info - - * NEWS - libs/Smarty.class.php - libs/plugins/core.parse_file_path.php: - add default_resource_type, ignore 1 char resource names - - * NEWS - libs/Config_File.class.php: - fix bug where config file starts with hidden section - -2003-06-04 Monte Ohrt - - * NEWS - libs/Smarty.class.php: - -** empty log message *** - -2003-06-03 Monte Ohrt - - * libs/plugins/function.html_image.php: - fix example in code comments - -2003-06-03 Messju Mohr - - * NEWS - libs/plugins/function.counter.php: - fixed behaviour of start=... for {counter} - -2003-06-02 Messju Mohr - - * NEWS - libs/plugins/function.counter.php: - fixed assign for {counter} - -2003-05-30 Monte Ohrt - - * libs/plugins/core.write_cache_file.php - libs/plugins/core.write_compiled_template.php: - add discrete error checking pertaining to $cache_dir - and $compile_dir, their existance and writability - -2003-05-28 Messju Mohr - - * NEWS - libs/plugins/function.html_table.php: - added params vdir, hdir and inner to html_table to allow looping over - the data in various directions - -2003-05-28 Monte Ohrt - - * libs/plugins/core.compile_template.php - libs/plugins/core.display_debug_console.php: - fix problem with security and debug.tpl file - -2003-05-23 Monte Ohrt - - * NEWS: - upd NEWS file - - * libs/Smarty_Compiler.class.php: - allow spaces in literal tags - -2003-05-22 Monte Ohrt - - * docs/fr/programmers.sgml: - fix special chars - -2003-05-19 Monte Ohrt - - * NEWS - libs/Smarty_Compiler.class.php: - speed up compiled templates, hardcode plugin filepaths instead of - recalculate at runtime - -2003-05-19 Messju Mohr - - * docs/designers.sgml: - fixed example of {html_image} - - * docs/designers.sgml: - fixed typo - -2003-05-12 Messju Mohr - - * libs/Smarty.class.php - libs/plugins/core.read_cache_file.php - libs/plugins/core.smarty_include.php - libs/plugins/function.config_load.php: - fixed multiple redundant occurrences for 'config' and 'template' in - $smarty->_cache_info - -2003-05-10 Messju Mohr - - * libs/plugins/core.create_dir_structure.php: - refurbished create_dir_structure to use '/' internally - - * libs/plugins/core.create_dir_structure.php: - fixed windows absolute-paths in smarty_core_create_dir_structure() - - * libs/plugins/core.create_dir_structure.php: - fixed error-message - -2003-05-09 Messju Mohr - - * libs/Smarty_Compiler.class.php: - fixed warning due to missing param to _execute_core_function() - - * libs/Smarty_Compiler.class.php: - fixed quoting in _compile_include_php - - * libs/Smarty_Compiler.class.php: - fixed quoting of "file"-parameter in _compile_include_tag() - -2003-05-08 Monte Ohrt - - * docs/programmers.sgml: - fix typo - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/plugins/core.compile_template.php - libs/plugins/core.create_dir_structure.php - libs/plugins/core.fetch_template_info.php - libs/plugins/core.get_include_path.php - libs/plugins/core.get_microtime.php - libs/plugins/core.get_php_resource.php - libs/plugins/core.is_secure.php - libs/plugins/core.is_trusted.php - libs/plugins/core.load_plugins.php - libs/plugins/core.load_resource_plugin.php - libs/plugins/core.parse_file_path.php - libs/plugins/core.process_cached_inserts.php - libs/plugins/core.read_cache_file.php - libs/plugins/core.rm_auto.php - libs/plugins/core.rmdir.php - libs/plugins/core.run_insert_handler.php - libs/plugins/core.smarty_include.php - libs/plugins/core.smarty_include_php.php - libs/plugins/core.write_cache_file.php - libs/plugins/core.write_compiled_template.php - libs/plugins/core.write_file.php - libs/plugins/function.config_load.php - libs/plugins/function.fetch.php - libs/plugins/function.html_image.php: - abstract more private functions to plugin directory - - * libs/Config_File.class.php: - only add DIRECTORY_SEPARATOR if it isn't already present - - * libs/Config_File.class.php: - fix directory separator code, use DIRECTORY_SEPARATOR - -2003-05-08 Messju Mohr - - * docs/designers.sgml: - fixed example of html_checkboxes - - * NEWS - libs/Smarty.class.php: - fixed bug in _create_dir_structure() when used with - open_basedir-restriction and relative paths - - * docs/designers.sgml: - fixed example for html_radios - -2003-05-07 Monte Ohrt - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php - libs/plugins/core.assign_smarty_interface.php - libs/plugins/core.display_debug_console.php - libs/plugins/function.display_debug_console.php: - abstracted display_debug_console and assign_smarty_interface to plugin dir - as a test - - * libs/Smarty.class.php - libs/plugins/function.display_debug_console.php: - correct misc varnames, abstract debug console display to plugin function - - * libs/plugins/modifier.escape.php: - fix typo - -2003-05-05 Monte Ohrt - - * libs/Smarty_Compiler.class.php: - add % to math - - * libs/Smarty.class.php: - clean up comments, formatting - - * NEWS - libs/Smarty.class.php: - keep DIR_SEP for 3rd party compatability - - * NEWS - libs/Smarty.class.php: - remove DIR_SEP, use DIRECTORY_SEPARATOR exclusively - - * libs/Smarty_Compiler.class.php: - remove ++ and -- math operators on template vars - -2003-05-04 Messju Mohr - - * libs/Smarty_Compiler.class.php: - removed unused parameter $quote from Smarty_Compiler::_parse_attrs() - - * libs/plugins/function.html_image.php: - fixed DIR_SEP in html_image-plugin - -2003-05-04 Monte Ohrt - - * NEWS - libs/Smarty.class.php: - rename DIR_SEP to SMARTY_DIR_SEP to avoid varname collisions - -2003-05-04 Messju Mohr - - * NEWS - libs/plugins/function.html_image.php: - changed "link" to "href" in html_image. "link" is still working but - deprecated - html_image always renders an alt-tag now (default alt="") - cleaned up indentiation of function.html_image.php - -2003-05-03 Monte Ohrt - - * libs/debug.tpl: - fix typo - -2003-05-02 Messju Mohr - - * NEWS - libs/plugins/function.counter.php: - fixed assign attribute for multiple counters - -2003-05-02 Monte Ohrt - - * libs/Smarty_Compiler.class.php: - allow math on negative number - - * NEWS - libs/Smarty_Compiler.class.php: - added simple math operators to variables - -2003-05-02 Messju Mohr - - * docs/designers.sgml: - fixed typos - -2003-04-30 Monte Ohrt - - * docs/fr/appendixes.sgml - docs/fr/common.dsl - docs/fr/designers.sgml - docs/fr/getting-started.sgml - docs/fr/html-common.dsl - docs/fr/html.dsl - docs/fr/manual.sgml - docs/fr/php.dsl - docs/fr/preface.sgml - docs/fr/programmers.sgml: - add frech docs to cvs repository - -2003-04-29 Messju Mohr - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - reverted patch for case-insensitive tag-names - -2003-04-28 Messju Mohr - - * docs/programmers.sgml: - reverted back to humerous redundancy in the docs :). although we all - know we are here to generate template-based output, and not to have - fun ;-) - - * docs/getting-started.sgml: - fixed default user and group for max os x installation - - * libs/Smarty.class.php: - made $function[2] and $function[3] options for register_resource - - * libs/Smarty.class.php: - fixed issue with object-callback when fetching a php-resource - - * NEWS - libs/Smarty.class.php: - enabled array(&$obj. 'source', 'timestamp', 'secure', 'trusted') as - callback for register_resource() - - enabled array(&$obj, 'method') as callback for - $default_template_handler_func - -2003-04-27 Messju Mohr - - * docs/designers.sgml - docs/programmers.sgml: - fixed some typos, thank to mehdi - - * libs/plugins/function.counter.php: - prevent assign from overruling print-attribute in function.counter.php - - * libs/plugins/function.counter.php: - fixed problem with counter and assign - - * libs/Smarty.class.php: - fixed notice in _load_plugins() - - * NEWS - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - made plugin-names case-insensitive. this affects - compiler/block/custom-functions and modifers. - -2003-04-26 Monte Ohrt - - * NEWS - libs/Smarty_Compiler.class.php: - remove unnecessary close/open tags from compiled templates - -2003-04-26 Messju Mohr - - * docs/designers.sgml: - added documentation for foreach.property.* - -2003-04-24 Messju Mohr - - * docs/designers.sgml: - fixed example table_attr and tr_attr in html_table-example - -2003-04-21 Greg Beaver - - * libs/Smarty.class.php: - fixed small bug in doc comments - -2003-04-21 Messju Mohr - - * NEWS - libs/plugins/function.html_image.php: - fixed errornous creation of '//' in image_path in html_image - -2003-04-21 Monte Ohrt - - * libs/plugins/modifier.debug_print_var.php: - fix htmlspecialchars() conflict - - * NEWS - libs/plugins/modifier.debug_print_var.php: - fix escapement of special chars in key values of debug console - - * NEWS - libs/plugins/function.config_load.php: - fixed debug timing logic for config_load - - * docs/designers.sgml: - fix example text - - -2003-04-20 Greg Beaver - * plugins/* - Smarty.class.php - Smarty_Compiler.class.php - Config_File.class.php: - updated all doc comments to phpDocumentor format (whew!) - -2003-04-06 Messju Mohr - - * libs/plugins/function.math.php: - allowed "_" in the name of variable-parameters to {math}-function - -2003-04-04 Monte Ohrt - - * NEWS - docs/designers.sgml - libs/Smarty_Compiler.class.php: - change backtic syntax from $`foo` to `$foo` - - * NEWS - libs/Smarty_Compiler.class.php: - recognize $foo[][] syntax in embedded quotes without backticks - -2003-04-03 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - name=123 is passed as an integer (not a string) to plugins now - -2003-04-01 Messju Mohr - - * libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - added CVS $Id: ChangeLog,v 1.1 2005/10/17 18:37:38 jeichorn Exp $ - -2003-03-31 Messju Mohr - - * libs/Smarty.class.php: - added missing compile_id inside Smarty_Compiler - - * libs/Smarty_Compiler.class.php: - fixed flaw when generating an error for missing postfilter - -2003-03-31 Monte Ohrt - - * docs/getting-started.sgml - docs/programmers.sgml: - fix typos - -2003-03-27 Messju Mohr - - * NEWS - libs/plugins/modifier.debug_print_var.php: - $length is now propagated to sub-values in debug_print_var - -2003-03-26 Monte Ohrt - - * NEWS: - update header - - * RELEASE_NOTES: - commit changes to release notes - - * (Smarty_2_5_0_RC2) - libs/Config_File.class.php - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - committing RC2 - -2003-03-24 Messju Mohr - - * NEWS - libs/Smarty.class.php: - made clear_cache() ignore compile_id when clearing cache_groups - - * libs/plugins/function.popup.php: - made onmouseout XHTML-compatible in function.popup.php - -2003-03-21 Messju Mohr - - * NEWS - libs/Smarty.class.php: - applied new var-names to fetch() - - * NEWS - libs/Smarty.class.php: - renamed $localvars to $_localvars in cache-file-handling-functions, - added _get_auto_id()-function - -2003-03-21 Monte Ohrt - - * libs/plugins/function.mailto.php - libs/plugins/function.popup.php: - update functions for XHTML compatability - -2003-03-21 Messju Mohr - - * libs/Smarty.class.php: - fixed wrong $auto_id in _read_cache_file() - - * NEWS - libs/Smarty.class.php: - swapped compile_id and cache_id in read_cache_file and write_cache_file - - * libs/Smarty.class.php: - reverted patch for ignoring compile-id back to -r1.364, due to problems - - * NEWS - libs/plugins/function.html_checkboxes.php - libs/plugins/function.html_radios.php: - html_radios and html_checkboxes accept "selected" instead of "checked" - optionally now - - * NEWS - libs/Smarty.class.php: - swapped compile_id and cache_id for cache-file-handling again - -2003-03-20 Monte Ohrt - - * libs/Smarty_Compiler.class.php: - fix notice when no parameter is passed to default - -2003-03-20 Messju Mohr - - * NEWS - libs/Smarty.class.php: - removed notice of undefined var in _rm_auto() - -2003-03-19 Monte Ohrt - - * libs/plugins/function.html_checkboxes.php - libs/plugins/function.html_radios.php - libs/plugins/function.html_table.php: - fix a few error messages, follow consistancy format plugin_name: errormsg - - * libs/plugins/function.html_radios.php: - update error messages - - * NEWS - libs/plugins/function.html_radios.php: - add a warning when an array is passed as the 'checked' value of html_radios - -2003-03-19 Messju Mohr - - * NEWS - libs/Smarty_Compiler.class.php: - fixed errormessage in _compile_smarty_ref() - - * NEWS - docs/designers.sgml: - updated docs for html_image - -2003-03-18 Messju Mohr - - * NEWS - libs/Smarty.class.php: - cleaned up calls to readdir() - - * libs/plugins/function.html_options.php: - fixed label for optgroup in html_options - -2003-03-18 Monte Ohrt - - * NEWS - libs/Smarty_Compiler.class.php: - fix (newly introduced) bug with passing multiple modifiers to a parameter - -2003-03-18 Messju Mohr - - * NEWS - docs/designers.sgml: - updated docs for html_checkboxes, html_options and html_radios - - * libs/plugins/function.html_options.php: - fixed wrong default-"name" in function.html_options.php - - * NEWS - libs/plugins/function.html_checkboxes.php - libs/plugins/function.html_radios.php: - renamed "checkbox" and "radios" to "options" in {html_checkboxes} and - {html_radios} - - * libs/plugins/outputfilter.trimwhitespace.php: - tried to optimize re-replacement in outputfilter.trimwhitespace.php a - little - - * libs/plugins/outputfilter.trimwhitespace.php: - fixed greedy str_replace in outputfilter.trimwhitespace.php - - * NEWS - libs/plugins/function.html_checkboxes.php - libs/plugins/function.html_options.php - libs/plugins/function.html_radios.php: - html_options, html_checkboxes and html_radios now pass-thru all unknown - paramters - -2003-03-17 Messju Mohr - - * NEWS - libs/plugins/function.html_options.php: - html_options passthru all unknown paramters now - -2003-03-17 Monte Ohrt - - * NEWS - libs/plugins/function.html_image.php: - Fix link bug in html_image function, also make output XHTML compatible - - * libs/Smarty_Compiler.class.php: - fix issue of embedded var and escaped double quotes - -2003-03-15 Monte Ohrt - - * NEWS - libs/Smarty_Compiler.class.php: - back out "@" logic, apply only to default modifier special case - - * libs/Smarty_Compiler.class.php: - fix @ logic, only use upon an echo - - * NEWS - libs/Smarty_Compiler.class.php: - append "@" to template var echoes to supress possible notices - - * NEWS - libs/Smarty_Compiler.class.php: - append "@" to _run_mod_handler to supress warnings - -2003-03-14 Monte Ohrt - - * NEWS - libs/Smarty_Compiler.class.php: - fix problem with escaped double quotes - - * NEWS - libs/plugins/function.html_radios.php: - fixed html_options to not return an array - -2003-03-12 Messju Mohr - - * NEWS - libs/plugins/modifier.truncate.php: - fixed length in modifier.truncate.php - - * NEWS - libs/plugins/outputfilter.trimwhitespace.php: - fixed handling of '$'-signs in trimwhitespace outputfilter (messju) - -2003-03-12 Monte Ohrt - - * docs/programmers.sgml: - update technical explanation of assign_by_ref and append_by_ref - -2003-03-11 Monte Ohrt - - * NEWS - libs/Smarty.class.php: - fix config file recompiling code - -2003-03-07 Monte Ohrt - - * libs/plugins/function.html_image.php: - change E_USER_ERROR to E_USER_NOTICE - - * libs/plugins/function.html_image.php: - suppress warning in html_image - - * NEWS - libs/plugins/function.html_image.php: - update changes to html_image - -2003-03-06 Monte Ohrt - - * docs/designers.sgml - docs/de/appendixes.sgml - docs/de/common.dsl - docs/de/designers.sgml - docs/de/getting-started.sgml - docs/de/html-common.dsl - docs/de/html.dsl - docs/de/manual.sgml - docs/de/preface.sgml - docs/de/programmers.sgml: - add german docs to dist - - * NEWS: - update news file - - * libs/plugins/function.html_image.php: - fix width/height parameter index - - * NEWS - libs/Smarty.class.php: - get rid of unsetting name and script attributes to insert tags - -2003-03-05 Monte Ohrt - - * NEWS - RELEASE_NOTES: - update NEWS file - - * libs/plugins/modifier.string_format.php: - fix argument order, erroneously swapped a while back - - * (Smarty_2_5_0_RC1) - NEWS - README - RELEASE_NOTES - libs/Config_File.class.php - libs/Smarty.class.php - libs/Smarty_Compiler.class.php: - commit final changes for 2.5.0-RC1 - -2003-03-04 Monte Ohrt - - * docs/programmers.sgml: - remove $show_info_header and $show_info_include property vars from docs - -2003-03-03 Monte Ohrt - - * NEWS - libs/plugins/function.popup.php: - fixed PHP notice - -2003-02-28 Monte Ohrt - - * libs/Smarty_Compiler.class.php: - simplify smarty.const.foo and smarty.const.$foo logic - - * libs/Smarty_Compiler.class.php: - only allow $foo syntax in embedded quotes, unless escaped with backticks - then allow any dollar var - - * NEWS - libs/Smarty_Compiler.class.php: - fix "once" var compiling to work with new attr compiling methods for - include_php - - * FAQ - NEWS - README - docs/designers.sgml - docs/getting-started.sgml - libs/Smarty_Compiler.class.php - libs/plugins/function.html_checkboxes.php - libs/plugins/function.html_image.php - libs/plugins/function.html_options.php - libs/plugins/function.html_radios.php - libs/plugins/function.html_select_date.php - libs/plugins/function.html_select_time.php - libs/plugins/function.html_table.php: - fix $smarty.const.foo compiling, clean up double quoted strings, - allow full dollar var syntax in quotes again - -2003-02-27 Monte Ohrt - - * docs/designers.sgml - docs/programmers.sgml - libs/Smarty_Compiler.class.php: - update docs, fix smarty var compiling, allow any $smarty.*.$foo syntax, - add $`foobar` for embedded variables - - * libs/plugins/function.html_image.php: - update functionality - -2003-02-26 Monte Ohrt - - * NEWS - libs/plugins/modifier.nl2br.php: - add nl2br modifier - - * libs/plugins/function.html_image.php: - add link parameter - -2003-02-24 Monte Ohrt - - * libs/Smarty.class.php - libs/plugins/function.html_image.php: - fix rename problem in windows, unlink first - - * libs/plugins/function.html_checkboxes.php - libs/plugins/function.html_image.php - libs/plugins/function.html_options.php - libs/plugins/function.html_radios.php - libs/plugins/shared.escape_special_chars.php: - update functions with separate escape_special_chars routine - - * NEWS - libs/plugins/function.html_checkboxes.php - libs/plugins/function.html_radios.php: - commit checkboxes, update radios - - * NEWS - libs/Smarty.class.php - libs/plugins/function.html_image.php: - fix bug with get_registered_object - - * NEWS - libs/plugins/modifier.cat.php: - added cat modifier to distribution - - * NEWS - libs/Smarty_Compiler.class.php: - added << >> <> support to IF statements - - * libs/plugins/function.html_radios.php: - apply patch to initial html_radios function - - * NEWS - libs/Smarty.class.php: - fix _assign_smarty_interface to not overwrite keys other than 'request' - - * NEWS - libs/plugins/function.html_radios.php: - added html_radios to distribution - - * NEWS - libs/plugins/modifier.string_format.php: - fixed arg order of string_format - - * NEWS - libs/Smarty.class.php: - use tmp file for file writes, avoid race condition - - * NEWS - libs/Smarty_Compiler.class.php: - add $smarty.config.foo var, handle embedded smarty var correctly - - * NEWS - libs/plugins/function.fetch.php: - silence warnings in fetch plugin - -2003-02-21 Monte Ohrt - - * INSTALL: - update wording - - * INSTALL: - update install instructions - - * AUTHORS - BUGS - CREDITS - QUICKSTART - README - RESOURCES - TESTIMONIALS: - remove some files already in docs or elsewhere - - * demo/index.php: - add templates_c to repository - - * index.php: - move demo files to demo directory - - * Config_File.class.php - Smarty.class.php - Smarty_Compiler.class.php - debug.tpl: - moved lib files under libs directory - -2003-02-20 Monte Ohrt - - * NEWS - Smarty.class.php: - add get_config_vars() method, update get_template_vars() functionality - - * NEWS - Smarty.class.php: - fix minor logic in _fetch_template_info() - - * NEWS - Smarty.class.php: - support merging appended vars - - * NEWS - Smarty.class.php: - fix cache groups behavior with compile_id set - -2003-02-19 Monte Ohrt - - * Smarty.class.php: - back out third parameter, extend functionality of append - - * NEWS - Smarty_Compiler.class.php: - update imbedded vars, allow special $smarty vars - - * plugins/function.html_table.php: - add plugin html_table - - * NEWS - Smarty.class.php: - support appending key=>val pairs - - * NEWS - Smarty_Compiler.class.php: - change embedded variable logic to only recognize $foo and $foo[0][bar] - syntax - - * NEWS - Smarty_Compiler.class.php: - allow null as function attribute value - -2003-02-18 Monte Ohrt - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - support foo->bar[index] syntax - - * Smarty_Compiler.class.php: - allow $foo->bar[0] syntax - -2003-02-17 Monte Ohrt - - * plugins/modifier.escape.php: - fix syntax error from previous commit - - * NEWS - Smarty.class.php: - add error msgs to get_registered_object - - * Smarty.class.php: - add function for getting reference to registered object - - * Smarty_Compiler.class.php: - back out patches for object and objref calls on $smarty var - - * NEWS - Smarty_Compiler.class.php: - treat unrecognized param attribute syntax as a string - - * NEWS - Smarty_Compiler.class.php: - support $smarty.const.$foo syntax - - * NEWS - debug.tpl - plugins/modifier.count_words.php - plugins/modifier.escape.php: - fix E_NOTICE messages - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - add @ and === to if tokens, few param cleanups - -2003-02-16 Greg Beaver - - * ChangeLog - Smarty.class.php - Smarty_Compiler.class.php: - many more phpdoc comment upgrades - -2003-02-15 Greg Beaver - * Smarty.class.php - Smarty_Compiler.class.php - continue cleaning of phpdoc comments. All that is needed is the - addition of @return tags and perhaps a bit more verbose comments - and they are finished. - -2003-02-14 Monte Ohrt - - * NEWS - Smarty.class.php: - enable config_load error messages - - * NEWS - plugins/function.html_options.php: - fix html_options to not escape already escaped entities - - * NEWS - Smarty.class.php: - send Last-Modified header on cache creation, misc tab/spacing cleanup - -2003-02-13 Monte Ohrt - - * Smarty_Compiler.class.php - docs/designers.sgml: - allow dash in plain text - - * NEWS - Smarty_Compiler.class.php: - check strict syntax of function attributes - -2003-02-12 Monte Ohrt - - * NEWS - Smarty_Compiler.class.php: - dropped support for modifiers on object parameters, - added support for objects as modifier parameters - - * NEWS - Smarty_Compiler.class.php - docs/designers.sgml: - fix bug with decimal numbers in if statements, misc doc updates - -2003-02-11 Monte Ohrt - - * (Smarty_2_4_2) - Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php: - update version numbers - -2003-02-10 Monte Ohrt - - * NEWS - Smarty_Compiler.class.php: - add support for $foo->$bar syntax - - * NEWS: - update NEWS file - - * NEWS - Smarty_Compiler.class.php: - support full var syntax in quoted text, fix problem with const var access, - clean up some more regex code, fix object problem with no properties - -2003-02-06 Monte Ohrt - - * (Smarty_2_4_1) - Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php: - committed 2.4.1 changes - - * NEWS - Smarty_Compiler.class.php: - ignore case in IF statements - -2003-02-05 Monte Ohrt - - * NEWS - Smarty_Compiler.class.php: - treat undefined constants as null - - * NEWS - Smarty.class.php: - fix problem with inserts and nested fetches - - * Smarty_Compiler.class.php: - fix "if" regex for math tokens - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - docs/getting-started.sgml: - added support for extracting params to include_php - -2003-02-04 Monte Ohrt - - * RELEASE_NOTES: - reformat text - -2003-02-03 Monte Ohrt - - * NEWS: - update news file - -2003-02-03 Greg Beaver - - * ChangeLog - Smarty.class.php: - begin fixing phpdoc comments in Smarty.class.php - - * ChangeLog - Config_File.class.php: - fixed phpdoc comments - -2003-02-03 Monte Ohrt - - * Smarty_Compiler.class.php: - allow $foo->bar[$x].foo syntax - - * Smarty_Compiler.class.php - index.php - configs/test.conf - templates/index.tpl: - fix accidental commit - - * index.php - configs/test.conf - templates/index.tpl: - allow $foo->bar[$j].blah type of syntax - -2003-02-02 Greg Beaver - - * Smarty.class.php - begin fixing of phpdoc comments - - * Config_File.class.php - fix phpdoc comments, add phpDocumentor docblock templates - -2003-02-02 Monte Ohrt - - * Smarty.class.php - docs/html.dsl - docs/php.dsl: - fix version number - - * (Smarty_2_4_0) - Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php - docs/appendixes.sgml - docs/designers.sgml - docs/programmers.sgml: - update Smarty version numbers - -2003-01-30 Monte Ohrt - - * NEWS - Smarty_Compiler.class.php - TODO: - fix order of php tag comparisons - - * NEWS - Smarty_Compiler.class.php: - fix known php tag handling problems - -2003-01-29 Monte Ohrt - - * Smarty.class.php - Smarty_Compiler.class.php: - change comments to phpdoc style - -2003-01-28 Monte Ohrt - - * Smarty.class.php - docs/programmers.sgml: - make separate var for compiler file - - * plugins/function.fetch.php: - fix error call - -2003-01-25 Monte Ohrt - - * Smarty.class.php - Smarty_Compiler.class.php: - add support for restriction to registered methods - - * plugins/outputfilter.trimwhitespace.php: - update with textarea support - -2003-01-24 Monte Ohrt - - * Smarty_Compiler.class.php: - fix compiling problem with {foreach} tags - - * Smarty.class.php - Smarty_Compiler.class.php: - put objects in own array, add object param format support, change - object syntax from foo.bar to foo->bar - -2003-01-23 Monte Ohrt - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - add support for object registration - -2003-01-22 Monte Ohrt - - * Smarty.class.php: - add file & line number of calling error to error message - -2003-01-21 Monte Ohrt - - * Smarty_Compiler.class.php: - put php style object syntax back in - -2003-01-20 Monte Ohrt - - * Smarty.class.php: - move security settings to fetch function for template_dir - - * NEWS - Smarty.class.php: - fix debug template and security, add template_dir to secure_dir at runtime - -2003-01-17 Monte Ohrt - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - added new object support without new template syntax - -2003-01-15 Monte Ohrt - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - fix if statement syntax for negative integers, fix issue with directories - named '0' - -2003-01-08 Monte Ohrt - - * Smarty.class.php - plugins/function.counter.php - plugins/function.cycle.php - plugins/function.debug.php - plugins/function.eval.php - plugins/function.fetch.php - plugins/function.html_options.php - plugins/function.html_select_date.php - plugins/function.html_select_time.php - plugins/function.mailto.php - plugins/function.math.php - plugins/function.popup.php - plugins/function.popup_init.php: - update plugins to return values instead of echo, fix config file cache - to include global config variables in cache file - - * Smarty_Compiler.class.php: - fix bug with >= tests in if statements, comment out full object support - -2003-01-06 Monte Ohrt - - * NEWS - docs/html.dsl - plugins/modifier.escape.php: - add javascript escape parameter to escape modifier - -2003-01-02 Monte Ohrt - - * templates/header.tpl: - move the title into head where it should be - -2002-12-24 Monte Ohrt - - * Smarty_Compiler.class.php: - added correct line numbers to smarty syntax error messages - - * docs/programmers.sgml: - update append documentation, make more clear on its function - - * Smarty_Compiler.class.php: - fix modifier matching regexp - -2002-12-23 Monte Ohrt - - * Smarty_Compiler.class.php: - support nested function calls in IF statements - -2002-12-20 Monte Ohrt - - * Smarty_Compiler.class.php: - few more fixes, spaces around function parameters - - * Smarty_Compiler.class.php: - fix misc syntax issues with {if} tags - -2002-12-20 Monte Ohrt - - * Smarty_Compiler.class.php: - fix misc syntax issues with {if} tags - -2002-12-19 Monte Ohrt - - * Smarty_Compiler.class.php: - commit updates, passes all smoke tests - - * NEWS: - update NEWS file - - * Smarty_Compiler.class.php: - fixed literal string not in quotes as parameters - - * NEWS - Smarty_Compiler.class.php: - fix misc syntax issues, add ability to pass modifiers to functions - -2002-12-18 Monte Ohrt - - * NEWS: - update NEWS - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - update compiler code, clean up regex, add new syntax features - -2002-12-16 Monte Ohrt - - * NEWS: - update NEWS file - - * Smarty_Compiler.class.php: - commit updates for objects - -2002-12-14 Monte Ohrt - - * Smarty.class.php - Smarty_Compiler.class.php: - fix bug with compiling config files with caching on - -2002-12-13 Monte Ohrt - - * Smarty_Compiler.class.php: - fix problem with matching single quoted strings - - * Smarty_Compiler.class.php: - update embedded variable logic, get rid of ."" at end of output - - * NEWS - docs/designers.sgml - plugins/function.html_select_date.php: - add day_value_format to html_select_date - -2002-12-12 Monte Ohrt - - * plugins/modifier.debug_print_var.php: - fix bug, double escaped values in display - - * Smarty.class.php: - move debug test back into fetch() - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - plugins/outputfilter.trimwhitespace.php: - assigned vars are no longer in global name space, few debug cleanups - -2002-12-11 Monte Ohrt - - * plugins/function.popup.php: - fix error in newline code - - * plugins/function.popup.php: - fix popup to allow newlines in text data - -2002-12-10 Monte Ohrt - - * Smarty.class.php: - fix plugin error logic - - * docs/designers.sgml - docs/programmers.sgml: - edit examples, make more verbose - - * NEWS - plugins/function.html_options.php: - escape html entities in the option values and output - - * NEWS - plugins/function.html_options.php: - fixed bug with label of html_options - -2002-12-09 Monte Ohrt - - * Smarty.class.php: - add support for var_export() - - * Config_File.class.php - Smarty.class.php: - clean up code, respect force_compile and compile_check flags - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - docs/designers.sgml - plugins/function.mailto.php: - add caching feature to config loading, document update, add mailto plugin - -2002-12-08 Monte Ohrt - - * plugins/function.fetch.php: - fix query part of URL - -2002-12-05 Monte Ohrt - - * docs/designers.sgml: - fix typos - -2002-11-22 Monte Ohrt - - * Smarty_Compiler.class.php: - patch for warning message - -2002-11-21 Monte Ohrt - - * RELEASE_NOTES - Smarty.class.php: - get rid of testing for a set value with assign function, just set to - whatever is passed into the template - - * docs/programmers.sgml: - fix typo - -2002-11-19 Monte Ohrt - - * Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php: - commit changes, ready for 2.3.1 release - -2002-11-01 Monte Ohrt - - * plugins/function.html_options.php: - added label attribute to all option outputs, cover w3c spec. - - * NEWS: update NEWS file - - * docs/designers.sgml: update docs for optgroup output - - * plugins/function.html_options.php: - make html_options work with optgroup, make func modular and recursive. - -2002-10-29 Monte Ohrt - - * NEWS - Smarty.class.php: set mtime on compile files so they match source files - -2002-10-18 Monte Ohrt - - * NEWS - Smarty.class.php: added proper support for open_basedir setting - - * docs/designers.sgml: clear up docs on index, iteration and rownum - -2002-10-16 Monte Ohrt - - * plugins/modifier.default.php: fix warning message in default modifier - -2002-09-25 Monte Ohrt - - * docs/designers.sgml - plugins/modifier.strip.php - NEWS: added strip variable modifier - -2002-09-24 Andrei Zmievski - - * NEWS: *** empty log message *** - - * Smarty_Compiler.class.php: - Fix to be able to use $smarty.x variables as arrays. - -2002-09-23 Monte Ohrt - - * Config_File.class.php: - add support for mac/dos formatted config files (fix newlines) - - * docs/programmers.sgml: add optional tags to clear_cache parameters - - * docs/designers.sgml: - fix error with include_php description, add $this to description - -2002-09-20 Monte Ohrt - - * NEWS - docs/getting-started.sgml: fixed errors with example setup docs - -2002-09-16 Monte Ohrt - - * plugins/block.textformat.php - docs/designers.sgml - NEWS: add textformat block function - -2002-09-10 Monte Ohrt - - * docs/designers.sgml: - add assign attribute to cycle function documentation - - * docs/designers.sgml - docs/programmers.sgml: fix typos - -2002-09-09 Monte Ohrt - - * plugins/function.debug.php - templates/header.tpl: - fix header in debug template, fix typo in header.tpl example - -2002-08-15 mohrt - - * docs/programmers.sgml: fix typos - -2002-08-08 mohrt - - * RELEASE_NOTES - Smarty.class.php: - supress warnings from unlink() and is_dir(), let error handler deal with it - -2002-08-07 mohrt - - * docs/appendixes.sgml - docs/designers.sgml - docs/programmers.sgml - Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php: update files with new version numbers - -2002-08-02 mohrt - - * NEWS: update NEWS file with credits - - * NEWS - Smarty.class.php: added assign_by_ref() and append_by_ref() functions - -2002-08-01 mohrt - - * TODO - NEWS - Smarty.class.php: - changed default warning type for plugin errors from E_USER_WARNING to E_USER_ERROR - -2002-07-29 mohrt - - * plugins/function.html_select_time.php - docs/designers.sgml - NEWS: added paramters to html_select_time plugin - -2002-07-25 Andrei Zmievski - - * TODO: *** empty log message *** - -2002-07-24 mohrt - - * QUICKSTART: update QUICKSTART guide - - * NEWS - debug.tpl - plugins/modifier.debug_print_var.php: - update debug console to show objects, fix warning in debug.tpl - -2002-07-23 mohrt - - * docs/programmers.sgml: fix load_filter examples - - * Config_File.class.php - NEWS: fix error when there are no sections in config file - -2002-07-19 mohrt - - * docs/getting-started.sgml: fix error in install guide - -2002-07-18 mohrt - - * Smarty_Compiler.class.php: - correct the expression match for smarty:nodefaults - -2002-07-17 mohrt - - * Smarty_Compiler.class.php: fix default modifier to work with config vars - - * Smarty_Compiler.class.php: got args to strstr backwards... - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - change default modifiers to array instead of string - - * Smarty_Compiler.class.php - docs/designers.sgml - Smarty.class.php: add default modifier logic, minor doc updates - - * NEWS - Smarty.class.php - plugins/function.popup_init.php: - make popup_init xhtml compliant, minor variable name changes for consistancy - -2002-07-16 mohrt - - * NEWS: update NEWS file - - * plugins/function.debug.php - Smarty.class.php - debug.tpl - NEWS: - fix problem with filenames on windows, add ability to supply expire time in seconds when clearing cache or compiled files - -2002-07-15 mohrt - - * Smarty.class.php: - fixed problem with insert tags when loading function from script attribute - and caching enabled (Monte) - -2002-07-14 mohrt - - * NEWS - Smarty.class.php: fix bug with debug_tpl file path for Windows - -2002-07-12 Monte Ohrt - - * Smarty.class.php: fix append function with array/string issue - -2002-07-11 Monte Ohrt - - * RELEASE_NOTES: update release notes - - * NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php - Config_File.class.php: update files to 2.2.0 tags, get ready for release - -2002-07-09 Monte Ohrt - - * NEWS - Smarty.class.php: make debug.tpl work with any delimiter - - * NEWS - Smarty.class.php: - change tests in append and assign to != '' instead of empty(), which is more accurate - -2002-07-08 Monte Ohrt - - * docs/designers.sgml: minor doc update - - * Smarty.class.php: - cast var as an array, simplify and get rid of PHP warning messages - -2002-07-03 Monte Ohrt - - * Smarty.class.php: one more N - - * Smarty.class.php: - prepend "N" to filenames to avoid possible OS issues with dir names starting with "-" - - * Smarty.class.php: only set $debug_tpl in constructor if empty - - * Smarty.class.php - docs/designers.sgml - docs/getting-started.sgml - docs/programmers.sgml: - make use_sub_dirs go back to crc32 for subdir separation - -2002-06-29 Monte Ohrt - - * plugins/function.eval.php: do nothing if $val is empty - - * TODO - plugins/function.eval.php - plugins/function.popup_init.php: - add zindex to popup init, fix error message for eval. - -2002-06-27 Monte Ohrt - - * Smarty.class.php: - only loop through relative paths for PHP include_path, remove $_relative variable - - * Smarty_Compiler.class.php: added {$smarty.version} variable - -2002-06-26 Monte Ohrt - - * docs/appendixes.sgml - docs/designers.sgml - docs/getting-started.sgml - docs/programmers.sgml - Smarty.class.php: - update plugin loading logic, look in SMARTY_DIR, then cwd. If all fail, then retry all with include_path - - * templates/header.tpl - Smarty.class.php: update get_include_path, get _path_array only once - - * Smarty.class.php: fix get_include_path function for windows - - * Smarty.class.php: update plugin search logic - - * Smarty.class.php: only search include_path if relative path - - * plugins/function.html_select_date.php - plugins/function.html_select_time.php - plugins/modifier.date_format.php - Smarty_Compiler.class.php - NEWS - Smarty.class.php: allow plugins_dir to be an array of directories - -2002-06-25 Monte Ohrt - - * docs/programmers.sgml - docs/getting-started.sgml: update installation docs - - * debug.tpl - docs/getting-started.sgml - templates/debug.tpl - NEWS - Smarty.class.php: move debug.tpl to SMARTY_DIR, add to constructor - -2002-06-24 Monte Ohrt - - * plugins/function.assign_debug_info.php - NEWS: fixed warning message in function.assign_debug_info - - * Smarty.class.php: update include_path fixes - - * NEWS: - fixed $template_dir, $compile_dir, $cache_dir, $config_dir to respect include_path - -2002-06-23 Monte Ohrt - - * plugins/shared.make_timestamp.php: - update timestamp plugin to work when passed a timestamp - -2002-06-19 Monte Ohrt - - * NEWS: update NEWS file - - * plugins/modifier.date_format.php - docs/designers.sgml: - update date_format, allow optional 2nd paramater as default date if passed date is empty. update docs. - - * plugins/modifier.date_format.php: - fix date_format modifier, return nothing if given empty string - -2002-06-18 Monte Ohrt - - * NEWS - plugins/function.cycle.php: - gave $reset a default value in cycle function - - * plugins/function.html_select_date.php - plugins/shared.make_timestamp.php - NEWS: - corrected warnings in html_select_time function, made make timestamp always return a timestamp - -2002-06-17 Monte Ohrt - - * Smarty.class.php: swapped around cache_id and compile_id order - -2002-06-14 Monte Ohrt - - * docs/programmers.sgml - plugins/function.popup_init.php - Smarty.class.php: - change directory delimiter to "^" for cache and compile files - -2002-06-13 Andrei Zmievski - - * TODO: done. - - * Smarty_Compiler.class.php: - Optimize the calculation of section 'total' property. - -2002-06-11 Monte Ohrt - - * NEWS - Smarty.class.php: - added support for subdir exclusion, deletion by full or partial cache_id and compile_id, change file format to urlencoded values instead of crc32 - -2002-06-07 Monte Ohrt - - * Smarty.class.php: fix bug with last_modified_check code - - * NEWS - Smarty.class.php: - updated $GLOBALS refererence for HTTP_IF_MODIFIED_SINCE - -2002-06-06 Monte Ohrt - - * docs/designers.sgml - overlib.js: - remove overlib.js file from distribution, update plugin and docs - -2002-06-05 Monte Ohrt - - * docs/designers.sgml - NEWS - Smarty.class.php: fix 304 Not Modified, don't send content - -2002-06-03 Monte Ohrt - - * plugins/function.cycle.php: update version number - - * plugins/function.cycle.php - NEWS: - fixed cycle function to respect delimiter setting after initial setting - - * Smarty.class.php - NEWS: - update $GLOBALS references to work properly with track_globals settings - - * plugins/function.math.php: fixed bug with call $assign - - * docs/appendixes.sgml - docs/designers.sgml - plugins/function.html_options.php - plugins/function.html_select_time.php - NEWS - Smarty.class.php - Smarty_Compiler.class.php: - optimized for loops with count() function calls - -2002-06-01 Andrei Zmievski - - * TODO: *** empty log message *** - -2002-05-21 Monte Ohrt - - * NEWS: update NEWS file - - * plugins/function.html_select_date.php - RESOURCES - docs/designers.sgml - Config_File.class.php: - update html_select_date with month_value_format attribute for controlling the format of the month values. - -2002-05-17 Andrei Zmievski - - * NEWS - Smarty_Compiler.class.php: - Made it possible to use simple variables inside [] for indexing. - -2002-05-16 Monte Ohrt - - * docs/designers.sgml - docs/getting-started.sgml - NEWS - Smarty.class.php - Smarty_Compiler.class.php - TESTIMONIALS: add "once" attribute to php_include, update docs - -2002-05-09 Andrei Zmievski - - * NEWS - TODO: *** empty log message *** - -2002-05-07 Monte Ohrt - - * plugins/function.cycle.php: remove \n from cycle function - - * docs/designers.sgml - plugins/function.cycle.php - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php - NEWS: - update cycle function to handle array as input, update files to 2.1.1 - -2002-05-06 Monte Ohrt - - * plugins/function.fetch.php: - update fetch function with more error checking - -2002-05-03 Monte Ohrt - - * docs/designers.sgml - plugins/function.counter.php: - update counter to use name instead of id (id still works though) - - * plugins/function.cycle.php - docs/designers.sgml: rename id to name for cycle function - - * plugins/function.cycle.php: - update cycle function to allow blank values parameter after initialized - - * plugins/function.cycle.php: fix syntax error - -2002-05-02 Monte Ohrt - - * plugins/function.cycle.php: ugh, another typo - - * plugins/function.cycle.php: update comments - - * docs/designers.sgml - plugins/function.cycle.php - NEWS: added function cycle - - * FAQ - Smarty.class.php: fix register_outputfilter function - -2002-05-01 Monte Ohrt - - * docs/designers.sgml - NEWS - Smarty.class.php: fixed bug with resource testing and include_path - -2002-04-30 Monte Ohrt - - * NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php: update files for 2.1.0 release - -2002-04-30 Andrei Zmievski - - * plugins/function.fetch.php - docs/programmers.sgml - Smarty.class.php: Fix. - -2002-04-29 Andrei Zmievski - - * docs/programmers.sgml - docs/designers.sgml: A whole bunch of docs. - -2002-04-26 Monte Ohrt - - * FAQ - QUICKSTART - docs/programmers.sgml: update FAQ, QUICKSTART, small doc syntax fix - -2002-04-24 Monte Ohrt - - * docs/programmers.sgml - templates/debug.tpl - Smarty.class.php: changed doc structure a bit - -2002-04-16 Andrei Zmievski - - * Smarty.class.php: Add register/unregister API for output filters. - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - TODO: - Changed the way filters are loaded, which now has to be done explicitly, - either through load_filter() API or by filling in $autoload_filters variable. - Also renamed internal variable to avoid namespace pollution. - -2002-04-15 Andrei Zmievski - - * Smarty.class.php: - Fixed _get_php_resource() to take include_path into account. - -2002-04-15 Monte Ohrt - - * docs/designers.sgml: - update docs, get modifiers and functions into index for easy access - - * docs/programmers.sgml - NEWS - Smarty.class.php: update caching documentation - -2002-04-15 Andrei Zmievski - - * NEWS: *** empty log message *** - - * Smarty.class.php: Only turn down error notices if $debugging is false. - -2002-04-15 Monte Ohrt - - * NEWS: update NEWS file - - * plugins/function.html_select_date.php: - fixed logic so this works right when field_separator = "/" - - * plugins/function.html_select_date.php: - fix regular expression for matching date - -2002-04-13 Monte Ohrt - - * docs/designers.sgml: updated html_select_date docs to reflect changes - - * NEWS - plugins/function.html_select_date.php: - added YYYY-MM-DD support to html_select_date - -2002-04-12 Andrei Zmievski - - * TESTIMONIALS: New entry. - -2002-04-12 Monte Ohrt - - * plugins/modifier.strip_tags.php: back out changes to strip_tags - - * docs/programmers.sgml: update docs regarding cache_lifetime - - * plugins/modifier.strip_tags.php - Smarty.class.php: - update cache_lifetime logic: -1 = never expire, 0 = always expire - -2002-04-11 Andrei Zmievski - - * BUGS - FAQ - INSTALL - NEWS - Smarty.class.php - Smarty_Compiler.class.php - docs/getting-started.sgml: - Fixed directory separtor issue. Requiring PHP 4.0.6 now. - - * NEWS - Smarty_Compiler.class.php: - Added ability to use simple variables for array indices or object properties. - - * TESTIMONIALS: Another one. - - * TESTIMONIALS: Adding one from Mark P. - -2002-04-05 Andrei Zmievski - - * Smarty_Compiler.class.php - NEWS - Smarty.class.php: Make it possible to unregister pre/postfilter plugins. - -2002-04-05 Monte Ohrt - - * INSTALL: Remove addons file from INSTALL instructions - -2002-04-04 Monte Ohrt - - * docs/designers.sgml: update doc error - - * docs/designers.sgml - plugins/modifier.escape.php - NEWS - Smarty.class.php: added htmlall attribute to escape modifier - -2002-04-03 Andrei Zmievski - - * Smarty_Compiler.class.php: Fixed undefined offset warning in {if} tag. - - * Smarty.class.php - NEWS: Added template_exists() API. - - * Smarty.class.php - Smarty_Compiler.class.php - NEWS: - - Added $smarty.template variable. - - Fixed {include_php} tag when dynamic values were used for 'file' attribute. - - * Config_File.class.php: Separator setting fix. - -2002-03-28 Monte Ohrt - - * FAQ - README: add digest address - - * FAQ - README - Smarty.class.php: update mailing list addresses - -2002-03-28 Andrei Zmievski - - * NEWS: *** empty log message *** - - * plugins/function.html_select_date.php - plugins/function.html_select_time.php - plugins/modifier.date_format.php: - Fix for when plugins directory is not the default one. - -2002-03-28 Andrei Zmievski - - * NEWS: *** empty log message *** - - * plugins/function.html_select_date.php - plugins/function.html_select_time.php - plugins/modifier.date_format.php: - Fix for when plugins directory is not the default one. - -2002-03-27 Monte Ohrt - - * FAQ: update FAQ page - -2002-03-26 Andrei Zmievski - - * CREDITS - NEWS - Smarty.class.php - Smarty_Compiler.class.php - TODO: Block functions changes. - - * Config_File.class.php: *** empty log message *** - -2002-03-25 Andrei Zmievski - - * Smarty.class.php - Smarty_Compiler.class.php: Initial implementation of block functions. - -2002-03-22 Monte Ohrt - - * docs/designers.sgml: fix documentation error in capture - -2002-03-22 Andrei Zmievski - - * Smarty.class.php: *** empty log message *** - - * Smarty.class.php: Turn off notices. - -2002-03-21 Andrei Zmievski - - * Smarty_Compiler.class.php: Make _current_file available to prefilters. - - * NEWS - Smarty.class.php: - Made is possible to assign variables in pre/postfilters. - -2002-03-20 Andrei Zmievski - - * plugins/function.html_select_date.php: Fixed +/- functionality. - - * NEWS: *** empty log message *** - -2002-03-20 Monte Ohrt - - * Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.class.php - Smarty_Compiler.class.php: update version numbers - - * plugins/function.html_select_date.php - plugins/function.html_select_time.php - plugins/modifier.date_format.php: - move .make_timestamp.php to shared.make_timestamp.php - - * NEWS - Smarty.class.php - docs/designers.sgml - plugins/function.fetch.php - plugins/function.html_select_date.php: - update file generation, replace crc32() '-' with 'N' - -2002-03-20 Andrei Zmievski - - * Smarty_Compiler.class.php: *** empty log message *** - -2002-03-19 Andrei Zmievski - - * NEWS: *** empty log message *** - - * Smarty.class.php - Smarty_Compiler.class.php: - Fix plugin behavior for inserts with script attribute. - - * NEWS: *** empty log message *** - - * Smarty_Compiler.class.php: Fix bug with $smarty.cookies. - - * TESTIMONIALS: *** empty log message *** - -2002-03-15 Monte Ohrt - - * NEWS - docs/designers.sgml: update Changelog - - * plugins/modifier.indent.php - plugins/modifier.wordwrap.php: add wordwrap and indent to repository - -2002-03-14 Monte Ohrt - - * Smarty.class.php: - remove show_info_include and show_info_header functions - -2002-03-13 Monte Ohrt - - * plugins/function.fetch.php: update fetch function - - * plugins/function.fetch.php: update fetch function with new parameters - -2002-03-12 Monte Ohrt - - * docs/designers.sgml: update doc tables - - * docs/designers.sgml: update docs columns - - * docs/getting-started.sgml - docs/appendixes.sgml: update docs - - * TESTIMONIALS - docs/appendixes.sgml: update syntax error in docs, add to testimonials - -2002-03-04 Monte Ohrt - - * FAQ - README: update FAQ, README with digest mode info - -2002-03-02 Monte Ohrt - - * QUICKSTART: update quickstart - - * Smarty.class.php: - change behavior so cache_lifetime = 0 never expires (instead of always regenerate) - -2002-03-01 Monte Ohrt - - * docs/designers.sgml: update doc example - -2002-03-01 Andrei Zmievski - - * CREDITS - RELEASE_NOTES - TODO - NEWS: *** empty log message *** - -2002-03-01 Monte Ohrt - - * docs/appendixes.sgml - docs/designers.sgml - docs/getting-started.sgml - docs/programmers.sgml: update document id tags - - * docs.sgml: remove docs.sgml - - * RESOURCES - Smarty.class.php: update resources - -2002-02-28 Andrei Zmievski - - * TESTIMONIALS - docs/appendixes.sgml - docs/designers.sgml - docs/programmers.sgml: *** empty log message *** - -2002-02-27 Andrei Zmievski - - * plugins/function.eval.php - docs/designers.sgml: *** empty log message *** - -2002-02-27 Monte Ohrt - - * plugins/function.eval.php: added eval function to plugin dir - -2002-02-27 Andrei Zmievski - - * NEWS: *** empty log message *** - -2002-02-27 Monte Ohrt - - * docs/designers.sgml: fix syntax error - - * docs/appendixes.sgml - docs/designers.sgml - docs/getting-started.sgml - docs/programmers.sgml: convert technical notes to docbook format - - * NEWS - docs/designers.sgml: added "eval" plugin docs - -2002-02-26 Andrei Zmievski - - * docs/programmers.sgml - docs/designers.sgml - docs/appendixes.sgml - docs/getting-started.sgml - docs/html-common.dsl - docs/.cvsignore: *** empty log message *** - - * docs/appendixes.sgml - docs/common.dsl - docs/designers.sgml - docs/getting-started.sgml - docs/html-common.dsl - docs/html.dsl - docs/manual.sgml - docs/preface.sgml - docs/programmers.sgml: Split up docs. - -2002-02-25 Andrei Zmievski - - * docs.sgml: *** empty log message *** - -2002-02-22 Monte Ohrt - - * docs.sgml: update docs - -2002-02-22 Andrei Zmievski - - * docs.sgml - AUTHORS - NEWS: *** empty log message *** - -2002-02-21 Monte Ohrt - - * Config_File.class.php - NEWS - Smarty.class.php - Smarty_Compiler.class.php - docs.sgml: update misc changes - -2002-02-21 Andrei Zmievski - - * docs.sgml: *** empty log message *** - -2002-02-20 Monte Ohrt - - * docs.sgml: misc updates - -2002-02-20 Andrei Zmievski - - * docs.sgml: *** empty log message *** - - * Smarty.class.php - plugins/function.assign.php - plugins/function.assign_debug_info.php - plugins/function.counter.php - plugins/function.fetch.php - plugins/function.math.php - plugins/function.popup.php - plugins/function.popup_init.php - plugins/modifier.escape.php: Fixup some naming. - -2002-02-20 Monte Ohrt - - * docs.sgml: update docs - -2002-02-20 Andrei Zmievski - - * docs.sgml: *** empty log message *** - -2002-02-20 Monte Ohrt - - * NEWS - docs.sgml - plugins/modifier.escape.php: - removed global vars from fetch function, added attrs to escape modifier - - * docs.sgml: add plugin chapter outline - -2002-02-19 Monte Ohrt - - * README - RELEASE_NOTES - RESOURCES - Smarty.class.php - docs.sgml - BUGS - FAQ - INSTALL - QUICKSTART: update docs - -2002-02-19 Andrei Zmievski - - * docs.sgml: Updated resources docs. - - * README: *** empty log message *** - - * docs.sgml: Updated description of {$smarty} variable. - - * BUGS - FAQ - INSTALL - QUICKSTART - RELEASE_NOTES - docs.sgml: Remove PEAR notes. - -2002-02-18 Andrei Zmievski - - * Config_File.class.php - NEWS: Removed dependency on PEAR. - -2002-02-18 Monte Ohrt - - * NEWS - docs.sgml - plugins/function.popup_init.php: add src attribute to popup_init - -2002-02-15 Andrei Zmievski - - * Smarty_Compiler.class.php - plugins/modifier.debug_print_var.php - NEWS - Smarty.class.php: Performance enhancements. - -2002-02-06 Andrei Zmievski - - * plugins/function.html_options.php: - Fix html_options output to be XHTML compatible. - -2002-02-05 Andrei Zmievski - - * Smarty.class.php - Smarty_Compiler.class.php: Fix up plugin inclusion. - - * Smarty.class.php - Smarty_Compiler.class.php - TODO - plugins/function.html_select_date.php - plugins/function.html_select_time.php - plugins/modifier.date_format.php: Fix plugin directory access. - -2002-02-04 Andrei Zmievski - - * .cvsignore - Smarty_Compiler.class.php: *** empty log message *** - -2002-01-31 Andrei Zmievski - - * NEWS: *** empty log message *** - - * Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php - TODO - plugins/function.assign.php - plugins/function.assign_debug_info.php - plugins/function.counter.php - plugins/function.fetch.php - plugins/function.html_options.php - plugins/function.html_select_date.php - plugins/function.html_select_time.php - plugins/function.math.php - plugins/function.popup.php - plugins/function.popup_init.php - plugins/modifier.capitalize.php - plugins/modifier.count_characters.php - plugins/modifier.count_paragraphs.php - plugins/modifier.count_sentences.php - plugins/modifier.count_words.php - plugins/modifier.date_format.php - plugins/modifier.debug_print_var.php - plugins/modifier.default.php - plugins/modifier.escape.php - plugins/modifier.lower.php - plugins/modifier.regex_replace.php - plugins/modifier.replace.php - plugins/modifier.spacify.php - plugins/modifier.string_format.php - plugins/modifier.strip_tags.php - plugins/modifier.truncate.php - plugins/modifier.upper.php - plugins/shared.make_timestamp.php - templates/index.tpl - AUTHORS - CREDITS - Config_File.class.php - README: Implemented plugin architecture. - - * NEWS: *** empty log message *** - -2002-01-30 Monte Ohrt - - * NEWS - Smarty.addons.php - Smarty.class.php - docs.sgml: added modifiers wordwrap and indent - -2002-01-28 Monte Ohrt - - * Smarty.class.php - docs.sgml: - add support for is-modified-since headers, adjust a doc example - -2002-01-24 Monte Ohrt - - * Smarty.class.php: cleanup formatting - - * NEWS - Smarty.class.php - docs.sgml: update ChangeLog, remove insert_tag_check parameter - -2002-01-24 Andrei Zmievski - - * plugins/standard.plugin.php: *** empty log message *** - -2002-01-24 Monte Ohrt - - * Smarty.class.php: fix syntax error - - * Smarty.class.php: removed unneccesary test from fetch() - -2002-01-23 Monte Ohrt - - * Smarty.addons.php: update overlib fixes - - * NEWS: update changelog - - * FAQ - NEWS - RESOURCES - Smarty.addons.php: updated overlib fixes - -2001-12-31 Andrei Zmievski - - * NEWS - Smarty.class.php: Fixed compile_id problem. - -2001-12-28 Monte Ohrt - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - fixed problem with using assigned var with include_php filepath - -2001-12-21 Monte Ohrt - - * RESOURCES: update RESOURCES - -2001-12-20 Monte Ohrt - - * FAQ - README: update FAQ - -2001-12-18 Monte Ohrt - - * Smarty_Compiler.class.php - docs.sgml - Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php: update version numbers - -2001-12-18 Andrei Zmievski - - * NEWS - Smarty.class.php: Fixed clear_cache(). - -2001-12-14 Monte Ohrt - - * NEWS - Smarty.addons.php: - fixed bug in smarty_make_timestamp introduced in PHP 4.1.0 - -2001-12-13 Monte Ohrt - - * NEWS - Smarty.class.php - docs.sgml: update default function args, fix cached insert debug timing - -2001-12-12 Monte Ohrt - - * docs.sgml: fix syntax error in documentation - - * Smarty.class.php: update default template handling functionality - -2001-12-11 Monte Ohrt - - * Smarty.class.php - Smarty_Compiler.class.php: update file fetching logic - -2001-12-11 Andrei Zmievski - - * NEWS - Smarty.class.php: Added 'script' attribute to {insert..}. - -2001-12-10 Monte Ohrt - - * NEWS - Smarty.class.php: added default template function handler - - * Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: update version numbers in files to 1.5.1 - -2001-12-10 Andrei Zmievski - - * NEWS - Smarty.class.php: Removed error message from the _read_file() method. - - * Smarty.class.php: Fix check for compile and cache IDs. - -2001-12-06 Monte Ohrt - - * QUICKSTART: fix spelling error in QUICKSTART - - * docs.sgml: fixed spelling errors in documenation - - * Smarty_Compiler.class.php - docs.sgml - Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php: commit 1.5.0 release - - * RESOURCES - docs.sgml: added RESOURCES file - -2001-12-05 Andrei Zmievski - - * Smarty_Compiler.class.php: Refactor. - -2001-12-05 Monte Ohrt - - * NEWS - Smarty_Compiler.class.php - docs.sgml: added assign to include and php_include - - * Smarty.class.php - Smarty_Compiler.class.php - docs.sgml: *** empty log message *** - -2001-12-04 Andrei Zmievski - - * NEWS - Smarty_Compiler.class.php: Formatting. - -2001-12-04 Monte Ohrt - - * Smarty_Compiler.class.php - NEWS - Smarty.class.php: update ChangeLog - -2001-12-04 Andrei Zmievski - - * NEWS - Smarty.class.php: Formatting. - -2001-12-04 Monte Ohrt - - * Smarty.class.php: removed SMARTY_DIR setting in constructor - - * Smarty.class.php: fix Smarty.class.php indention error - - * Smarty.class.php: update trusted logic - -2001-12-03 Monte Ohrt - - * Smarty.class.php: - fix up is_secure, is_trusted, make _parse_tpl_path function - - * Smarty.class.php: fix problem with testing SMARTY_DIR as empty - - * NEWS - docs.sgml: update documentation, change log - - * Smarty.class.php: - update constructor to check for SMARTY_DIR before assigning - -2001-12-03 Andrei Zmievski - - * NEWS - Smarty.class.php: *** empty log message *** - -2001-12-03 Monte Ohrt - - * FAQ - INSTALL - RELEASE_NOTES: update a few files - - * NEWS - QUICKSTART - Smarty.class.php - docs.sgml: added trusted_dir functionality, cleaned up secure_dir logic - -2001-12-03 Andrei Zmievski - - * NEWS: *** empty log message *** - - * NEWS - Smarty.class.php: - Introduced $compile_id class variable. - - Fixed a situation where if $cache_id and $compile_id were both null - they were passed to auto functions as empty string instead of null. - -2001-11-30 Monte Ohrt - - * NEWS - Smarty.class.php: - change variable names in fetch() fuction to smarty_* to avoid namespace conflicts - - * NEWS - Smarty.class.php: fixed bug in _rm_auto with catenated null values - -2001-11-29 Andrei Zmievski - - * NEWS - Smarty_Compiler.class.php: Added $smarty.section.* syntax. - - * Smarty_Compiler.class.php: Made 'name' attribute optional for {foreach}. - -2001-11-29 Monte Ohrt - - * Smarty.class.php - index.php: remove assign "now" in index.tpl - -2001-11-29 Andrei Zmievski - - * NEWS - Smarty.addons.php - Smarty.class.php: Fix formatting. - -2001-11-28 Monte Ohrt - - * NEWS - Smarty.class.php - docs.sgml: - removed return statements from _read_cache_file (how did they get in there?) - -2001-11-27 Monte Ohrt - - * docs.sgml - NEWS - Smarty.addons.php - Smarty.class.php: - fixed bugs and added assign attribute to several functions - -2001-11-27 Andrei Zmievski - - * NEWS: Some rewording. - - * Smarty_Compiler.class.php: Fix $smarty.capture access. - - * TODO: *** empty log message *** - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - Made {config_load ..} merge globals from each config file only once per scope. - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - Added {foreach ...}. - - Made certain $smarty.* references handled at compilation time. - -2001-11-26 Monte Ohrt - - * Config_File.class.php - NEWS - Smarty.class.php - Smarty_Compiler.class.php - docs.sgml: commit cache handler functionality - -2001-11-20 Andrei Zmievski - - * NEWS - Smarty.addons.php - Smarty_Compiler.class.php: Various fixes and additions. - - * NEWS - index.php: *** empty log message *** - -2001-11-05 Monte Ohrt - - * Smarty.class.php: changed _read_file parameter from $end to $lines - - * NEWS - Smarty.class.php: fixed is_cache, make cache reading more efficient - -2001-11-02 Monte Ohrt - - * FAQ - NEWS: update FAQ with mailing list Reply-To header FAQ - - * NEWS - Smarty.class.php - index.php: supress fopen errors, return false if cache file won't load - -2001-11-01 Monte Ohrt - - * QUICKSTART - docs.sgml - index.php: update QUICKSTART guide with index key example - - * Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php - docs.sgml: commit all updates for 1.4.6 - -2001-11-01 Andrei Zmievski - - * NEWS: *** empty log message *** - -2001-10-30 Monte Ohrt - - * Smarty.addons.php: fix assign function problem with empty value passed - - * NEWS - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php - templates/debug.tpl: - fixed bug in assign function when passing an empty value - -2001-10-26 Monte Ohrt - - * Smarty.addons.php - Smarty.class.php - index.php: fix minor typo in debug code - -2001-10-26 Andrei Zmievski - - * Smarty.class.php: Typo. - -2001-10-26 Monte Ohrt - - * Smarty.addons.php: - update debug console output, handle html encoding correctly - -2001-10-26 Andrei Zmievski - - * Smarty.addons.php - templates/debug.tpl: Debug formatting. - - * Smarty.class.php: Disable rmdir warning. - -2001-10-26 Monte Ohrt - - * Smarty.addons.php - Smarty.class.php - templates/debug.tpl: update debugging to expand array variables - - * Smarty.class.php - docs.sgml: - update docs for fetching only timestamp with custom template source functions - - * Smarty.addons.php: fix debug console error - -2001-10-26 Andrei Zmievski - - * docs.sgml: Typos. - - * Smarty.addons.php: Cleanup whitespace. - - * Smarty_Compiler.class.php: Clean up whitespace. - - * Smarty.class.php: Cleaning up code, formatting mostly. - - * NEWS: *** empty log message *** - -2001-10-25 Monte Ohrt - - * NEWS - docs.sgml: update documentation to current version - - * NEWS - Smarty.addons.php: - updated fetch to give proper warning when fetching unreadable or nonexistant files - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - fixed problem with newline at the end of compiled templates - - * NEWS - Smarty.class.php: recompile cache if config file gets modified too. - - * NEWS - Smarty.class.php: - added feature to regenerate cache if compile_check is enabled and an - involved template is modified - -2001-10-23 Monte Ohrt - - * Smarty.class.php: fix indent for insert tags in debug console - - * templates/debug.tpl: update debug.tpl file format - - * NEWS - Smarty.addons.php - Smarty.class.php - templates/debug.tpl: - update execution time debugging, move into include list - -2001-10-10 Monte Ohrt - - * NEWS - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: - fixed up execution time output in debug console - -2001-10-09 Andrei Zmievski - - * Config_File.class.php - NEWS - Smarty.class.php - TODO: Added support for hidden config vars. - -2001-10-04 Monte Ohrt - - * NEWS - Smarty.addons.php - Smarty.class.php - templates/debug.tpl: added execution times to debug console - -2001-10-02 Andrei Zmievski - - * Smarty_Compiler.class.php: Add space. - -2001-10-01 Andrei Zmievski - - * Smarty.class.php: Fix reference to compile_id. - -2001-09-28 Andrei Zmievski - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: Added postfilter functions. - -2001-09-26 Andrei Zmievski - - * NEWS - Smarty.class.php - docs.sgml: Rename to clear_compiled_tpl(). - -2001-09-25 Andrei Zmievski - - * NEWS - Smarty_Compiler.class.php: - Fixed line number reporting when removing comments. - -2001-09-20 Monte Ohrt - - * NEWS - RELEASE_NOTES - Smarty.addons.php: made html_options output xhtml compatible - -2001-09-19 Monte Ohrt - - * Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php - templates/debug.tpl: updated version numbers - -2001-09-16 Monte Ohrt - - * FAQ - NEWS - docs.sgml: fix doc error with insert function - -2001-09-06 Andrei Zmievski - - * NEWS: *** empty log message *** - -2001-08-31 Monte Ohrt - - * NEWS: update ChangeLog - - * overlib.js - Smarty.addons.php - Smarty.class.php - docs.sgml: - update overlib to 3.50, adjust addon code so that the overlib.js file isn't modified - -2001-08-31 Andrei Zmievski - - * Smarty.class.php: - compile_id changes - - * NEWS - Smarty.addons.php: - compile_id support - - new options for html_select_date - -2001-08-23 Andrei Zmievski - - * TODO: *** empty log message *** - -2001-08-10 Andrei Zmievski - - * NEWS - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: - Modified to pass Smarty object as second parameter to insert functions. - Also moved _smarty_mod_handler() and _smarty_insert_handler() into the class. - - * NEWS - Smarty_Compiler.class.php: - Passing Smarty as second parameter to prefilter functions. - -2001-08-09 Andrei Zmievski - - * NEWS: *** empty log message *** - -2001-08-09 Monte Ohrt - - * templates/index.tpl - Smarty.class.php: add smarty.now variable to template - -2001-08-06 Monte Ohrt - - * templates/index.tpl: change config_load section back to setup - -2001-08-06 Andrei Zmievski - - * Smarty.addons.php: Optimize a bit. - -2001-08-04 Monte Ohrt - - * docs.sgml: update capture documentation - -2001-08-03 Monte Ohrt - - * FAQ - NEWS - Smarty.class.php: - fix bug with URL controlled debugging, works now (Monte) - -2001-08-01 Andrei Zmievski - - * Config_File.class.php: *** empty log message *** - - * Smarty_Compiler.class.php - Smarty.class.php: - Fixed some E_NOTICE stuff in compiler. - - Generalized assign_smarty_interface() a bit. - -2001-07-24 Andrei Zmievski - - * NEWS - Smarty_Compiler.class.php - TODO: See ChangeLog for details. - -2001-07-20 Andrei Zmievski - - * Config_File.class.php: Booleanize case-insensitively. - -2001-07-17 Monte Ohrt - - * NEWS: update ChangeLog - - * Smarty.class.php - docs.sgml: put SMARTY_DIR on Config_File require - -2001-07-11 Monte Ohrt - - * docs.sgml - FAQ - NEWS - Smarty.class.php: - updated security to not include insecure docs, only warning - -2001-07-10 Andrei Zmievski - - * Smarty.class.php: Adding 'sizeof' as an allowed {if} function. - -2001-07-06 Andrei Zmievski - - * NEWS: *** empty log message *** - -2001-07-06 Monte Ohrt - - * Config_File.class.php - NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: update version number to 1.4.4 - - * NEWS - Smarty.addons.php - Smarty_Compiler.class.php - docs.sgml - templates/header.tpl - templates/index.tpl: update documenatation, template examples - -2001-07-03 Andrei Zmievski - - * NEWS - Smarty.class.php: Implemented access to request vars via $smarty var. - - * NEWS - Smarty_Compiler.class.php: - Fixed a bug with parsing function arguments in {if} tags. - -2001-06-30 Monte Ohrt - - * NEWS: update ChangeLog - -2001-06-29 Monte Ohrt - - * Smarty.addons.php - Smarty.class.php - docs.sgml - overlib.js: - moved overlib to separate file, added SMARTY_DIR, documented. added much documentation - -2001-06-29 Andrei Zmievski - - * NEWS - RELEASE_NOTES - TODO: *** empty log message *** - -2001-06-29 Monte Ohrt - - * NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - docs.sgml - index.php - templates/debug.tpl - templates/header.tpl - templates/index.tpl: update release notes - -2001-06-27 Andrei Zmievski - - * Smarty_Compiler.class.php: *** empty log message *** - - * NEWS - Smarty_Compiler.class.php: Implemented 'step' section attribute. - - * Smarty_Compiler.class.php: Negative values of 'max' will mean no max. - - * AUTHORS - NEWS: *** empty log message *** - -2001-06-26 Andrei Zmievski - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - index.php: Added 'max' and 'start' section attributes. - Added 'total' and 'iteration' section properties. - -2001-06-25 Andrei Zmievski - - * Config_File.class.php - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: Update version numbers. - -2001-06-23 Andrei Zmievski - - * TODO: *** empty log message *** - -2001-06-21 Andrei Zmievski - - * Config_File.class.php - NEWS: Fixed booleanization bug. - -2001-06-20 Monte Ohrt - - * docs.sgml: - update documents to reflect changes to cached content & debugging - -2001-06-20 Andrei Zmievski - - * Smarty.addons.php - Smarty.class.php: Remove debug output for cached and fetched cases. - -2001-06-20 Monte Ohrt - - * Smarty.class.php: update include_info to false - - * Smarty.class.php - docs.sgml - index.php - templates/footer.tpl: - moved debug logic into Smarty completely, created flags for it - -2001-06-19 Andrei Zmievski - - * Smarty.addons.php - Smarty.class.php - templates/debug.tpl: *** empty log message *** - - * NEWS - Smarty.class.php: Remove unneeded debug functions. - -2001-06-19 Monte Ohrt - - * NEWS - Smarty.addons.php - Smarty.class.php - docs.sgml - templates/debug.tpl - templates/footer.tpl: commit updates, add debug template - -2001-06-19 Andrei Zmievski - - * Smarty.class.php - Smarty_Compiler.class.php - TODO: - Moved config loading code inside main class, the compiled template now - simply calls that method. - -2001-06-15 Andrei Zmievski - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - templates/index.tpl: * moved config array into class itself - * added 'scope' attribute for config_load - - * Smarty_Compiler.class.php - Smarty.addons.php - Smarty.class.php: Finishing up secure mode. - -2001-06-15 Monte Ohrt - - * NEWS: update ChangeLog - - * Smarty_Compiler.class.php: cleaned up logic of if statement security - - * Smarty_Compiler.class.php: update if logic to cover more situations - - * Smarty_Compiler.class.php - docs.sgml: update if statement security feature - -2001-06-14 Andrei Zmievski - - * Smarty.addons.php - Smarty.class.php: *** empty log message *** - - * NEWS - Smarty_Compiler.class.php: - Fixed a bug with quoted strings inside if statements. - -2001-06-13 Monte Ohrt - - * Smarty.addons.php - Smarty.class.php: added secure_dir array for multiple secure directories - - * Smarty.addons.php: update fetch funtion to respect security setting - - * NEWS - Smarty.addons.php - Smarty.class.php - docs.sgml: update documentation, changelog - - * Smarty.addons.php - Smarty.class.php: moved _extract setting to assign functions - - * Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: - added assign/unassign custom functions, ability to re-extract tpl_vars - - * Smarty.class.php - Smarty_Compiler.class.php - docs.sgml - index.php: commit security features - -2001-06-11 Andrei Zmievski - - * Smarty.class.php: Version variable typo. - -2001-06-05 Andrei Zmievski - - * Smarty.class.php: - Create config object in fetch() or just set the config path if it already - exists. - -2001-06-04 Andrei Zmievski - - * Smarty.class.php: *** empty log message *** - - * NEWS - Smarty_Compiler.class.php: - Fixed a problem with $ inside strip tags. - -2001-05-31 Andrei Zmievski - - * NEWS: *** empty log message *** - - * Config_File.class.php: Allow empty config_path. - -2001-05-29 Monte Ohrt - - * Smarty_Compiler.class.php - docs.sgml - NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php: update version numbers - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - docs.sgml: moved version variable to internal variable - -2001-05-22 Andrei Zmievski - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php: - Moved $_smarty_sections and $_smarty_conf_obj into Smarty class. - -2001-05-18 Monte Ohrt - - * NEWS: update ChangeLog - - * FAQ - QUICKSTART: update FAQ, QUICKSTART for windows include_path setup - - * configs/test.conf: added configs directory to cvs - -2001-05-18 Andrei Zmievski - - * Smarty.class.php: Use compiler_class for including the file. - -2001-05-18 Monte Ohrt - - * docs.sgml: fix typo - -2001-05-16 Monte Ohrt - - * README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: update files to version 1.4.1 - - * NEWS: update ChangeLog - -2001-05-15 Andrei Zmievski - - * NEWS: *** empty log message *** - - * index.php: forget that! - - * NEWS - Smarty_Compiler.class.php - index.php: Fixed a few E_NOTICE warnings. - -2001-05-09 Monte Ohrt - - * NEWS - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - docs.sgml: update dates versions - -2001-05-09 Andrei Zmievski - - * NEWS: *** empty log message *** - - * Smarty.class.php: - Use absolute paths when requiring/including Smart components. - - * NEWS: *** empty log message *** - - * Smarty.class.php: Use write mode instead of append. - -2001-05-02 Andrei Zmievski - - * NEWS - Smarty_Compiler.class.php: Fix indexing by section properties. - -2001-05-02 Monte Ohrt - - * NEWS: update changelog - - * Smarty.class.php: remove period from syntax error - -2001-05-02 Andrei Zmievski - - * Smarty_Compiler.class.php: Double-quote the attribute values by default. - -2001-04-30 Monte Ohrt - - * Smarty_Compiler.class.php - NEWS: added simple {capture} logic - -2001-04-30 Andrei Zmievski - - * TODO: *** empty log message *** - - * Smarty_Compiler.class.php - Smarty.class.php: Fix passing config vars to included files. - - * Smarty.class.php - Smarty_Compiler.class.php: Fix inclusion again. - -2001-04-30 Monte Ohrt - - * FAQ - RELEASE_NOTES - Smarty.class.php - misc/fix_vars.php - NEWS: update paths for windows (c:) - -2001-04-28 Andrei Zmievski - - * Smarty.class.php - Smarty_Compiler.class.php: Fix passing variables to included files. - - * templates/index.tpl: *** empty log message *** - -2001-04-27 Andrei Zmievski - - * Smarty_Compiler.class.php: Fix includes. - -2001-04-26 Andrei Zmievski - - * Smarty_Compiler.class.php - docs.sgml - Smarty.class.php: Formatting mostly. - - * Smarty_Compiler.class.php - Config_File.class.php: *** empty log message *** - -2001-04-26 Monte Ohrt - - * Smarty_Compiler.class.php - docs.sgml - FAQ - NEWS - QUICKSTART - RELEASE_NOTES - Smarty.class.php: update docs with new changes - -2001-04-26 Andrei Zmievski - - * RELEASE_NOTES: *** empty log message *** - - * docs.sgml - templates/index.tpl - NEWS - Smarty_Compiler.class.php: Added ability to reference object properties. - -2001-04-25 Andrei Zmievski - - * README - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php - docs.sgml - AUTHORS - Config_File.class.php - CREDITS - RELEASE_NOTES - NEWS: *** empty log message *** - - * docs.sgml: Docs on new parameter to custom functions. - - * NEWS: *** empty log message *** - - * Smarty_Compiler.class.php: - Changing the way tpl vars are referenced and passing smarty object - to custom functions. - - * RELEASE_NOTES - docs.sgml: Fixing docs a bit. - -2001-04-24 Andrei Zmievski - - * docs.sgml: Docs for $compiler_class and compiler functions. - - * templates/index.tpl: *** empty log message *** - - * Smarty_Compiler.class.php: Remove debugging. - -2001-04-24 Monte Ohrt - - * docs.sgml: update compiler function docs - -2001-04-24 Andrei Zmievski - - * NEWS - Smarty.class.php - Smarty_Compiler.class.php - templates/index.tpl: Added compiler function support. - -2001-04-24 Monte Ohrt - - * RELEASE_NOTES - Smarty.class.php: - update notes, change show_info_header to false by default - - * Smarty.class.php - Smarty_Compiler.class.php - docs.sgml - CREDITS - FAQ - NEWS - README - RELEASE_NOTES: update documenation, bug fixes - -2001-04-24 Andrei Zmievski - - * misc/fix_vars.php: Hopefully fix for sure. - -2001-04-23 Monte Ohrt - - * misc/fix_vars.php: uncomment copy/unlink - -2001-04-23 Andrei Zmievski - - * misc/fix_vars.php: Do it more thoroughly. - - * misc/fix_vars.php: check for } - -2001-04-22 Andrei Zmievski - - * misc/fix_vars.php: Fix variable parsing. - -2001-04-20 Monte Ohrt - - * misc/fix_vars.php: fix problem with 4.0.5-dev and preg_replace_callback - -2001-04-19 Monte Ohrt - - * Smarty_Compiler.class.php - docs.sgml - misc/fix_vars.php - NEWS - RELEASE_NOTES - Smarty.class.php: update notes/documentation - - * NEWS - README - RELEASE_NOTES - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php - docs.sgml: update files for 1.4.0 release - -2001-04-16 Andrei Zmievski - - * misc/fix_vars.php: Added fix_vars.php script. - -2001-04-16 Monte Ohrt - - * QUICKSTART - RELEASE_NOTES - docs.sgml - templates/index.tpl: - update RELEASE_NOTES & scripts with new section var syntax - -2001-04-13 Andrei Zmievski - - * Smarty_Compiler.class.php: * Implement new variable format parser. - * Optimizing config load a bit. - -2001-04-13 Monte Ohrt - - * FAQ - NEWS - RELEASE_NOTES - Smarty.class.php: - added $check_cached_insert_tags to speed up cached pages if - {insert ...} is not used (Monte) - -2001-04-12 Andrei Zmievski - - * NEWS - Smarty.class.php - RELEASE_NOTES: *** empty log message *** - - * Smarty_Compiler.class.php: Remove redundant functions. - - * Smarty.class.php: Formatting. - -2001-04-12 Monte Ohrt - - * Smarty.class.php: update file: parsing - - * Smarty.class.php - docs.sgml: update documentation - -2001-04-12 Andrei Zmievski - - * Smarty.class.php - Smarty_Compiler.class.php - TODO: *** empty log message *** - -2001-04-11 Monte Ohrt - - * FAQ - QUICKSTART - RELEASE_NOTES: added RELEASE_NOTES file to cvs - - * NEWS - docs.sgml: update ChangeLog, update documentation - - * Smarty.class.php - Smarty_Compiler.class.php - templates/index.tpl: - update Smarty to compile at run-time. added ability to get files from - absolute paths, added work around for LOCK_EX and windows, changed a few - file permissions to be more secure. - -2001-03-29 Monte Ohrt - - * NEWS - Smarty.addons.php: - allow arbitrary date strings instead of just timestamps - -2001-03-28 Monte Ohrt - - * Smarty.class.php - Smarty_Compiler.class.php - docs.sgml - FAQ - NEWS - README - Smarty.addons.php: - update version in class, update docs for count_ and new vars - - * templates/index.tpl - docs.sgml: update docs, example template - -2001-03-28 Andrei Zmievski - - * Smarty_Compiler.class.php: Some variable renaming. - -2001-03-23 Andrei Zmievski - - * Smarty_Compiler.class.php - NEWS: Fixed nested include infinite repeat bug. - -2001-03-23 Monte Ohrt - - * Smarty.class.php: fix version number - - * Smarty.class.php - NEWS: added optional HTML header to output - -2001-03-22 Andrei Zmievski - - * Smarty_Compiler.class.php: Fixed inclusion of dynamic files. - -2001-03-16 Andrei Zmievski - - * Smarty_Compiler.class.php: Fixing the config_load scoping. - - * Smarty_Compiler.class.php: making config variables global for now. - -2001-03-15 Andrei Zmievski - - * NEWS: *** empty log message *** - - * Smarty_Compiler.class.php: - * Includes are now always done via generated function call to protect - namespace. - * config_load now always uses global config object to improve - performance. - -2001-03-13 Monte Ohrt - - * docs.sgml: update math documentation with format attribute - -2001-03-11 Monte Ohrt - - * docs.sgml - NEWS - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: update math function with format attribute - -2001-03-10 Andrei Zmievski - - * Smarty.addons.php: *** empty log message *** - - * NEWS - Smarty.addons.php - Smarty.class.php: Added html_select_time custom function. - -2001-03-08 Monte Ohrt - - * Smarty.class.php - Smarty_Compiler.class.php - NEWS - README - Smarty.addons.php: rename 1.3.1b to 1.3.1pl1 - - * NEWS - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php: update version numbers, changelog - - * Smarty.class.php - Smarty_Compiler.class.php: - moved _syntax_error to Smarty_Compiler.class.php - - * Smarty.class.php - docs.sgml: - missing _syntax_error function recovered. fixed minor syntax in docs - -2001-03-07 Monte Ohrt - - * QUICKSTART - README - Smarty.addons.php - Smarty.class.php - Smarty_Compiler.class.php - BUGS - INSTALL - NEWS: update everything to 1.3.1 - -2001-03-03 Monte Ohrt - - * Smarty_Compiler.class.php - Smarty.class.php: fixed bug with cached insert tags - -2001-03-02 Monte Ohrt - - * Smarty.class.php - Smarty_Compiler.class.php: - fix cache fuctions with separated compiled class - - * FAQ - NEWS - docs.sgml: update changelog - -2001-03-02 Andrei Zmievski - - * NEWS - Smarty_Compiler.class.php: Added 'first' and 'last' section properties. - -2001-03-02 Monte Ohrt - - * TODO: remove compiling separation TODO - - * Smarty_Compiler.class.php - Smarty.addons.php - Smarty.class.php: update function headers - - * templates/index.tpl - NEWS - Smarty.class.php - Smarty_Compiler.class.php - index.php: split out compiling code for faster execution - - * Smarty.class.php: fixed a few warning messages - - * Smarty.addons.php - Smarty.class.php - docs.sgml - NEWS: added fetch, unregister mod/fun, updated docs - -2001-03-01 Monte Ohrt - - * Smarty.addons.php: added "int" to available list - - * docs.sgml - FAQ - Smarty.class.php: update FAQ, add math functions & update documetation - - * index.php - Smarty.addons.php - Smarty.class.php - docs.sgml: fixed literal tags and other optional delimiters - -2001-02-26 Andrei Zmievski - - * NEWS - Smarty.class.php: - Added index_prev, index_next section properties and ability to - index by them. - - * NEWS - Smarty.addons.php - Smarty.class.php: Reverting the plugins patch - needs more thought. - - * Smarty.class.php: Fixing plugin loading. - -2001-02-23 Andrei Zmievski - - * Smarty.addons.php - Smarty.class.php - plugins/standard.plugin.php - NEWS: Added plugin functionality. - -2001-02-22 Monte Ohrt - - * docs.sgml - templates/index.tpl - NEWS - README - Smarty.class.php: fixed issue with php tags executed in literal blocks - -2001-02-21 Monte Ohrt - - * NEWS: update changelog for LGPL change - - * Smarty.class.php - docs.sgml - README - Smarty.addons.php: updated version numbers to 1.3.0 - - * NEWS - templates/index.tpl: update changelog, rearrange index.tpl file - -2001-02-21 Andrei Zmievski - - * NEWS - Smarty.class.php: *** empty log message *** - -2001-02-21 Monte Ohrt - - * docs.sgml: update parameters for is_cached and fetch - -2001-02-21 Andrei Zmievski - - * NEWS - Smarty.class.php: *** empty log message *** - -2001-02-21 Monte Ohrt - - * NEWS - Smarty.addons.php - docs.sgml: update docs, remove header function from addons - -2001-02-20 Monte Ohrt - - * FAQ - NEWS: update changelog - - * TODO: update todo - - * TODO: update todo list - - * Smarty.class.php: update php tag handling logic - -2001-02-19 Monte Ohrt - - * index.php - Config_File.class.php - FAQ - Smarty.class.php - docs.sgml: fixed - - * Smarty.addons.php: *** empty log message *** - -2001-02-13 Andrei Zmievski - - * TODO: *** empty log message *** - -2001-02-12 Andrei Zmievski - - * templates/index.tpl - Smarty.class.php: *** empty log message *** - -2001-02-10 Monte Ohrt - - * Smarty.class.php: remove unneeded preg_match - - * Smarty.class.php: remove comment - - * Smarty.class.php: updated php escape to handle -{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php deleted file mode 100644 index a25df360..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Name: strip
                                                    - * Purpose: strip unwanted white space from text
                                                    - * @link http://smarty.php.net/manual/en/language.function.strip.php {strip} - * (Smarty online manual) - * @param array unused, no parameters for this block - * @param string content of {strip}{/strip} tags - * @param Smarty clever method emulation - * @return string $content stripped of whitespace - */ -function smarty_block_strip($params, $content, &$this) -{ - /* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */ - $_strip_search = array( - "![\t ]+$|^[\t ]+!m", // remove leading/trailing space chars - '%[\r\n]+%m'); // remove CRs and newlines - $_strip_replace = array( - '', - ''); - return preg_replace($_strip_search, $_strip_replace, $content); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php deleted file mode 100644 index f3462c21..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php +++ /dev/null @@ -1,83 +0,0 @@ - - * Name: textformat
                                                    - * Purpose: format text a certain way with preset styles - * or custom wrap/indent settings
                                                    - * @link http://smarty.php.net/manual/en/language.function.textformat.php {textformat} - * (Smarty online manual) - * @param array - *
                                                    - * Params:   style: string (email)
                                                    - *           indent: integer (0)
                                                    - *           wrap: integer (80)
                                                    - *           wrap_char string ("\n")
                                                    - *           indent_char: string (" ")
                                                    - *           wrap_boundary: boolean (true)
                                                    - * 
                                                    - * @param string contents of the block - * @param Smarty clever simulation of a method - * @return string string $content re-formatted - */ -function smarty_block_textformat($params, $content, &$smarty) -{ - $style = null; - $indent = 0; - $indent_first = 0; - $indent_char = ' '; - $wrap = 80; - $wrap_char = "\n"; - $wrap_cut = false; - $assign = null; - - if($content == null) { - return true; - } - - extract($params); - - if($style == 'email') { - $wrap = 72; - } - - // split into paragraphs - $paragraphs = preg_split('![\r\n][\r\n]!',$content); - $output = ''; - - foreach($paragraphs as $paragraph) { - if($paragraph == '') { - continue; - } - // convert mult. spaces & special chars to single space - $paragraph = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'),array(' ',''),$paragraph); - // indent first line - if($indent_first > 0) { - $paragraph = str_repeat($indent_char,$indent_first) . $paragraph; - } - // wordwrap sentences - $paragraph = wordwrap($paragraph, $wrap - $indent, $wrap_char, $wrap_cut); - // indent lines - if($indent > 0) { - $paragraph = preg_replace('!^!m',str_repeat($indent_char,$indent),$paragraph); - } - $output .= $paragraph . $wrap_char . $wrap_char; - } - - if($assign != null) { - $smarty->assign($assign,$output); - } else { - return $output; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php deleted file mode 100644 index c04be8bc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php +++ /dev/null @@ -1,38 +0,0 @@ - - * Name: assign
                                                    - * Purpose: assign a value to a template variable - * @link http://smarty.php.net/manual/en/language.custom.functions.php#LANGUAGE.FUNCTION.ASSIGN {assign} - * (Smarty online manual) - * @param array Format: array('var' => variable name, 'value' => value to assign) - * @param Smarty - */ -function smarty_function_assign($params, &$smarty) -{ - extract($params); - - if (empty($var)) { - $smarty->trigger_error("assign: missing 'var' parameter"); - return; - } - - if (!in_array('value', array_keys($params))) { - $smarty->trigger_error("assign: missing 'value' parameter"); - return; - } - - $smarty->assign($var, $value); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php deleted file mode 100644 index 59ddaa16..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php +++ /dev/null @@ -1,39 +0,0 @@ - - * Name: assign_debug_info
                                                    - * Purpose: assign debug info to the template
                                                    - * @param array unused in this plugin, this plugin uses {@link Smarty::$_config}, - * {@link Smarty::$_tpl_vars} and {@link Smarty::$_smarty_debug_info} - * @param Smarty - */ -function smarty_function_assign_debug_info($params, &$smarty) -{ - $assigned_vars = $smarty->_tpl_vars; - ksort($assigned_vars); - if (@is_array($smarty->_config[0])) { - $config_vars = $smarty->_config[0]; - ksort($config_vars); - $smarty->assign("_debug_config_keys", array_keys($config_vars)); - $smarty->assign("_debug_config_vals", array_values($config_vars)); - } - - $included_templates = $smarty->_smarty_debug_info; - - $smarty->assign("_debug_keys", array_keys($assigned_vars)); - $smarty->assign("_debug_vals", array_values($assigned_vars)); - - $smarty->assign("_debug_tpls", $included_templates); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php deleted file mode 100644 index d9d65b95..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php +++ /dev/null @@ -1,130 +0,0 @@ - - * Name: config_load
                                                    - * Purpose: load config file vars - * @link http://smarty.php.net/manual/en/language.function.config.load.php {config_load} - * (Smarty online manual) - * @param array Format: - *
                                                    - * array('file' => required config file name,
                                                    - *       'section' => optional config file section to load
                                                    - *       'scope' => local/parent/global
                                                    - *       'global' => overrides scope, setting to parent if true)
                                                    - * 
                                                    - * @param Smarty - */ -function smarty_function_config_load($params, &$smarty) -{ - if ($smarty->debugging) { - $_params = array(); - require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php'); - $_debug_start_time = smarty_core_get_microtime($_params, $smarty); - } - - $_file = isset($params['file']) ? $smarty->_dequote($params['file']) : null; - $_section = isset($params['section']) ? $smarty->_dequote($params['section']) : null; - $_scope = isset($params['scope']) ? $smarty->_dequote($params['scope']) : 'global'; - $_global = isset($params['global']) ? $smarty->_dequote($params['global']) : false; - - if (!isset($_file) || strlen($_file) == 0) { - $smarty->_syntax_error("missing 'file' attribute in config_load tag", E_USER_ERROR, __FILE__, __LINE__); - } - - if (isset($_scope)) { - if ($_scope != 'local' && - $_scope != 'parent' && - $_scope != 'global') { - $smarty->_syntax_error("invalid 'scope' attribute value", E_USER_ERROR, __FILE__, __LINE__); - } - } else { - if ($_global) { - $_scope = 'parent'; - } else { - $_scope = 'local'; - } - } - - if(@is_dir($smarty->config_dir)) { - $_config_dir = $smarty->config_dir; - } else { - // config_dir not found, try include_path - $_params = array('file_path' => $smarty->config_dir); - require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php'); - smarty_core_get_include_path($_params, $smarty); - $_config_dir = $_params['new_file_path']; - } - - $_file_path = $_config_dir . DIRECTORY_SEPARATOR . $_file; - if (isset($_section)) - $_compile_file = $smarty->_get_compile_path($_file_path.'|'.$_section); - else - $_compile_file = $smarty->_get_compile_path($_file_path); - - if($smarty->force_compile - || !file_exists($_compile_file) - || ($smarty->compile_check - && !$smarty->_is_compiled($_file_path, $_compile_file))) { - // compile config file - if(!is_object($smarty->_conf_obj)) { - require_once SMARTY_DIR . $smarty->config_class . '.class.php'; - $smarty->_conf_obj = new $smarty->config_class($_config_dir); - $smarty->_conf_obj->overwrite = $smarty->config_overwrite; - $smarty->_conf_obj->booleanize = $smarty->config_booleanize; - $smarty->_conf_obj->read_hidden = $smarty->config_read_hidden; - $smarty->_conf_obj->fix_newlines = $smarty->config_fix_newlines; - $smarty->_conf_obj->set_path = $_config_dir; - } - $_config_vars = array_merge($smarty->_conf_obj->get($_file), - $smarty->_conf_obj->get($_file, $_section)); - if(function_exists('var_export')) { - $_output = ''; - } else { - $_output = ''\\\'', '\\'=>'\\\\')) . '\'); ?>'; - } - $_params = (array('compile_path' => $_compile_file, 'compiled_content' => $_output, 'resource_timestamp' => filemtime($_file_path))); - require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php'); - smarty_core_write_compiled_resource($_params, $smarty); - } else { - include($_compile_file); - } - - if ($smarty->caching) { - $smarty->_cache_info['config'][$_file] = true; - } - - $smarty->_config[0]['vars'] = @array_merge($smarty->_config[0]['vars'], $_config_vars); - $smarty->_config[0]['files'][$_file] = true; - - if ($_scope == 'parent') { - $smarty->_config[1]['vars'] = @array_merge($smarty->_config[1]['vars'], $_config_vars); - $smarty->_config[1]['files'][$_file] = true; - } else if ($_scope == 'global') { - for ($i = 1, $for_max = count($smarty->_config); $i < $for_max; $i++) { - $smarty->_config[$i]['vars'] = @array_merge($smarty->_config[$i]['vars'], $_config_vars); - $smarty->_config[$i]['files'][$_file] = true; - } - } - - if ($smarty->debugging) { - $_params = array(); - require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php'); - $smarty->_smarty_debug_info[] = array('type' => 'config', - 'filename' => $_file.' ['.$_section.'] '.$_scope, - 'depth' => $smarty->_inclusion_depth, - 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time); - } - -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php deleted file mode 100644 index 8d17d2bb..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php +++ /dev/null @@ -1,88 +0,0 @@ - - * Name: counter
                                                    - * Purpose: print out a counter value - * @link http://smarty.php.net/manual/en/language.function.counter.php {counter} - * (Smarty online manual) - * @param array parameters - * @param Smarty - * @return string|null - */ -function smarty_function_counter($params, &$smarty) -{ - static $counters = array(); - - extract($params); - - if (!isset($name)) { - if(isset($id)) { - $name = $id; - } else { - $name = "default"; - } - } - - if (!isset($counters[$name])) { - $counters[$name] = array( - 'start'=>1, - 'skip'=>1, - 'direction'=>'up', - 'count'=>1 - ); - } - $counter =& $counters[$name]; - - if (isset($start)) { - $counter['start'] = $counter['count'] = $start; - } - - if (!empty($assign)) { - $counter['assign'] = $assign; - } - - if (isset($counter['assign'])) { - $smarty->assign($counter['assign'], $counter['count']); - } - - if (isset($print)) { - $print = (bool)$print; - } else { - $print = empty($counter['assign']); - } - - if ($print) { - $retval = $counter['count']; - } else { - $retval = null; - } - - if (isset($skip)) { - $counter['skip'] = $skip; - } - - if (isset($direction)) { - $counter['direction'] = $direction; - } - - if ($counter['direction'] == "down") - $counter['count'] -= $counter['skip']; - else - $counter['count'] += $counter['skip']; - - return $retval; - -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php deleted file mode 100644 index c2e899d0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php +++ /dev/null @@ -1,119 +0,0 @@ - - * Name: cycle
                                                    - * Date: May 3, 2002
                                                    - * Purpose: cycle through given values
                                                    - * Input: - * - name = name of cycle (optional) - * - values = comma separated list of values to cycle, - * or an array of values to cycle - * (this can be left out for subsequent calls) - * - reset = boolean - resets given var to true - * - print = boolean - print var or not. default is true - * - advance = boolean - whether or not to advance the cycle - * - delimiter = the value delimiter, default is "," - * - assign = boolean, assigns to template var instead of - * printed. - * - * Examples:
                                                    - *
                                                    - * {cycle values="#eeeeee,#d0d0d0d"}
                                                    - * {cycle name=row values="one,two,three" reset=true}
                                                    - * {cycle name=row}
                                                    - * 
                                                    - * @link http://smarty.php.net/manual/en/language.function.cycle.php {cycle} - * (Smarty online manual) - * @author Monte Ohrt - * @author credit to Mark Priatel - * @author credit to Gerard - * @author credit to Jason Sweat - * @version 1.3 - * @param array - * @param Smarty - * @return string|null - */ -function smarty_function_cycle($params, &$smarty) -{ - static $cycle_vars; - - extract($params); - - if (empty($name)) { - $name = 'default'; - } - - if (!isset($print)) { - $print = true; - } - - if (!isset($advance)) { - $advance = true; - } - - if (!isset($reset)) { - $reset = false; - } - - if (!in_array('values', array_keys($params))) { - if(!isset($cycle_vars[$name]['values'])) { - $smarty->trigger_error("cycle: missing 'values' parameter"); - return; - } - } else { - if(isset($cycle_vars[$name]['values']) - && $cycle_vars[$name]['values'] != $values ) { - $cycle_vars[$name]['index'] = 0; - } - $cycle_vars[$name]['values'] = $values; - } - - if (isset($delimiter)) { - $cycle_vars[$name]['delimiter'] = $delimiter; - } elseif (!isset($cycle_vars[$name]['delimiter'])) { - $cycle_vars[$name]['delimiter'] = ','; - } - - if(!is_array($cycle_vars[$name]['values'])) { - $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']); - } else { - $cycle_array = $cycle_vars[$name]['values']; - } - - if(!isset($cycle_vars[$name]['index']) || $reset ) { - $cycle_vars[$name]['index'] = 0; - } - - if (isset($assign)) { - $print = false; - $smarty->assign($assign, $cycle_array[$cycle_vars[$name]['index']]); - } - - if($print) { - $retval = $cycle_array[$cycle_vars[$name]['index']]; - } else { - $retval = null; - } - - if($advance) { - if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) { - $cycle_vars[$name]['index'] = 0; - } else { - $cycle_vars[$name]['index']++; - } - } - - return $retval; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php deleted file mode 100644 index 5fe02f30..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Name: debug
                                                    - * Date: July 1, 2002
                                                    - * Purpose: popup debug window - * @link http://smarty.php.net/manual/en/language.function.debug.php {debug} - * (Smarty online manual) - * @author Monte Ohrt - * @version 1.0 - * @param array - * @param Smarty - * @return string output from {@link Smarty::_generate_debug_output()} - */ -function smarty_function_debug($params, &$smarty) -{ - if($params['output']) { - $smarty->assign('_smarty_debug_output',$params['output']); - } - require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php'); - return smarty_core_display_debug_console(null, $smarty); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php deleted file mode 100644 index e6943876..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php +++ /dev/null @@ -1,48 +0,0 @@ - - * Name: eval
                                                    - * Purpose: evaluate a template variable as a template
                                                    - * @link http://smarty.php.net/manual/en/language.function.eval.php {eval} - * (Smarty online manual) - * @param array - * @param Smarty - */ -function smarty_function_eval($params, &$smarty) -{ - - if (!isset($params['var'])) { - $smarty->trigger_error("eval: missing 'var' parameter"); - return; - } - - if($params['var'] == '') { - return; - } - - $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled); - - ob_start(); - $smarty->_eval('?>' . $_var_compiled); - $_contents = ob_get_contents(); - ob_end_clean(); - - if (!empty($params['assign'])) { - $smarty->assign($params['assign'], $_contents); - } else { - return $_contents; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php deleted file mode 100644 index 082c3483..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php +++ /dev/null @@ -1,217 +0,0 @@ - - * Name: fetch
                                                    - * Purpose: fetch file, web or ftp data and display results - * @link http://smarty.php.net/manual/en/language.function.fetch.php {fetch} - * (Smarty online manual) - * @param array - * @param Smarty - * @return string|null if the assign parameter is passed, Smarty assigns the - * result to a template variable - */ -function smarty_function_fetch($params, &$smarty) -{ - if (empty($params['file'])) { - $smarty->_trigger_fatal_error("[plugin] parameter 'file' cannot be empty"); - return; - } - - if ($smarty->security && !preg_match('!^(http|ftp)://!i', $params['file'])) { - $_params = array('resource_type' => 'file', 'resource_name' => $params['file']); - require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php'); - if(!smarty_core_is_secure($_params, $smarty)) { - $smarty->_trigger_fatal_error('[plugin] (secure mode) fetch \'' . $params['file'] . '\' is not allowed'); - return; - } - - // fetch the file - if($fp = @fopen($params['file'],'r')) { - while(!feof($fp)) { - $content .= fgets ($fp,4096); - } - fclose($fp); - } else { - $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] . '\''); - return; - } - } else { - // not a local file - if(preg_match('!^http://!i',$params['file'])) { - // http fetch - if($uri_parts = parse_url($params['file'])) { - // set defaults - $host = $server_name = $uri_parts['host']; - $timeout = 30; - $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; - $agent = "Smarty Template Engine ".$smarty->_version; - $referer = ""; - $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/'; - $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : ''; - $_is_proxy = false; - if(empty($uri_parts['port'])) { - $port = 80; - } else { - $port = $uri_parts['port']; - } - if(empty($uri_parts['user'])) { - $user = ''; - } - // loop through parameters, setup headers - foreach($params as $param_key => $param_value) { - switch($param_key) { - case "file": - case "assign": - case "assign_headers": - break; - case "user": - if(!empty($param_value)) { - $user = $param_value; - } - break; - case "pass": - if(!empty($param_value)) { - $pass = $param_value; - } - break; - case "accept": - if(!empty($param_value)) { - $accept = $param_value; - } - break; - case "header": - if(!empty($param_value)) { - if(!preg_match('![\w\d-]+: .+!',$param_value)) { - $smarty->_trigger_fatal_error("[plugin] invalid header format '".$param_value."'"); - return; - } else { - $extra_headers[] = $param_value; - } - } - break; - case "proxy_host": - if(!empty($param_value)) { - $proxy_host = $param_value; - } - break; - case "proxy_port": - if(!preg_match('!\D!', $param_value)) { - $proxy_port = (int) $param_value; - } else { - $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'"); - return; - } - break; - case "agent": - if(!empty($param_value)) { - $agent = $param_value; - } - break; - case "referer": - if(!empty($param_value)) { - $referer = $param_value; - } - break; - case "timeout": - if(!preg_match('!\D!', $param_value)) { - $timeout = (int) $param_value; - } else { - $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'"); - return; - } - break; - default: - $smarty->_trigger_fatal_error("[plugin] unrecognized attribute '".$param_key."'"); - return; - } - } - if(!empty($proxy_host) && !empty($proxy_port)) { - $_is_proxy = true; - $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout); - } else { - $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout); - } - - if(!$fp) { - $smarty->_trigger_fatal_error("[plugin] unable to fetch: $errstr ($errno)"); - return; - } else { - if($_is_proxy) { - fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n"); - } else { - fputs($fp, "GET $uri HTTP/1.0\r\n"); - } - if(!empty($host)) { - fputs($fp, "Host: $host\r\n"); - } - if(!empty($accept)) { - fputs($fp, "Accept: $accept\r\n"); - } - if(!empty($agent)) { - fputs($fp, "User-Agent: $agent\r\n"); - } - if(!empty($referer)) { - fputs($fp, "Referer: $referer\r\n"); - } - if(isset($extra_headers) && is_array($extra_headers)) { - foreach($extra_headers as $curr_header) { - fputs($fp, $curr_header."\r\n"); - } - } - if(!empty($user) && !empty($pass)) { - fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n"); - } - - $content = ''; - fputs($fp, "\r\n"); - while(!feof($fp)) { - $content .= fgets($fp,4096); - } - fclose($fp); - $csplit = split("\r\n\r\n",$content,2); - - $content = $csplit[1]; - - if(!empty($params['assign_headers'])) { - $smarty->assign($params['assign_headers'],split("\r\n",$csplit[0])); - } - } - } else { - $smarty->_trigger_fatal_error("[plugin] unable to parse URL, check syntax"); - return; - } - } else { - // ftp fetch - if($fp = @fopen($params['file'],'r')) { - while(!feof($fp)) { - $content .= fgets ($fp,4096); - } - fclose($fp); - } else { - $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] .'\''); - return; - } - } - - } - - - if (!empty($params['assign'])) { - $smarty->assign($params['assign'],$content); - } else { - return $content; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php deleted file mode 100644 index 6b32c594..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php +++ /dev/null @@ -1,135 +0,0 @@ - - * Type: function
                                                    - * Name: html_checkboxes
                                                    - * Date: 24.Feb.2003
                                                    - * Purpose: Prints out a list of checkbox input types
                                                    - * Input:
                                                    - * - name (optional) - string default "checkbox" - * - values (required) - array - * - options (optional) - associative array - * - checked (optional) - array default not set - * - separator (optional) - ie
                                                    or   - * - output (optional) - without this one the buttons don't have names - * Examples: - *
                                                    - * {html_checkboxes values=$ids output=$names}
                                                    - * {html_checkboxes values=$ids name='box' separator='
                                                    ' output=$names} - * {html_checkboxes values=$ids checked=$checked separator='
                                                    ' output=$names} - *
                                                    - * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes} - * (Smarty online manual) - * @author Christopher Kvarme - * @author credits to Monte Ohrt - * @version 1.0 - * @param array - * @param Smarty - * @return string - * @uses smarty_function_escape_special_chars() - */ -function smarty_function_html_checkboxes($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); - - $name = 'checkbox'; - $values = null; - $options = null; - $selected = null; - $separator = ''; - $labels = true; - $output = null; - - $extra = ''; - - foreach($params as $_key => $_val) { - switch($_key) { - case 'name': - case 'separator': - $$_key = $_val; - break; - - case 'labels': - $$_key = (bool)$_val; - break; - - case 'options': - $$_key = (array)$_val; - break; - - case 'values': - case 'output': - $$_key = array_values((array)$_val); - break; - - case 'checked': - case 'selected': - $selected = array_values((array)$_val); - break; - - case 'checkboxes': - $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING); - $options = (array)$_val; - break; - - default: - if(!is_array($_val)) { - $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; - } else { - $smarty->trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - } - } - - if (!isset($options) && !isset($values)) - return ''; /* raise error here? */ - - settype($selected, 'array'); - $_html_result = ''; - - if (is_array($options)) { - - foreach ($options as $_key=>$_val) - $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); - - - } else { - foreach ($values as $_i=>$_key) { - $_val = isset($output[$_i]) ? $output[$_i] : ''; - $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels); - } - - } - - return $_html_result; - -} - -function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels) { - $_output = ''; - if ($labels) $_output .= ''; - $_output .= $separator . "\n"; - - return $_output; -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php deleted file mode 100644 index 5ddbe4a1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php +++ /dev/null @@ -1,143 +0,0 @@ - - * Name: html_image
                                                    - * Date: Feb 24, 2003
                                                    - * Purpose: format HTML tags for the image
                                                    - * Input:
                                                    - * - file = file (and path) of image (required) - * - border = border width (optional, default 0) - * - height = image height (optional, default actual height) - * - image =image width (optional, default actual width) - * - basedir = base directory for absolute paths, default - * is environment variable DOCUMENT_ROOT - * - * Examples: {html_image file="images/masthead.gif"} - * Output: - * @link http://smarty.php.net/manual/en/language.function.html.image.php {html_image} - * (Smarty online manual) - * @author Monte Ohrt - * @author credits to Duda - wrote first image function - * in repository, helped with lots of functionality - * @version 1.0 - * @param array - * @param Smarty - * @return string - * @uses smarty_function_escape_special_chars() - */ -function smarty_function_html_image($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); - - $alt = ''; - $file = ''; - $border = 0; - $height = ''; - $width = ''; - $extra = ''; - $prefix = ''; - $suffix = ''; - $basedir = isset($GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT']) - ? $GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'] : ''; - if(strstr($GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'], 'Mac')) { - $dpi_default = 72; - } else { - $dpi_default = 96; - } - - foreach($params as $_key => $_val) { - switch($_key) { - case 'file': - case 'border': - case 'height': - case 'width': - case 'dpi': - case 'basedir': - $$_key = $_val; - break; - - case 'alt': - if(!is_array($_val)) { - $$_key = smarty_function_escape_special_chars($_val); - } else { - $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - - case 'link': - case 'href': - $prefix = ''; - $suffix = ''; - break; - - default: - if(!is_array($_val)) { - $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; - } else { - $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - } - } - - if (empty($file)) { - $smarty->trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE); - return; - } - - if (substr($file,0,1) == '/') { - $_image_path = $basedir . $file; - } else { - $_image_path = $file; - } - - if(!isset($params['width']) || !isset($params['height'])) { - if(!$_image_data = @getimagesize($_image_path)) { - if(!file_exists($_image_path)) { - $smarty->trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE); - return; - } else if(!is_readable($_image_path)) { - $smarty->trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE); - return; - } else { - $smarty->trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE); - return; - } - } - $_params = array('resource_type' => 'file', 'resource_name' => $_image_path); - require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php'); - if(!$smarty->security && !smarty_core_is_secure($_params, $smarty)) { - $smarty->trigger_error("html_image: (secure) '$_image_path' not in secure directory", E_USER_NOTICE); - return; - } - - if(!isset($params['width'])) { - $width = $_image_data[0]; - } - if(!isset($params['height'])) { - $height = $_image_data[1]; - } - - } - - if(isset($params['dpi'])) { - $_resize = $dpi_default/$params['dpi']; - $width = round($width * $_resize); - $height = round($height * $_resize); - } - - return $prefix . ''.$alt.'' . $suffix; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php deleted file mode 100644 index dfc38c83..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php +++ /dev/null @@ -1,118 +0,0 @@ - - * Name: html_options
                                                    - * Input:
                                                    - * - name (optional) - string default "select" - * - values (required if no options supplied) - array - * - options (required if no values supplied) - associative array - * - selected (optional) - string default not set - * - output (required if not options supplied) - array - * Purpose: Prints the list of ' . "\n"; - foreach ($values as $key => $value) { - $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected); - } - $optgroup_html .= "\n"; - return $optgroup_html; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php deleted file mode 100644 index f5052391..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php +++ /dev/null @@ -1,138 +0,0 @@ - - * Type: function
                                                    - * Name: html_radios
                                                    - * Date: 24.Feb.2003
                                                    - * Purpose: Prints out a list of radio input types
                                                    - * Input:
                                                    - * - name (optional) - string default "radio" - * - values (required) - array - * - options (optional) - associative array - * - checked (optional) - array default not set - * - separator (optional) - ie
                                                    or   - * - output (optional) - without this one the buttons don't have names - * Examples: - *
                                                    - * {html_radios values=$ids output=$names}
                                                    - * {html_radios values=$ids name='box' separator='
                                                    ' output=$names} - * {html_radios values=$ids checked=$checked separator='
                                                    ' output=$names} - *
                                                    - * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios} - * (Smarty online manual) - * @author Christopher Kvarme - * @author credits to Monte Ohrt - * @version 1.0 - * @param array - * @param Smarty - * @return string - * @uses smarty_function_escape_special_chars() - */ -function smarty_function_html_radios($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','escape_special_chars'); - - $name = 'radio'; - $values = null; - $options = null; - $selected = null; - $separator = ''; - $labels = true; - $output = null; - $extra = ''; - - foreach($params as $_key => $_val) { - switch($_key) { - case 'name': - case 'separator': - $$_key = (string)$_val; - break; - - case 'checked': - case 'selected': - if(is_array($_val)) { - $smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING); - } else { - $selected = (string)$_val; - } - break; - - case 'labels': - $$_key = (bool)$_val; - break; - - case 'options': - $$_key = (array)$_val; - break; - - case 'values': - case 'output': - $$_key = array_values((array)$_val); - break; - - case 'radios': - $smarty->trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING); - $options = (array)$_val; - break; - - - default: - if(!is_array($_val)) { - $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"'; - } else { - $smarty->trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE); - } - break; - } - } - - if (!isset($options) && !isset($values)) - return ''; /* raise error here? */ - - $_html_result = ''; - - if (isset($options) && is_array($options)) { - - foreach ((array)$options as $_key=>$_val) - $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels); - - } else { - - foreach ((array)$values as $_i=>$_key) { - $_val = isset($output[$_i]) ? $output[$_i] : ''; - $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels); - } - - } - - return $_html_result; - -} - -function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels) { - $_output = ''; - if ($labels) $_output .= ''; - $_output .= $separator . "\n"; - - return $_output; -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php deleted file mode 100644 index a607f555..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php +++ /dev/null @@ -1,243 +0,0 @@ - - * Name: html_select_date
                                                    - * Purpose: Prints the dropdowns for date selection. - * - * ChangeLog:
                                                    - * - 1.0 initial release - * - 1.1 added support for +/- N syntax for begin - * and end year values. (Monte) - * - 1.2 added support for yyyy-mm-dd syntax for - * time value. (Jan Rosier) - * - 1.3 added support for choosing format for - * month values (Gary Loescher) - * - 1.3.1 added support for choosing format for - * day values (Marcus Bointon) - * @link http://smarty.php.net/manual/en/language.function.html.select.date.php {html_select_date} - * (Smarty online manual) - * @version 1.3 - * @author Andrei Zmievski - * @param array - * @param Smarty - * @return string - */ -function smarty_function_html_select_date($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','make_timestamp'); - require_once $smarty->_get_plugin_filepath('function','html_options'); - /* Default values. */ - $prefix = "Date_"; - $start_year = strftime("%Y"); - $end_year = $start_year; - $display_days = true; - $display_months = true; - $display_years = true; - $month_format = "%B"; - /* Write months as numbers by default GL */ - $month_value_format = "%m"; - $day_format = "%02d"; - /* Write day values using this format MB */ - $day_value_format = "%d"; - $year_as_text = false; - /* Display years in reverse order? Ie. 2000,1999,.... */ - $reverse_years = false; - /* Should the select boxes be part of an array when returned from PHP? - e.g. setting it to "birthday", would create "birthday[Day]", - "birthday[Month]" & "birthday[Year]". Can be combined with prefix */ - $field_array = null; - /* tags. - If not set, uses default dropdown. */ - $day_size = null; - $month_size = null; - $year_size = null; - /* Unparsed attributes common to *ALL* the tags. - An example might be in the template: all_extra ='class ="foo"'. */ - $all_extra = null; - /* Separate attributes for the tags. */ - $day_extra = null; - $month_extra = null; - $year_extra = null; - /* Order in which to display the fields. - "D" -> day, "M" -> month, "Y" -> year. */ - $field_order = 'MDY'; - /* String printed between the different fields. */ - $field_separator = "\n"; - $time = time(); - - - extract($params); - - // If $time is not in format yyyy-mm-dd - if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $time)) { - // then $time is empty or unix timestamp or mysql timestamp - // using smarty_make_timestamp to get an unix timestamp and - // strftime to make yyyy-mm-dd - $time = strftime('%Y-%m-%d', smarty_make_timestamp($time)); - } - // Now split this in pieces, which later can be used to set the select - $time = explode("-", $time); - - // make syntax "+N" or "-N" work with start_year and end_year - if (preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match)) { - if ($match[1] == '+') { - $end_year = strftime('%Y') + $match[2]; - } else { - $end_year = strftime('%Y') - $match[2]; - } - } - if (preg_match('!^(\+|\-)\s*(\d+)$!', $start_year, $match)) { - if ($match[1] == '+') { - $start_year = strftime('%Y') + $match[2]; - } else { - $start_year = strftime('%Y') - $match[2]; - } - } - - $field_order = strtoupper($field_order); - - $html_result = $month_result = $day_result = $year_result = ""; - - if ($display_months) { - $month_names = array(); - $month_values = array(); - - for ($i = 1; $i <= 12; $i++) { - $month_names[] = strftime($month_format, mktime(0, 0, 0, $i, 1, 2000)); - $month_values[] = strftime($month_value_format, mktime(0, 0, 0, $i, 1, 2000)); - } - - $month_result .= ''; - } - - if ($display_days) { - $days = array(); - for ($i = 1; $i <= 31; $i++) { - $days[] = sprintf($day_format, $i); - $day_values[] = sprintf($day_value_format, $i); - } - - $day_result .= ''; - } - - if ($display_years) { - if (null !== $field_array){ - $year_name = $field_array . '[' . $prefix . 'Year]'; - } else { - $year_name = $prefix . 'Year'; - } - if ($year_as_text) { - $year_result .= ' $years, - 'values' => $years, - 'selected' => $time[0], - 'print_result' => false), - $smarty); - $year_result .= ''; - } - } - - // Loop thru the field_order field - for ($i = 0; $i <= 2; $i++){ - $c = substr($field_order, $i, 1); - switch ($c){ - case 'D': - $html_result .= $day_result; - break; - - case 'M': - $html_result .= $month_result; - break; - - case 'Y': - $html_result .= $year_result; - break; - } - // Add the field seperator - if($i != 2) { - $html_result .= $field_separator; - } - } - - return $html_result; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php deleted file mode 100644 index 4643136b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php +++ /dev/null @@ -1,163 +0,0 @@ - - * Name: html_select_time
                                                    - * Purpose: Prints the dropdowns for time selection - * @link http://smarty.php.net/manual/en/language.function.html.select.time.php {html_select_time} - * (Smarty online manual) - * @param array - * @param Smarty - * @return string - * @uses smarty_make_timestamp() - */ -function smarty_function_html_select_time($params, &$smarty) -{ - require_once $smarty->_get_plugin_filepath('shared','make_timestamp'); - require_once $smarty->_get_plugin_filepath('function','html_options'); - /* Default values. */ - $prefix = "Time_"; - $time = time(); - $display_hours = true; - $display_minutes = true; - $display_seconds = true; - $display_meridian = true; - $use_24_hours = true; - $minute_interval = 1; - $second_interval = 1; - /* Should the select boxes be part of an array when returned from PHP? - e.g. setting it to "birthday", would create "birthday[Hour]", - "birthday[Minute]", "birthday[Seconds]" & "birthday[Meridian]". - Can be combined with prefix. */ - $field_array = null; - $all_extra = null; - $hour_extra = null; - $minute_extra = null; - $second_extra = null; - $meridian_extra = null; - - extract($params); - - $time = smarty_make_timestamp($time); - - $html_result = ''; - - if ($display_hours) { - $hours = $use_24_hours ? range(0, 23) : range(1, 12); - $hour_fmt = $use_24_hours ? '%H' : '%I'; - for ($i = 0, $for_max = count($hours); $i < $for_max; $i++) - $hours[$i] = sprintf('%02d', $hours[$i]); - $html_result .= '\n"; - } - - if ($display_minutes) { - $all_minutes = range(0, 59); - for ($i = 0, $for_max = count($all_minutes); $i < $for_max; $i+= $minute_interval) - $minutes[] = sprintf('%02d', $all_minutes[$i]); - $selected = intval(floor(strftime('%M', $time) / $minute_interval) * $minute_interval); - $html_result .= '\n"; - } - - if ($display_seconds) { - $all_seconds = range(0, 59); - for ($i = 0, $for_max = count($all_seconds); $i < $for_max; $i+= $second_interval) - $seconds[] = sprintf('%02d', $all_seconds[$i]); - $selected = intval(floor(strftime('%S', $time) / $second_interval) * $second_interval); - $html_result .= '\n"; - } - - if ($display_meridian && !$use_24_hours) { - $html_result .= '\n"; - } - - return $html_result; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php deleted file mode 100644 index ece9c8c5..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php +++ /dev/null @@ -1,113 +0,0 @@ - - * Name: html_table
                                                    - * Date: Feb 17, 2003
                                                    - * Purpose: make an html table from an array of data
                                                    - * Input:
                                                    - * - loop = array to loop through - * - cols = number of columns - * - rows = number of rows - * - table_attr = table attributes - * - tr_attr = table row attributes (arrays are cycled) - * - td_attr = table cell attributes (arrays are cycled) - * - trailpad = value to pad trailing cells with - * - vdir = vertical direction (default: "down", means top-to-bottom) - * - hdir = horizontal direction (default: "right", means left-to-right) - * - inner = inner loop (default "cols": print $loop line by line, - * $loop will be printed column by column otherwise) - * - * - * Examples: - *
                                                    - * {table loop=$data}
                                                    - * {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
                                                    - * {table loop=$data cols=4 tr_attr=$colors}
                                                    - * 
                                                    - * @author Monte Ohrt - * @version 1.0 - * @link http://smarty.php.net/manual/en/language.function.html.table.php {html_table} - * (Smarty online manual) - * @param array - * @param Smarty - * @return string - */ -function smarty_function_html_table($params, &$smarty) -{ - $table_attr = 'border="1"'; - $tr_attr = ''; - $td_attr = ''; - $cols = 3; - $rows = 3; - $trailpad = ' '; - $vdir = 'down'; - $hdir = 'right'; - $inner = 'cols'; - - extract($params); - - if (!isset($loop)) { - $smarty->trigger_error("html_table: missing 'loop' parameter"); - return; - } - - $loop_count = count($loop); - if (empty($params['rows'])) { - /* no rows specified */ - $rows = ceil($loop_count/$cols); - } elseif (empty($params['cols'])) { - if (!empty($params['rows'])) { - /* no cols specified, but rows */ - $cols = ceil($loop_count/$rows); - } - } - - $output = "\n"; - - for ($r=0; $r<$rows; $r++) { - $output .= "\n"; - $rx = ($vdir == 'down') ? $r*$cols : ($rows-1-$r)*$cols; - - for ($c=0; $c<$cols; $c++) { - $x = ($hdir == 'right') ? $rx+$c : $rx+$cols-1-$c; - if ($inner!='cols') { - /* shuffle x to loop over rows*/ - $x = floor($x/$cols) + ($x%$cols)*$rows; - } - - if ($x<$loop_count) { - $output .= "" . $loop[$x] . "\n"; - } else { - $output .= "$trailpad\n"; - } - } - $output .= "\n"; - } - $output .= "
                                                    \n"; - - return $output; -} - -function smarty_function_html_table_cycle($name, $var, $no) { - if(!is_array($var)) { - $ret = $var; - } else { - $ret = $var[$no % count($var)]; - } - - return ($ret) ? ' '.$ret : ''; -} - - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php deleted file mode 100644 index 9273ba39..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php +++ /dev/null @@ -1,140 +0,0 @@ - - * Name: mailto
                                                    - * Date: May 21, 2002 - * Purpose: automate mailto address link creation, and optionally - * encode them.
                                                    - * Input:
                                                    - * - address = e-mail address - * - text = (optional) text to display, default is address - * - encode = (optional) can be one of: - * * none : no encoding (default) - * * javascript : encode with javascript - * * hex : encode with hexidecimal (no javascript) - * - cc = (optional) address(es) to carbon copy - * - bcc = (optional) address(es) to blind carbon copy - * - subject = (optional) e-mail subject - * - newsgroups = (optional) newsgroup(s) to post to - * - followupto = (optional) address(es) to follow up to - * - extra = (optional) extra tags for the href link - * - * Examples: - *
                                                    - * {mailto address="me@domain.com"}
                                                    - * {mailto address="me@domain.com" encode="javascript"}
                                                    - * {mailto address="me@domain.com" encode="hex"}
                                                    - * {mailto address="me@domain.com" subject="Hello to you!"}
                                                    - * {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
                                                    - * {mailto address="me@domain.com" extra='class="mailto"'}
                                                    - * 
                                                    - * @link http://smarty.php.net/manual/en/language.function.mailto.php {mailto} - * (Smarty online manual) - * @version 1.2 - * @author Monte Ohrt - * @author credits to Jason Sweat (added cc, bcc and subject functionality) - * @param array - * @param Smarty - * @return string - */ -function smarty_function_mailto($params, &$smarty) -{ - $extra = ''; - extract($params); - - if (empty($address)) { - $smarty->trigger_error("mailto: missing 'address' parameter"); - return; - } - - if (empty($text)) { - $text = $address; - } - - // netscape and mozilla do not decode %40 (@) in BCC field (bug?) - // so, don't encode it. - - $mail_parms = array(); - if (!empty($cc)) { - $mail_parms[] = 'cc='.str_replace('%40','@',rawurlencode($cc)); - } - - if (!empty($bcc)) { - $mail_parms[] = 'bcc='.str_replace('%40','@',rawurlencode($bcc)); - } - - if (!empty($subject)) { - $mail_parms[] = 'subject='.rawurlencode($subject); - } - - if (!empty($newsgroups)) { - $mail_parms[] = 'newsgroups='.rawurlencode($newsgroups); - } - - if (!empty($followupto)) { - $mail_parms[] = 'followupto='.str_replace('%40','@',rawurlencode($followupto)); - } - - $mail_parm_vals = ''; - for ($i=0; $itrigger_error("mailto: 'encode' parameter must be none, javascript or hex"); - return; - } - - if ($encode == 'javascript' ) { - $string = 'document.write(\''.$text.'\');'; - - for ($x=0; $x < strlen($string); $x++) { - $js_encode .= '%' . bin2hex($string[$x]); - } - - return ''; - - } elseif ($encode == 'hex') { - - preg_match('!^(.*)(\?.*)$!',$address,$match); - if(!empty($match[2])) { - $smarty->trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript."); - return; - } - for ($x=0; $x < strlen($address); $x++) { - if(preg_match('!\w!',$address[$x])) { - $address_encode .= '%' . bin2hex($address[$x]); - } else { - $address_encode .= $address[$x]; - } - } - for ($x=0; $x < strlen($text); $x++) { - $text_encode .= '&#x' . bin2hex($text[$x]).';'; - } - - return ''.$text_encode.''; - - } else { - // no encoding - return ''.$text.''; - - } - -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php deleted file mode 100644 index d2b5d829..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php +++ /dev/null @@ -1,82 +0,0 @@ - - * Name: math
                                                    - * Purpose: handle math computations in template
                                                    - * @link http://smarty.php.net/manual/en/language.function.math.php {math} - * (Smarty online manual) - * @param array - * @param Smarty - * @return string - */ -function smarty_function_math($params, &$smarty) -{ - // be sure equation parameter is present - if (empty($params['equation'])) { - $smarty->trigger_error("math: missing equation parameter"); - return; - } - - $equation = $params['equation']; - - // make sure parenthesis are balanced - if (substr_count($equation,"(") != substr_count($equation,")")) { - $smarty->trigger_error("math: unbalanced parenthesis"); - return; - } - - // match all vars in equation, make sure all are passed - preg_match_all("!\!(0x)([a-zA-Z][a-zA-Z0-9_]*)!",$equation, $match); - $allowed_funcs = array('int','abs','ceil','cos','exp','floor','log','log10', - 'max','min','pi','pow','rand','round','sin','sqrt','srand','tan'); - foreach($match[2] as $curr_var) { - if (!in_array($curr_var,array_keys($params)) && !in_array($curr_var, $allowed_funcs)) { - $smarty->trigger_error("math: parameter $curr_var not passed as argument"); - return; - } - } - - foreach($params as $key => $val) { - if ($key != "equation" && $key != "format" && $key != "assign") { - // make sure value is not empty - if (strlen($val)==0) { - $smarty->trigger_error("math: parameter $key is empty"); - return; - } - if (!is_numeric($val)) { - $smarty->trigger_error("math: parameter $key: is not numeric"); - return; - } - $equation = preg_replace("/\b$key\b/",$val, $equation); - } - } - - eval("\$smarty_math_result = ".$equation.";"); - - if (empty($params['format'])) { - if (empty($params['assign'])) { - return $smarty_math_result; - } else { - $smarty->assign($params['assign'],$smarty_math_result); - } - } else { - if (empty($params['assign'])){ - printf($params['format'],$smarty_math_result); - } else { - $smarty->assign($params['assign'],sprintf($params['format'],$smarty_math_result)); - } - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php deleted file mode 100644 index 0eb4fcb3..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php +++ /dev/null @@ -1,87 +0,0 @@ - - * Name: popup
                                                    - * Purpose: make text pop up in windows via overlib - * @link http://smarty.php.net/manual/en/language.function.popup.php {popup} - * (Smarty online manual) - * @param array - * @param Smarty - * @return string - */ -function smarty_function_popup($params, &$smarty) -{ - extract($params); - - if (empty($text) && !isset($inarray) && empty($function)) { - $smarty->trigger_error("overlib: attribute 'text' or 'inarray' or 'function' required"); - return false; - } - - if (empty($trigger)) { $trigger = "onmouseover"; } - - $retval = $trigger . '="return overlib(\''.preg_replace(array("!'!","![\r\n]!"),array("\'",'\r'),$text).'\''; - if ($sticky) { $retval .= ",STICKY"; } - if (!empty($caption)) { $retval .= ",CAPTION,'".str_replace("'","\'",$caption)."'"; } - if (!empty($fgcolor)) { $retval .= ",FGCOLOR,'$fgcolor'"; } - if (!empty($bgcolor)) { $retval .= ",BGCOLOR,'$bgcolor'"; } - if (!empty($textcolor)) { $retval .= ",TEXTCOLOR,'$textcolor'"; } - if (!empty($capcolor)) { $retval .= ",CAPCOLOR,'$capcolor'"; } - if (!empty($closecolor)) { $retval .= ",CLOSECOLOR,'$closecolor'"; } - if (!empty($textfont)) { $retval .= ",TEXTFONT,'$textfont'"; } - if (!empty($captionfont)) { $retval .= ",CAPTIONFONT,'$captionfont'"; } - if (!empty($closefont)) { $retval .= ",CLOSEFONT,'$closefont'"; } - if (!empty($textsize)) { $retval .= ",TEXTSIZE,$textsize"; } - if (!empty($captionsize)) { $retval .= ",CAPTIONSIZE,$captionsize"; } - if (!empty($closesize)) { $retval .= ",CLOSESIZE,$closesize"; } - if (!empty($width)) { $retval .= ",WIDTH,$width"; } - if (!empty($height)) { $retval .= ",HEIGHT,$height"; } - if (!empty($left)) { $retval .= ",LEFT"; } - if (!empty($right)) { $retval .= ",RIGHT"; } - if (!empty($center)) { $retval .= ",CENTER"; } - if (!empty($above)) { $retval .= ",ABOVE"; } - if (!empty($below)) { $retval .= ",BELOW"; } - if (isset($border)) { $retval .= ",BORDER,$border"; } - if (isset($offsetx)) { $retval .= ",OFFSETX,$offsetx"; } - if (isset($offsety)) { $retval .= ",OFFSETY,$offsety"; } - if (!empty($fgbackground)) { $retval .= ",FGBACKGROUND,'$fgbackground'"; } - if (!empty($bgbackground)) { $retval .= ",BGBACKGROUND,'$bgbackground'"; } - if (!empty($closetext)) { $retval .= ",CLOSETEXT,'".str_replace("'","\'",$closetext)."'"; } - if (!empty($noclose)) { $retval .= ",NOCLOSE"; } - if (!empty($status)) { $retval .= ",STATUS,'".str_replace("'","\'",$status)."'"; } - if (!empty($autostatus)) { $retval .= ",AUTOSTATUS"; } - if (!empty($autostatuscap)) { $retval .= ",AUTOSTATUSCAP"; } - if (isset($inarray)) { $retval .= ",INARRAY,'$inarray'"; } - if (isset($caparray)) { $retval .= ",CAPARRAY,'$caparray'"; } - if (!empty($capicon)) { $retval .= ",CAPICON,'$capicon'"; } - if (!empty($snapx)) { $retval .= ",SNAPX,$snapx"; } - if (!empty($snapy)) { $retval .= ",SNAPY,$snapy"; } - if (isset($fixx)) { $retval .= ",FIXX,$fixx"; } - if (isset($fixy)) { $retval .= ",FIXY,$fixy"; } - if (!empty($background)) { $retval .= ",BACKGROUND,'$background'"; } - if (!empty($padx)) { $retval .= ",PADX,$padx"; } - if (!empty($pady)) { $retval .= ",PADY,$pady"; } - if (!empty($fullhtml)) { $retval .= ",FULLHTML"; } - if (!empty($frame)) { $retval .= ",FRAME,'$frame'"; } - if (isset($timeout)) { $retval .= ",TIMEOUT,$timeout"; } - if (!empty($function)) { $retval .= ",FUNCTION,'$function'"; } - if (isset($delay)) { $retval .= ",DELAY,$delay"; } - if (!empty($hauto)) { $retval .= ",HAUTO"; } - if (!empty($vauto)) { $retval .= ",VAUTO"; } - $retval .= ');" onmouseout="nd();"'; - - return $retval; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php deleted file mode 100644 index e06de696..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php +++ /dev/null @@ -1,39 +0,0 @@ - - * Name: popup_init
                                                    - * Purpose: initialize overlib - * @link http://smarty.php.net/manual/en/language.function.popup.init.php {popup_init} - * (Smarty online manual) - * @param array - * @param Smarty - * @return string - */ -function smarty_function_popup_init($params, &$smarty) -{ - $zindex = 1000; - - if (!empty($params['zindex'])) { - $zindex = $params['zindex']; - } - - if (!empty($params['src'])) { - return '' . "\n" - . '' . "\n"; - } else { - $smarty->trigger_error("popup_init: missing src parameter"); - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php deleted file mode 100644 index 382032c1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php +++ /dev/null @@ -1,20 +0,0 @@ -',$params,'
                                                '); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php deleted file mode 100644 index 464d5f84..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php +++ /dev/null @@ -1,25 +0,0 @@ - - * Name: capitalize
                                                - * Purpose: capitalize words in the string - * @link http://smarty.php.net/manual/en/language.modifiers.php#LANGUAGE.MODIFIER.CAPITALIZE - * capitalize (Smarty online manual) - * @param string - * @return string - */ -function smarty_modifier_capitalize($string) -{ - return ucwords($string); -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php deleted file mode 100644 index 176ee7ae..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php +++ /dev/null @@ -1,33 +0,0 @@ - - * Name: cat
                                                - * Date: Feb 24, 2003 - * Purpose: catenate a value to a variable - * Input: string to catenate - * Example: {$var|cat:"foo"} - * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat - * (Smarty online manual) - * @author Monte Ohrt - * @version 1.0 - * @param string - * @param string - * @return string - */ -function smarty_modifier_cat($string, $cat) -{ - return $string . $cat; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php deleted file mode 100644 index 2fb7c898..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Name: count_characteres
                                                - * Purpose: count the number of characters in a text - * @link http://smarty.php.net/manual/en/language.modifier.count.characters.php - * count_characters (Smarty online manual) - * @param string - * @param boolean include whitespace in the character count - * @return integer - */ -function smarty_modifier_count_characters($string, $include_spaces = false) -{ - if ($include_spaces) - return(strlen($string)); - - return preg_match_all("/[^\s]/",$string, $match); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php deleted file mode 100644 index 5f6278fe..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php +++ /dev/null @@ -1,28 +0,0 @@ - - * Name: count_paragraphs
                                                - * Purpose: count the number of paragraphs in a text - * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php - * count_paragraphs (Smarty online manual) - * @param string - * @return integer - */ -function smarty_modifier_count_paragraphs($string) -{ - // count \r or \n characters - return count(preg_split('/[\r\n]+/', $string)); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php deleted file mode 100644 index 2f3ba65e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php +++ /dev/null @@ -1,28 +0,0 @@ - - * Name: count_sentences - * Purpose: count the number of sentences in a text - * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php - * count_sentences (Smarty online manual) - * @param string - * @return integer - */ -function smarty_modifier_count_sentences($string) -{ - // find periods with a word before but not after. - return preg_match_all('/[^\s]\.(?!\w)/', $string, $match); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php deleted file mode 100644 index a686e4b4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php +++ /dev/null @@ -1,32 +0,0 @@ - - * Name: count_words
                                                - * Purpose: count the number of words in a text - * @link http://smarty.php.net/manual/en/language.modifier.count.words.php - * count_words (Smarty online manual) - * @param string - * @return integer - */ -function smarty_modifier_count_words($string) -{ - // split text by ' ',\r,\n,\f,\t - $split_array = preg_split('/\s+/',$string); - // count matches that contain alphanumerics - $word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array); - - return count($word_count); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php deleted file mode 100644 index ab7e9045..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php +++ /dev/null @@ -1,43 +0,0 @@ -_get_plugin_filepath('shared','make_timestamp'); -/** - * Smarty date_format modifier plugin - * - * Type: modifier
                                                - * Name: date_format
                                                - * Purpose: format datestamps via strftime
                                                - * Input:
                                                - * - string: input date string - * - format: strftime format for output - * - default_date: default date if $string is empty - * @link http://smarty.php.net/manual/en/language.modifier.date.format.php - * date_format (Smarty online manual) - * @param string - * @param string - * @param string - * @return string|void - * @uses smarty_make_timestamp() - */ -function smarty_modifier_date_format($string, $format="%b %e, %Y", $default_date=null) -{ - if($string != '') { - return strftime($format, smarty_make_timestamp($string)); - } elseif (isset($default_date) && $default_date != '') { - return strftime($format, smarty_make_timestamp($default_date)); - } else { - return; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php deleted file mode 100644 index 3158df00..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php +++ /dev/null @@ -1,57 +0,0 @@ - - * Name: debug_print_var
                                                - * Purpose: formats variable contents for display in the console - * @link http://smarty.php.net/manual/en/language.modifier.debug.print.var.php - * debug_print_var (Smarty online manual) - * @param array|object - * @param integer - * @param integer - * @return string - */ -function smarty_modifier_debug_print_var($var, $depth = 0, $length = 40) -{ - $_replace = array("\n"=>'\n', "\r"=>'\r', "\t"=>'\t'); - if (is_array($var)) { - $results = "Array (".count($var).")"; - foreach ($var as $curr_key => $curr_val) { - $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length); - $results .= "
                                                ".str_repeat(' ', $depth*2)."".strtr($curr_key, $_replace)." => $return"; - } - return $results; - } else if (is_object($var)) { - $object_vars = get_object_vars($var); - $results = "".get_class($var)." Object (".count($object_vars).")"; - foreach ($object_vars as $curr_key => $curr_val) { - $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length); - $results .= "
                                                ".str_repeat(' ', $depth*2)."$curr_key => $return"; - } - return $results; - } else { - if (empty($var) && $var != "0") { - return 'empty'; - } - if (strlen($var) > $length ) { - $results = substr($var, 0, $length-3).'...'; - } else { - $results = $var; - } - $results = htmlspecialchars($results); - $results = strtr($results, $_replace); - return $results; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php deleted file mode 100644 index 4f1f800a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Name: default
                                                - * Purpose: designate default value for empty variables - * @link http://smarty.php.net/manual/en/language.modifier.default.php - * default (Smarty online manual) - * @param string - * @param string - * @return string - */ -function smarty_modifier_default($string, $default = '') -{ - if (!isset($string) || $string === '') - return $default; - else - return $string; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php deleted file mode 100644 index dc5ebc6f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php +++ /dev/null @@ -1,63 +0,0 @@ - - * Name: escape
                                                - * Purpose: Escape the string according to escapement type - * @link http://smarty.php.net/manual/en/language.modifier.escape.php - * escape (Smarty online manual) - * @param string - * @param html|htmlall|url|quotes|hex|hexentity|javascript - * @return string - */ -function smarty_modifier_escape($string, $esc_type = 'html') -{ - switch ($esc_type) { - case 'html': - return htmlspecialchars($string, ENT_QUOTES); - - case 'htmlall': - return htmlentities($string, ENT_QUOTES); - - case 'url': - return urlencode($string); - - case 'quotes': - // escape unescaped single quotes - return preg_replace("%(?'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n')); - - default: - return $string; - } -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php deleted file mode 100644 index 72dcf7de..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php deleted file mode 100644 index 4a8b81c7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php +++ /dev/null @@ -1,27 +0,0 @@ - - * Name: indent
                                                - * Purpose: indent lines of text - * @link http://smarty.php.net/manual/en/language.modifier.indent.php - * indent (Smarty online manual) - * @param string - * @param integer - * @param string - * @return string - */ -function smarty_modifier_indent($string,$chars=4,$char=" ") -{ - return preg_replace('!^!m',str_repeat($char,$chars),$string); -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php deleted file mode 100644 index fecb7168..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php +++ /dev/null @@ -1,25 +0,0 @@ - - * Name: lower
                                                - * Purpose: convert string to lowercase - * @link http://smarty.php.net/manual/en/language.modifier.lower.php - * lower (Smarty online manual) - * @param string - * @return string - */ -function smarty_modifier_lower($string) -{ - return strtolower($string); -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php deleted file mode 100644 index 2a5f238b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php +++ /dev/null @@ -1,35 +0,0 @@ - - * Name: nl2br
                                                - * Date: Feb 26, 2003 - * Purpose: convert \r\n, \r or \n to <
                                                > - * Input:
                                                - * - contents = contents to replace - * - preceed_test = if true, includes preceeding break tags - * in replacement - * Example: {$text|nl2br} - * @link http://smarty.php.net/manual/en/language.modifier.nl2br.php - * nl2br (Smarty online manual) - * @version 1.0 - * @author Monte Ohrt - * @param string - * @return string - */ -function smarty_modifier_nl2br($string) -{ - return nl2br($string); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php deleted file mode 100644 index d2d5e813..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php deleted file mode 100644 index a467dfba..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php +++ /dev/null @@ -1,29 +0,0 @@ - - * Name: regex_replace
                                                - * Purpose: regular epxression search/replace - * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php - * regex_replace (Smarty online manual) - * @param string - * @param string|array - * @param string|array - * @return string - */ -function smarty_modifier_regex_replace($string, $search, $replace) -{ - return preg_replace($search, $replace, $string); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php deleted file mode 100644 index 590e11b4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php +++ /dev/null @@ -1,29 +0,0 @@ - - * Name: replace
                                                - * Purpose: simple search/replace - * @link http://smarty.php.net/manual/en/language.modifier.replace.php - * replace (Smarty online manual) - * @param string - * @param string - * @param string - * @return string - */ -function smarty_modifier_replace($string, $search, $replace) -{ - return str_replace($search, $replace, $string); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php deleted file mode 100644 index bcc5f941..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php +++ /dev/null @@ -1,29 +0,0 @@ - - * Name: spacify
                                                - * Purpose: add spaces between characters in a string - * @link http://smarty.php.net/manual/en/language.modifier.spacify.php - * spacify (Smarty online manual) - * @param string - * @param string - * @return string - */ -function smarty_modifier_spacify($string, $spacify_char = ' ') -{ - return implode($spacify_char, - preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY)); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php deleted file mode 100644 index 49903137..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php +++ /dev/null @@ -1,28 +0,0 @@ - - * Name: string_format
                                                - * Purpose: format strings via sprintf - * @link http://smarty.php.net/manual/en/language.modifier.string.format.php - * string_format (Smarty online manual) - * @param string - * @param string - * @return string - */ -function smarty_modifier_string_format($string, $format) -{ - return sprintf($format, $string); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php deleted file mode 100644 index fc675582..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php +++ /dev/null @@ -1,33 +0,0 @@ - - * Name: strip
                                                - * Purpose: Replace all repeated spaces, newlines, tabs - * with a single space or supplied replacement string.
                                                - * Example: {$var|strip} {$var|strip:" "} - * Date: September 25th, 2002 - * @link http://smarty.php.net/manual/en/language.modifier.strip.php - * strip (Smarty online manual) - * @author Monte Ohrt - * @version 1.0 - * @param string - * @param string - * @return string - */ -function smarty_modifier_strip($text, $replace = ' ') -{ - return preg_replace('!\s+!', $replace, $text); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php deleted file mode 100644 index 516a87fc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php +++ /dev/null @@ -1,31 +0,0 @@ - - * Name: strip_tags
                                                - * Purpose: strip html tags from text - * @link http://smarty.php.net/manual/en/language.modifier.strip.tags.php - * strip_tags (Smarty online manual) - * @param string - * @param boolean - * @return string - */ -function smarty_modifier_strip_tags($string, $replace_with_space = true) -{ - if ($replace_with_space) - return preg_replace('!<[^>]*?>!', ' ', $string); - else - return strip_tags($string); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php deleted file mode 100644 index 775a20e8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php +++ /dev/null @@ -1,43 +0,0 @@ - - * Name: truncate
                                                - * Purpose: Truncate a string to a certain length if necessary, - * optionally splitting in the middle of a word, and - * appending the $etc string. - * @link http://smarty.php.net/manual/en/language.modifier.truncate.php - * truncate (Smarty online manual) - * @param string - * @param integer - * @param string - * @param boolean - * @return string - */ -function smarty_modifier_truncate($string, $length = 80, $etc = '...', - $break_words = false) -{ - if ($length == 0) - return ''; - - if (strlen($string) > $length) { - $length -= strlen($etc); - if (!$break_words) - $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1)); - - return substr($string, 0, $length).$etc; - } else - return $string; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php deleted file mode 100644 index 899f6bb9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php +++ /dev/null @@ -1,25 +0,0 @@ - - * Name: upper
                                                - * Purpose: convert string to uppercase - * @link http://smarty.php.net/manual/en/language.modifier.upper.php - * upper (Smarty online manual) - * @param string - * @return string - */ -function smarty_modifier_upper($string) -{ - return strtoupper($string); -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php deleted file mode 100644 index fe4407fc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php +++ /dev/null @@ -1,28 +0,0 @@ - - * Name: wordwrap
                                                - * Purpose: wrap a string of text at a given length - * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php - * wordwrap (Smarty online manual) - * @param string - * @param integer - * @param string - * @param boolean - * @return string - */ -function smarty_modifier_wordwrap($string,$length=80,$break="\n",$cut=false) -{ - return wordwrap($string,$length,$break,$cut); -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php deleted file mode 100644 index 1fa5fe17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php +++ /dev/null @@ -1,75 +0,0 @@ - - * Type: outputfilter
                                                - * Name: trimwhitespace
                                                - * Date: Jan 25, 2003
                                                - * Purpose: trim leading white space and blank lines from - * template source after it gets interpreted, cleaning - * up code and saving bandwidth. Does not affect - * <
                                                >
                                                and blocks.
                                                - * Install: Drop into the plugin directory, call - * $smarty->load_filter('output','trimwhitespace'); - * from application. - * @author Monte Ohrt - * @author Contributions from Lars Noschinski - * @version 1.3 - * @param string - * @param Smarty - */ - function smarty_outputfilter_trimwhitespace($source, &$smarty) - { - // Pull out the script blocks - preg_match_all("!]+>.*?!is", $source, $match); - $_script_blocks = $match[0]; - $source = preg_replace("!]+>.*?!is", - '@@@SMARTY:TRIM:SCRIPT@@@', $source); - - // Pull out the pre blocks - preg_match_all("!
                                                .*?
                                                !is", $source, $match); - $_pre_blocks = $match[0]; - $source = preg_replace("!
                                                .*?
                                                !is", - '@@@SMARTY:TRIM:PRE@@@', $source); - - // Pull out the textarea blocks - preg_match_all("!]+>.*?!is", $source, $match); - $_textarea_blocks = $match[0]; - $source = preg_replace("!]+>.*?!is", - '@@@SMARTY:TRIM:TEXTAREA@@@', $source); - - // remove all leading spaces, tabs and carriage returns NOT - // preceeded by a php close tag. - $source = trim(preg_replace('/((?)\n)[\s]+/m', '\1', $source)); - - // replace script blocks - smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:SCRIPT@@@",$_script_blocks, $source); - - // replace pre blocks - smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:PRE@@@",$_pre_blocks, $source); - - // replace textarea blocks - smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:TEXTAREA@@@",$_textarea_blocks, $source); - - return $source; - } - -function smarty_outputfilter_trimwhitespace_replace($search_str, $replace, &$subject) { - $_len = strlen($search_str); - $_pos = 0; - for ($_i=0, $_count=count($replace); $_i<$_count; $_i++) - if (($_pos=strpos($subject, $search_str, $_pos))!==false) - $subject = substr_replace($subject, $replace[$_i], $_pos, $_len); - else - break; - -} - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php deleted file mode 100644 index 72b8a48c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php +++ /dev/null @@ -1,30 +0,0 @@ - - * Purpose: used by other smarty functions to escape - * special chars except for already escaped ones - * @param string - * @return string - */ -function smarty_function_escape_special_chars($string) -{ - if(!is_array($string)) { - $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string); - $string = htmlspecialchars($string); - $string = str_replace(array('%%%SMARTY_START%%%','%%%SMARTY_END%%%'), array('&',';'), $string); - } - return $string; -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php deleted file mode 100644 index 25c7f5c8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php +++ /dev/null @@ -1,43 +0,0 @@ - - * Purpose: used by other smarty functions to make a timestamp - * from a string. - * @param string - * @return string - */ -function smarty_make_timestamp($string) -{ - if(empty($string)) { - $string = "now"; - } - $time = strtotime($string); - if (is_numeric($time) && $time != -1) - return $time; - - // is mysql timestamp format of YYYYMMDDHHMMSS? - if (preg_match('/^\d{14}$/', $string)) { - $time = mktime(substr($string,8,2),substr($string,10,2),substr($string,12,2), - substr($string,4,2),substr($string,6,2),substr($string,0,4)); - - return $time; - } - - // couldn't recognize it, try to return a time - $time = (int) $string; - if ($time > 0) - return $time; - else - return time(); -} - -/* vim: set expandtab: */ - -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README deleted file mode 100644 index bea956fc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README +++ /dev/null @@ -1,6 +0,0 @@ -Feel free to put the smarty icon on your site. -You can cut-and-paste the following code, be sure -to adjust the path to the image: - - - diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif deleted file mode 100644 index 5d519699..00000000 Binary files a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif and /dev/null differ diff --git a/buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc deleted file mode 100644 index ff7160ce..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc +++ /dev/null @@ -1,491 +0,0 @@ - tags output. Using the - * WordParser, the phpDocumentor_TutorialHighlightParser - * retrieves PHP tokens one by one from the array generated by - * {@link WordParser} source retrieval functions - * and then highlights them individually. - * - * It accomplishes this highlighting through the assistance of methods in - * the output Converter passed to its parse() method, and then returns the - * fully highlighted source as a string - * @tutorial tags.example.pkg, tags.filesource.pkg - * @package phpDocumentor - * @subpackage Parsers - * @since 1.3.0 - */ - -/** - * Highlights source code using {@link parse()} - * @package phpDocumentor - * @subpackage Parsers - */ -class phpDocumentor_TutorialHighlightParser extends Parser -{ - /**#@+ @access private */ - /** - * Highlighted source is built up in this string - * @var string - */ - var $_output; - /** - * contents of the current source code line as it is parsed - * @var string - */ - var $_line; - /** - * Used to retrieve highlighted tokens - * @var Converter a descendant of Converter - */ - var $_converter; - /** - * Path to file being highlighted, if this is from a @filesource tag - * @var false|string full path - */ - var $_filesourcepath; - /** - * @var array - */ - var $eventHandlers = array( - TUTORIAL_EVENT_NOEVENTS => 'defaultHandler', - TUTORIAL_EVENT_ITAG => 'defaultHandler', - TUTORIAL_EVENT_ATTRIBUTE => 'attrHandler', - TUTORIAL_EVENT_OPENTAG => 'defaultHandler', - TUTORIAL_EVENT_CLOSETAG => 'defaultHandler', - TUTORIAL_EVENT_ENTITY => 'defaultHandler', - TUTORIAL_EVENT_COMMENT => 'defaultHandler', - TUTORIAL_EVENT_SINGLEQUOTE => 'defaultHandler', - TUTORIAL_EVENT_DOUBLEQUOTE => 'defaultHandler', - ); - /**#@-*/ - - /** - * @uses Converter::SourceLine() encloses {@link $_line} in a - * converter-specific format - */ - function newLineNum() - { - $this->_line .= $this->_converter->flushHighlightCache(); - $this->_output .= $this->_converter->SourceLine($this->_pv_curline + 1, $this->_line, $this->_path); - $this->_line = ''; - } - - /** - * Start the parsing at a certain line number - */ - function setLineNum($num) - { - $this->_wp->linenum = $num; - } - - /** - * Parse a new file - * - * The parse() method is a do...while() loop that retrieves tokens one by - * one from the {@link $_event_stack}, and uses the token event array set up - * by the class constructor to call event handlers. - * - * The event handlers each process the tokens passed to them, and use the - * {@link _addoutput()} method to append the processed tokens to the - * {@link $_line} variable. The word parser calls {@link newLineNum()} - * every time a line is reached. - * - * In addition, the event handlers use special linking functions - * {@link _link()} and its cousins (_classlink(), etc.) to create in-code - * hyperlinks to the documentation for source code elements that are in the - * source code. - * - * @uses setupStates() initialize parser state variables - * @uses configWordParser() pass $parse_data to prepare retrieval of tokens - * @param string - * @param Converter - * @param false|string full path to file with @filesource tag, if this - * is a @filesource parse - * @param false|integer starting line number from {@}source linenum} - * @staticvar integer used for recursion limiting if a handler for - * an event is not found - * @return bool - */ - function parse ($parse_data, &$converter, $filesourcepath = false, $linenum = false) - { - static $endrecur = 0; - $parse_data = str_replace(array("\r\n", "\t"), array("\n", ' '), $parse_data); - $this->_converter = &$converter; - $converter->startHighlight(); - $this->_path = $filesourcepath; - $this->setupStates($parse_data); - - $this->configWordParser(TUTORIAL_EVENT_NOEVENTS); - if ($linenum !== false) $this->setLineNum($linenum); - // initialize variables so E_ALL error_reporting doesn't complain - $pevent = 0; - $word = 0; - - do - { - $lpevent = $pevent; - $pevent = $this->_event_stack->getEvent(); - if ($lpevent != $pevent) - { - $this->_last_pevent = $lpevent; - $this->configWordParser($pevent); - } - $this->_wp->setWhitespace(true); - - $dbg_linenum = $this->_wp->linenum; - $dbg_pos = $this->_wp->getPos(); - $this->_pv_last_word = $word; - $this->_pv_curline = $this->_wp->linenum; - $word = $this->_wp->getWord(); - - if (0)//PHPDOCUMENTOR_DEBUG == true) - { - echo "LAST: "; - echo "|" . $this->_pv_last_word; - echo "|\n"; - echo "PEVENT: " . $this->getParserEventName($pevent) . "\n"; - echo "LASTPEVENT: " . $this->getParserEventName($this->_last_pevent) . "\n"; -// echo "LINE: ".$this->_line."\n"; -// echo "OUTPUT: ".$this->_output."\n"; - echo $dbg_linenum.'-'.$dbg_pos . ": "; - echo '|'.htmlspecialchars($word); - echo "|\n"; - echo "-------------------\n\n\n"; - flush(); - } - if (isset($this->eventHandlers[$pevent])) - { - $handle = $this->eventHandlers[$pevent]; - $this->$handle($word, $pevent); - } else - { - debug('WARNING: possible error, no handler for event number '.$pevent); - if ($endrecur++ == 25) - { - die("FATAL ERROR, recursion limit reached"); - } - } - } while (!($word === false)); - if (strlen($this->_line)) $this->newLineNum(); - return $this->_output; - } - - /**#@+ - * Event Handlers - * - * All Event Handlers use {@link checkEventPush()} and - * {@link checkEventPop()} to set up the event stack and parser state. - * @access private - * @param string|array token value - * @param integer parser event from {@link Parser.inc} - */ - /** - * Most tokens only need highlighting, and this method handles them - */ - function defaultHandler($word, $pevent) - { - if ($word == "\n") { - $this->newLineNum(); - return; - } - if ($this->checkEventPush($word, $pevent)) { - $this->_wp->backupPos($word); - return; - } - $this->_addoutput($word); - $this->checkEventPop($word, $pevent); - } - - /** - * Most tokens only need highlighting, and this method handles them - */ - function attrHandler($word, $pevent) - { - if ($word == "\n") { - $this->newLineNum(); - return; - } - if ($e = $this->checkEventPush($word, $pevent)) { - if ($e == TUTORIAL_EVENT_SINGLEQUOTE || $e == TUTORIAL_EVENT_DOUBLEQUOTE) { - $this->_addoutput($word); - } - return; - } - if ($this->checkEventPop($word, $pevent)) { - $this->_wp->backupPos($word); - return; - } - $this->_addoutput($word); - } - - /**#@+ - * Output Methods - * @access private - */ - /** - * This method adds output to {@link $_line} - * - * If a string with variables like "$test this" is present, then special - * handling is used to allow processing of the variable in context. - * @see _flush_save() - */ - function _addoutput($word, $preformatted = false) - { - $type = - array( - TUTORIAL_EVENT_ATTRIBUTE => 'attribute', - TUTORIAL_EVENT_SINGLEQUOTE => 'attributevalue', - TUTORIAL_EVENT_DOUBLEQUOTE => 'attributevalue', - TUTORIAL_EVENT_CLOSETAG => 'closetag', - TUTORIAL_EVENT_ENTITY => 'entity', - TUTORIAL_EVENT_ITAG => 'itag', - TUTORIAL_EVENT_OPENTAG => 'opentag', - TUTORIAL_EVENT_COMMENT => 'comment', - ); - $a = $this->_event_stack->getEvent(); - if (in_array($a, array_keys($type))) { - $this->_line .= $this->_converter->highlightTutorialSource($type[$a], $word); - } else { - $this->_line .= $this->_converter->flushHighlightCache(); - $this->_line .= $word; - } - } - /**#@-*/ - - /** - * tell the parser's WordParser {@link $wp} to set up tokens to parse words by. - * tokens are word separators. In English, a space or punctuation are examples of tokens. - * In PHP, a token can be a ;, a parenthesis, or even the word "function" - * @param $value integer an event number - * @see WordParser - */ - - function configWordParser($e) - { - $this->_wp->setSeperator($this->tokens[($e + 100)]); - } - /** - * this function checks whether parameter $word is a token for pushing a new event onto the Event Stack. - * @return mixed returns false, or the event number - */ - - function checkEventPush($word,$pevent) - { - $e = false; - if (isset($this->pushEvent[$pevent])) - { - if (isset($this->pushEvent[$pevent][strtolower($word)])) - $e = $this->pushEvent[$pevent][strtolower($word)]; - } - if ($e) - { - $this->_event_stack->pushEvent($e); - return $e; - } else { - return false; - } - } - - /** - * this function checks whether parameter $word is a token for popping the current event off of the Event Stack. - * @return mixed returns false, or the event number popped off of the stack - */ - - function checkEventPop($word,$pevent) - { - if (!isset($this->popEvent[$pevent])) return false; - if (in_array(strtolower($word),$this->popEvent[$pevent])) - { - return $this->_event_stack->popEvent(); - } else { - return false; - } - } - - /** - * Initialize all parser state variables - * @param boolean true if we are highlighting an inline {@}source} tag's - * output - * @param false|string name of class we are going to start from - * @uses $_wp sets to a new {@link phpDocumentor_HighlightWordParser} - */ - function setupStates($parsedata) - { - $this->_output = ''; - $this->_line = ''; - unset($this->_wp); - $this->_wp = new WordParser; - $this->_wp->setup($parsedata); - $this->_event_stack = new EventStack; - $this->_event_stack->popEvent(); - $this->_event_stack->pushEvent(TUTORIAL_EVENT_NOEVENTS); - $this->_pv_linenum = null; - $this->_pv_next_word = false; - } - - /** - * Initialize the {@link $tokenpushEvent, $wordpushEvent} arrays - */ - function phpDocumentor_TutorialHighlightParser() - { - $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_tutorial_tags_allowed']; - $this->inlineTagHandlers = array('*' => 'handleDefaultInlineTag'); - $this->tokens[STATE_TUTORIAL_NOEVENTS] = array("\n",'{@', ''); - $this->tokens[STATE_TUTORIAL_ENTITY] = array("\n",';'); - $this->tokens[STATE_TUTORIAL_ATTRIBUTE] = array("\n",'"',"'",'>','/>'); - $this->tokens[STATE_TUTORIAL_DOUBLEQUOTE] = array("\n",'"','&','{@'); - $this->tokens[STATE_TUTORIAL_SINGLEQUOTE] = array("\n","'",'&','{@'); -/**************************************************************/ - - $this->pushEvent[TUTORIAL_EVENT_NOEVENTS] = - array( - "{@" => TUTORIAL_EVENT_ITAG, - '<' => TUTORIAL_EVENT_OPENTAG, - ' TUTORIAL_EVENT_CLOSETAG, - '&' => TUTORIAL_EVENT_ENTITY, - ''); -/**************************************************************/ - - $this->popEvent[TUTORIAL_EVENT_ATTRIBUTE] = array('>','/>'); -/**************************************************************/ - - $this->popEvent[TUTORIAL_EVENT_ITAG] = array('}'); -/**************************************************************/ - } - - function getParserEventName ($value) - { - $lookup = array( - TUTORIAL_EVENT_NOEVENTS => "TUTORIAL_EVENT_NOEVENTS", - TUTORIAL_EVENT_ITAG => "TUTORIAL_EVENT_ITAG", - TUTORIAL_EVENT_OPENTAG => "TUTORIAL_EVENT_OPENTAG", - TUTORIAL_EVENT_ATTRIBUTE => "TUTORIAL_EVENT_ATTRIBUTE", - TUTORIAL_EVENT_CLOSETAG => "TUTORIAL_EVENT_CLOSETAG", - TUTORIAL_EVENT_ENTITY => "TUTORIAL_EVENT_ENTITY", - TUTORIAL_EVENT_COMMENT => "TUTORIAL_EVENT_COMMENT", - TUTORIAL_EVENT_SINGLEQUOTE => "TUTORIAL_EVENT_SINGLEQUOTE", - TUTORIAL_EVENT_DOUBLEQUOTE => "TUTORIAL_EVENT_DOUBLEQUOTE", - ); - if (isset($lookup[$value])) - return $lookup[$value]; - else return $value; - } -} - - -/** starting state */ -define("TUTORIAL_EVENT_NOEVENTS" , 1); -/** currently in starting state */ -define("STATE_TUTORIAL_NOEVENTS" , 101); - -/** used when an {@}inline tag} is found */ -define("TUTORIAL_EVENT_ITAG" , 2); -/** currently parsing an {@}inline tag} */ -define("STATE_TUTORIAL_ITAG" , 102); - -/** used when an open is found */ -define("TUTORIAL_EVENT_OPENTAG" , 3); -/** currently parsing an open */ -define("STATE_TUTORIAL_OPENTAG" , 103); - -/** used when a is found */ -define("TUTORIAL_EVENT_ATTRIBUTE" , 4); -/** currently parsing an open */ -define("STATE_TUTORIAL_ATTRIBUTE" , 104); - -/** used when a close is found */ -define("TUTORIAL_EVENT_CLOSETAG" , 5); -/** currently parsing a close */ -define("STATE_TUTORIAL_CLOSETAG" , 105); - -/** used when an &entity; is found */ -define("TUTORIAL_EVENT_ENTITY" , 6); -/** currently parsing an &entity; */ -define("STATE_TUTORIAL_ENTITY" , 106); - -/** used when a is found */ -define("TUTORIAL_EVENT_COMMENT" , 7); -/** currently parsing a */ -define("STATE_TUTORIAL_COMMENT" , 107); - -/** used when a is found */ -define("TUTORIAL_EVENT_SINGLEQUOTE" , 8); -/** currently parsing a */ -define("STATE_TUTORIAL_SINGLEQUOTE" , 108); - -/** used when a is found */ -define("TUTORIAL_EVENT_DOUBLEQUOTE" , 9); -/** currently parsing a */ -define("STATE_TUTORIAL_DOUBLEQUOTE" , 109); -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc deleted file mode 100644 index e0853370..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc +++ /dev/null @@ -1,325 +0,0 @@ - - * @version $Id: WordParser.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - * @package phpDocumentor - * @subpackage WordParsers - */ -/** - * Retrieves tokens from source code for use by the Parser - * @see Parser - * @author Joshua Eichorn - * @version $Id: WordParser.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ - * @package phpDocumentor - * @subpackage WordParsers - */ -class WordParser -{ - /* - New lines around the world - Macintosh: \r - Unix : \n - Windows : \r\n - */ - - /**#@+ - * @access private - */ - /** - * List of text that separates tokens, used to retrieve tokens - * @var array - */ - var $wordseperators = array(); - - /** - * Position within input of the cursor pointing to the next text to be - * retrieved as a token - * @var integer - */ - var $pos = 0; - - /** - * Size of the input source code - * @var integer - */ - var $size; - - /** - * Source code - * @var string - */ - var $data; - - var $cache; - /** - * Current line number - * @var integer - */ - var $linenum = 0; - /** - * Position the cursor was at the last time line numbers were counted, used - * to guarantee that line numbers are incremented - * @var integer - */ - var $linenumpos = 0; - - /** - * Used for {@}source} tag, contains currently parsed function source - * @var string - */ - var $source = ''; - /** - * flag, determines whether tokens are added to {@link $source} - * @var boolean - */ - var $getsource = false; - - /** - * If true, then white space is returned as a part of tokens, otherwise - * tokens are trimmed - * @var boolean - */ - var $returnWhiteSpace = false; - /**#@-*/ - - /** - * Initialize the WordParser - * @param string source code - */ - function setup(&$input) - { - $this->size = strlen($input); - $this->data = & $input; - $this->pos = 0; - $this->linenum = 0; - $this->linenumpos = 0; - $this->cache = array(); - //$this->run = 0; - //$this->word = WORD_PARSER_RET_WORD; - } - - /** - * Retrieve source code for the last function/method - * @return string - */ - function getSource() - { - $source = $this->source; - $this->source = ''; - $this->getsource = false; - return $source; - } - - /** - * Used to tell the WordParser to start retrieving source code - * @access private - */ - function retrievesource($word = '') - { - $this->source = $word; - $this->getsource = true; - } - - /** - * Retrieve a token from the token list - * - * The {@link Parser} class relies upon this method to retrieve the next - * token. The {@link $wordseperators} array is a collection of strings - * that delineate tokens for the current parser state. $wordseperators - * is set by the parser with a call to {@link Parser::configWordParser()} - * every time a new parser state is reached. - * - * For example, while parsing the source code for a class, the word - * var is a token, and global is not, - * but inside a function, the reverse is true. The parser state - * {@link PARSER_STATE_CLASS} has a token list that includes whitespace, - * code delimiters like ; and {}, and comment/DocBlock indicators - * - * If the whitespace option has been turned off using - * {@link setWhitespace()}, then no whitespace is returned with tokens - * - * {@internal - * In the first segment of the function, the code attempts to find the next - * token. A cache is used to speed repetitious tasks. The $tpos variable - * is used to hold the position of the next token. $npos is used to - * hold the end of the token, and so $npos - $tpos will give the length - * of the token. This is used to allow tokens that contain whitespace, - * should that option be desired. - * - * {@link $data} is of course the string containing the PHP code to be - * parsed, and {@link $pos} is the cursor, or current location within the - * parsed data. - * }} - * @return string|false the next token, an empty string if there are no - * token separators in the $wordseperators array, - * or false if the end of input has been reached - */ - function getWord() - { - //$st = $this->mtime(); - if ($this->size == $this->pos) - { - return false; - } - - // assume, for starting, that the token is from $this->pos to the end - $npos = $this->size; - if (is_array($this->wordseperators)) - { - //$this->wordseperators = array(); - foreach($this->wordseperators as $sep) - { - // cache is set if this separator has been tested - if (isset($this->cache[$sep])) - $tpos = $this->cache[$sep]; - else - $tpos = false; - if ($tpos < $this->pos || !is_int($tpos)) - { - // find the position of the next token separator - $tpos = strpos($this->data,$sep,$this->pos); - } - - // was a token separator found that is closer to the current - // location? - if ( ($tpos < $npos) && !($tpos === false)) - { - //echo trim($sep) . "=$tpos\n"; - // set the length of the token to be from $this->pos to - // the next token separator - $npos = $tpos; - $seplen = strlen($sep); - } - else if (!($tpos === false)) - { - $this->cache[$sep] = $tpos; - } - } - } else { - // no token separators, tell the parser to choose a new state - return ""; - } - - $len = $npos - $this->pos; - if ($len == 0) - { - $len = $seplen; - } - - //$st3 = $this->mtime(); - $word = substr($this->data,$this->pos,$len); - - // Change random other os newlines to the unix one - if ($word == "\r" || $word == "\r\n") - { - $word = "\n"; - } - - if ($this->linenumpos <= $this->pos) - { - $this->linenumpos = $this->pos + $len; - $this->linenum += count(explode("\n",$word)) - 1; - } - - if ($this->getsource) - { - $this->source .= $word; - } - $this->pos = $this->pos + $len; - //$this->word = WORD_PARSER_RET_SEP; - - // Things like // commenats rely on the newline to find their end so im going to have to return them - // never return worthless white space /t ' ' - if ($this->returnWhiteSpace == false) - { - if (strlen(trim($word)) == 0 && $word != "\n") - { - $word = $this->getWord(); - } - } - //$this->time3 = $this->time3 + ($this->mtime() - $st3); - //$this->time = $this->time + ($this->mtime() - $st); - return $word; - } - - - /** - * Returns the current pointer position, or 1 character after the end of the word - */ - function getPos() - { - return $this->pos; - } - - /** - * Unused - * - * {@source} - * @param integer starting position - * @param integer length of block to retrieve - */ - function getBlock($start,$len) - { - return substr($this->data,$start,$len); - } - - /** - * @uses $wordseperators - * @param array array of strings that separate tokens - */ - function setSeperator(&$seps) - { - $this->wordseperators = &$seps; - } - - /** - * Set the internal cursor within the source code - * @param integer - */ - function setPos($pos) - { - $this->pos = $pos; - } - - /** - * Backup to the previous token so that it can be retrieved again in a new - * context. - * - * Occasionally, a word will be passed to an event handler that should be - * handled by another event handler. This method allows that to happen. - * @param string token to back up to - */ - function backupPos($word) - { - if ($this->getsource) $this->source = substr($this->source,0,strlen($this->source) - 1); - $this->pos = $this->pos - strlen($word); - } - - /** - * set parser to return or strip whitespace - * @param boolean - */ - function setWhitespace($val = false) - { - $this->returnWhiteSpace = $val; - } -} -?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc deleted file mode 100644 index 59a3f557..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc +++ /dev/null @@ -1,554 +0,0 @@ - - * @since 1.2 - */ -/** when is found */ -define('PHPDOCUMENTOR_PDP_EVENT_PROGRAMLISTING', 600); -/** when is found */ -define('PHPDOCUMENTOR_PDP_STATE_PROGRAMLISTING', 700); -/** when a DocBook is found */ -define('PHPDOCUMENTOR_PDP_EVENT_TAG', 601); -/** when a DocBook is found */ -define('PHPDOCUMENTOR_PDP_STATE_TAG', 701); -/** when is found */ -define('PHPDOCUMENTOR_PDP_EVENT_CDATA', 602); -/** when is found */ -define('PHPDOCUMENTOR_PDP_STATE_CDATA', 702); -/** when tag attributes name="value" are found */ -define('PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES', 603); -/** when tag attributes name="value" are found */ -define('PHPDOCUMENTOR_PDP_STATE_ATTRIBUTES', 703); -/** when tag attributes name="value" are found */ -define('PHPDOCUMENTOR_PDP_EVENT_ENTITY', 604); -/** when tag attributes name="value" are found */ -define('PHPDOCUMENTOR_PDP_STATE_ENTITY', 704); - -/** - * Used to parse XML DocBook-based tutorials - * @package phpDocumentor - * @subpackage Parsers - * @author Greg Beaver - * @since 1.2 - */ -class XMLPackagePageParser extends Parser -{ - /** @var array */ - var $eventHandlers = array( - PHPDOCUMENTOR_PDP_EVENT_TAG => 'handleTag', - PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES => 'handleAttributes', - PHPDOCUMENTOR_PDP_EVENT_CDATA => 'handleCData', - PARSER_EVENT_NOEVENTS => 'defaultHandler', - PARSER_EVENT_COMMENTBLOCK => 'ignoreHandler', - PARSER_EVENT_OUTPHP => 'ignoreHandler', - PARSER_EVENT_QUOTE => 'handleQuote', - PHPDOCUMENTOR_PDP_EVENT_ENTITY => 'handleEntity', - ); - - /** - * @var array - */ - var $pars = array(); - - var $refsect1id = false; - var $refsect2id = false; - var $refsect3id = false; - /** - * @var array the tag stack - */ - var $context; - /**#@+ @access private */ - var $_gettoc = false; - var $_toc = array(); - var $_cursection = 0; - /**#@-*/ - /** - * Set up the wordparser - * - * {@source} - * @uses ObjectWordParser - */ - function XMLPackagePageParser() - { - $this->wp = new ObjectWordParser(true); - } - /** - * Parse a new file - * - * @param string $parse_data - * @param array $tutorial for format, see {@link Io::getTutorials()} - * @staticvar integer used for recursion limiting if a handler for an event is not found - * @return bool - * @uses parserTutorial using {@link Publisher::PublishEvent()}, a new tutorial - * is created from the file parsed, and passed to the - * Intermediate Parser - */ - function parse ($parse_data, $tutorial) - { - $tempparse = new ppageParser; - $parse_data = $tempparse->parse($parse_data,true,$tutorial['package'],$tutorial['subpackage'], - basename($tutorial['path']),$tutorial['category'], $tutorial['path']); - unset($tempparse); - static $endrecur = 0; - if (!is_array($parse_data) || count($parse_data) == 0) - { - return false; - } - $this->setupStates(); - - // initialize variables so E_ALL error_reporting doesn't complain - $pevent = 0; - $word = 0; - $this->p_vars['start'] = true; - $this->p_vars['event_stack'] = new EventStack; - - $this->wp->setup($parse_data,false); - $this->wp->setWhitespace(true); - $this->context = array(); - if (isset($this->curtag)) unset($this->curtag); - - do - { - $lpevent = $pevent; - $pevent = $this->p_vars['event_stack']->getEvent(); - if ($lpevent != $pevent) - { - $this->p_vars['last_pevent'] = $lpevent; - } - - if ($this->p_vars['last_pevent'] != $pevent) - { - // its a new event so the word parser needs to be reconfigured - $this->configWordParser($pevent); - } - - - $this->p_vars['last_word'] = $word; - $word = $this->wp->getWord(); - - if (0)//PHPDOCUMENTOR_DEBUG == true) - { - echo "----------------\n"; - echo "LAST: |" . $this->p_vars['last_word'] . "|\n"; -// echo "INDEX: ".$this->p_vars['curpar']."\n"; - echo "PEVENT: " . $this->getParserEventName($pevent) . "\n"; - echo "LASTPEVENT: " . $this->getParserEventName($this->p_vars['last_pevent']) . "\n"; - echo $this->wp->getPos() . " WORD: |$word|\n\n"; -// echo '"'.$this->p_vars['quote_data']."\"\n"; - } - if (isset($this->eventHandlers[$pevent])) - { - $handle = $this->eventHandlers[$pevent]; - if ($word !== false) $this->$handle($word, $pevent); - } else - { - debug('WARNING: possible error, no XMLPackagePageParser handler for event number '.$pevent); - if ($endrecur++ == 25) - { - die("FATAL ERROR, recursion limit reached"); - } - } - $this->p_vars['start'] = false; - } while (!($word === false)); - if (count($this->_toc) && isset($this->p_vars['toc'])) - { - $a = $this->curtag->getTOC($this->p_vars['toc']); - $a->setTOC($this->_toc); - $a->setPath($tutorial['path']); - $this->curtag->setTOC($this->p_vars['toc'],$a); - } - $this->PublishEvent(PHPDOCUMENTOR_EVENT_TUTORIAL,new parserTutorial($this->curtag, $tutorial)); - return $this->curtag; - } - - /**#@+ - * @access private - * @param string|parserInlineTag token - * @param integer parser event - */ - function defaultHandler($word, $pevent) - { - if (is_string($word) && $this->checkEventPush($word, $pevent)) - { - return; - } - } - - function ignoreHandler($word, $pevent) - { - $this->checkEventPop($word, $pevent); - } - - /** - * handler for QUOTE. - * this handler recognizes strings defined with double quotation marks (") and handles them correctly - * in any place that they legally appear in php code - */ - - function handleQuote($word, $pevent) - { - if ($this->p_flags['reset_quote_data'] === true) - { - $this->p_flags['reset_quote_data'] = false; - $this->p_vars['quote_data'] = ""; - } - if (!is_object($word)) $this->checkEventPush( $word, $pevent); - if ($word != "\"") - { - if (is_object($word)) - { - $this->p_vars['quote_data'] = $word; - } - else - { - if (!is_object($this->p_vars['quote_data'])) - $this->p_vars['quote_data'] .= $word; - } - } - if (!is_object($word)) - { - if ($word == '>') - { - if (is_object($this->p_vars['quote_data'])) $this->p_vars['quote_data'] = '{@id '.$this->p_vars['quote_data']->id.'}'; - addErrorDie(PDERROR_UNTERMINATED_ATTRIB,$this->curtag->name,$this->p_vars['attrname'],$this->p_vars['quote_data']); - } - if ($this->checkEventPop($word,$pevent)) - { - $this->p_flags['reset_quote_data'] = true; - } - } - } - - /** - * Handles all XML DocBook tags - */ - function handleTag($word, $pevent) - { - if (isset($this->curtag) && $this->curtag->hasTitle() && $this->_gettoc && $this->_gettoc->name == $this->curtag->name) - { - if (isset($this->_toc[$this->_cursection])) - { - $this->_toc[$this->_cursection]['title'] = $this->curtag->_title; - $this->_cursection++; - } - $this->_gettoc = false; - } - if ($this->p_vars['last_word'] == '<') - { // get tag name - $this->p_flags['begin_tag'] = true; - array_push($this->context,$word); -// if (isset($this->curtag)) debug("pushed ".$this->curtag->name); - if (isset($this->curtag)) - { - array_push($this->pars,$this->curtag); - } - $this->curtag = new parserXMLDocBookTag($word); - } elseif ($this->p_vars['last_word'] == '') - { - $tag = array_pop($this->context); - if ($word == '/>') { - // all is OK - $this->checkEventPop($word, $pevent); - $word = $tag; - } - if ($tag != $word) - { - addErrorDie(PDERROR_UNMATCHED_TUTORIAL_TAG,$tag,$word,$this->curtag->getString()); - } - if (in_array($this->curtag->name, array('refentry', 'refsect1', 'refsect2', 'refsect3'))) - { - if (!isset($this->curtag->_id)) - { - $title = ''; - if (isset($this->curtag->_title)) - { - $title = $this->curtag->_title->getString(); - } - addWarning(PDERROR_NO_DOCBOOK_ID, $this->curtag->name, $title); - } - } - $this->p_flags['begin_tag'] = false; - $curtag = @array_pop($this->pars); -// debug("popped $tag ".$curtag->name.' I am '.$this->curtag->name); - if ($curtag) - { - if ($this->curtag->name == 'refsect1') $this->refsect1id = false; - if ($this->curtag->name == 'refsect2') $this->refsect2id = false; - if ($this->curtag->name == 'refsect3') $this->refsect3id = false; - $curtag->add($this->curtag); -// debug("added ".$this->curtag->name." to ".$curtag->name.' '.$curtag->id); - $this->curtag = $curtag; - } else - { -// debug("here"); - } - } elseif (is_string($word)) - { - if (!($e = $this->checkEventPush($word, $pevent))) - { - if ($this->checkEventPop($word, $pevent)) - { - if ($this->p_flags['begin_tag']) - { - $this->p_vars['event_stack']->pushEvent(PHPDOCUMENTOR_PDP_EVENT_TAG); - $this->p_vars['event_stack']->pushEvent(PHPDOCUMENTOR_PDP_EVENT_CDATA); - $this->p_vars['last_tag'] = array_pop($this->context); - array_push($this->context,$this->p_vars['last_tag']); - $this->p_flags['in_cdata'] = false; - } - return; - } - } else - { - $this->p_flags['start_attr'] = true; - $this->p_flags['end_attr'] = false; - } - } else addErrorDie(PDERROR_CANT_HAVE_INLINE_IN_TAGNAME); - } - - /** - * Handle CData sections - */ - function handleCData($word, $pevent) - { - if ($this->curtag->name == 'refentry' && phpDocumentor_get_class($word) == 'parsertocinlinetag') - { - $this->p_vars['toc'] = $this->curtag->getTOC(); - } - if (is_string($word) && !$this->p_flags['in_cdata']) - { - if ($this->checkEventPop($word, $pevent)) - { - return; - } - if ($this->checkEventPush($word, $pevent)) - { - return; - } - } - if ($word == 'curtag->startCData(); - $this->p_flags['in_cdata'] = true; - } elseif ($this->p_flags['in_cdata'] && $word == ']]>') - { - $this->curtag->endCData(); - $this->p_flags['in_cdata'] = false; - } else - { - if ($this->p_flags['in_cdata']) - $this->curtag->addCData($word); - else - $this->curtag->add($word); - } - } - - /** - * Handle Entities like ” - */ - function handleEntity($word, $pevent) - { - if (!$word) - { - if (!isset($this->p_vars['entity_name'])) - $this->p_vars['entity_name'] = ''; - addErrorDie(PDERROR_UNTERMINATED_ENTITY,$this->p_vars['entity_name']); - } - $e = $this->checkEventPop($word, $pevent); - if ($word && !$e) $this->p_vars['entity_name'] = $word; - if ($e) - { - $entity = new parserEntity($this->p_vars['entity_name']); - unset($this->p_vars['entity_name']); - $this->curtag->add($entity); - } - } - - /** - * Handle Tag attributes name="value" - */ - function handleAttributes($word, $pevent) - { - if ($this->checkEventPush($word, $pevent)) return; - if ($word == '=') - { - $this->p_flags['start_attr'] = false; - $this->p_vars['end_attr'] = true; - } else - { - if ($this->p_flags['start_attr']) - { - $this->p_vars['attrname'] = $word; - } else - { - if (isset($this->p_vars['attrname'])) - { - $value = $this->p_vars['quote_data']; - if (phpDocumentor_get_class($value) == 'parseridinlinetag') - { // "inherit" the parent section's id, so - // - // ... - // - // ... - // - // - $a = ($this->refsect1id ? $this->refsect1id . '.' : ''); - $a .= ($this->refsect2id ? $this->refsect2id . '.' : ''); - $a .= ($this->refsect3id ? $this->refsect3id . '.' : ''); - if ($this->curtag->name == 'refsect1') - { - $this->refsect1id = $value->id; - } - if ($this->curtag->name == 'refsect2') - { - $this->refsect2id = $value->id; - } - if ($this->curtag->name == 'refsect3') - { - $this->refsect3id = $value->id; - } -// debug($value->id.' is now '.$a.$value->id); - $value->id = $a . $value->id; - if ($value->id != '') - { - if (isset($this->_toc[$this->_cursection])) - { - $this->_cursection++; - } - $this->_toc[$this->_cursection]['id'] = $value; - $this->_toc[$this->_cursection]['tag'] = new parserXMLDocBookTag($this->curtag->name); -// debug("set gettoc to ".$this->curtag->name .' '. $value->id); - $this->_gettoc = $this->curtag; - } - } - $this->curtag->addAttribute($this->p_vars['attrname'],$value); - unset($this->p_vars['attrname']); - $this->p_flags['end_attr'] = false; - } - } - } - if (is_string($word) && $this->checkEventPop($word, $pevent)) - { - $this->p_flags['start_attr'] = true; - $this->p_flags['end_attr'] = false; - $this->wp->setPos($this->wp->getPos() - strlen($word)); - } - } - /**#@-*/ - - /** - * setup the parser tokens, and the pushEvent/popEvent arrays - * @see $tokens, $pushEvent, $popEvent - */ - - function setupStates() - { - $this->_gettoc = false; - $this->_toc = array(); - $this->_cursection = 0; - if (isset($this->p_vars['toc'])) unset($this->p_vars['toc']); - - $this->tokens[STATE_NOEVENTS] = array('tokens[STATE_COMMENTBLOCK] = array('-->'); - $this->tokens[STATE_OUTPHP] = array('?>'); - $this->tokens[STATE_QUOTE] = array("\\\"","\\\\","\"",'>'); - $this->tokens[STATE_ESCAPE] = false;// this tells the word parser to just cycle - $this->tokens[PHPDOCUMENTOR_PDP_STATE_TAG] = array('>',' ','/>'); - $this->tokens[PHPDOCUMENTOR_PDP_STATE_CDATA] = array('&','"); -########################## - $this->pushEvent[PARSER_EVENT_QUOTE] = - array( - "\\" => PARSER_EVENT_ESCAPE - ); - $this->popEvent[PARSER_EVENT_QUOTE] = array("\""); -########################## - - $this->popEvent[PARSER_EVENT_OUTPHP] = array("?>"); -########################## - - $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_ENTITY] = array(";"); -########################## - - $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_CDATA] = - array( - "<" => PHPDOCUMENTOR_PDP_EVENT_TAG, - '