From 588727c7e2b8954ec3dbde293cf4c4d68b119f9b Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 19 Jun 2006 18:38:29 +0000 Subject: Merge from 3.0 branch till 1185. --- .../Converters/CHM/default/CHMdefaultConverter.inc | 1753 +++++++++++++++++++ .../CHM/default/templates/default/options.ini | 507 ++++++ .../templates/default/templates/basicindex.tpl | 21 + .../default/templates/default/templates/blank.tpl | 13 + .../default/templates/default/templates/class.tpl | 94 ++ .../templates/default/templates/classleft.tpl | 8 + .../templates/default/templates/classtrees.tpl | 12 + .../default/templates/default/templates/const.tpl | 29 + .../templates/default/templates/contents.hhc.tpl | 11 + .../default/templates/default/templates/define.tpl | 33 + .../templates/default/templates/docblock.tpl | 31 + .../templates/default/templates/elementindex.tpl | 9 + .../default/templates/default/templates/errors.tpl | 21 + .../templates/default/templates/fileleft.tpl | 8 + .../templates/default/templates/filesource.tpl | 6 + .../default/templates/default/templates/footer.tpl | 8 + .../templates/default/templates/function.tpl | 44 + .../default/templates/default/templates/global.tpl | 32 + .../default/templates/default/templates/header.tpl | 22 + .../default/templates/default/templates/hhp.tpl | 17 + .../templates/default/templates/include.tpl | 26 + .../templates/default/templates/index.hhk.tpl | 8 + .../default/templates/default/templates/index.tpl | 24 + .../templates/default/templates/media/bg_left.png | Bin 0 -> 991 bytes .../default/templates/media/stylesheet.css | 129 ++ .../default/templates/default/templates/method.tpl | 55 + .../templates/default/templates/packages.tpl | 3 + .../default/templates/default/templates/page.tpl | 34 + .../default/templates/pkgelementindex.tpl | 14 + .../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 | 30 + .../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 | 121 ++ .../templates/PradoSoft/templates/include.tpl | 9 + .../Smarty/templates/PradoSoft/templates/index.tpl | 7 + .../PradoSoft/templates/media/background.png | Bin 0 -> 238 bytes .../templates/PradoSoft/templates/media/empty.png | Bin 0 -> 206 bytes .../templates/PradoSoft/templates/media/style.css | 197 +++ .../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 + 123 files changed, 10707 insertions(+) create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl (limited to 'buildscripts/PhpDocumentor/phpDocumentor/Converters') diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc new file mode 100644 index 00000000..ac38031b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc @@ -0,0 +1,1753 @@ + + * @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 => $types) + { + $comp_types = ''; + foreach($types as $type => $files) + { + $comp = ''; + $templ1 = &$this->newSmarty(); + $templ1->assign('entry', array()); + 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'; + $this->TOC[$package][$subpackage][$sub][] = 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 new file mode 100644 index 00000000..56474470 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini @@ -0,0 +1,507 @@ +preservedocbooktags = false + +;; used to highlight the {@source} inline tag, @filesource tag, and @example tag +[highlightSourceTokens] +;; format: +;; T_CONSTANTNAME = open +;; /T_CONSTANTNAME = close +T_ABSTRACT = +/T_ABSTRACT = +T_CLONE = +/T_CLONE = +T_HALT_COMPILER = +/T_HALT_COMPILER = +T_PUBLIC = +/T_PUBLIC = +T_PRIVATE = +/T_PRIVATE = +T_PROTECTED = +/T_PROTECTED = +T_FINAL = +/T_FINAL = +T_IMPLEMENTS = +/T_IMPLEMENTS = +T_CLASS = +/T_CLASS = +T_INTERFACE = +/T_INTERFACE = +T_INCLUDE = +/T_INCLUDE = +T_INCLUDE_ONCE = +/T_INCLUDE_ONCE = +T_REQUIRE_ONCE = +/T_REQUIRE_ONCE = +T_FUNCTION = +/T_FUNCTION = +T_VARIABLE = +/T_VARIABLE = +T_CONSTANT_ENCAPSED_STRING = +/T_CONSTANT_ENCAPSED_STRING = +T_COMMENT = +/T_COMMENT = +T_OBJECT_OPERATOR = +/T_OBJECT_OPERATOR = +T_RETURN = +/T_RETURN = +T_STATIC = +/T_STATIC = +T_SWITCH = +/T_SWITCH = +T_IF = +/T_IF = +T_FOREACH = +/T_FOREACH = +T_FOR = +/T_FOR = +T_VAR = +/T_VAR = +T_EXTENDS = +/T_EXTENDS = +T_RETURN = +/T_RETURN = +T_GLOBAL = +/T_GLOBAL = +T_DOUBLE_COLON = +/T_DOUBLE_COLON = +T_OBJECT_OPERATOR = +/T_OBJECT_OPERATOR = +T_OPEN_TAG = +/T_OPEN_TAG = +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 +;; +;; 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 = by +/author = +author! = 0 + +authorblurb = blockquote + +authorgroup = Authors:
    +/authorgroup = +authorgroup! = 0 + +caution =
    Caution
    +/caution =
    +caution! = 0 + +command = +/command = + +cmdsynopsis =
    +/cmdsynopsis =
    + +copyright = +/copyright =
    + +emphasis = strong + +example =
    +/example =
    +example! = 0 + +function = +/function = () + +formalpara = p + +graphic = img +graphic->fileref = src +graphic/ = + +important = u + +informalequation = blockquote + +informalexample = pre + +inlineequation = em + +itemizedlist = ul + +listitem = li + +literal = code + +literallayout = pre + +option = " " +/option = + +orderedlist = ol + +para = p + +programlisting =
    +/programlisting = 
    +programlisting! = 0 + +refentry = div + +refnamediv =
    +/refnamediv =
    +refnamediv! = 0 + +refname = h1 + +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" align="center"> +close = </h1> + +[refsect1_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <h2 class="title" align="center"> +close = </h1> + +[refsect2_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <h2 class="title" align="center"> +close = </h2> + +[refsect3_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <h3 class="title" align="center"> +close = </h3> + +[para_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <strong class="title" align="center"> +close = </strong> + +[formalpara_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <strong class="title" align="center"> +close = </strong> + +[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/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl new file mode 100644 index 00000000..a040830b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl @@ -0,0 +1,21 @@ +{section name=letter loop=$letters} + <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> +{/section} +<table> +{section name=index loop=$index} +<tr><td colspan = "2"><a name="{$index[index].letter}">  </a> +<a href="#top">top</a><br> +<TABLE CELLPADDING='3' CELLSPACING='0' WIDTH='100%' CLASS="border"> + <TR CLASS='TableHeadingColor'> + <TD> + <FONT SIZE='+2'><B>{$index[index].letter}</B></FONT> + </TD> + </TR> +</TABLE> +</td></tr> + {section name=contents loop=$index[index].index} + <tr><td><b>{$index[index].index[contents].name}</b></td><td width="100%" align="left" valign="top">{$index[index].index[contents].listing}</td></tr> + {/section} +{/section} +</table> + 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 new file mode 100644 index 00000000..1fbaca2f --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl @@ -0,0 +1,13 @@ +<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/CHM/default/templates/default/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl new file mode 100644 index 00000000..1ed17562 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl @@ -0,0 +1,94 @@ +{include file="header.tpl" eltype="class" hasel=true contents=$classcontents} + +

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

    +[line {if $class_slink}{$class_slink}{else}{$line_number}{/if}]
    +
    +{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}
    +
    +{if $tutorial} +
    Class Tutorial: {$tutorial}
    +{/if} +{if $children} +Classes extended from {$class_name}: + {section name=kids loop=$children} +
    +
    {$children[kids].link}
    +
    {$children[kids].sdesc}
    +
    + {/section}

    +{/if} +{if $conflicts.conflict_type}

    Conflicts with classes:
    + {section name=me loop=$conflicts.conflicts} + {$conflicts.conflicts[me]}
    + {/section} +

    +{/if} +Location: {$source_location} +


    +{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc} +
    +{include file="var.tpl" show="summary"} +
    +{include file="const.tpl" show="summary"} +
    + + +

    Inherited Class Constant Summary

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

    Inherited From Class {$iconsts[iconsts].parent_class}

    +
      + {section name=iconsts2 loop=$iconsts[iconsts].iconsts} + +
    • {$iconsts[iconsts].iconsts[iconsts2].link} = {$iconsts[iconsts].iconsts[iconsts2].value} +
      + {$iconsts[iconsts].iconsts[iconsts2].sdesc} + {/section} +
    • +
    +{/section} +
    + + +

    Inherited Class Variable Summary

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

    Inherited From Class {$ivars[ivars].parent_class}

    +
      + {section name=ivars2 loop=$ivars[ivars].ivars} + +
    • {$ivars[ivars].ivars[ivars2].link} = {$ivars[ivars].ivars[ivars2].default} +
      + {$ivars[ivars].ivars[ivars2].sdesc} + {/section} +
    • +
    +{/section} + +
    +{include file="method.tpl" show="summary"} + + +

    Inherited Method Summary

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

    Inherited From Class {$imethods[imethods].parent_class}

    +
      + {section name=im2 loop=$imethods[imethods].imethods} + +
    • {$imethods[imethods].imethods[im2].link}
      + {$imethods[imethods].imethods[im2].sdesc} + {/section} +
    +{/section} +
    +{include file="method.tpl"} +
    +{include file="var.tpl"} +
    +{include file="const.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 new file mode 100644 index 00000000..15bf6b7e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl @@ -0,0 +1,8 @@ +{foreach key=subpackage item=files from=$classleftindex} + {if $subpackage != ""}{$subpackage}
    {/if} + {section name=files loop=$files} + {if $files[files].link != ''}{/if} + {$files[files].title} + {if $files[files].link != ''}{/if}
    + {/section} +{/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 new file mode 100644 index 00000000..28c648be --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl @@ -0,0 +1,12 @@ +{capture name="title"}Class Trees for Package {$package}{/capture} +{include file="header.tpl" title=$smarty.capture.title} + + +

    + {$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/CHM/default/templates/default/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl new file mode 100644 index 00000000..207491a5 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl @@ -0,0 +1,29 @@ +{if $show=="summary"} + + +

    Class Constant Summary

    + +
      + {section name=consts loop=$consts} + +
    • {$consts[consts].const_name} = {$consts[consts].const_value|replace:"\n":"
      \n"|replace:" ":" "|replace:"\t":"   "}
      +
      + {$consts[consts].sdesc} + {/section} +
    +{else} + + + + +

    Class Constant Detail

    + +
      +{section name=consts loop=$consts} + +
    • {$consts[consts].const_name} = {$consts[consts].const_value|replace:"\n":"
      \n"|replace:" ":" "|replace:"\t":"   "}
      [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} +
    +{/if} \ No newline at end of file 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 new file mode 100644 index 00000000..cf7ee7cb --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl @@ -0,0 +1,11 @@ + + + + + + + + + +{$toc} + 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 new file mode 100644 index 00000000..3917cc70 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl @@ -0,0 +1,33 @@ +{if $summary} + + +

    Constant Summary

    + +
      + {section name=def loop=$defines} +
    • {$defines[def].define_name} = {$defines[def].define_value} +
      {$defines[def].sdesc} + {/section} +
    +{else} + + + +

    Constant Detail

    + +
      + {section name=def loop=$defines} + +
    • {$defines[def].define_name} = {$defines[def].define_value} [line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]
      + {if $defines[def].define_conflicts.conflict_type} +

      Conflicts with defines: + {section name=me loop=$defines[def].define_conflicts.conflicts} + {$defines[def].define_conflicts.conflicts[me]}
      + {/section} +

      + {/if} +

      + {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags} + {/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 new file mode 100644 index 00000000..0de18b67 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl @@ -0,0 +1,31 @@ + +{if $function} + {if $params} +

    Parameters

    + {section name=params loop=$params} +

    {$params[params].var}

    +

    {$params[params].data}

    + {/section} + {/if} +{/if} +{section name=tags loop=$tags} +{if $tags[tags].keyword == 'return'} +

    Returns

    +

    {$tags[tags].data}

    +{/if} +{/section} +{if $sdesc || $desc} +

    Remarks

    +{/if} +{if $sdesc} +

    {$sdesc}

    +{/if} +{if $desc} +

    {$desc}

    +{/if} +{section name=tags loop=$tags} +{if $tags[tags].keyword != 'return'} +

    {$tags[tags].keyword}

    +

    {$tags[tags].data}

    +{/if} +{/section} \ 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 new file mode 100644 index 00000000..8e25db5c --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl @@ -0,0 +1,9 @@ +{include file="header.tpl" noleftindex=true} + +

    Index of All Elements

    +Indexes by package:
    +{section name=p loop=$packageindex} +{$packageindex[p].title}
    +{/section}
    +{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 new file mode 100644 index 00000000..1576a822 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl @@ -0,0 +1,21 @@ +{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/CHM/default/templates/default/templates/fileleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl new file mode 100644 index 00000000..c85acbe0 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl @@ -0,0 +1,8 @@ +{foreach key=subpackage item=files from=$fileleftindex} + {if $subpackage != ""}subpackage {$subpackage}
    {/if} + {section name=files loop=$files} + {if $files[files].link != ''}{/if} + {$files[files].title} + {if $files[files].link != ''}{/if}
    + {/section} +{/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 new file mode 100644 index 00000000..a0d7119e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl @@ -0,0 +1,6 @@ +{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/CHM/default/templates/default/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl new file mode 100644 index 00000000..a015ceea --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl @@ -0,0 +1,8 @@ +{if !$index} +
    +
    + Documentation generated on {$date} by phpDocumentor {$phpdocversion} +
    +{/if} + + 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 new file mode 100644 index 00000000..ea314935 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl @@ -0,0 +1,44 @@ +{if $summary} + + +

    Function Summary

    + + +{else} + + + +

    Function Detail

    + +
      +{section name=func loop=$functions} + + +
    • {$functions[func].function_return} {$functions[func].function_name}() [line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]
      +

      +Usage: {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}) +

      +{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} +{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=true} +
      +

      [ Top ]

      +{/section} +
    +{/if} \ No newline at end of file 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 new file mode 100644 index 00000000..c1b74a1c --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl @@ -0,0 +1,32 @@ +{if $summary} + + +

    Global Variable Summary

    + + + +{else} + + + +

    Global Variable Detail

    + +
      + {section name=glob loop=$globals} + +
    • {$globals[glob].global_type} {$globals[glob].global_name} = {$globals[glob].global_value} [line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]
      + {if $globals[glob].global_conflicts.conflict_type} +

      Conflicts with globals: + {section name=me loop=$globals[glob].global_conflicts.conflicts} + {$globals[glob].global_conflicts.conflicts[me]}
      + {/section} + {/if}

      + {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags} + {/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 new file mode 100644 index 00000000..bdf6173e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl @@ -0,0 +1,22 @@ + + + + + + + {$title} + +{if $bgleft} + +{/if} + + + \ No newline at end of file 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 new file mode 100644 index 00000000..a68f02b1 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl @@ -0,0 +1,17 @@ +[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 new file mode 100644 index 00000000..1ab7440b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl @@ -0,0 +1,26 @@ +{if $summary} + + +

    Include Statements Summary

    + + +{else} + + + +

    Include Statements Detail

    + +
      + {section name=includes loop=$includes} + +
    • {$includes[includes].include_name} file: = {$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 new file mode 100644 index 00000000..8b31a11d --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl @@ -0,0 +1,8 @@ + + + + + + +{$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 new file mode 100644 index 00000000..f73fb8a3 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl @@ -0,0 +1,24 @@ + + + + + + {$title} + + +{if $package_count > 1} + + +{/if} + +{if $package_count > 1} + +{/if} + + + <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/CHM/default/templates/default/templates/media/bg_left.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png new file mode 100644 index 00000000..19fdf05d Binary files /dev/null and b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png differ 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 new file mode 100644 index 00000000..2c08f94f --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css @@ -0,0 +1,129 @@ +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/CHM/default/templates/default/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl new file mode 100644 index 00000000..9309962b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl @@ -0,0 +1,55 @@ +{if $show == 'summary'} + + +

    Method Summary

    + + + +{else} + + + +

    Method Detail

    + +
      +{section name=methods loop=$methods} + + +

      {$class_name}::{$methods[methods].function_name}

      + +

      +{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} ); +

      + +{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} +{if $methods[methods].method_overrides} +

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

      +{/if} + +{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true} +

      [ Top ]

      +
      +{/section} +
    +{/if} \ No newline at end of file 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 new file mode 100644 index 00000000..b48b6719 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl @@ -0,0 +1,3 @@ +{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 new file mode 100644 index 00000000..dc93b0a1 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl @@ -0,0 +1,34 @@ +{include file="header.tpl" eltype="Procedural file"} +

    File: {$source_location}
    +

    +{if $tutorial} +
    Main Tutorial: {$tutorial}
    +{/if} +{include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags} +Classes in this file: +
    +{section name=classes loop=$classes} +
    {$classes[classes].link}
    +
    {$classes[classes].sdesc}
    +{/section} +
    +
    +{include file="include.tpl" summary=true} +
    +{include file="global.tpl" summary=true} +
    +{include file="define.tpl" summary=true} +
    +{include file="function.tpl" summary=true} +
    +{include file="include.tpl"} +
    +{include file="global.tpl"} +
    +{include file="define.tpl"} +
    +{include file="function.tpl"} +
    +{include file="footer.tpl"} + + \ No newline at end of file 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 new file mode 100644 index 00000000..68897450 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl @@ -0,0 +1,14 @@ +{include file="header.tpl"} + +

    Element index for package {$package}

    +{if count($packageindex) > 1} +Indexes by package:
    +{/if} +{section name=p loop=$packageindex} +{if $packageindex[p].title != $package} +{$packageindex[p].title}
    +{/if} +{/section}
    +Index of all elements
    +{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 new file mode 100644 index 00000000..c4cb83f9 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl @@ -0,0 +1,6 @@ +{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 new file mode 100644 index 00000000..87f68ebb --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl @@ -0,0 +1,11 @@ +
      +{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 new file mode 100644 index 00000000..5ab0bca2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl @@ -0,0 +1,14 @@ +{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 new file mode 100644 index 00000000..22c71c3b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl @@ -0,0 +1,32 @@ +{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 new file mode 100644 index 00000000..1db34438 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl @@ -0,0 +1,29 @@ +{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 new file mode 100644 index 00000000..6997545a --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl @@ -0,0 +1,5 @@ + + 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 new file mode 100644 index 00000000..d6f04b53 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl @@ -0,0 +1,30 @@ +{if $show=="summary"} + + +

    Class Variable Summary

    + +
      + {section name=vars loop=$vars} + +
    • {$vars[vars].var_name} = {$vars[vars].var_default|replace:"\n":"
      \n"|replace:" ":" "|replace:"\t":"   "}
      +
      + {$vars[vars].sdesc} + {/section} +
    +{else} + + + + +

    Variable Detail

    + +
      +{section name=vars loop=$vars} + +
    • {$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}]
    • +
    • Data type: {$vars[vars].var_type}{if $vars[vars].var_overrides}Overrides: {$vars[vars].var_overrides}
      {/if}
    • +{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags} +
      +{/section} +
    +{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc new file mode 100644 index 00000000..09f5af73 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc @@ -0,0 +1,1779 @@ + + * @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 new file mode 100644 index 00000000..4566db60 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini @@ -0,0 +1,577 @@ +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 new file mode 100644 index 00000000..221830c4 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl @@ -0,0 +1,13 @@ +<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 new file mode 100644 index 00000000..d7fe2f82 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl @@ -0,0 +1,38 @@ +<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 new file mode 100644 index 00000000..12025c1c --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl @@ -0,0 +1,7 @@ +<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 new file mode 100644 index 00000000..d6a1d398 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl @@ -0,0 +1 @@ +{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 new file mode 100644 index 00000000..bca71e17 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl @@ -0,0 +1,33 @@ +{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 new file mode 100644 index 00000000..8049c4b0 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl @@ -0,0 +1,22 @@ +{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 new file mode 100644 index 00000000..ec4fd0a2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl @@ -0,0 +1,55 @@ +{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 new file mode 100644 index 00000000..8819f63e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl @@ -0,0 +1,25 @@ +{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 new file mode 100644 index 00000000..3cb5534a --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl @@ -0,0 +1,55 @@ +{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 new file mode 100644 index 00000000..53e8f1d2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl @@ -0,0 +1,27 @@ +{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 new file mode 100644 index 00000000..0c2eddc2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl @@ -0,0 +1 @@ +</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 new file mode 100644 index 00000000..48301da4 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl @@ -0,0 +1,10 @@ +{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 new file mode 100644 index 00000000..f92571a4 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl @@ -0,0 +1,4 @@ +<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 new file mode 100644 index 00000000..66c37633 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl @@ -0,0 +1,34 @@ +{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 new file mode 100644 index 00000000..55aafb17 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl @@ -0,0 +1,42 @@ +{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 new file mode 100644 index 00000000..471c7972 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl @@ -0,0 +1,3 @@ +<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 new file mode 100644 index 00000000..b5ddfb10 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl @@ -0,0 +1,101 @@ +{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 new file mode 100644 index 00000000..8fefd671 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl @@ -0,0 +1,61 @@ +{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 new file mode 100644 index 00000000..e605b314 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl @@ -0,0 +1,19 @@ +{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 new file mode 100644 index 00000000..221830c4 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl @@ -0,0 +1,13 @@ +<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 new file mode 100644 index 00000000..37e94343 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl @@ -0,0 +1,18 @@ +{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 new file mode 100644 index 00000000..b503c142 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl @@ -0,0 +1,5 @@ +<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 new file mode 100644 index 00000000..e791bbba --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl @@ -0,0 +1,29 @@ +{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 new file mode 100644 index 00000000..c07fc33a --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl @@ -0,0 +1,9 @@ +{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 new file mode 100644 index 00000000..4020e3a8 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl @@ -0,0 +1,8 @@ +{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 new file mode 100644 index 00000000..88856c4b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl @@ -0,0 +1,14 @@ +{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 new file mode 100644 index 00000000..04ce5b48 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl @@ -0,0 +1,32 @@ +{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 new file mode 100644 index 00000000..09a603f8 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl @@ -0,0 +1,15 @@ +{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 new file mode 100644 index 00000000..175a5136 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl @@ -0,0 +1,5 @@ +{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 new file mode 100644 index 00000000..1576a822 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl @@ -0,0 +1,21 @@ +{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 new file mode 100644 index 00000000..fb85654b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl @@ -0,0 +1,6 @@ +{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 new file mode 100644 index 00000000..50f108d7 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl @@ -0,0 +1,10 @@ +{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 new file mode 100644 index 00000000..b23076a0 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl @@ -0,0 +1,8 @@ +{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 new file mode 100644 index 00000000..0bb7a7dd --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl @@ -0,0 +1,25 @@ + <!-- 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 by Prado Software Group.<br/> + <a title="Powered by PRADO" href="http://www.pradosoft.com/"><img src="http://www.pradosoft.com/images/powered.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 new file mode 100644 index 00000000..098aeb17 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl @@ -0,0 +1,48 @@ +{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 new file mode 100644 index 00000000..1053f748 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl @@ -0,0 +1,40 @@ +{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 new file mode 100644 index 00000000..b35b0f57 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl @@ -0,0 +1,121 @@ +<!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 new file mode 100644 index 00000000..cff067db --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl @@ -0,0 +1,9 @@ +{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 new file mode 100644 index 00000000..60c74b47 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl @@ -0,0 +1,7 @@ +{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 new file mode 100644 index 00000000..d6f36f60 Binary files /dev/null and b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png 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 new file mode 100644 index 00000000..a9f29bb1 Binary files /dev/null and b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png differ 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 new file mode 100644 index 00000000..9419ca62 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css @@ -0,0 +1,197 @@ +.php { + padding: 1em; +} +/* This will not be executed by IE, so now we have a fix! */ +*[class="php-src"], *[class="php"], *[class="listing"] { + line-height: 0px; +} + +body +{ + color: #000000; + background-color: #ffffff; + background-image: url("background.png"); + background-repeat: repeat-y; + font-family: tahoma, verdana, arial, sans-serif; + font-size: 10pt; + margin: 0; + padding: 0; +} + +a +{ + color: #000099; + background-color: transparent; + text-decoration: none; +} + +a:hover +{ + text-decoration: underline; +} + +a.menu +{ + color: #ffffff; + background-color: transparent; +} + +td +{ + font-size: 10pt; +} + +td.header_top +{ + color: #ffffff; + background-color: #9999cc; + font-size: 16pt; + font-weight: bold; + text-align: right; + padding: 10px; +} + +td.header_line +{ + color: #ffffff; + background-color: #333366; +} + +td.header_menu +{ + color: #ffffff; + background-color: #666699; + font-size: 8pt; + text-align: right; + padding: 2px; + padding-right: 5px; +} + +td.menu +{ + padding: 2px; + padding-left: 5px; +} + +td.code_border +{ + color: #000000; + background-color: #c0c0c0; +} + +td.code +{ + color: #000000; + background-color: #f0f0f0; +} + +td.type +{ + font-style: italic; +} + +div.credit +{ + font-size: 8pt; + text-align: center; +} + +div.package +{ + padding-left: 5px; +} + +div.tags +{ + padding-left: 15px; +} + +div.function +{ + padding-left: 15px; +} + +div.top +{ + font-size: 8pt; +} + +div.warning +{ + color: #ff0000; + background-color: transparent; +} + +div.description +{ + padding-left: 15px; +} + +hr +{ + height: 1px; + border-style: solid; + border-color: #c0c0c0; + margin-top: 10px; + margin-bottom: 10px; +} + +span.smalllinenumber +{ + font-size: 8pt; +} + +ul { + margin-left: 0px; + padding-left: 8px; +} +/* Syntax highlighting */ + +.src-code { background-color: #f5f5f5; border: 1px solid #ccc9a4; padding: 0px; margin : 0px} +/*.src-code pre { }*/ + +.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; } +.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; } +.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: #9999CC } +.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/Smarty/templates/PradoSoft/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl new file mode 100644 index 00000000..07cb76e5 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl @@ -0,0 +1,58 @@ +{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 new file mode 100644 index 00000000..b48b6719 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl @@ -0,0 +1,3 @@ +{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 new file mode 100644 index 00000000..6dd8683d --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl @@ -0,0 +1,31 @@ +{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 new file mode 100644 index 00000000..753ad7cf --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl @@ -0,0 +1,5 @@ +{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 new file mode 100644 index 00000000..c4cb83f9 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl @@ -0,0 +1,6 @@ +{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 new file mode 100644 index 00000000..5ab0bca2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl @@ -0,0 +1,14 @@ +{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 new file mode 100644 index 00000000..22c71c3b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl @@ -0,0 +1,32 @@ +{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 new file mode 100644 index 00000000..1db34438 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl @@ -0,0 +1,29 @@ +{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 new file mode 100644 index 00000000..faf7bcef --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl @@ -0,0 +1,5 @@ + + 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 new file mode 100644 index 00000000..c76929fe --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl @@ -0,0 +1,28 @@ +{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 new file mode 100644 index 00000000..d1b8751c --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc @@ -0,0 +1,1747 @@ + + * @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 new file mode 100644 index 00000000..73164a39 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini @@ -0,0 +1,577 @@ +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 new file mode 100644 index 00000000..711e1d2e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl @@ -0,0 +1,47 @@ +<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 new file mode 100644 index 00000000..1fbaca2f --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl @@ -0,0 +1,13 @@ +<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 new file mode 100644 index 00000000..cc1c080b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl @@ -0,0 +1,402 @@ +{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 new file mode 100644 index 00000000..5188e8cf --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl @@ -0,0 +1,11 @@ +{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 new file mode 100644 index 00000000..4157488f --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl @@ -0,0 +1,18 @@ +{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 new file mode 100644 index 00000000..ab76faa2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl @@ -0,0 +1,24 @@ +{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 new file mode 100644 index 00000000..8a87c9b7 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl @@ -0,0 +1,14 @@ + +{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 new file mode 100644 index 00000000..6e651db1 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl @@ -0,0 +1,12 @@ +{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 new file mode 100644 index 00000000..1576a822 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl @@ -0,0 +1,21 @@ +{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 new file mode 100644 index 00000000..c813280b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl @@ -0,0 +1,6 @@ +{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 new file mode 100644 index 00000000..4fd821a2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl @@ -0,0 +1,8 @@ +{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 new file mode 100644 index 00000000..424ebbe2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl @@ -0,0 +1,8 @@ +{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 new file mode 100644 index 00000000..2750a97e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl @@ -0,0 +1,44 @@ +{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 new file mode 100644 index 00000000..3c89ddfc --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl @@ -0,0 +1,26 @@ +{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 new file mode 100644 index 00000000..d5e26dfa --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl @@ -0,0 +1,12 @@ + + + + + + {$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 new file mode 100644 index 00000000..bd408aff --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl @@ -0,0 +1,16 @@ +{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 new file mode 100644 index 00000000..477d2b17 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl @@ -0,0 +1,24 @@ + + + + + + {$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 new file mode 100644 index 00000000..4232d845 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl @@ -0,0 +1,149 @@ +{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 new file mode 100644 index 00000000..e67227b7 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css @@ -0,0 +1,32 @@ +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 new file mode 100644 index 00000000..88f471f2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css @@ -0,0 +1,144 @@ +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 new file mode 100644 index 00000000..3138a925 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl @@ -0,0 +1,61 @@ + +{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 new file mode 100644 index 00000000..e5e1913c --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl @@ -0,0 +1,211 @@ +{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 new file mode 100644 index 00000000..542af8ed --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl @@ -0,0 +1,17 @@ +{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 new file mode 100644 index 00000000..c4cb83f9 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl @@ -0,0 +1,6 @@ +{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 new file mode 100644 index 00000000..5ab0bca2 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl @@ -0,0 +1,14 @@ +{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 new file mode 100644 index 00000000..31f559cb --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl @@ -0,0 +1,43 @@ + + + + + + {$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 new file mode 100644 index 00000000..deb1ee04 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl @@ -0,0 +1,13 @@ +{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 new file mode 100644 index 00000000..9b42fec8 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl @@ -0,0 +1,41 @@ + + + + + + + + + + + +
    + {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 new file mode 100644 index 00000000..314ebd81 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl @@ -0,0 +1,39 @@ +{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 new file mode 100644 index 00000000..d5a18355 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl @@ -0,0 +1,6 @@ + +{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 new file mode 100644 index 00000000..59c4d8cd --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl @@ -0,0 +1,44 @@ +{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} + -- cgit v1.2.3