Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohmathe <johmathe@59fd770c-687e-43c8-a1e3-f5a4ff64c105>2008-04-11 17:38:22 +0400
committerjohmathe <johmathe@59fd770c-687e-43c8-a1e3-f5a4ff64c105>2008-04-11 17:38:22 +0400
commitdd639a368983c930d4a174ab4085213f2e7c8e99 (patch)
tree3e3732d90625e4496375aba47477105e97d4e162
parent71ff763fb7acdc8b397b173389dcf2b7330fdffa (diff)
Convert txt files to unix format0.1
-rw-r--r--config/_config.ini.php2
-rwxr-xr-xindex.php40
-rwxr-xr-xlibs/HTML/Common.php928
-rwxr-xr-xlibs/HTML/QuickForm.php4106
-rwxr-xr-xlibs/HTML/QuickForm/Renderer.php316
-rwxr-xr-xlibs/HTML/QuickForm/Renderer/Array.php678
-rwxr-xr-xlibs/HTML/QuickForm/Renderer/ArraySmarty.php802
-rwxr-xr-xlibs/HTML/QuickForm/Rule.php162
-rwxr-xr-xlibs/HTML/QuickForm/Rule/Callback.php246
-rwxr-xr-xlibs/HTML/QuickForm/Rule/Compare.php210
-rwxr-xr-xlibs/HTML/QuickForm/Rule/Email.php144
-rwxr-xr-xlibs/HTML/QuickForm/Rule/Range.php148
-rwxr-xr-xlibs/HTML/QuickForm/Rule/Regex.php200
-rwxr-xr-xlibs/HTML/QuickForm/Rule/Required.php126
-rwxr-xr-xlibs/HTML/QuickForm/RuleRegistry.php698
-rwxr-xr-xlibs/HTML/QuickForm/advcheckbox.php572
-rwxr-xr-xlibs/HTML/QuickForm/autocomplete.php516
-rwxr-xr-xlibs/HTML/QuickForm/button.php160
-rwxr-xr-xlibs/HTML/QuickForm/checkbox.php554
-rwxr-xr-xlibs/HTML/QuickForm/date.php1020
-rwxr-xr-xlibs/HTML/QuickForm/element.php986
-rwxr-xr-xlibs/HTML/QuickForm/file.php716
-rwxr-xr-xlibs/HTML/QuickForm/group.php1174
-rwxr-xr-xlibs/HTML/QuickForm/header.php148
-rwxr-xr-xlibs/HTML/QuickForm/hidden.php188
-rwxr-xr-xlibs/HTML/QuickForm/hiddenselect.php236
-rwxr-xr-xlibs/HTML/QuickForm/hierselect.php1184
-rwxr-xr-xlibs/HTML/QuickForm/html.php154
-rwxr-xr-xlibs/HTML/QuickForm/image.php254
-rwxr-xr-xlibs/HTML/QuickForm/input.php418
-rwxr-xr-xlibs/HTML/QuickForm/link.php400
-rwxr-xr-xlibs/HTML/QuickForm/password.php230
-rwxr-xr-xlibs/HTML/QuickForm/radio.php502
-rwxr-xr-xlibs/HTML/QuickForm/reset.php158
-rwxr-xr-xlibs/HTML/QuickForm/select.php1228
-rwxr-xr-xlibs/HTML/QuickForm/static.php402
-rwxr-xr-xlibs/HTML/QuickForm/submit.php178
-rwxr-xr-xlibs/HTML/QuickForm/text.php196
-rwxr-xr-xlibs/HTML/QuickForm/textarea.php458
-rwxr-xr-xlibs/HTML/QuickForm/xbutton.php306
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.js1280
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.php1194
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/actions.php200
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/blank.html10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/builder.php254
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/config.php1288
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/file_dialog.php586
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/includes/tab.webfx.css18
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/includes/tabpane.js618
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/includes/utilities.php430
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/docbuilder/top.php178
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/new_phpdoc.php1324
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor.ini236
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/options.ini1014
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl188
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl22
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl22
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl64
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl60
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl18
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl86
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl250
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl66
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl22
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl100
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/basicindex.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/blank.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/class.tpl1138
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classleft.tpl22
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtags.tpl44
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtrees.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/const.tpl38
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/define.tpl66
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/docblock.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/fileleft.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filetags.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/footer.tpl20
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/function.tpl108
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/global.tpl70
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/header.tpl202
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/include.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/index.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/method.tpl352
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/packages.tpl4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/page.tpl420
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/pkgelementindex.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tags.tpl44
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_toc.tpl56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_tree.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/var.tpl188
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/basicindex.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/blank.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/class.tpl460
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classleft.tpl18
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classtrees.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/const.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/define.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/elementindex.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/fileleft.tpl20
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/footer.tpl20
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/function.tpl96
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/global.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/header.tpl176
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/include.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/index.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/method.tpl290
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/packages.tpl4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/page.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/pkgelementindex.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_toc.tpl56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_tree.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/var.tpl120
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/basicindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/blank.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/class.tpl346
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classleft.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classtrees.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/const.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/docblock.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/elementindex.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/fileleft.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/footer.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/function.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/global.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/header.tpl186
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/include.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/index.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/method.tpl246
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/packages.tpl4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/page.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/pkgelementindex.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial.tpl64
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_toc.tpl56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_tree.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/var.tpl72
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/class.tpl858
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/header.tpl190
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/left_frame.tpl394
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/lib/classTree.js906
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/stylesheet.css4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/method.tpl298
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_tree.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/var.tpl180
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/basicindex.tpl114
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/class.tpl888
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/define.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/global.tpl52
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/header.tpl190
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/include.tpl32
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/left_frame.tpl500
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/lib/classTree.js906
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/stylesheet.css4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/method.tpl302
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/page.tpl428
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_tree.tpl18
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/var.tpl188
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/class.tpl858
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/header.tpl198
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/left_frame.tpl396
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/lib/classTree.js906
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/stylesheet.css4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/method.tpl298
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_tree.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/var.tpl184
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/class.tpl858
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/header.tpl190
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/left_frame.tpl432
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/lib/classTree.js906
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/stylesheet.css4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/method.tpl298
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_tree.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/var.tpl184
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/class.tpl858
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/header.tpl190
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/left_frame.tpl432
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/lib/classTree.js906
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/stylesheet.css4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/method.tpl298
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_tree.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/var.tpl184
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl860
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl318
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl302
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl84
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl182
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/options.ini1152
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/basicindex.tpl114
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/class.tpl874
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/define.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/global.tpl52
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/header.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/include.tpl32
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/left_frame.tpl318
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/method.tpl302
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/page.tpl428
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/top_frame.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_tree.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/var.tpl188
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/options.ini1152
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/class.tpl858
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/header.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/left_frame.tpl318
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/method.tpl298
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_tree.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/var.tpl184
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/class.tpl858
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/header.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/left_frame.tpl318
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/method.tpl298
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_tree.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/var.tpl184
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/options.ini1014
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/basicindex.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/class.tpl190
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/const.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/docblock.tpl60
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/elementindex.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/function.tpl58
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/global.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/header.tpl194
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/left_frame.tpl332
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/classTree.js906
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tab.webfx.css12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tabpane.js614
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/ua.js222
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/stylesheet.css8
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/method.tpl252
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/page.tpl104
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/top_frame.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial.tpl62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_toc.tpl56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_tree.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/var.tpl98
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/options.ini1154
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/basicindex.tpl94
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/blank.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/class.tpl858
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/classtrees.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/const.tpl36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/define.tpl46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/docblock.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/elementindex.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/filesource.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/footer.tpl16
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/function.tpl88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/global.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/header.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/include.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/index.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/left_frame.tpl318
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/method.tpl298
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/page.tpl422
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/pkgelementindex.tpl34
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/ric.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/todolist.tpl26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/top_frame.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_nav.tpl80
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_toc.tpl78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_tree.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/var.tpl184
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.ezpdf.php3140
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.pdf.php6148
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.phpdocpdf.php706
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/options.ini862
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/appendix_title_page.tpl8
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/class.tpl24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/classtree.tpl20
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/const.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/define.tpl8
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/docblock.tpl20
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/examplesource.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/filesource.tpl22
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/footer.tpl20
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/function.tpl8
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/global.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/include.tpl4
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/index.tpl28
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/method.tpl8
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/newpackage_header.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/packagepage.tpl8
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/page.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/pagenumbering.tpl2
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/params.tpl8
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric_title_page.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_loop.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_title_page.tpl10
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/title_page.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/toc.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/todolist.tpl32
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/tutorial.tpl12
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/var.tpl14
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php268
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Plain.php498
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Tokenizer.php1504
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/options.ini78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/category.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class.tpl56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class_summary.tpl106
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/constants.tpl136
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/docblock.tpl232
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/errors.tpl42
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/globals.tpl138
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/imethods.tpl48
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/ivars.tpl52
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/method.tpl90
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/package.tpl50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/tutorial.tpl40
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/var.tpl30
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/class_summary.tpl184
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/ivars.tpl52
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/tutorial.tpl40
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Setup.inc.php1744
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php730
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php4020
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php4246
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php124
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php86
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php158
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php120
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php46
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php160
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php118
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php100
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php250
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php148
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php142
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php64
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php222
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php142
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php110
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php142
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php100
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php146
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php118
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php74
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php96
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/debug.tpl128
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php70
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php166
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php76
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php260
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php176
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php238
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php70
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php96
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php434
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php270
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php286
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php236
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php276
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php486
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php326
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php226
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php280
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php164
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php174
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php78
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php40
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php66
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php64
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php86
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php114
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php126
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php54
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php70
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php36
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php58
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php58
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php58
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php66
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php62
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php86
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php50
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php56
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php150
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php60
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php86
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/clone.inc.php24
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/clone5.inc.php26
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/common.inc.php516
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpDocumentor/find_phpdoc.php88
-rwxr-xr-xlibs/PhpDocumentor-1.3.2/phpdoc.php938
-rwxr-xr-xlibs/Zend/Auth/Storage/NonPersistent.php192
-rwxr-xr-xlibs/Zend/Db/Adapter/Abstract.php1822
-rw-r--r--libs/jquery/jquery.scrollTo-min.js16
-rw-r--r--libs/jquery/original lib/jquery.blockUI.js722
-rw-r--r--libs/jquery/original lib/jquery.scrollTo.js282
-rw-r--r--libs/jquery/original lib/ui.mouse.js506
-rw-r--r--libs/jquery/thickbox.css20
-rw-r--r--libs/jquery/tooltip/chili-1.7.pack.js2
-rw-r--r--libs/jquery/tooltip/index.html176
-rw-r--r--libs/jquery/ui.sortable_modif.js540
-rw-r--r--misc/api_internal_call.php44
-rw-r--r--misc/api_rest_call.php12
-rw-r--r--misc/generateVisits.php74
-rwxr-xr-xmisc/phpdoc-config.ini128
-rw-r--r--misc/testJavascriptTracker/index.php80
-rw-r--r--misc/testJavascriptTracker/page2.php88
-rwxr-xr-xmodules/API/APIable.php32
-rwxr-xr-xmodules/API/Proxy.php342
-rw-r--r--modules/ArchiveProcessing.php222
-rw-r--r--modules/ArchiveProcessing/Day.php258
-rw-r--r--modules/ArchiveProcessing/Period.php20
-rw-r--r--modules/ArchiveProcessing/Record.php22
-rw-r--r--modules/Auth.php28
-rw-r--r--modules/Common.php24
-rwxr-xr-xmodules/Config.php28
-rw-r--r--modules/Controller.php30
-rw-r--r--modules/Cookie.php24
-rw-r--r--modules/DataFiles/Browsers.php22
-rw-r--r--modules/DataFiles/Countries.php22
-rw-r--r--modules/DataFiles/OS.php22
-rw-r--r--modules/DataFiles/SearchEngines.php20
-rw-r--r--modules/DataTable.php254
-rw-r--r--modules/DataTable/Filter.php22
-rw-r--r--modules/DataTable/Filter/AddConstantDetail.php22
-rw-r--r--modules/DataTable/Filter/ColumnCallbackAddDetail.php22
-rw-r--r--modules/DataTable/Filter/ColumnCallbackDeleteRow.php22
-rw-r--r--modules/DataTable/Filter/ColumnCallbackReplace.php22
-rw-r--r--modules/DataTable/Filter/DetailCallbackAddDetail.php22
-rw-r--r--modules/DataTable/Filter/Empty.php22
-rw-r--r--modules/DataTable/Filter/ExcludeLowPopulation.php22
-rw-r--r--modules/DataTable/Filter/Limit.php22
-rw-r--r--modules/DataTable/Filter/Pattern.php22
-rw-r--r--modules/DataTable/Filter/PatternRecursive.php24
-rw-r--r--modules/DataTable/Filter/ReplaceColumnNames.php22
-rw-r--r--modules/DataTable/Filter/Sort.php30
-rw-r--r--modules/DataTable/Manager.php22
-rw-r--r--modules/DataTable/Renderer.php50
-rw-r--r--modules/DataTable/Renderer/Console.php22
-rw-r--r--modules/DataTable/Renderer/Csv.php40
-rw-r--r--modules/DataTable/Renderer/Html.php22
-rw-r--r--modules/DataTable/Renderer/Json.php26
-rw-r--r--modules/DataTable/Renderer/Php.php112
-rw-r--r--modules/DataTable/Renderer/Xml.php24
-rw-r--r--modules/DataTable/Row.php70
-rw-r--r--modules/DataTable/Row/DataTableSummary.php22
-rw-r--r--modules/DataTable/Simple.php22
-rw-r--r--modules/Date.php28
-rwxr-xr-xmodules/ErrorHandler.php26
-rw-r--r--modules/ExceptionHandler.php26
-rw-r--r--modules/Form.php30
-rwxr-xr-xmodules/Log.php40
-rw-r--r--modules/Log/APICall.php24
-rw-r--r--modules/Log/Error.php24
-rw-r--r--modules/Log/Exception.php24
-rw-r--r--modules/Log/Message.php24
-rw-r--r--modules/LogStats.php28
-rw-r--r--modules/LogStats/Config.php22
-rw-r--r--modules/LogStats/Generator.php20
-rw-r--r--modules/LogStats/Visit.php348
-rw-r--r--modules/Period.php92
-rwxr-xr-xmodules/Piwik.php100
-rw-r--r--modules/Plugin.php40
-rw-r--r--modules/PluginsManager.php86
-rw-r--r--modules/Site.php22
-rw-r--r--modules/SmartyPlugins/function.url.php30
-rw-r--r--modules/SmartyPlugins/modifier.sumtime.php20
-rw-r--r--modules/Timer.php24
-rw-r--r--modules/Translate.php44
-rw-r--r--modules/Url.php50
-rw-r--r--modules/View.php76
-rw-r--r--modules/ViewDataTable/Cloud.php34
-rw-r--r--modules/ViewDataTable/GenerateGraphData.php106
-rw-r--r--modules/ViewDataTable/Graph.php86
-rw-r--r--modules/Visualization/Chart.php34
-rw-r--r--modules/Visualization/Cloud.php30
-rw-r--r--modules/Visualization/OpenFlashChart.php44
-rw-r--r--modules/iView.php36
-rw-r--r--modules/testMinimumPhpVersion.php58
-rw-r--r--piwik.php16
-rw-r--r--plugins/API/Controller.php104
-rw-r--r--plugins/AdminHome/templates/index.tpl94
-rw-r--r--plugins/AdminHome/templates/menu.tpl10
-rw-r--r--plugins/ExamplePlugin/API.php124
-rw-r--r--plugins/Home/templates/datatable.tpl2
-rw-r--r--plugins/Home/templates/datatable_actions_js.tpl8
-rw-r--r--plugins/Home/templates/datatable_actions_recursive.tpl2
-rw-r--r--plugins/Home/templates/datatable_js.tpl8
-rw-r--r--plugins/Home/templates/index.tpl664
-rw-r--r--plugins/Home/templates/links_misc_modules.tpl12
-rw-r--r--plugins/Home/templates/menu.tpl32
-rw-r--r--plugins/Home/templates/sparkline.js118
-rw-r--r--plugins/Installation/Controller.php52
-rw-r--r--plugins/Installation/FormDatabaseSetup.php32
-rw-r--r--plugins/Installation/FormFirstWebsiteSetup.php32
-rw-r--r--plugins/Installation/FormGeneralSetup.php32
-rw-r--r--plugins/Installation/Installation.php32
-rw-r--r--plugins/Installation/View.php32
-rw-r--r--plugins/Login/Controller.php36
-rw-r--r--plugins/Login/Form.php32
-rw-r--r--plugins/Login/Login.php38
-rw-r--r--plugins/Openads/Controller.php32
-rw-r--r--plugins/Openads/Openads.php18
-rw-r--r--plugins/PluginsAdmin/templates/manage.tpl4
-rw-r--r--plugins/Provider/API.php28
-rw-r--r--plugins/Provider/Provider.php38
-rw-r--r--plugins/Referers/API.php30
-rw-r--r--plugins/Referers/Referers.php32
-rwxr-xr-xplugins/SitesManager/API.php40
-rw-r--r--plugins/SitesManager/Controller.php52
-rw-r--r--plugins/SitesManager/SitesManager.php72
-rw-r--r--plugins/SitesManager/templates/DisplayJavascriptCode.tpl10
-rw-r--r--plugins/UserCountry/API.php32
-rw-r--r--plugins/UserCountry/UserCountry.php28
-rw-r--r--plugins/UserSettings/API.php30
-rw-r--r--plugins/UserSettings/UserSettings.php28
-rwxr-xr-xplugins/UsersManager/API.php72
-rw-r--r--plugins/UsersManager/Controller.php32
-rw-r--r--plugins/UsersManager/templates/UsersManager.tpl2
-rw-r--r--plugins/VisitFrequency/API.php32
-rw-r--r--plugins/VisitFrequency/VisitFrequency.php28
-rw-r--r--plugins/VisitTime/API.php32
-rw-r--r--plugins/VisitTime/VisitTime.php60
-rw-r--r--plugins/VisitorInterest/API.php38
-rw-r--r--plugins/VisitorInterest/VisitorInterest.php34
-rw-r--r--plugins/VisitsSummary/API.php32
-rw-r--r--plugins/VisitsSummary/VisitsSummary.php28
-rwxr-xr-xtests/all_tests.php26
-rwxr-xr-xtests/config_test.php12
-rwxr-xr-xtests/modules/Common.test.php50
-rw-r--r--tests/modules/LogStats_Db.test.php74
-rw-r--r--tests/modules/PHP_Related.test.php74
-rw-r--r--tests/modules/Period.test.php238
-rw-r--r--tests/modules/Piwik.test.php22
-rwxr-xr-xtests/modules/SitesManager.test.php12
-rwxr-xr-xtests/modules/TablePartitioning.test.php2
-rw-r--r--tests/modules/UsersManager.test.php152
802 files changed, 71090 insertions, 71090 deletions
diff --git a/config/_config.ini.php b/config/_config.ini.php
index 6036cbc25b..33bc599e7c 100644
--- a/config/_config.ini.php
+++ b/config/_config.ini.php
@@ -1,4 +1,4 @@
-; <?php exit; ?> DO NOT REMOVE THIS LINE
+; <?php exit; ?> DO NOT REMOVE THIS LINE
; this file is just here for documentation purpose
; the config.ini.php is normally created during the installation process
; when this file is absent it triggers the Installation process
diff --git a/index.php b/index.php
index 7180b43582..7e630dd0c8 100755
--- a/index.php
+++ b/index.php
@@ -1,31 +1,31 @@
-<?php
-/**
- * Piwik - Open source web analytics
+<?php
+/**
+ * Piwik - Open source web analytics
*
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id$
*
- * @package Piwik
+ * @package Piwik
*/
error_reporting(E_ALL|E_NOTICE);
@ini_set('display_errors', 1);
-@ini_set('magic_quotes_runtime', 0);
-if(!defined('PIWIK_INCLUDE_PATH'))
+@ini_set('magic_quotes_runtime', 0);
+if(!defined('PIWIK_INCLUDE_PATH'))
{
- define('PIWIK_INCLUDE_PATH', '.');
-}
-
-require_once PIWIK_INCLUDE_PATH . "/modules/testMinimumPhpVersion.php";
-
-
+ define('PIWIK_INCLUDE_PATH', '.');
+}
+
+require_once PIWIK_INCLUDE_PATH . "/modules/testMinimumPhpVersion.php";
+
+
date_default_timezone_set(date_default_timezone_get());
-
-if(!defined('ENABLE_DISPATCH'))
-{
- define('ENABLE_DISPATCH', true);
-}
+
+if(!defined('ENABLE_DISPATCH'))
+{
+ define('ENABLE_DISPATCH', true);
+}
define('PIWIK_PLUGINS_PATH', PIWIK_INCLUDE_PATH . '/plugins');
define('PIWIK_DATAFILES_INCLUDE_PATH', PIWIK_INCLUDE_PATH . "/modules/DataFiles");
@@ -52,5 +52,5 @@ require_once "FrontController.php";
Piwik_FrontController::$enableDispatch = ENABLE_DISPATCH;
$controller = Piwik_FrontController::getInstance();
-$controller->init();
+$controller->init();
$controller->dispatch();
diff --git a/libs/HTML/Common.php b/libs/HTML/Common.php
index 16fd318858..01ba372445 100755
--- a/libs/HTML/Common.php
+++ b/libs/HTML/Common.php
@@ -1,464 +1,464 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Base class for all HTML classes
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_Common
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_Common/
- */
-
-/**
- * Base class for all HTML classes
- *
- * @category HTML
- * @package HTML_Common
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @version Release: 1.2.4
- * @abstract
- */
-class HTML_Common
-{
- /**
- * Associative array of attributes
- * @var array
- * @access private
- */
- var $_attributes = array();
-
- /**
- * Tab offset of the tag
- * @var int
- * @access private
- */
- var $_tabOffset = 0;
-
- /**
- * Tab string
- * @var string
- * @since 1.7
- * @access private
- */
- var $_tab = "\11";
-
- /**
- * Contains the line end string
- * @var string
- * @since 1.7
- * @access private
- */
- var $_lineEnd = "\12";
-
- /**
- * HTML comment on the object
- * @var string
- * @since 1.5
- * @access private
- */
- var $_comment = '';
-
- /**
- * Class constructor
- * @param mixed $attributes Associative array of table tag attributes
- * or HTML attributes name="value" pairs
- * @param int $tabOffset Indent offset in tabs
- * @access public
- */
- function HTML_Common($attributes = null, $tabOffset = 0)
- {
- $this->setAttributes($attributes);
- $this->setTabOffset($tabOffset);
- } // end constructor
-
- /**
- * Returns the current API version
- * @access public
- * @returns double
- */
- function apiVersion()
- {
- return 1.7;
- } // end func apiVersion
-
- /**
- * Returns the lineEnd
- *
- * @since 1.7
- * @access private
- * @return string
- */
- function _getLineEnd()
- {
- return $this->_lineEnd;
- } // end func getLineEnd
-
- /**
- * Returns a string containing the unit for indenting HTML
- *
- * @since 1.7
- * @access private
- * @return string
- */
- function _getTab()
- {
- return $this->_tab;
- } // end func _getTab
-
- /**
- * Returns a string containing the offset for the whole HTML code
- *
- * @return string
- * @access private
- */
- function _getTabs()
- {
- return str_repeat($this->_getTab(), $this->_tabOffset);
- } // end func _getTabs
-
- /**
- * Returns an HTML formatted attribute string
- * @param array $attributes
- * @return string
- * @access private
- */
- function _getAttrString($attributes)
- {
- $strAttr = '';
-
- if (is_array($attributes)) {
- $charset = HTML_Common::charset();
- foreach ($attributes as $key => $value) {
- $strAttr .= ' ' . $key . '="' . htmlspecialchars($value, ENT_COMPAT, $charset) . '"';
- }
- }
- return $strAttr;
- } // end func _getAttrString
-
- /**
- * Returns a valid atrributes array from either a string or array
- * @param mixed $attributes Either a typical HTML attribute string or an associative array
- * @access private
- * @return array
- */
- function _parseAttributes($attributes)
- {
- if (is_array($attributes)) {
- $ret = array();
- foreach ($attributes as $key => $value) {
- if (is_int($key)) {
- $key = $value = strtolower($value);
- } else {
- $key = strtolower($key);
- }
- $ret[$key] = $value;
- }
- return $ret;
-
- } elseif (is_string($attributes)) {
- $preg = "/(([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*)" .
- "([ \\n\\t\\r]+)?(=([ \\n\\t\\r]+)?(\"[^\"]*\"|'[^']*'|[^ \\n\\t\\r]*))?/";
- if (preg_match_all($preg, $attributes, $regs)) {
- for ($counter=0; $counter<count($regs[1]); $counter++) {
- $name = $regs[1][$counter];
- $check = $regs[0][$counter];
- $value = $regs[7][$counter];
- if (trim($name) == trim($check)) {
- $arrAttr[strtolower(trim($name))] = strtolower(trim($name));
- } else {
- if (substr($value, 0, 1) == "\"" || substr($value, 0, 1) == "'") {
- $value = substr($value, 1, -1);
- }
- $arrAttr[strtolower(trim($name))] = trim($value);
- }
- }
- return $arrAttr;
- }
- }
- } // end func _parseAttributes
-
- /**
- * Returns the array key for the given non-name-value pair attribute
- *
- * @param string $attr Attribute
- * @param array $attributes Array of attribute
- * @since 1.0
- * @access private
- * @return bool
- */
- function _getAttrKey($attr, $attributes)
- {
- if (isset($attributes[strtolower($attr)])) {
- return true;
- } else {
- return null;
- }
- } //end func _getAttrKey
-
- /**
- * Updates the attributes in $attr1 with the values in $attr2 without changing the other existing attributes
- * @param array $attr1 Original attributes array
- * @param array $attr2 New attributes array
- * @access private
- */
- function _updateAttrArray(&$attr1, $attr2)
- {
- if (!is_array($attr2)) {
- return false;
- }
- foreach ($attr2 as $key => $value) {
- $attr1[$key] = $value;
- }
- } // end func _updateAtrrArray
-
- /**
- * Removes the given attribute from the given array
- *
- * @param string $attr Attribute name
- * @param array $attributes Attribute array
- * @since 1.4
- * @access private
- * @return void
- */
- function _removeAttr($attr, &$attributes)
- {
- $attr = strtolower($attr);
- if (isset($attributes[$attr])) {
- unset($attributes[$attr]);
- }
- } //end func _removeAttr
-
- /**
- * Returns the value of the given attribute
- *
- * @param string $attr Attribute name
- * @since 1.5
- * @access public
- * @return string|null returns null if an attribute does not exist
- */
- function getAttribute($attr)
- {
- $attr = strtolower($attr);
- if (isset($this->_attributes[$attr])) {
- return $this->_attributes[$attr];
- }
- return null;
- } //end func getAttribute
-
- /**
- * Sets the value of the attribute
- *
- * @param string Attribute name
- * @param string Attribute value (will be set to $name if omitted)
- * @access public
- */
- function setAttribute($name, $value = null)
- {
- $name = strtolower($name);
- if (is_null($value)) {
- $value = $name;
- }
- $this->_attributes[$name] = $value;
- } // end func setAttribute
-
- /**
- * Sets the HTML attributes
- * @param mixed $attributes Either a typical HTML attribute string or an associative array
- * @access public
- */
- function setAttributes($attributes)
- {
- $this->_attributes = $this->_parseAttributes($attributes);
- } // end func setAttributes
-
- /**
- * Returns the assoc array (default) or string of attributes
- *
- * @param bool Whether to return the attributes as string
- * @since 1.6
- * @access public
- * @return mixed attributes
- */
- function getAttributes($asString = false)
- {
- if ($asString) {
- return $this->_getAttrString($this->_attributes);
- } else {
- return $this->_attributes;
- }
- } //end func getAttributes
-
- /**
- * Updates the passed attributes without changing the other existing attributes
- * @param mixed $attributes Either a typical HTML attribute string or an associative array
- * @access public
- */
- function updateAttributes($attributes)
- {
- $this->_updateAttrArray($this->_attributes, $this->_parseAttributes($attributes));
- } // end func updateAttributes
-
- /**
- * Removes an attribute
- *
- * @param string $attr Attribute name
- * @since 1.4
- * @access public
- * @return void
- */
- function removeAttribute($attr)
- {
- $this->_removeAttr($attr, $this->_attributes);
- } //end func removeAttribute
-
- /**
- * Sets the line end style to Windows, Mac, Unix or a custom string.
- *
- * @param string $style "win", "mac", "unix" or custom string.
- * @since 1.7
- * @access public
- * @return void
- */
- function setLineEnd($style)
- {
- switch ($style) {
- case 'win':
- $this->_lineEnd = "\15\12";
- break;
- case 'unix':
- $this->_lineEnd = "\12";
- break;
- case 'mac':
- $this->_lineEnd = "\15";
- break;
- default:
- $this->_lineEnd = $style;
- }
- } // end func setLineEnd
-
- /**
- * Sets the tab offset
- *
- * @param int $offset
- * @access public
- */
- function setTabOffset($offset)
- {
- $this->_tabOffset = $offset;
- } // end func setTabOffset
-
- /**
- * Returns the tabOffset
- *
- * @since 1.5
- * @access public
- * @return int
- */
- function getTabOffset()
- {
- return $this->_tabOffset;
- } //end func getTabOffset
-
- /**
- * Sets the string used to indent HTML
- *
- * @since 1.7
- * @param string $string String used to indent ("\11", "\t", ' ', etc.).
- * @access public
- * @return void
- */
- function setTab($string)
- {
- $this->_tab = $string;
- } // end func setTab
-
- /**
- * Sets the HTML comment to be displayed at the beginning of the HTML string
- *
- * @param string
- * @since 1.4
- * @access public
- * @return void
- */
- function setComment($comment)
- {
- $this->_comment = $comment;
- } // end func setHtmlComment
-
- /**
- * Returns the HTML comment
- *
- * @since 1.5
- * @access public
- * @return string
- */
- function getComment()
- {
- return $this->_comment;
- } //end func getComment
-
- /**
- * Abstract method. Must be extended to return the objects HTML
- *
- * @access public
- * @return string
- * @abstract
- */
- function toHtml()
- {
- return '';
- } // end func toHtml
-
- /**
- * Displays the HTML to the screen
- *
- * @access public
- */
- function display()
- {
- print $this->toHtml();
- } // end func display
-
- /**
- * Sets the charset to use by htmlspecialchars() function
- *
- * Since this parameter is expected to be global, the function is designed
- * to be called statically:
- * <code>
- * HTML_Common::charset('utf-8');
- * </code>
- * or
- * <code>
- * $charset = HTML_Common::charset();
- * </code>
- *
- * @param string New charset to use. Omit if just getting the
- * current value. Consult the htmlspecialchars() docs
- * for a list of supported character sets.
- * @return string Current charset
- * @access public
- * @static
- */
- function charset($newCharset = null)
- {
- static $charset = 'ISO-8859-1';
-
- if (!is_null($newCharset)) {
- $charset = $newCharset;
- }
- return $charset;
- } // end func charset
-} // end class HTML_Common
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Base class for all HTML classes
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_Common
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_Common/
+ */
+
+/**
+ * Base class for all HTML classes
+ *
+ * @category HTML
+ * @package HTML_Common
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @version Release: 1.2.4
+ * @abstract
+ */
+class HTML_Common
+{
+ /**
+ * Associative array of attributes
+ * @var array
+ * @access private
+ */
+ var $_attributes = array();
+
+ /**
+ * Tab offset of the tag
+ * @var int
+ * @access private
+ */
+ var $_tabOffset = 0;
+
+ /**
+ * Tab string
+ * @var string
+ * @since 1.7
+ * @access private
+ */
+ var $_tab = "\11";
+
+ /**
+ * Contains the line end string
+ * @var string
+ * @since 1.7
+ * @access private
+ */
+ var $_lineEnd = "\12";
+
+ /**
+ * HTML comment on the object
+ * @var string
+ * @since 1.5
+ * @access private
+ */
+ var $_comment = '';
+
+ /**
+ * Class constructor
+ * @param mixed $attributes Associative array of table tag attributes
+ * or HTML attributes name="value" pairs
+ * @param int $tabOffset Indent offset in tabs
+ * @access public
+ */
+ function HTML_Common($attributes = null, $tabOffset = 0)
+ {
+ $this->setAttributes($attributes);
+ $this->setTabOffset($tabOffset);
+ } // end constructor
+
+ /**
+ * Returns the current API version
+ * @access public
+ * @returns double
+ */
+ function apiVersion()
+ {
+ return 1.7;
+ } // end func apiVersion
+
+ /**
+ * Returns the lineEnd
+ *
+ * @since 1.7
+ * @access private
+ * @return string
+ */
+ function _getLineEnd()
+ {
+ return $this->_lineEnd;
+ } // end func getLineEnd
+
+ /**
+ * Returns a string containing the unit for indenting HTML
+ *
+ * @since 1.7
+ * @access private
+ * @return string
+ */
+ function _getTab()
+ {
+ return $this->_tab;
+ } // end func _getTab
+
+ /**
+ * Returns a string containing the offset for the whole HTML code
+ *
+ * @return string
+ * @access private
+ */
+ function _getTabs()
+ {
+ return str_repeat($this->_getTab(), $this->_tabOffset);
+ } // end func _getTabs
+
+ /**
+ * Returns an HTML formatted attribute string
+ * @param array $attributes
+ * @return string
+ * @access private
+ */
+ function _getAttrString($attributes)
+ {
+ $strAttr = '';
+
+ if (is_array($attributes)) {
+ $charset = HTML_Common::charset();
+ foreach ($attributes as $key => $value) {
+ $strAttr .= ' ' . $key . '="' . htmlspecialchars($value, ENT_COMPAT, $charset) . '"';
+ }
+ }
+ return $strAttr;
+ } // end func _getAttrString
+
+ /**
+ * Returns a valid atrributes array from either a string or array
+ * @param mixed $attributes Either a typical HTML attribute string or an associative array
+ * @access private
+ * @return array
+ */
+ function _parseAttributes($attributes)
+ {
+ if (is_array($attributes)) {
+ $ret = array();
+ foreach ($attributes as $key => $value) {
+ if (is_int($key)) {
+ $key = $value = strtolower($value);
+ } else {
+ $key = strtolower($key);
+ }
+ $ret[$key] = $value;
+ }
+ return $ret;
+
+ } elseif (is_string($attributes)) {
+ $preg = "/(([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*)" .
+ "([ \\n\\t\\r]+)?(=([ \\n\\t\\r]+)?(\"[^\"]*\"|'[^']*'|[^ \\n\\t\\r]*))?/";
+ if (preg_match_all($preg, $attributes, $regs)) {
+ for ($counter=0; $counter<count($regs[1]); $counter++) {
+ $name = $regs[1][$counter];
+ $check = $regs[0][$counter];
+ $value = $regs[7][$counter];
+ if (trim($name) == trim($check)) {
+ $arrAttr[strtolower(trim($name))] = strtolower(trim($name));
+ } else {
+ if (substr($value, 0, 1) == "\"" || substr($value, 0, 1) == "'") {
+ $value = substr($value, 1, -1);
+ }
+ $arrAttr[strtolower(trim($name))] = trim($value);
+ }
+ }
+ return $arrAttr;
+ }
+ }
+ } // end func _parseAttributes
+
+ /**
+ * Returns the array key for the given non-name-value pair attribute
+ *
+ * @param string $attr Attribute
+ * @param array $attributes Array of attribute
+ * @since 1.0
+ * @access private
+ * @return bool
+ */
+ function _getAttrKey($attr, $attributes)
+ {
+ if (isset($attributes[strtolower($attr)])) {
+ return true;
+ } else {
+ return null;
+ }
+ } //end func _getAttrKey
+
+ /**
+ * Updates the attributes in $attr1 with the values in $attr2 without changing the other existing attributes
+ * @param array $attr1 Original attributes array
+ * @param array $attr2 New attributes array
+ * @access private
+ */
+ function _updateAttrArray(&$attr1, $attr2)
+ {
+ if (!is_array($attr2)) {
+ return false;
+ }
+ foreach ($attr2 as $key => $value) {
+ $attr1[$key] = $value;
+ }
+ } // end func _updateAtrrArray
+
+ /**
+ * Removes the given attribute from the given array
+ *
+ * @param string $attr Attribute name
+ * @param array $attributes Attribute array
+ * @since 1.4
+ * @access private
+ * @return void
+ */
+ function _removeAttr($attr, &$attributes)
+ {
+ $attr = strtolower($attr);
+ if (isset($attributes[$attr])) {
+ unset($attributes[$attr]);
+ }
+ } //end func _removeAttr
+
+ /**
+ * Returns the value of the given attribute
+ *
+ * @param string $attr Attribute name
+ * @since 1.5
+ * @access public
+ * @return string|null returns null if an attribute does not exist
+ */
+ function getAttribute($attr)
+ {
+ $attr = strtolower($attr);
+ if (isset($this->_attributes[$attr])) {
+ return $this->_attributes[$attr];
+ }
+ return null;
+ } //end func getAttribute
+
+ /**
+ * Sets the value of the attribute
+ *
+ * @param string Attribute name
+ * @param string Attribute value (will be set to $name if omitted)
+ * @access public
+ */
+ function setAttribute($name, $value = null)
+ {
+ $name = strtolower($name);
+ if (is_null($value)) {
+ $value = $name;
+ }
+ $this->_attributes[$name] = $value;
+ } // end func setAttribute
+
+ /**
+ * Sets the HTML attributes
+ * @param mixed $attributes Either a typical HTML attribute string or an associative array
+ * @access public
+ */
+ function setAttributes($attributes)
+ {
+ $this->_attributes = $this->_parseAttributes($attributes);
+ } // end func setAttributes
+
+ /**
+ * Returns the assoc array (default) or string of attributes
+ *
+ * @param bool Whether to return the attributes as string
+ * @since 1.6
+ * @access public
+ * @return mixed attributes
+ */
+ function getAttributes($asString = false)
+ {
+ if ($asString) {
+ return $this->_getAttrString($this->_attributes);
+ } else {
+ return $this->_attributes;
+ }
+ } //end func getAttributes
+
+ /**
+ * Updates the passed attributes without changing the other existing attributes
+ * @param mixed $attributes Either a typical HTML attribute string or an associative array
+ * @access public
+ */
+ function updateAttributes($attributes)
+ {
+ $this->_updateAttrArray($this->_attributes, $this->_parseAttributes($attributes));
+ } // end func updateAttributes
+
+ /**
+ * Removes an attribute
+ *
+ * @param string $attr Attribute name
+ * @since 1.4
+ * @access public
+ * @return void
+ */
+ function removeAttribute($attr)
+ {
+ $this->_removeAttr($attr, $this->_attributes);
+ } //end func removeAttribute
+
+ /**
+ * Sets the line end style to Windows, Mac, Unix or a custom string.
+ *
+ * @param string $style "win", "mac", "unix" or custom string.
+ * @since 1.7
+ * @access public
+ * @return void
+ */
+ function setLineEnd($style)
+ {
+ switch ($style) {
+ case 'win':
+ $this->_lineEnd = "\15\12";
+ break;
+ case 'unix':
+ $this->_lineEnd = "\12";
+ break;
+ case 'mac':
+ $this->_lineEnd = "\15";
+ break;
+ default:
+ $this->_lineEnd = $style;
+ }
+ } // end func setLineEnd
+
+ /**
+ * Sets the tab offset
+ *
+ * @param int $offset
+ * @access public
+ */
+ function setTabOffset($offset)
+ {
+ $this->_tabOffset = $offset;
+ } // end func setTabOffset
+
+ /**
+ * Returns the tabOffset
+ *
+ * @since 1.5
+ * @access public
+ * @return int
+ */
+ function getTabOffset()
+ {
+ return $this->_tabOffset;
+ } //end func getTabOffset
+
+ /**
+ * Sets the string used to indent HTML
+ *
+ * @since 1.7
+ * @param string $string String used to indent ("\11", "\t", ' ', etc.).
+ * @access public
+ * @return void
+ */
+ function setTab($string)
+ {
+ $this->_tab = $string;
+ } // end func setTab
+
+ /**
+ * Sets the HTML comment to be displayed at the beginning of the HTML string
+ *
+ * @param string
+ * @since 1.4
+ * @access public
+ * @return void
+ */
+ function setComment($comment)
+ {
+ $this->_comment = $comment;
+ } // end func setHtmlComment
+
+ /**
+ * Returns the HTML comment
+ *
+ * @since 1.5
+ * @access public
+ * @return string
+ */
+ function getComment()
+ {
+ return $this->_comment;
+ } //end func getComment
+
+ /**
+ * Abstract method. Must be extended to return the objects HTML
+ *
+ * @access public
+ * @return string
+ * @abstract
+ */
+ function toHtml()
+ {
+ return '';
+ } // end func toHtml
+
+ /**
+ * Displays the HTML to the screen
+ *
+ * @access public
+ */
+ function display()
+ {
+ print $this->toHtml();
+ } // end func display
+
+ /**
+ * Sets the charset to use by htmlspecialchars() function
+ *
+ * Since this parameter is expected to be global, the function is designed
+ * to be called statically:
+ * <code>
+ * HTML_Common::charset('utf-8');
+ * </code>
+ * or
+ * <code>
+ * $charset = HTML_Common::charset();
+ * </code>
+ *
+ * @param string New charset to use. Omit if just getting the
+ * current value. Consult the htmlspecialchars() docs
+ * for a list of supported character sets.
+ * @return string Current charset
+ * @access public
+ * @static
+ */
+ function charset($newCharset = null)
+ {
+ static $charset = 'ISO-8859-1';
+
+ if (!is_null($newCharset)) {
+ $charset = $newCharset;
+ }
+ return $charset;
+ } // end func charset
+} // end class HTML_Common
+?>
diff --git a/libs/HTML/QuickForm.php b/libs/HTML/QuickForm.php
index 42cb850a94..ff5f8395dc 100755
--- a/libs/HTML/QuickForm.php
+++ b/libs/HTML/QuickForm.php
@@ -1,2054 +1,2054 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Create, validate and process HTML forms
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * PEAR and PEAR_Error classes, for error handling
- */
-require_once 'PEAR.php';
-/**
- * Base class for all HTML classes
- */
-require_once 'HTML/Common.php';
-
-/**
- * Element types known to HTML_QuickForm
- * @see HTML_QuickForm::registerElementType(), HTML_QuickForm::getRegisteredTypes(),
- * HTML_QuickForm::isTypeRegistered()
- * @global array $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES']
- */
-$GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'] =
- array(
- 'group' =>array('HTML/QuickForm/group.php','HTML_QuickForm_group'),
- 'hidden' =>array('HTML/QuickForm/hidden.php','HTML_QuickForm_hidden'),
- 'reset' =>array('HTML/QuickForm/reset.php','HTML_QuickForm_reset'),
- 'checkbox' =>array('HTML/QuickForm/checkbox.php','HTML_QuickForm_checkbox'),
- 'file' =>array('HTML/QuickForm/file.php','HTML_QuickForm_file'),
- 'image' =>array('HTML/QuickForm/image.php','HTML_QuickForm_image'),
- 'password' =>array('HTML/QuickForm/password.php','HTML_QuickForm_password'),
- 'radio' =>array('HTML/QuickForm/radio.php','HTML_QuickForm_radio'),
- 'button' =>array('HTML/QuickForm/button.php','HTML_QuickForm_button'),
- 'submit' =>array('HTML/QuickForm/submit.php','HTML_QuickForm_submit'),
- 'select' =>array('HTML/QuickForm/select.php','HTML_QuickForm_select'),
- 'hiddenselect' =>array('HTML/QuickForm/hiddenselect.php','HTML_QuickForm_hiddenselect'),
- 'text' =>array('HTML/QuickForm/text.php','HTML_QuickForm_text'),
- 'textarea' =>array('HTML/QuickForm/textarea.php','HTML_QuickForm_textarea'),
- 'link' =>array('HTML/QuickForm/link.php','HTML_QuickForm_link'),
- 'advcheckbox' =>array('HTML/QuickForm/advcheckbox.php','HTML_QuickForm_advcheckbox'),
- 'date' =>array('HTML/QuickForm/date.php','HTML_QuickForm_date'),
- 'static' =>array('HTML/QuickForm/static.php','HTML_QuickForm_static'),
- 'header' =>array('HTML/QuickForm/header.php', 'HTML_QuickForm_header'),
- 'html' =>array('HTML/QuickForm/html.php', 'HTML_QuickForm_html'),
- 'hierselect' =>array('HTML/QuickForm/hierselect.php', 'HTML_QuickForm_hierselect'),
- 'autocomplete' =>array('HTML/QuickForm/autocomplete.php', 'HTML_QuickForm_autocomplete'),
- 'xbutton' =>array('HTML/QuickForm/xbutton.php','HTML_QuickForm_xbutton')
- );
-
-/**
- * Validation rules known to HTML_QuickForm
- * @see HTML_QuickForm::registerRule(), HTML_QuickForm::getRegisteredRules(),
- * HTML_QuickForm::isRuleRegistered()
- * @global array $GLOBALS['_HTML_QuickForm_registered_rules']
- */
-$GLOBALS['_HTML_QuickForm_registered_rules'] = array(
- 'required' => array('html_quickform_rule_required', 'HTML/QuickForm/Rule/Required.php'),
- 'maxlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
- 'minlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
- 'rangelength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
- 'email' => array('html_quickform_rule_email', 'HTML/QuickForm/Rule/Email.php'),
- 'regex' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
- 'lettersonly' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
- 'alphanumeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
- 'numeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
- 'nopunctuation' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
- 'nonzero' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
- 'callback' => array('html_quickform_rule_callback', 'HTML/QuickForm/Rule/Callback.php'),
- 'compare' => array('html_quickform_rule_compare', 'HTML/QuickForm/Rule/Compare.php')
-);
-
-// {{{ error codes
-
-/**#@+
- * Error codes for HTML_QuickForm
- *
- * Codes are mapped to textual messages by errorMessage() method, if you add a
- * new code be sure to add a new message for it to errorMessage()
- *
- * @see HTML_QuickForm::errorMessage()
- */
-define('QUICKFORM_OK', 1);
-define('QUICKFORM_ERROR', -1);
-define('QUICKFORM_INVALID_RULE', -2);
-define('QUICKFORM_NONEXIST_ELEMENT', -3);
-define('QUICKFORM_INVALID_FILTER', -4);
-define('QUICKFORM_UNREGISTERED_ELEMENT', -5);
-define('QUICKFORM_INVALID_ELEMENT_NAME', -6);
-define('QUICKFORM_INVALID_PROCESS', -7);
-define('QUICKFORM_DEPRECATED', -8);
-define('QUICKFORM_INVALID_DATASOURCE', -9);
-/**#@-*/
-
-// }}}
-
-/**
- * Create, validate and process HTML forms
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- */
-class HTML_QuickForm extends HTML_Common
-{
- // {{{ properties
-
- /**
- * Array containing the form fields
- * @since 1.0
- * @var array
- * @access private
- */
- var $_elements = array();
-
- /**
- * Array containing element name to index map
- * @since 1.1
- * @var array
- * @access private
- */
- var $_elementIndex = array();
-
- /**
- * Array containing indexes of duplicate elements
- * @since 2.10
- * @var array
- * @access private
- */
- var $_duplicateIndex = array();
-
- /**
- * Array containing required field IDs
- * @since 1.0
- * @var array
- * @access private
- */
- var $_required = array();
-
- /**
- * Prefix message in javascript alert if error
- * @since 1.0
- * @var string
- * @access public
- */
- var $_jsPrefix = 'Invalid information entered.';
-
- /**
- * Postfix message in javascript alert if error
- * @since 1.0
- * @var string
- * @access public
- */
- var $_jsPostfix = 'Please correct these fields.';
-
- /**
- * Datasource object implementing the informal
- * datasource protocol
- * @since 3.3
- * @var object
- * @access private
- */
- var $_datasource;
-
- /**
- * Array of default form values
- * @since 2.0
- * @var array
- * @access private
- */
- var $_defaultValues = array();
-
- /**
- * Array of constant form values
- * @since 2.0
- * @var array
- * @access private
- */
- var $_constantValues = array();
-
- /**
- * Array of submitted form values
- * @since 1.0
- * @var array
- * @access private
- */
- var $_submitValues = array();
-
- /**
- * Array of submitted form files
- * @since 1.0
- * @var integer
- * @access public
- */
- var $_submitFiles = array();
-
- /**
- * Value for maxfilesize hidden element if form contains file input
- * @since 1.0
- * @var integer
- * @access public
- */
- var $_maxFileSize = 1048576; // 1 Mb = 1048576
-
- /**
- * Flag to know if all fields are frozen
- * @since 1.0
- * @var boolean
- * @access private
- */
- var $_freezeAll = false;
-
- /**
- * Array containing the form rules
- * @since 1.0
- * @var array
- * @access private
- */
- var $_rules = array();
-
- /**
- * Form rules, global variety
- * @var array
- * @access private
- */
- var $_formRules = array();
-
- /**
- * Array containing the validation errors
- * @since 1.0
- * @var array
- * @access private
- */
- var $_errors = array();
-
- /**
- * Note for required fields in the form
- * @var string
- * @since 1.0
- * @access private
- */
- var $_requiredNote = '<span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span>';
-
- /**
- * Whether the form was submitted
- * @var boolean
- * @access private
- */
- var $_flagSubmitted = false;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- * @param string $formName Form's name.
- * @param string $method (optional)Form's method defaults to 'POST'
- * @param string $action (optional)Form's action
- * @param string $target (optional)Form's target defaults to '_self'
- * @param mixed $attributes (optional)Extra attributes for <form> tag
- * @param bool $trackSubmit (optional)Whether to track if the form was submitted by adding a special hidden field
- * @access public
- */
- function HTML_QuickForm($formName='', $method='post', $action='', $target='', $attributes=null, $trackSubmit = false)
- {
- HTML_Common::HTML_Common($attributes);
- $method = (strtoupper($method) == 'GET') ? 'get' : 'post';
- $action = ($action == '') ? $_SERVER['PHP_SELF'] : $action;
- $target = empty($target) ? array() : array('target' => $target);
- $attributes = array('action'=>$action, 'method'=>$method, 'name'=>$formName, 'id'=>$formName) + $target;
- $this->updateAttributes($attributes);
- if (!$trackSubmit || isset($_REQUEST['_qf__' . $formName])) {
- if (1 == get_magic_quotes_gpc()) {
- $this->_submitValues = $this->_recursiveFilter('stripslashes', 'get' == $method? $_GET: $_POST);
- foreach ($_FILES as $keyFirst => $valFirst) {
- foreach ($valFirst as $keySecond => $valSecond) {
- if ('name' == $keySecond) {
- $this->_submitFiles[$keyFirst][$keySecond] = $this->_recursiveFilter('stripslashes', $valSecond);
- } else {
- $this->_submitFiles[$keyFirst][$keySecond] = $valSecond;
- }
- }
- }
- } else {
- $this->_submitValues = 'get' == $method? $_GET: $_POST;
- $this->_submitFiles = $_FILES;
- }
- $this->_flagSubmitted = count($this->_submitValues) > 0 || count($this->_submitFiles) > 0;
- }
- if ($trackSubmit) {
- unset($this->_submitValues['_qf__' . $formName]);
- $this->addElement('hidden', '_qf__' . $formName, null);
- }
- if (preg_match('/^([0-9]+)([a-zA-Z]*)$/', ini_get('upload_max_filesize'), $matches)) {
- // see http://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes
- switch (strtoupper($matches['2'])) {
- case 'G':
- $this->_maxFileSize = $matches['1'] * 1073741824;
- break;
- case 'M':
- $this->_maxFileSize = $matches['1'] * 1048576;
- break;
- case 'K':
- $this->_maxFileSize = $matches['1'] * 1024;
- break;
- default:
- $this->_maxFileSize = $matches['1'];
- }
- }
- } // end constructor
-
- // }}}
- // {{{ apiVersion()
-
- /**
- * Returns the current API version
- *
- * @since 1.0
- * @access public
- * @return float
- */
- function apiVersion()
- {
- return 3.2;
- } // end func apiVersion
-
- // }}}
- // {{{ registerElementType()
-
- /**
- * Registers a new element type
- *
- * @param string $typeName Name of element type
- * @param string $include Include path for element type
- * @param string $className Element class name
- * @since 1.0
- * @access public
- * @return void
- */
- function registerElementType($typeName, $include, $className)
- {
- $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][strtolower($typeName)] = array($include, $className);
- } // end func registerElementType
-
- // }}}
- // {{{ registerRule()
-
- /**
- * Registers a new validation rule
- *
- * @param string $ruleName Name of validation rule
- * @param string $type Either: 'regex', 'function' or 'rule' for an HTML_QuickForm_Rule object
- * @param string $data1 Name of function, regular expression or HTML_QuickForm_Rule classname
- * @param string $data2 Object parent of above function or HTML_QuickForm_Rule file path
- * @since 1.0
- * @access public
- * @return void
- */
- function registerRule($ruleName, $type, $data1, $data2 = null)
- {
- include_once('HTML/QuickForm/RuleRegistry.php');
- $registry =& HTML_QuickForm_RuleRegistry::singleton();
- $registry->registerRule($ruleName, $type, $data1, $data2);
- } // end func registerRule
-
- // }}}
- // {{{ elementExists()
-
- /**
- * Returns true if element is in the form
- *
- * @param string $element form name of element to check
- * @since 1.0
- * @access public
- * @return boolean
- */
- function elementExists($element=null)
- {
- return isset($this->_elementIndex[$element]);
- } // end func elementExists
-
- // }}}
- // {{{ setDatasource()
-
- /**
- * Sets a datasource object for this form object
- *
- * Datasource default and constant values will feed the QuickForm object if
- * the datasource implements defaultValues() and constantValues() methods.
- *
- * @param object $datasource datasource object implementing the informal datasource protocol
- * @param mixed $defaultsFilter string or array of filter(s) to apply to default values
- * @param mixed $constantsFilter string or array of filter(s) to apply to constants values
- * @since 3.3
- * @access public
- * @return void
- * @throws HTML_QuickForm_Error
- */
- function setDatasource(&$datasource, $defaultsFilter = null, $constantsFilter = null)
- {
- if (is_object($datasource)) {
- $this->_datasource =& $datasource;
- if (is_callable(array($datasource, 'defaultValues'))) {
- $this->setDefaults($datasource->defaultValues($this), $defaultsFilter);
- }
- if (is_callable(array($datasource, 'constantValues'))) {
- $this->setConstants($datasource->constantValues($this), $constantsFilter);
- }
- } else {
- return PEAR::raiseError(null, QUICKFORM_INVALID_DATASOURCE, null, E_USER_WARNING, "Datasource is not an object in QuickForm::setDatasource()", 'HTML_QuickForm_Error', true);
- }
- } // end func setDatasource
-
- // }}}
- // {{{ setDefaults()
-
- /**
- * Initializes default form values
- *
- * @param array $defaultValues values used to fill the form
- * @param mixed $filter (optional) filter(s) to apply to all default values
- * @since 1.0
- * @access public
- * @return void
- * @throws HTML_QuickForm_Error
- */
- function setDefaults($defaultValues = null, $filter = null)
- {
- if (is_array($defaultValues)) {
- if (isset($filter)) {
- if (is_array($filter) && (2 != count($filter) || !is_callable($filter))) {
- foreach ($filter as $val) {
- if (!is_callable($val)) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setDefaults()", 'HTML_QuickForm_Error', true);
- } else {
- $defaultValues = $this->_recursiveFilter($val, $defaultValues);
- }
- }
- } elseif (!is_callable($filter)) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setDefaults()", 'HTML_QuickForm_Error', true);
- } else {
- $defaultValues = $this->_recursiveFilter($filter, $defaultValues);
- }
- }
- $this->_defaultValues = HTML_QuickForm::arrayMerge($this->_defaultValues, $defaultValues);
- foreach (array_keys($this->_elements) as $key) {
- $this->_elements[$key]->onQuickFormEvent('updateValue', null, $this);
- }
- }
- } // end func setDefaults
-
- // }}}
- // {{{ setConstants()
-
- /**
- * Initializes constant form values.
- * These values won't get overridden by POST or GET vars
- *
- * @param array $constantValues values used to fill the form
- * @param mixed $filter (optional) filter(s) to apply to all default values
- *
- * @since 2.0
- * @access public
- * @return void
- * @throws HTML_QuickForm_Error
- */
- function setConstants($constantValues = null, $filter = null)
- {
- if (is_array($constantValues)) {
- if (isset($filter)) {
- if (is_array($filter) && (2 != count($filter) || !is_callable($filter))) {
- foreach ($filter as $val) {
- if (!is_callable($val)) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setConstants()", 'HTML_QuickForm_Error', true);
- } else {
- $constantValues = $this->_recursiveFilter($val, $constantValues);
- }
- }
- } elseif (!is_callable($filter)) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setConstants()", 'HTML_QuickForm_Error', true);
- } else {
- $constantValues = $this->_recursiveFilter($filter, $constantValues);
- }
- }
- $this->_constantValues = HTML_QuickForm::arrayMerge($this->_constantValues, $constantValues);
- foreach (array_keys($this->_elements) as $key) {
- $this->_elements[$key]->onQuickFormEvent('updateValue', null, $this);
- }
- }
- } // end func setConstants
-
- // }}}
- // {{{ setMaxFileSize()
-
- /**
- * Sets the value of MAX_FILE_SIZE hidden element
- *
- * @param int $bytes Size in bytes
- * @since 3.0
- * @access public
- * @return void
- */
- function setMaxFileSize($bytes = 0)
- {
- if ($bytes > 0) {
- $this->_maxFileSize = $bytes;
- }
- if (!$this->elementExists('MAX_FILE_SIZE')) {
- $this->addElement('hidden', 'MAX_FILE_SIZE', $this->_maxFileSize);
- } else {
- $el =& $this->getElement('MAX_FILE_SIZE');
- $el->updateAttributes(array('value' => $this->_maxFileSize));
- }
- } // end func setMaxFileSize
-
- // }}}
- // {{{ getMaxFileSize()
-
- /**
- * Returns the value of MAX_FILE_SIZE hidden element
- *
- * @since 3.0
- * @access public
- * @return int max file size in bytes
- */
- function getMaxFileSize()
- {
- return $this->_maxFileSize;
- } // end func getMaxFileSize
-
- // }}}
- // {{{ &createElement()
-
- /**
- * Creates a new form element of the given type.
- *
- * This method accepts variable number of parameters, their
- * meaning and count depending on $elementType
- *
- * @param string $elementType type of element to add (text, textarea, file...)
- * @since 1.0
- * @access public
- * @return HTML_QuickForm_Element
- * @throws HTML_QuickForm_Error
- */
- function &createElement($elementType)
- {
- $args = func_get_args();
- $element =& HTML_QuickForm::_loadElement('createElement', $elementType, array_slice($args, 1));
- return $element;
- } // end func createElement
-
- // }}}
- // {{{ _loadElement()
-
- /**
- * Returns a form element of the given type
- *
- * @param string $event event to send to newly created element ('createElement' or 'addElement')
- * @param string $type element type
- * @param array $args arguments for event
- * @since 2.0
- * @access private
- * @return HTML_QuickForm_Element
- * @throws HTML_QuickForm_Error
- */
- function &_loadElement($event, $type, $args)
- {
- $type = strtolower($type);
- if (!HTML_QuickForm::isTypeRegistered($type)) {
- $error = PEAR::raiseError(null, QUICKFORM_UNREGISTERED_ELEMENT, null, E_USER_WARNING, "Element '$type' does not exist in HTML_QuickForm::_loadElement()", 'HTML_QuickForm_Error', true);
- return $error;
- }
- $className = $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][$type][1];
- $includeFile = $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][$type][0];
- include_once($includeFile);
- $elementObject = new $className();
- for ($i = 0; $i < 5; $i++) {
- if (!isset($args[$i])) {
- $args[$i] = null;
- }
- }
- $err = $elementObject->onQuickFormEvent($event, $args, $this);
- if ($err !== true) {
- return $err;
- }
- return $elementObject;
- } // end func _loadElement
-
- // }}}
- // {{{ addElement()
-
- /**
- * Adds an element into the form
- *
- * If $element is a string representing element type, then this
- * method accepts variable number of parameters, their meaning
- * and count depending on $element
- *
- * @param mixed $element element object or type of element to add (text, textarea, file...)
- * @since 1.0
- * @return HTML_QuickForm_Element a reference to newly added element
- * @access public
- * @throws HTML_QuickForm_Error
- */
- function &addElement($element)
- {
- if (is_object($element) && is_subclass_of($element, 'html_quickform_element')) {
- $elementObject = &$element;
- $elementObject->onQuickFormEvent('updateValue', null, $this);
- } else {
- $args = func_get_args();
- $elementObject =& $this->_loadElement('addElement', $element, array_slice($args, 1));
- if (PEAR::isError($elementObject)) {
- return $elementObject;
- }
- }
- $elementName = $elementObject->getName();
-
- // Add the element if it is not an incompatible duplicate
- if (!empty($elementName) && isset($this->_elementIndex[$elementName])) {
- if ($this->_elements[$this->_elementIndex[$elementName]]->getType() ==
- $elementObject->getType()) {
- $this->_elements[] =& $elementObject;
- $elKeys = array_keys($this->_elements);
- $this->_duplicateIndex[$elementName][] = end($elKeys);
- } else {
- $error = PEAR::raiseError(null, QUICKFORM_INVALID_ELEMENT_NAME, null, E_USER_WARNING, "Element '$elementName' already exists in HTML_QuickForm::addElement()", 'HTML_QuickForm_Error', true);
- return $error;
- }
- } else {
- $this->_elements[] =& $elementObject;
- $elKeys = array_keys($this->_elements);
- $this->_elementIndex[$elementName] = end($elKeys);
- }
- if ($this->_freezeAll) {
- $elementObject->freeze();
- }
-
- return $elementObject;
- } // end func addElement
-
- // }}}
- // {{{ insertElementBefore()
-
- /**
- * Inserts a new element right before the other element
- *
- * Warning: it is not possible to check whether the $element is already
- * added to the form, therefore if you want to move the existing form
- * element to a new position, you'll have to use removeElement():
- * $form->insertElementBefore($form->removeElement('foo', false), 'bar');
- *
- * @access public
- * @since 3.2.4
- * @param HTML_QuickForm_element Element to insert
- * @param string Name of the element before which the new
- * one is inserted
- * @return HTML_QuickForm_element reference to inserted element
- * @throws HTML_QuickForm_Error
- */
- function &insertElementBefore(&$element, $nameAfter)
- {
- if (!empty($this->_duplicateIndex[$nameAfter])) {
- $error = PEAR::raiseError(null, QUICKFORM_INVALID_ELEMENT_NAME, null, E_USER_WARNING, 'Several elements named "' . $nameAfter . '" exist in HTML_QuickForm::insertElementBefore().', 'HTML_QuickForm_Error', true);
- return $error;
- } elseif (!$this->elementExists($nameAfter)) {
- $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$nameAfter' does not exist in HTML_QuickForm::insertElementBefore()", 'HTML_QuickForm_Error', true);
- return $error;
- }
- $elementName = $element->getName();
- $targetIdx = $this->_elementIndex[$nameAfter];
- $duplicate = false;
- // Like in addElement(), check that it's not an incompatible duplicate
- if (!empty($elementName) && isset($this->_elementIndex[$elementName])) {
- if ($this->_elements[$this->_elementIndex[$elementName]]->getType() != $element->getType()) {
- $error = PEAR::raiseError(null, QUICKFORM_INVALID_ELEMENT_NAME, null, E_USER_WARNING, "Element '$elementName' already exists in HTML_QuickForm::insertElementBefore()", 'HTML_QuickForm_Error', true);
- return $error;
- }
- $duplicate = true;
- }
- // Move all the elements after added back one place, reindex _elementIndex and/or _duplicateIndex
- $elKeys = array_keys($this->_elements);
- for ($i = end($elKeys); $i >= $targetIdx; $i--) {
- if (isset($this->_elements[$i])) {
- $currentName = $this->_elements[$i]->getName();
- $this->_elements[$i + 1] =& $this->_elements[$i];
- if ($this->_elementIndex[$currentName] == $i) {
- $this->_elementIndex[$currentName] = $i + 1;
- } else {
- $dupIdx = array_search($i, $this->_duplicateIndex[$currentName]);
- $this->_duplicateIndex[$currentName][$dupIdx] = $i + 1;
- }
- unset($this->_elements[$i]);
- }
- }
- // Put the element in place finally
- $this->_elements[$targetIdx] =& $element;
- if (!$duplicate) {
- $this->_elementIndex[$elementName] = $targetIdx;
- } else {
- $this->_duplicateIndex[$elementName][] = $targetIdx;
- }
- $element->onQuickFormEvent('updateValue', null, $this);
- if ($this->_freezeAll) {
- $element->freeze();
- }
- // If not done, the elements will appear in reverse order
- ksort($this->_elements);
- return $element;
- }
-
- // }}}
- // {{{ addGroup()
-
- /**
- * Adds an element group
- * @param array $elements array of elements composing the group
- * @param string $name (optional)group name
- * @param string $groupLabel (optional)group label
- * @param string $separator (optional)string to separate elements
- * @param string $appendName (optional)specify whether the group name should be
- * used in the form element name ex: group[element]
- * @return HTML_QuickForm_group reference to a newly added group
- * @since 2.8
- * @access public
- * @throws HTML_QuickForm_Error
- */
- function &addGroup($elements, $name=null, $groupLabel='', $separator=null, $appendName = true)
- {
- static $anonGroups = 1;
-
- if (0 == strlen($name)) {
- $name = 'qf_group_' . $anonGroups++;
- $appendName = false;
- }
- $group =& $this->addElement('group', $name, $groupLabel, $elements, $separator, $appendName);
- return $group;
- } // end func addGroup
-
- // }}}
- // {{{ &getElement()
-
- /**
- * Returns a reference to the element
- *
- * @param string $element Element name
- * @since 2.0
- * @access public
- * @return HTML_QuickForm_element reference to element
- * @throws HTML_QuickForm_Error
- */
- function &getElement($element)
- {
- if (isset($this->_elementIndex[$element])) {
- return $this->_elements[$this->_elementIndex[$element]];
- } else {
- $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::getElement()", 'HTML_QuickForm_Error', true);
- return $error;
- }
- } // end func getElement
-
- // }}}
- // {{{ &getElementValue()
-
- /**
- * Returns the element's raw value
- *
- * This returns the value as submitted by the form (not filtered)
- * or set via setDefaults() or setConstants()
- *
- * @param string $element Element name
- * @since 2.0
- * @access public
- * @return mixed element value
- * @throws HTML_QuickForm_Error
- */
- function &getElementValue($element)
- {
- if (!isset($this->_elementIndex[$element])) {
- $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::getElementValue()", 'HTML_QuickForm_Error', true);
- return $error;
- }
- $value = $this->_elements[$this->_elementIndex[$element]]->getValue();
- if (isset($this->_duplicateIndex[$element])) {
- foreach ($this->_duplicateIndex[$element] as $index) {
- if (null !== ($v = $this->_elements[$index]->getValue())) {
- if (is_array($value)) {
- $value[] = $v;
- } else {
- $value = (null === $value)? $v: array($value, $v);
- }
- }
- }
- }
- return $value;
- } // end func getElementValue
-
- // }}}
- // {{{ getSubmitValue()
-
- /**
- * Returns the elements value after submit and filter
- *
- * @param string Element name
- * @since 2.0
- * @access public
- * @return mixed submitted element value or null if not set
- */
- function getSubmitValue($elementName)
- {
- $value = null;
- if (isset($this->_submitValues[$elementName]) || isset($this->_submitFiles[$elementName])) {
- $value = isset($this->_submitValues[$elementName])? $this->_submitValues[$elementName]: array();
- if (is_array($value) && isset($this->_submitFiles[$elementName])) {
- foreach ($this->_submitFiles[$elementName] as $k => $v) {
- $value = HTML_QuickForm::arrayMerge($value, $this->_reindexFiles($this->_submitFiles[$elementName][$k], $k));
- }
- }
-
- } elseif ('file' == $this->getElementType($elementName)) {
- return $this->getElementValue($elementName);
-
- } elseif (false !== ($pos = strpos($elementName, '['))) {
- $base = str_replace(
- array('\\', '\''), array('\\\\', '\\\''),
- substr($elementName, 0, $pos)
- );
- $idx = "['" . str_replace(
- array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
- substr($elementName, $pos + 1, -1)
- ) . "']";
- if (isset($this->_submitValues[$base])) {
- $value = eval("return (isset(\$this->_submitValues['{$base}']{$idx})) ? \$this->_submitValues['{$base}']{$idx} : null;");
- }
-
- if ((is_array($value) || null === $value) && isset($this->_submitFiles[$base])) {
- $props = array('name', 'type', 'size', 'tmp_name', 'error');
- $code = "if (!isset(\$this->_submitFiles['{$base}']['name']{$idx})) {\n" .
- " return null;\n" .
- "} else {\n" .
- " \$v = array();\n";
- foreach ($props as $prop) {
- $code .= " \$v = HTML_QuickForm::arrayMerge(\$v, \$this->_reindexFiles(\$this->_submitFiles['{$base}']['{$prop}']{$idx}, '{$prop}'));\n";
- }
- $fileValue = eval($code . " return \$v;\n}\n");
- if (null !== $fileValue) {
- $value = null === $value? $fileValue: HTML_QuickForm::arrayMerge($value, $fileValue);
- }
- }
- }
-
- // This is only supposed to work for groups with appendName = false
- if (null === $value && 'group' == $this->getElementType($elementName)) {
- $group =& $this->getElement($elementName);
- $elements =& $group->getElements();
- foreach (array_keys($elements) as $key) {
- $name = $group->getElementName($key);
- // prevent endless recursion in case of radios and such
- if ($name != $elementName) {
- if (null !== ($v = $this->getSubmitValue($name))) {
- $value[$name] = $v;
- }
- }
- }
- }
- return $value;
- } // end func getSubmitValue
-
- // }}}
- // {{{ _reindexFiles()
-
- /**
- * A helper function to change the indexes in $_FILES array
- *
- * @param mixed Some value from the $_FILES array
- * @param string The key from the $_FILES array that should be appended
- * @return array
- */
- function _reindexFiles($value, $key)
- {
- if (!is_array($value)) {
- return array($key => $value);
- } else {
- $ret = array();
- foreach ($value as $k => $v) {
- $ret[$k] = $this->_reindexFiles($v, $key);
- }
- return $ret;
- }
- }
-
- // }}}
- // {{{ getElementError()
-
- /**
- * Returns error corresponding to validated element
- *
- * @param string $element Name of form element to check
- * @since 1.0
- * @access public
- * @return string error message corresponding to checked element
- */
- function getElementError($element)
- {
- if (isset($this->_errors[$element])) {
- return $this->_errors[$element];
- }
- } // end func getElementError
-
- // }}}
- // {{{ setElementError()
-
- /**
- * Set error message for a form element
- *
- * @param string $element Name of form element to set error for
- * @param string $message Error message, if empty then removes the current error message
- * @since 1.0
- * @access public
- * @return void
- */
- function setElementError($element, $message = null)
- {
- if (!empty($message)) {
- $this->_errors[$element] = $message;
- } else {
- unset($this->_errors[$element]);
- }
- } // end func setElementError
-
- // }}}
- // {{{ getElementType()
-
- /**
- * Returns the type of the given element
- *
- * @param string $element Name of form element
- * @since 1.1
- * @access public
- * @return string Type of the element, false if the element is not found
- */
- function getElementType($element)
- {
- if (isset($this->_elementIndex[$element])) {
- return $this->_elements[$this->_elementIndex[$element]]->getType();
- }
- return false;
- } // end func getElementType
-
- // }}}
- // {{{ updateElementAttr()
-
- /**
- * Updates Attributes for one or more elements
- *
- * @param mixed $elements Array of element names/objects or string of elements to be updated
- * @param mixed $attrs Array or sting of html attributes
- * @since 2.10
- * @access public
- * @return void
- */
- function updateElementAttr($elements, $attrs)
- {
- if (is_string($elements)) {
- $elements = split('[ ]?,[ ]?', $elements);
- }
- foreach (array_keys($elements) as $key) {
- if (is_object($elements[$key]) && is_a($elements[$key], 'HTML_QuickForm_element')) {
- $elements[$key]->updateAttributes($attrs);
- } elseif (isset($this->_elementIndex[$elements[$key]])) {
- $this->_elements[$this->_elementIndex[$elements[$key]]]->updateAttributes($attrs);
- if (isset($this->_duplicateIndex[$elements[$key]])) {
- foreach ($this->_duplicateIndex[$elements[$key]] as $index) {
- $this->_elements[$index]->updateAttributes($attrs);
- }
- }
- }
- }
- } // end func updateElementAttr
-
- // }}}
- // {{{ removeElement()
-
- /**
- * Removes an element
- *
- * The method "unlinks" an element from the form, returning the reference
- * to the element object. If several elements named $elementName exist,
- * it removes the first one, leaving the others intact.
- *
- * @param string $elementName The element name
- * @param boolean $removeRules True if rules for this element are to be removed too
- * @access public
- * @since 2.0
- * @return HTML_QuickForm_element a reference to the removed element
- * @throws HTML_QuickForm_Error
- */
- function &removeElement($elementName, $removeRules = true)
- {
- if (!isset($this->_elementIndex[$elementName])) {
- $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$elementName' does not exist in HTML_QuickForm::removeElement()", 'HTML_QuickForm_Error', true);
- return $error;
- }
- $el =& $this->_elements[$this->_elementIndex[$elementName]];
- unset($this->_elements[$this->_elementIndex[$elementName]]);
- if (empty($this->_duplicateIndex[$elementName])) {
- unset($this->_elementIndex[$elementName]);
- } else {
- $this->_elementIndex[$elementName] = array_shift($this->_duplicateIndex[$elementName]);
- }
- if ($removeRules) {
- unset($this->_rules[$elementName], $this->_errors[$elementName]);
- }
- return $el;
- } // end func removeElement
-
- // }}}
- // {{{ addRule()
-
- /**
- * Adds a validation rule for the given field
- *
- * If the element is in fact a group, it will be considered as a whole.
- * To validate grouped elements as separated entities,
- * use addGroupRule instead of addRule.
- *
- * @param string $element Form element name
- * @param string $message Message to display for invalid data
- * @param string $type Rule type, use getRegisteredRules() to get types
- * @param string $format (optional)Required for extra rule data
- * @param string $validation (optional)Where to perform validation: "server", "client"
- * @param boolean $reset Client-side validation: reset the form element to its original value if there is an error?
- * @param boolean $force Force the rule to be applied, even if the target form element does not exist
- * @since 1.0
- * @access public
- * @throws HTML_QuickForm_Error
- */
- function addRule($element, $message, $type, $format=null, $validation='server', $reset = false, $force = false)
- {
- if (!$force) {
- if (!is_array($element) && !$this->elementExists($element)) {
- return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::addRule()", 'HTML_QuickForm_Error', true);
- } elseif (is_array($element)) {
- foreach ($element as $el) {
- if (!$this->elementExists($el)) {
- return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$el' does not exist in HTML_QuickForm::addRule()", 'HTML_QuickForm_Error', true);
- }
- }
- }
- }
- if (false === ($newName = $this->isRuleRegistered($type, true))) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, "Rule '$type' is not registered in HTML_QuickForm::addRule()", 'HTML_QuickForm_Error', true);
- } elseif (is_string($newName)) {
- $type = $newName;
- }
- if (is_array($element)) {
- $dependent = $element;
- $element = array_shift($dependent);
- } else {
- $dependent = null;
- }
- if ($type == 'required' || $type == 'uploadedfile') {
- $this->_required[] = $element;
- }
- if (!isset($this->_rules[$element])) {
- $this->_rules[$element] = array();
- }
- if ($validation == 'client') {
- $this->updateAttributes(array('onsubmit' => 'try { var myValidator = validate_' . $this->_attributes['id'] . '; } catch(e) { return true; } return myValidator(this);'));
- }
- $this->_rules[$element][] = array(
- 'type' => $type,
- 'format' => $format,
- 'message' => $message,
- 'validation' => $validation,
- 'reset' => $reset,
- 'dependent' => $dependent
- );
- } // end func addRule
-
- // }}}
- // {{{ addGroupRule()
-
- /**
- * Adds a validation rule for the given group of elements
- *
- * Only groups with a name can be assigned a validation rule
- * Use addGroupRule when you need to validate elements inside the group.
- * Use addRule if you need to validate the group as a whole. In this case,
- * the same rule will be applied to all elements in the group.
- * Use addRule if you need to validate the group against a function.
- *
- * @param string $group Form group name
- * @param mixed $arg1 Array for multiple elements or error message string for one element
- * @param string $type (optional)Rule type use getRegisteredRules() to get types
- * @param string $format (optional)Required for extra rule data
- * @param int $howmany (optional)How many valid elements should be in the group
- * @param string $validation (optional)Where to perform validation: "server", "client"
- * @param bool $reset Client-side: whether to reset the element's value to its original state if validation failed.
- * @since 2.5
- * @access public
- * @throws HTML_QuickForm_Error
- */
- function addGroupRule($group, $arg1, $type='', $format=null, $howmany=0, $validation = 'server', $reset = false)
- {
- if (!$this->elementExists($group)) {
- return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Group '$group' does not exist in HTML_QuickForm::addGroupRule()", 'HTML_QuickForm_Error', true);
- }
-
- $groupObj =& $this->getElement($group);
- if (is_array($arg1)) {
- $required = 0;
- foreach ($arg1 as $elementIndex => $rules) {
- $elementName = $groupObj->getElementName($elementIndex);
- foreach ($rules as $rule) {
- $format = (isset($rule[2])) ? $rule[2] : null;
- $validation = (isset($rule[3]) && 'client' == $rule[3])? 'client': 'server';
- $reset = isset($rule[4]) && $rule[4];
- $type = $rule[1];
- if (false === ($newName = $this->isRuleRegistered($type, true))) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, "Rule '$type' is not registered in HTML_QuickForm::addGroupRule()", 'HTML_QuickForm_Error', true);
- } elseif (is_string($newName)) {
- $type = $newName;
- }
-
- $this->_rules[$elementName][] = array(
- 'type' => $type,
- 'format' => $format,
- 'message' => $rule[0],
- 'validation' => $validation,
- 'reset' => $reset,
- 'group' => $group);
-
- if ('required' == $type || 'uploadedfile' == $type) {
- $groupObj->_required[] = $elementName;
- $this->_required[] = $elementName;
- $required++;
- }
- if ('client' == $validation) {
- $this->updateAttributes(array('onsubmit' => 'try { var myValidator = validate_' . $this->_attributes['id'] . '; } catch(e) { return true; } return myValidator(this);'));
- }
- }
- }
- if ($required > 0 && count($groupObj->getElements()) == $required) {
- $this->_required[] = $group;
- }
- } elseif (is_string($arg1)) {
- if (false === ($newName = $this->isRuleRegistered($type, true))) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, "Rule '$type' is not registered in HTML_QuickForm::addGroupRule()", 'HTML_QuickForm_Error', true);
- } elseif (is_string($newName)) {
- $type = $newName;
- }
-
- // addGroupRule() should also handle <select multiple>
- if (is_a($groupObj, 'html_quickform_group')) {
- // Radios need to be handled differently when required
- if ($type == 'required' && $groupObj->getGroupType() == 'radio') {
- $howmany = ($howmany == 0) ? 1 : $howmany;
- } else {
- $howmany = ($howmany == 0) ? count($groupObj->getElements()) : $howmany;
- }
- }
-
- $this->_rules[$group][] = array('type' => $type,
- 'format' => $format,
- 'message' => $arg1,
- 'validation' => $validation,
- 'howmany' => $howmany,
- 'reset' => $reset);
- if ($type == 'required') {
- $this->_required[] = $group;
- }
- if ($validation == 'client') {
- $this->updateAttributes(array('onsubmit' => 'try { var myValidator = validate_' . $this->_attributes['id'] . '; } catch(e) { return true; } return myValidator(this);'));
- }
- }
- } // end func addGroupRule
-
- // }}}
- // {{{ addFormRule()
-
- /**
- * Adds a global validation rule
- *
- * This should be used when for a rule involving several fields or if
- * you want to use some completely custom validation for your form.
- * The rule function/method should return true in case of successful
- * validation and array('element name' => 'error') when there were errors.
- *
- * @access public
- * @param mixed Callback, either function name or array(&$object, 'method')
- * @throws HTML_QuickForm_Error
- */
- function addFormRule($rule)
- {
- if (!is_callable($rule)) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, 'Callback function does not exist in HTML_QuickForm::addFormRule()', 'HTML_QuickForm_Error', true);
- }
- $this->_formRules[] = $rule;
- }
-
- // }}}
- // {{{ applyFilter()
-
- /**
- * Applies a data filter for the given field(s)
- *
- * @param mixed $element Form element name or array of such names
- * @param mixed $filter Callback, either function name or array(&$object, 'method')
- * @since 2.0
- * @access public
- * @throws HTML_QuickForm_Error
- */
- function applyFilter($element, $filter)
- {
- if (!is_callable($filter)) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::applyFilter()", 'HTML_QuickForm_Error', true);
- }
- if ($element == '__ALL__') {
- $this->_submitValues = $this->_recursiveFilter($filter, $this->_submitValues);
- } else {
- if (!is_array($element)) {
- $element = array($element);
- }
- foreach ($element as $elName) {
- $value = $this->getSubmitValue($elName);
- if (null !== $value) {
- if (false === strpos($elName, '[')) {
- $this->_submitValues[$elName] = $this->_recursiveFilter($filter, $value);
- } else {
- $idx = "['" . str_replace(
- array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
- $elName
- ) . "']";
- eval("\$this->_submitValues{$idx} = \$this->_recursiveFilter(\$filter, \$value);");
- }
- }
- }
- }
- } // end func applyFilter
-
- // }}}
- // {{{ _recursiveFilter()
-
- /**
- * Recursively apply a filter function
- *
- * @param string $filter filter to apply
- * @param mixed $value submitted values
- * @since 2.0
- * @access private
- * @return cleaned values
- */
- function _recursiveFilter($filter, $value)
- {
- if (is_array($value)) {
- $cleanValues = array();
- foreach ($value as $k => $v) {
- $cleanValues[$k] = $this->_recursiveFilter($filter, $v);
- }
- return $cleanValues;
- } else {
- return call_user_func($filter, $value);
- }
- } // end func _recursiveFilter
-
- // }}}
- // {{{ arrayMerge()
-
- /**
- * Merges two arrays
- *
- * Merges two array like the PHP function array_merge but recursively.
- * The main difference is that existing keys will not be renumbered
- * if they are integers.
- *
- * @access public
- * @param array $a original array
- * @param array $b array which will be merged into first one
- * @return array merged array
- */
- function arrayMerge($a, $b)
- {
- foreach ($b as $k => $v) {
- if (is_array($v)) {
- if (isset($a[$k]) && !is_array($a[$k])) {
- $a[$k] = $v;
- } else {
- if (!isset($a[$k])) {
- $a[$k] = array();
- }
- $a[$k] = HTML_QuickForm::arrayMerge($a[$k], $v);
- }
- } else {
- $a[$k] = $v;
- }
- }
- return $a;
- } // end func arrayMerge
-
- // }}}
- // {{{ isTypeRegistered()
-
- /**
- * Returns whether or not the form element type is supported
- *
- * @param string $type Form element type
- * @since 1.0
- * @access public
- * @return boolean
- */
- function isTypeRegistered($type)
- {
- return isset($GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][strtolower($type)]);
- } // end func isTypeRegistered
-
- // }}}
- // {{{ getRegisteredTypes()
-
- /**
- * Returns an array of registered element types
- *
- * @since 1.0
- * @access public
- * @return array
- */
- function getRegisteredTypes()
- {
- return array_keys($GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES']);
- } // end func getRegisteredTypes
-
- // }}}
- // {{{ isRuleRegistered()
-
- /**
- * Returns whether or not the given rule is supported
- *
- * @param string $name Validation rule name
- * @param bool Whether to automatically register subclasses of HTML_QuickForm_Rule
- * @since 1.0
- * @access public
- * @return mixed true if previously registered, false if not, new rule name if auto-registering worked
- */
- function isRuleRegistered($name, $autoRegister = false)
- {
- if (is_scalar($name) && isset($GLOBALS['_HTML_QuickForm_registered_rules'][$name])) {
- return true;
- } elseif (!$autoRegister) {
- return false;
- }
- // automatically register the rule if requested
- include_once 'HTML/QuickForm/RuleRegistry.php';
- $ruleName = false;
- if (is_object($name) && is_a($name, 'html_quickform_rule')) {
- $ruleName = !empty($name->name)? $name->name: strtolower(get_class($name));
- } elseif (is_string($name) && class_exists($name)) {
- $parent = strtolower($name);
- do {
- if ('html_quickform_rule' == strtolower($parent)) {
- $ruleName = strtolower($name);
- break;
- }
- } while ($parent = get_parent_class($parent));
- }
- if ($ruleName) {
- $registry =& HTML_QuickForm_RuleRegistry::singleton();
- $registry->registerRule($ruleName, null, $name);
- }
- return $ruleName;
- } // end func isRuleRegistered
-
- // }}}
- // {{{ getRegisteredRules()
-
- /**
- * Returns an array of registered validation rules
- *
- * @since 1.0
- * @access public
- * @return array
- */
- function getRegisteredRules()
- {
- return array_keys($GLOBALS['_HTML_QuickForm_registered_rules']);
- } // end func getRegisteredRules
-
- // }}}
- // {{{ isElementRequired()
-
- /**
- * Returns whether or not the form element is required
- *
- * @param string $element Form element name
- * @since 1.0
- * @access public
- * @return boolean
- */
- function isElementRequired($element)
- {
- return in_array($element, $this->_required, true);
- } // end func isElementRequired
-
- // }}}
- // {{{ isElementFrozen()
-
- /**
- * Returns whether or not the form element is frozen
- *
- * @param string $element Form element name
- * @since 1.0
- * @access public
- * @return boolean
- */
- function isElementFrozen($element)
- {
- if (isset($this->_elementIndex[$element])) {
- return $this->_elements[$this->_elementIndex[$element]]->isFrozen();
- }
- return false;
- } // end func isElementFrozen
-
- // }}}
- // {{{ setJsWarnings()
-
- /**
- * Sets JavaScript warning messages
- *
- * @param string $pref Prefix warning
- * @param string $post Postfix warning
- * @since 1.1
- * @access public
- * @return void
- */
- function setJsWarnings($pref, $post)
- {
- $this->_jsPrefix = $pref;
- $this->_jsPostfix = $post;
- } // end func setJsWarnings
-
- // }}}
- // {{{ setRequiredNote()
-
- /**
- * Sets required-note
- *
- * @param string $note Message indicating some elements are required
- * @since 1.1
- * @access public
- * @return void
- */
- function setRequiredNote($note)
- {
- $this->_requiredNote = $note;
- } // end func setRequiredNote
-
- // }}}
- // {{{ getRequiredNote()
-
- /**
- * Returns the required note
- *
- * @since 2.0
- * @access public
- * @return string
- */
- function getRequiredNote()
- {
- return $this->_requiredNote;
- } // end func getRequiredNote
-
- // }}}
- // {{{ validate()
-
- /**
- * Performs the server side validation
- * @access public
- * @since 1.0
- * @return boolean true if no error found
- * @throws HTML_QuickForm_Error
- */
- function validate()
- {
- if (count($this->_rules) == 0 && count($this->_formRules) == 0 &&
- $this->isSubmitted()) {
- return (0 == count($this->_errors));
- } elseif (!$this->isSubmitted()) {
- return false;
- }
-
- include_once('HTML/QuickForm/RuleRegistry.php');
- $registry = HTML_QuickForm_RuleRegistry::singleton();
-
- foreach ($this->_rules as $target => $rules) {
- $submitValue = $this->getSubmitValue($target);
-
- foreach ($rules as $rule) {
- if ((isset($rule['group']) && isset($this->_errors[$rule['group']])) ||
- isset($this->_errors[$target])) {
- continue 2;
- }
- // If element is not required and is empty, we shouldn't validate it
- if (!$this->isElementRequired($target)) {
- if (!isset($submitValue) || '' == $submitValue) {
- continue 2;
- // Fix for bug #3501: we shouldn't validate not uploaded files, either.
- // Unfortunately, we can't just use $element->isUploadedFile() since
- // the element in question can be buried in group. Thus this hack.
- } elseif (is_array($submitValue)) {
- if (false === ($pos = strpos($target, '['))) {
- $isUpload = !empty($this->_submitFiles[$target]);
- } else {
- $base = str_replace(
- array('\\', '\''), array('\\\\', '\\\''),
- substr($target, 0, $pos)
- );
- $idx = "['" . str_replace(
- array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
- substr($target, $pos + 1, -1)
- ) . "']";
- eval("\$isUpload = isset(\$this->_submitFiles['{$base}']['name']{$idx});");
- }
- if ($isUpload && (!isset($submitValue['error']) || 0 != $submitValue['error'])) {
- continue 2;
- }
- }
- }
- if (isset($rule['dependent']) && is_array($rule['dependent'])) {
- $values = array($submitValue);
- foreach ($rule['dependent'] as $elName) {
- $values[] = $this->getSubmitValue($elName);
- }
- $result = $registry->validate($rule['type'], $values, $rule['format'], true);
- } elseif (is_array($submitValue) && !isset($rule['howmany'])) {
- $result = $registry->validate($rule['type'], $submitValue, $rule['format'], true);
- } else {
- $result = $registry->validate($rule['type'], $submitValue, $rule['format'], false);
- }
-
- if (!$result || (!empty($rule['howmany']) && $rule['howmany'] > (int)$result)) {
- if (isset($rule['group'])) {
- $this->_errors[$rule['group']] = $rule['message'];
- } else {
- $this->_errors[$target] = $rule['message'];
- }
- }
- }
- }
-
- // process the global rules now
- foreach ($this->_formRules as $rule) {
- if (true !== ($res = call_user_func($rule, $this->_submitValues, $this->_submitFiles))) {
- if (is_array($res)) {
- $this->_errors += $res;
- } else {
- return PEAR::raiseError(null, QUICKFORM_ERROR, null, E_USER_WARNING, 'Form rule callback returned invalid value in HTML_QuickForm::validate()', 'HTML_QuickForm_Error', true);
- }
- }
- }
-
- return (0 == count($this->_errors));
- } // end func validate
-
- // }}}
- // {{{ freeze()
-
- /**
- * Displays elements without HTML input tags
- *
- * @param mixed $elementList array or string of element(s) to be frozen
- * @since 1.0
- * @access public
- * @throws HTML_QuickForm_Error
- */
- function freeze($elementList=null)
- {
- if (!isset($elementList)) {
- $this->_freezeAll = true;
- $elementList = array();
- } else {
- if (!is_array($elementList)) {
- $elementList = preg_split('/[ ]*,[ ]*/', $elementList);
- }
- $elementList = array_flip($elementList);
- }
-
- foreach (array_keys($this->_elements) as $key) {
- $name = $this->_elements[$key]->getName();
- if ($this->_freezeAll || isset($elementList[$name])) {
- $this->_elements[$key]->freeze();
- unset($elementList[$name]);
- }
- }
-
- if (!empty($elementList)) {
- return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Nonexistant element(s): '" . implode("', '", array_keys($elementList)) . "' in HTML_QuickForm::freeze()", 'HTML_QuickForm_Error', true);
- }
- return true;
- } // end func freeze
-
- // }}}
- // {{{ isFrozen()
-
- /**
- * Returns whether or not the whole form is frozen
- *
- * @since 3.0
- * @access public
- * @return boolean
- */
- function isFrozen()
- {
- return $this->_freezeAll;
- } // end func isFrozen
-
- // }}}
- // {{{ process()
-
- /**
- * Performs the form data processing
- *
- * @param mixed $callback Callback, either function name or array(&$object, 'method')
- * @param bool $mergeFiles Whether uploaded files should be processed too
- * @since 1.0
- * @access public
- * @throws HTML_QuickForm_Error
- * @return mixed Whatever value the $callback function returns
- */
- function process($callback, $mergeFiles = true)
- {
- if (!is_callable($callback)) {
- return PEAR::raiseError(null, QUICKFORM_INVALID_PROCESS, null, E_USER_WARNING, "Callback function does not exist in QuickForm::process()", 'HTML_QuickForm_Error', true);
- }
- $values = ($mergeFiles === true) ? HTML_QuickForm::arrayMerge($this->_submitValues, $this->_submitFiles) : $this->_submitValues;
- return call_user_func($callback, $values);
- } // end func process
-
- // }}}
- // {{{ accept()
-
- /**
- * Accepts a renderer
- *
- * @param object An HTML_QuickForm_Renderer object
- * @since 3.0
- * @access public
- * @return void
- */
- function accept(&$renderer)
- {
- $renderer->startForm($this);
- foreach (array_keys($this->_elements) as $key) {
- $element =& $this->_elements[$key];
- $elementName = $element->getName();
- $required = ($this->isElementRequired($elementName) && !$element->isFrozen());
- $error = $this->getElementError($elementName);
- $element->accept($renderer, $required, $error);
- }
- $renderer->finishForm($this);
- } // end func accept
-
- // }}}
- // {{{ defaultRenderer()
-
- /**
- * Returns a reference to default renderer object
- *
- * @access public
- * @since 3.0
- * @return object a default renderer object
- */
- function &defaultRenderer()
- {
- if (!isset($GLOBALS['_HTML_QuickForm_default_renderer'])) {
- include_once('HTML/QuickForm/Renderer/Default.php');
- $GLOBALS['_HTML_QuickForm_default_renderer'] = new HTML_QuickForm_Renderer_Default();
- }
- return $GLOBALS['_HTML_QuickForm_default_renderer'];
- } // end func defaultRenderer
-
- // }}}
- // {{{ toHtml ()
-
- /**
- * Returns an HTML version of the form
- *
- * @param string $in_data (optional) Any extra data to insert right
- * before form is rendered. Useful when using templates.
- *
- * @return string Html version of the form
- * @since 1.0
- * @access public
- */
- function toHtml ($in_data = null)
- {
- if (!is_null($in_data)) {
- $this->addElement('html', $in_data);
- }
- $renderer =& $this->defaultRenderer();
- $this->accept($renderer);
- return $renderer->toHtml();
- } // end func toHtml
-
- // }}}
- // {{{ getValidationScript()
-
- /**
- * Returns the client side validation script
- *
- * @since 2.0
- * @access public
- * @return string Javascript to perform validation, empty string if no 'client' rules were added
- */
- function getValidationScript()
- {
- if (empty($this->_rules) || empty($this->_attributes['onsubmit'])) {
- return '';
- }
-
- include_once('HTML/QuickForm/RuleRegistry.php');
- $registry =& HTML_QuickForm_RuleRegistry::singleton();
- $test = array();
- $js_escape = array(
- "\r" => '\r',
- "\n" => '\n',
- "\t" => '\t',
- "'" => "\\'",
- '"' => '\"',
- '\\' => '\\\\'
- );
-
- foreach ($this->_rules as $elementName => $rules) {
- foreach ($rules as $rule) {
- if ('client' == $rule['validation']) {
- unset($element);
-
- $dependent = isset($rule['dependent']) && is_array($rule['dependent']);
- $rule['message'] = strtr($rule['message'], $js_escape);
-
- if (isset($rule['group'])) {
- $group =& $this->getElement($rule['group']);
- // No JavaScript validation for frozen elements
- if ($group->isFrozen()) {
- continue 2;
- }
- $elements =& $group->getElements();
- foreach (array_keys($elements) as $key) {
- if ($elementName == $group->getElementName($key)) {
- $element =& $elements[$key];
- break;
- }
- }
- } elseif ($dependent) {
- $element = array();
- $element[] =& $this->getElement($elementName);
- foreach ($rule['dependent'] as $elName) {
- $element[] =& $this->getElement($elName);
- }
- } else {
- $element =& $this->getElement($elementName);
- }
- // No JavaScript validation for frozen elements
- if (is_object($element) && $element->isFrozen()) {
- continue 2;
- } elseif (is_array($element)) {
- foreach (array_keys($element) as $key) {
- if ($element[$key]->isFrozen()) {
- continue 3;
- }
- }
- }
-
- $test[] = $registry->getValidationScript($element, $elementName, $rule);
- }
- }
- }
- if (count($test) > 0) {
- return
- "\n<script type=\"text/javascript\">\n" .
- "//<![CDATA[\n" .
- "function validate_" . $this->_attributes['id'] . "(frm) {\n" .
- " var value = '';\n" .
- " var errFlag = new Array();\n" .
- " var _qfGroups = {};\n" .
- " _qfMsg = '';\n\n" .
- join("\n", $test) .
- "\n if (_qfMsg != '') {\n" .
- " _qfMsg = '" . strtr($this->_jsPrefix, $js_escape) . "' + _qfMsg;\n" .
- " _qfMsg = _qfMsg + '\\n" . strtr($this->_jsPostfix, $js_escape) . "';\n" .
- " alert(_qfMsg);\n" .
- " return false;\n" .
- " }\n" .
- " return true;\n" .
- "}\n" .
- "//]]>\n" .
- "</script>";
- }
- return '';
- } // end func getValidationScript
-
- // }}}
- // {{{ getSubmitValues()
-
- /**
- * Returns the values submitted by the form
- *
- * @since 2.0
- * @access public
- * @param bool Whether uploaded files should be returned too
- * @return array
- */
- function getSubmitValues($mergeFiles = false)
- {
- return $mergeFiles? HTML_QuickForm::arrayMerge($this->_submitValues, $this->_submitFiles): $this->_submitValues;
- } // end func getSubmitValues
-
- // }}}
- // {{{ toArray()
-
- /**
- * Returns the form's contents in an array.
- *
- * The description of the array structure is in HTML_QuickForm_Renderer_Array docs
- *
- * @since 2.0
- * @access public
- * @param bool Whether to collect hidden elements (passed to the Renderer's constructor)
- * @return array of form contents
- */
- function toArray($collectHidden = false)
- {
- include_once 'HTML/QuickForm/Renderer/Array.php';
- $renderer = new HTML_QuickForm_Renderer_Array($collectHidden);
- $this->accept($renderer);
- return $renderer->toArray();
- } // end func toArray
-
- // }}}
- // {{{ exportValue()
-
- /**
- * Returns a 'safe' element's value
- *
- * This method first tries to find a cleaned-up submitted value,
- * it will return a value set by setValue()/setDefaults()/setConstants()
- * if submitted value does not exist for the given element.
- *
- * @param string Name of an element
- * @access public
- * @return mixed
- * @throws HTML_QuickForm_Error
- */
- function exportValue($element)
- {
- if (!isset($this->_elementIndex[$element])) {
- return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::getElementValue()", 'HTML_QuickForm_Error', true);
- }
- $value = $this->_elements[$this->_elementIndex[$element]]->exportValue($this->_submitValues, false);
- if (isset($this->_duplicateIndex[$element])) {
- foreach ($this->_duplicateIndex[$element] as $index) {
- if (null !== ($v = $this->_elements[$index]->exportValue($this->_submitValues, false))) {
- if (is_array($value)) {
- $value[] = $v;
- } else {
- $value = (null === $value)? $v: array($value, $v);
- }
- }
- }
- }
- return $value;
- }
-
- // }}}
- // {{{ exportValues()
-
- /**
- * Returns 'safe' elements' values
- *
- * Unlike getSubmitValues(), this will return only the values
- * corresponding to the elements present in the form.
- *
- * @param mixed Array/string of element names, whose values we want. If not set then return all elements.
- * @access public
- * @return array An assoc array of elements' values
- * @throws HTML_QuickForm_Error
- */
- function exportValues($elementList = null)
- {
- $values = array();
- if (null === $elementList) {
- // iterate over all elements, calling their exportValue() methods
- foreach (array_keys($this->_elements) as $key) {
- $value = $this->_elements[$key]->exportValue($this->_submitValues, true);
- if (is_array($value)) {
- // This shit throws a bogus warning in PHP 4.3.x
- $values = HTML_QuickForm::arrayMerge($values, $value);
- }
- }
- } else {
- if (!is_array($elementList)) {
- $elementList = array_map('trim', explode(',', $elementList));
- }
- foreach ($elementList as $elementName) {
- $value = $this->exportValue($elementName);
- if (PEAR::isError($value)) {
- return $value;
- }
- $values[$elementName] = $value;
- }
- }
- return $values;
- }
-
- // }}}
- // {{{ isSubmitted()
-
- /**
- * Tells whether the form was already submitted
- *
- * This is useful since the _submitFiles and _submitValues arrays
- * may be completely empty after the trackSubmit value is removed.
- *
- * @access public
- * @return bool
- */
- function isSubmitted()
- {
- return $this->_flagSubmitted;
- }
-
-
- // }}}
- // {{{ isError()
-
- /**
- * Tell whether a result from a QuickForm method is an error (an instance of HTML_QuickForm_Error)
- *
- * @access public
- * @param mixed result code
- * @return bool whether $value is an error
- * @static
- */
- static function isError($value)
- {
- return (is_object($value) && is_a($value, 'html_quickform_error'));
- } // end func isError
-
- // }}}
- // {{{ errorMessage()
-
- /**
- * Return a textual error message for an QuickForm error code
- *
- * @access public
- * @param int error code
- * @return string error message
- * @static
- */
- static function errorMessage($value)
- {
- // make the variable static so that it only has to do the defining on the first call
- static $errorMessages;
-
- // define the varies error messages
- if (!isset($errorMessages)) {
- $errorMessages = array(
- QUICKFORM_OK => 'no error',
- QUICKFORM_ERROR => 'unknown error',
- QUICKFORM_INVALID_RULE => 'the rule does not exist as a registered rule',
- QUICKFORM_NONEXIST_ELEMENT => 'nonexistent html element',
- QUICKFORM_INVALID_FILTER => 'invalid filter',
- QUICKFORM_UNREGISTERED_ELEMENT => 'unregistered element',
- QUICKFORM_INVALID_ELEMENT_NAME => 'element already exists',
- QUICKFORM_INVALID_PROCESS => 'process callback does not exist',
- QUICKFORM_DEPRECATED => 'method is deprecated',
- QUICKFORM_INVALID_DATASOURCE => 'datasource is not an object'
- );
- }
-
- // If this is an error object, then grab the corresponding error code
- if (HTML_QuickForm::isError($value)) {
- $value = $value->getCode();
- }
-
- // return the textual error message corresponding to the code
- return isset($errorMessages[$value]) ? $errorMessages[$value] : $errorMessages[QUICKFORM_ERROR];
- } // end func errorMessage
-
- // }}}
-} // end class HTML_QuickForm
-
-/**
- * Class for errors thrown by HTML_QuickForm package
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- */
-class HTML_QuickForm_Error extends PEAR_Error {
-
- // {{{ properties
-
- /**
- * Prefix for all error messages
- * @var string
- */
- var $error_message_prefix = 'QuickForm Error: ';
-
- // }}}
- // {{{ constructor
-
- /**
- * Creates a quickform error object, extending the PEAR_Error class
- *
- * @param int $code the error code
- * @param int $mode the reaction to the error, either return, die or trigger/callback
- * @param int $level intensity of the error (PHP error code)
- * @param mixed $debuginfo any information that can inform user as to nature of the error
- */
- function HTML_QuickForm_Error($code = QUICKFORM_ERROR, $mode = PEAR_ERROR_RETURN,
- $level = E_USER_NOTICE, $debuginfo = null)
- {
- if (is_int($code)) {
- $this->PEAR_Error(HTML_QuickForm::errorMessage($code), $code, $mode, $level, $debuginfo);
- } else {
- $this->PEAR_Error("Invalid error code: $code", QUICKFORM_ERROR, $mode, $level, $debuginfo);
- }
- }
-
- // }}}
-} // end class HTML_QuickForm_Error
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Create, validate and process HTML forms
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * PEAR and PEAR_Error classes, for error handling
+ */
+require_once 'PEAR.php';
+/**
+ * Base class for all HTML classes
+ */
+require_once 'HTML/Common.php';
+
+/**
+ * Element types known to HTML_QuickForm
+ * @see HTML_QuickForm::registerElementType(), HTML_QuickForm::getRegisteredTypes(),
+ * HTML_QuickForm::isTypeRegistered()
+ * @global array $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES']
+ */
+$GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'] =
+ array(
+ 'group' =>array('HTML/QuickForm/group.php','HTML_QuickForm_group'),
+ 'hidden' =>array('HTML/QuickForm/hidden.php','HTML_QuickForm_hidden'),
+ 'reset' =>array('HTML/QuickForm/reset.php','HTML_QuickForm_reset'),
+ 'checkbox' =>array('HTML/QuickForm/checkbox.php','HTML_QuickForm_checkbox'),
+ 'file' =>array('HTML/QuickForm/file.php','HTML_QuickForm_file'),
+ 'image' =>array('HTML/QuickForm/image.php','HTML_QuickForm_image'),
+ 'password' =>array('HTML/QuickForm/password.php','HTML_QuickForm_password'),
+ 'radio' =>array('HTML/QuickForm/radio.php','HTML_QuickForm_radio'),
+ 'button' =>array('HTML/QuickForm/button.php','HTML_QuickForm_button'),
+ 'submit' =>array('HTML/QuickForm/submit.php','HTML_QuickForm_submit'),
+ 'select' =>array('HTML/QuickForm/select.php','HTML_QuickForm_select'),
+ 'hiddenselect' =>array('HTML/QuickForm/hiddenselect.php','HTML_QuickForm_hiddenselect'),
+ 'text' =>array('HTML/QuickForm/text.php','HTML_QuickForm_text'),
+ 'textarea' =>array('HTML/QuickForm/textarea.php','HTML_QuickForm_textarea'),
+ 'link' =>array('HTML/QuickForm/link.php','HTML_QuickForm_link'),
+ 'advcheckbox' =>array('HTML/QuickForm/advcheckbox.php','HTML_QuickForm_advcheckbox'),
+ 'date' =>array('HTML/QuickForm/date.php','HTML_QuickForm_date'),
+ 'static' =>array('HTML/QuickForm/static.php','HTML_QuickForm_static'),
+ 'header' =>array('HTML/QuickForm/header.php', 'HTML_QuickForm_header'),
+ 'html' =>array('HTML/QuickForm/html.php', 'HTML_QuickForm_html'),
+ 'hierselect' =>array('HTML/QuickForm/hierselect.php', 'HTML_QuickForm_hierselect'),
+ 'autocomplete' =>array('HTML/QuickForm/autocomplete.php', 'HTML_QuickForm_autocomplete'),
+ 'xbutton' =>array('HTML/QuickForm/xbutton.php','HTML_QuickForm_xbutton')
+ );
+
+/**
+ * Validation rules known to HTML_QuickForm
+ * @see HTML_QuickForm::registerRule(), HTML_QuickForm::getRegisteredRules(),
+ * HTML_QuickForm::isRuleRegistered()
+ * @global array $GLOBALS['_HTML_QuickForm_registered_rules']
+ */
+$GLOBALS['_HTML_QuickForm_registered_rules'] = array(
+ 'required' => array('html_quickform_rule_required', 'HTML/QuickForm/Rule/Required.php'),
+ 'maxlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
+ 'minlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
+ 'rangelength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
+ 'email' => array('html_quickform_rule_email', 'HTML/QuickForm/Rule/Email.php'),
+ 'regex' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
+ 'lettersonly' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
+ 'alphanumeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
+ 'numeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
+ 'nopunctuation' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
+ 'nonzero' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
+ 'callback' => array('html_quickform_rule_callback', 'HTML/QuickForm/Rule/Callback.php'),
+ 'compare' => array('html_quickform_rule_compare', 'HTML/QuickForm/Rule/Compare.php')
+);
+
+// {{{ error codes
+
+/**#@+
+ * Error codes for HTML_QuickForm
+ *
+ * Codes are mapped to textual messages by errorMessage() method, if you add a
+ * new code be sure to add a new message for it to errorMessage()
+ *
+ * @see HTML_QuickForm::errorMessage()
+ */
+define('QUICKFORM_OK', 1);
+define('QUICKFORM_ERROR', -1);
+define('QUICKFORM_INVALID_RULE', -2);
+define('QUICKFORM_NONEXIST_ELEMENT', -3);
+define('QUICKFORM_INVALID_FILTER', -4);
+define('QUICKFORM_UNREGISTERED_ELEMENT', -5);
+define('QUICKFORM_INVALID_ELEMENT_NAME', -6);
+define('QUICKFORM_INVALID_PROCESS', -7);
+define('QUICKFORM_DEPRECATED', -8);
+define('QUICKFORM_INVALID_DATASOURCE', -9);
+/**#@-*/
+
+// }}}
+
+/**
+ * Create, validate and process HTML forms
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ */
+class HTML_QuickForm extends HTML_Common
+{
+ // {{{ properties
+
+ /**
+ * Array containing the form fields
+ * @since 1.0
+ * @var array
+ * @access private
+ */
+ var $_elements = array();
+
+ /**
+ * Array containing element name to index map
+ * @since 1.1
+ * @var array
+ * @access private
+ */
+ var $_elementIndex = array();
+
+ /**
+ * Array containing indexes of duplicate elements
+ * @since 2.10
+ * @var array
+ * @access private
+ */
+ var $_duplicateIndex = array();
+
+ /**
+ * Array containing required field IDs
+ * @since 1.0
+ * @var array
+ * @access private
+ */
+ var $_required = array();
+
+ /**
+ * Prefix message in javascript alert if error
+ * @since 1.0
+ * @var string
+ * @access public
+ */
+ var $_jsPrefix = 'Invalid information entered.';
+
+ /**
+ * Postfix message in javascript alert if error
+ * @since 1.0
+ * @var string
+ * @access public
+ */
+ var $_jsPostfix = 'Please correct these fields.';
+
+ /**
+ * Datasource object implementing the informal
+ * datasource protocol
+ * @since 3.3
+ * @var object
+ * @access private
+ */
+ var $_datasource;
+
+ /**
+ * Array of default form values
+ * @since 2.0
+ * @var array
+ * @access private
+ */
+ var $_defaultValues = array();
+
+ /**
+ * Array of constant form values
+ * @since 2.0
+ * @var array
+ * @access private
+ */
+ var $_constantValues = array();
+
+ /**
+ * Array of submitted form values
+ * @since 1.0
+ * @var array
+ * @access private
+ */
+ var $_submitValues = array();
+
+ /**
+ * Array of submitted form files
+ * @since 1.0
+ * @var integer
+ * @access public
+ */
+ var $_submitFiles = array();
+
+ /**
+ * Value for maxfilesize hidden element if form contains file input
+ * @since 1.0
+ * @var integer
+ * @access public
+ */
+ var $_maxFileSize = 1048576; // 1 Mb = 1048576
+
+ /**
+ * Flag to know if all fields are frozen
+ * @since 1.0
+ * @var boolean
+ * @access private
+ */
+ var $_freezeAll = false;
+
+ /**
+ * Array containing the form rules
+ * @since 1.0
+ * @var array
+ * @access private
+ */
+ var $_rules = array();
+
+ /**
+ * Form rules, global variety
+ * @var array
+ * @access private
+ */
+ var $_formRules = array();
+
+ /**
+ * Array containing the validation errors
+ * @since 1.0
+ * @var array
+ * @access private
+ */
+ var $_errors = array();
+
+ /**
+ * Note for required fields in the form
+ * @var string
+ * @since 1.0
+ * @access private
+ */
+ var $_requiredNote = '<span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span>';
+
+ /**
+ * Whether the form was submitted
+ * @var boolean
+ * @access private
+ */
+ var $_flagSubmitted = false;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ * @param string $formName Form's name.
+ * @param string $method (optional)Form's method defaults to 'POST'
+ * @param string $action (optional)Form's action
+ * @param string $target (optional)Form's target defaults to '_self'
+ * @param mixed $attributes (optional)Extra attributes for <form> tag
+ * @param bool $trackSubmit (optional)Whether to track if the form was submitted by adding a special hidden field
+ * @access public
+ */
+ function HTML_QuickForm($formName='', $method='post', $action='', $target='', $attributes=null, $trackSubmit = false)
+ {
+ HTML_Common::HTML_Common($attributes);
+ $method = (strtoupper($method) == 'GET') ? 'get' : 'post';
+ $action = ($action == '') ? $_SERVER['PHP_SELF'] : $action;
+ $target = empty($target) ? array() : array('target' => $target);
+ $attributes = array('action'=>$action, 'method'=>$method, 'name'=>$formName, 'id'=>$formName) + $target;
+ $this->updateAttributes($attributes);
+ if (!$trackSubmit || isset($_REQUEST['_qf__' . $formName])) {
+ if (1 == get_magic_quotes_gpc()) {
+ $this->_submitValues = $this->_recursiveFilter('stripslashes', 'get' == $method? $_GET: $_POST);
+ foreach ($_FILES as $keyFirst => $valFirst) {
+ foreach ($valFirst as $keySecond => $valSecond) {
+ if ('name' == $keySecond) {
+ $this->_submitFiles[$keyFirst][$keySecond] = $this->_recursiveFilter('stripslashes', $valSecond);
+ } else {
+ $this->_submitFiles[$keyFirst][$keySecond] = $valSecond;
+ }
+ }
+ }
+ } else {
+ $this->_submitValues = 'get' == $method? $_GET: $_POST;
+ $this->_submitFiles = $_FILES;
+ }
+ $this->_flagSubmitted = count($this->_submitValues) > 0 || count($this->_submitFiles) > 0;
+ }
+ if ($trackSubmit) {
+ unset($this->_submitValues['_qf__' . $formName]);
+ $this->addElement('hidden', '_qf__' . $formName, null);
+ }
+ if (preg_match('/^([0-9]+)([a-zA-Z]*)$/', ini_get('upload_max_filesize'), $matches)) {
+ // see http://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes
+ switch (strtoupper($matches['2'])) {
+ case 'G':
+ $this->_maxFileSize = $matches['1'] * 1073741824;
+ break;
+ case 'M':
+ $this->_maxFileSize = $matches['1'] * 1048576;
+ break;
+ case 'K':
+ $this->_maxFileSize = $matches['1'] * 1024;
+ break;
+ default:
+ $this->_maxFileSize = $matches['1'];
+ }
+ }
+ } // end constructor
+
+ // }}}
+ // {{{ apiVersion()
+
+ /**
+ * Returns the current API version
+ *
+ * @since 1.0
+ * @access public
+ * @return float
+ */
+ function apiVersion()
+ {
+ return 3.2;
+ } // end func apiVersion
+
+ // }}}
+ // {{{ registerElementType()
+
+ /**
+ * Registers a new element type
+ *
+ * @param string $typeName Name of element type
+ * @param string $include Include path for element type
+ * @param string $className Element class name
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function registerElementType($typeName, $include, $className)
+ {
+ $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][strtolower($typeName)] = array($include, $className);
+ } // end func registerElementType
+
+ // }}}
+ // {{{ registerRule()
+
+ /**
+ * Registers a new validation rule
+ *
+ * @param string $ruleName Name of validation rule
+ * @param string $type Either: 'regex', 'function' or 'rule' for an HTML_QuickForm_Rule object
+ * @param string $data1 Name of function, regular expression or HTML_QuickForm_Rule classname
+ * @param string $data2 Object parent of above function or HTML_QuickForm_Rule file path
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function registerRule($ruleName, $type, $data1, $data2 = null)
+ {
+ include_once('HTML/QuickForm/RuleRegistry.php');
+ $registry =& HTML_QuickForm_RuleRegistry::singleton();
+ $registry->registerRule($ruleName, $type, $data1, $data2);
+ } // end func registerRule
+
+ // }}}
+ // {{{ elementExists()
+
+ /**
+ * Returns true if element is in the form
+ *
+ * @param string $element form name of element to check
+ * @since 1.0
+ * @access public
+ * @return boolean
+ */
+ function elementExists($element=null)
+ {
+ return isset($this->_elementIndex[$element]);
+ } // end func elementExists
+
+ // }}}
+ // {{{ setDatasource()
+
+ /**
+ * Sets a datasource object for this form object
+ *
+ * Datasource default and constant values will feed the QuickForm object if
+ * the datasource implements defaultValues() and constantValues() methods.
+ *
+ * @param object $datasource datasource object implementing the informal datasource protocol
+ * @param mixed $defaultsFilter string or array of filter(s) to apply to default values
+ * @param mixed $constantsFilter string or array of filter(s) to apply to constants values
+ * @since 3.3
+ * @access public
+ * @return void
+ * @throws HTML_QuickForm_Error
+ */
+ function setDatasource(&$datasource, $defaultsFilter = null, $constantsFilter = null)
+ {
+ if (is_object($datasource)) {
+ $this->_datasource =& $datasource;
+ if (is_callable(array($datasource, 'defaultValues'))) {
+ $this->setDefaults($datasource->defaultValues($this), $defaultsFilter);
+ }
+ if (is_callable(array($datasource, 'constantValues'))) {
+ $this->setConstants($datasource->constantValues($this), $constantsFilter);
+ }
+ } else {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_DATASOURCE, null, E_USER_WARNING, "Datasource is not an object in QuickForm::setDatasource()", 'HTML_QuickForm_Error', true);
+ }
+ } // end func setDatasource
+
+ // }}}
+ // {{{ setDefaults()
+
+ /**
+ * Initializes default form values
+ *
+ * @param array $defaultValues values used to fill the form
+ * @param mixed $filter (optional) filter(s) to apply to all default values
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws HTML_QuickForm_Error
+ */
+ function setDefaults($defaultValues = null, $filter = null)
+ {
+ if (is_array($defaultValues)) {
+ if (isset($filter)) {
+ if (is_array($filter) && (2 != count($filter) || !is_callable($filter))) {
+ foreach ($filter as $val) {
+ if (!is_callable($val)) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setDefaults()", 'HTML_QuickForm_Error', true);
+ } else {
+ $defaultValues = $this->_recursiveFilter($val, $defaultValues);
+ }
+ }
+ } elseif (!is_callable($filter)) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setDefaults()", 'HTML_QuickForm_Error', true);
+ } else {
+ $defaultValues = $this->_recursiveFilter($filter, $defaultValues);
+ }
+ }
+ $this->_defaultValues = HTML_QuickForm::arrayMerge($this->_defaultValues, $defaultValues);
+ foreach (array_keys($this->_elements) as $key) {
+ $this->_elements[$key]->onQuickFormEvent('updateValue', null, $this);
+ }
+ }
+ } // end func setDefaults
+
+ // }}}
+ // {{{ setConstants()
+
+ /**
+ * Initializes constant form values.
+ * These values won't get overridden by POST or GET vars
+ *
+ * @param array $constantValues values used to fill the form
+ * @param mixed $filter (optional) filter(s) to apply to all default values
+ *
+ * @since 2.0
+ * @access public
+ * @return void
+ * @throws HTML_QuickForm_Error
+ */
+ function setConstants($constantValues = null, $filter = null)
+ {
+ if (is_array($constantValues)) {
+ if (isset($filter)) {
+ if (is_array($filter) && (2 != count($filter) || !is_callable($filter))) {
+ foreach ($filter as $val) {
+ if (!is_callable($val)) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setConstants()", 'HTML_QuickForm_Error', true);
+ } else {
+ $constantValues = $this->_recursiveFilter($val, $constantValues);
+ }
+ }
+ } elseif (!is_callable($filter)) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::setConstants()", 'HTML_QuickForm_Error', true);
+ } else {
+ $constantValues = $this->_recursiveFilter($filter, $constantValues);
+ }
+ }
+ $this->_constantValues = HTML_QuickForm::arrayMerge($this->_constantValues, $constantValues);
+ foreach (array_keys($this->_elements) as $key) {
+ $this->_elements[$key]->onQuickFormEvent('updateValue', null, $this);
+ }
+ }
+ } // end func setConstants
+
+ // }}}
+ // {{{ setMaxFileSize()
+
+ /**
+ * Sets the value of MAX_FILE_SIZE hidden element
+ *
+ * @param int $bytes Size in bytes
+ * @since 3.0
+ * @access public
+ * @return void
+ */
+ function setMaxFileSize($bytes = 0)
+ {
+ if ($bytes > 0) {
+ $this->_maxFileSize = $bytes;
+ }
+ if (!$this->elementExists('MAX_FILE_SIZE')) {
+ $this->addElement('hidden', 'MAX_FILE_SIZE', $this->_maxFileSize);
+ } else {
+ $el =& $this->getElement('MAX_FILE_SIZE');
+ $el->updateAttributes(array('value' => $this->_maxFileSize));
+ }
+ } // end func setMaxFileSize
+
+ // }}}
+ // {{{ getMaxFileSize()
+
+ /**
+ * Returns the value of MAX_FILE_SIZE hidden element
+ *
+ * @since 3.0
+ * @access public
+ * @return int max file size in bytes
+ */
+ function getMaxFileSize()
+ {
+ return $this->_maxFileSize;
+ } // end func getMaxFileSize
+
+ // }}}
+ // {{{ &createElement()
+
+ /**
+ * Creates a new form element of the given type.
+ *
+ * This method accepts variable number of parameters, their
+ * meaning and count depending on $elementType
+ *
+ * @param string $elementType type of element to add (text, textarea, file...)
+ * @since 1.0
+ * @access public
+ * @return HTML_QuickForm_Element
+ * @throws HTML_QuickForm_Error
+ */
+ function &createElement($elementType)
+ {
+ $args = func_get_args();
+ $element =& HTML_QuickForm::_loadElement('createElement', $elementType, array_slice($args, 1));
+ return $element;
+ } // end func createElement
+
+ // }}}
+ // {{{ _loadElement()
+
+ /**
+ * Returns a form element of the given type
+ *
+ * @param string $event event to send to newly created element ('createElement' or 'addElement')
+ * @param string $type element type
+ * @param array $args arguments for event
+ * @since 2.0
+ * @access private
+ * @return HTML_QuickForm_Element
+ * @throws HTML_QuickForm_Error
+ */
+ function &_loadElement($event, $type, $args)
+ {
+ $type = strtolower($type);
+ if (!HTML_QuickForm::isTypeRegistered($type)) {
+ $error = PEAR::raiseError(null, QUICKFORM_UNREGISTERED_ELEMENT, null, E_USER_WARNING, "Element '$type' does not exist in HTML_QuickForm::_loadElement()", 'HTML_QuickForm_Error', true);
+ return $error;
+ }
+ $className = $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][$type][1];
+ $includeFile = $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][$type][0];
+ include_once($includeFile);
+ $elementObject = new $className();
+ for ($i = 0; $i < 5; $i++) {
+ if (!isset($args[$i])) {
+ $args[$i] = null;
+ }
+ }
+ $err = $elementObject->onQuickFormEvent($event, $args, $this);
+ if ($err !== true) {
+ return $err;
+ }
+ return $elementObject;
+ } // end func _loadElement
+
+ // }}}
+ // {{{ addElement()
+
+ /**
+ * Adds an element into the form
+ *
+ * If $element is a string representing element type, then this
+ * method accepts variable number of parameters, their meaning
+ * and count depending on $element
+ *
+ * @param mixed $element element object or type of element to add (text, textarea, file...)
+ * @since 1.0
+ * @return HTML_QuickForm_Element a reference to newly added element
+ * @access public
+ * @throws HTML_QuickForm_Error
+ */
+ function &addElement($element)
+ {
+ if (is_object($element) && is_subclass_of($element, 'html_quickform_element')) {
+ $elementObject = &$element;
+ $elementObject->onQuickFormEvent('updateValue', null, $this);
+ } else {
+ $args = func_get_args();
+ $elementObject =& $this->_loadElement('addElement', $element, array_slice($args, 1));
+ if (PEAR::isError($elementObject)) {
+ return $elementObject;
+ }
+ }
+ $elementName = $elementObject->getName();
+
+ // Add the element if it is not an incompatible duplicate
+ if (!empty($elementName) && isset($this->_elementIndex[$elementName])) {
+ if ($this->_elements[$this->_elementIndex[$elementName]]->getType() ==
+ $elementObject->getType()) {
+ $this->_elements[] =& $elementObject;
+ $elKeys = array_keys($this->_elements);
+ $this->_duplicateIndex[$elementName][] = end($elKeys);
+ } else {
+ $error = PEAR::raiseError(null, QUICKFORM_INVALID_ELEMENT_NAME, null, E_USER_WARNING, "Element '$elementName' already exists in HTML_QuickForm::addElement()", 'HTML_QuickForm_Error', true);
+ return $error;
+ }
+ } else {
+ $this->_elements[] =& $elementObject;
+ $elKeys = array_keys($this->_elements);
+ $this->_elementIndex[$elementName] = end($elKeys);
+ }
+ if ($this->_freezeAll) {
+ $elementObject->freeze();
+ }
+
+ return $elementObject;
+ } // end func addElement
+
+ // }}}
+ // {{{ insertElementBefore()
+
+ /**
+ * Inserts a new element right before the other element
+ *
+ * Warning: it is not possible to check whether the $element is already
+ * added to the form, therefore if you want to move the existing form
+ * element to a new position, you'll have to use removeElement():
+ * $form->insertElementBefore($form->removeElement('foo', false), 'bar');
+ *
+ * @access public
+ * @since 3.2.4
+ * @param HTML_QuickForm_element Element to insert
+ * @param string Name of the element before which the new
+ * one is inserted
+ * @return HTML_QuickForm_element reference to inserted element
+ * @throws HTML_QuickForm_Error
+ */
+ function &insertElementBefore(&$element, $nameAfter)
+ {
+ if (!empty($this->_duplicateIndex[$nameAfter])) {
+ $error = PEAR::raiseError(null, QUICKFORM_INVALID_ELEMENT_NAME, null, E_USER_WARNING, 'Several elements named "' . $nameAfter . '" exist in HTML_QuickForm::insertElementBefore().', 'HTML_QuickForm_Error', true);
+ return $error;
+ } elseif (!$this->elementExists($nameAfter)) {
+ $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$nameAfter' does not exist in HTML_QuickForm::insertElementBefore()", 'HTML_QuickForm_Error', true);
+ return $error;
+ }
+ $elementName = $element->getName();
+ $targetIdx = $this->_elementIndex[$nameAfter];
+ $duplicate = false;
+ // Like in addElement(), check that it's not an incompatible duplicate
+ if (!empty($elementName) && isset($this->_elementIndex[$elementName])) {
+ if ($this->_elements[$this->_elementIndex[$elementName]]->getType() != $element->getType()) {
+ $error = PEAR::raiseError(null, QUICKFORM_INVALID_ELEMENT_NAME, null, E_USER_WARNING, "Element '$elementName' already exists in HTML_QuickForm::insertElementBefore()", 'HTML_QuickForm_Error', true);
+ return $error;
+ }
+ $duplicate = true;
+ }
+ // Move all the elements after added back one place, reindex _elementIndex and/or _duplicateIndex
+ $elKeys = array_keys($this->_elements);
+ for ($i = end($elKeys); $i >= $targetIdx; $i--) {
+ if (isset($this->_elements[$i])) {
+ $currentName = $this->_elements[$i]->getName();
+ $this->_elements[$i + 1] =& $this->_elements[$i];
+ if ($this->_elementIndex[$currentName] == $i) {
+ $this->_elementIndex[$currentName] = $i + 1;
+ } else {
+ $dupIdx = array_search($i, $this->_duplicateIndex[$currentName]);
+ $this->_duplicateIndex[$currentName][$dupIdx] = $i + 1;
+ }
+ unset($this->_elements[$i]);
+ }
+ }
+ // Put the element in place finally
+ $this->_elements[$targetIdx] =& $element;
+ if (!$duplicate) {
+ $this->_elementIndex[$elementName] = $targetIdx;
+ } else {
+ $this->_duplicateIndex[$elementName][] = $targetIdx;
+ }
+ $element->onQuickFormEvent('updateValue', null, $this);
+ if ($this->_freezeAll) {
+ $element->freeze();
+ }
+ // If not done, the elements will appear in reverse order
+ ksort($this->_elements);
+ return $element;
+ }
+
+ // }}}
+ // {{{ addGroup()
+
+ /**
+ * Adds an element group
+ * @param array $elements array of elements composing the group
+ * @param string $name (optional)group name
+ * @param string $groupLabel (optional)group label
+ * @param string $separator (optional)string to separate elements
+ * @param string $appendName (optional)specify whether the group name should be
+ * used in the form element name ex: group[element]
+ * @return HTML_QuickForm_group reference to a newly added group
+ * @since 2.8
+ * @access public
+ * @throws HTML_QuickForm_Error
+ */
+ function &addGroup($elements, $name=null, $groupLabel='', $separator=null, $appendName = true)
+ {
+ static $anonGroups = 1;
+
+ if (0 == strlen($name)) {
+ $name = 'qf_group_' . $anonGroups++;
+ $appendName = false;
+ }
+ $group =& $this->addElement('group', $name, $groupLabel, $elements, $separator, $appendName);
+ return $group;
+ } // end func addGroup
+
+ // }}}
+ // {{{ &getElement()
+
+ /**
+ * Returns a reference to the element
+ *
+ * @param string $element Element name
+ * @since 2.0
+ * @access public
+ * @return HTML_QuickForm_element reference to element
+ * @throws HTML_QuickForm_Error
+ */
+ function &getElement($element)
+ {
+ if (isset($this->_elementIndex[$element])) {
+ return $this->_elements[$this->_elementIndex[$element]];
+ } else {
+ $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::getElement()", 'HTML_QuickForm_Error', true);
+ return $error;
+ }
+ } // end func getElement
+
+ // }}}
+ // {{{ &getElementValue()
+
+ /**
+ * Returns the element's raw value
+ *
+ * This returns the value as submitted by the form (not filtered)
+ * or set via setDefaults() or setConstants()
+ *
+ * @param string $element Element name
+ * @since 2.0
+ * @access public
+ * @return mixed element value
+ * @throws HTML_QuickForm_Error
+ */
+ function &getElementValue($element)
+ {
+ if (!isset($this->_elementIndex[$element])) {
+ $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::getElementValue()", 'HTML_QuickForm_Error', true);
+ return $error;
+ }
+ $value = $this->_elements[$this->_elementIndex[$element]]->getValue();
+ if (isset($this->_duplicateIndex[$element])) {
+ foreach ($this->_duplicateIndex[$element] as $index) {
+ if (null !== ($v = $this->_elements[$index]->getValue())) {
+ if (is_array($value)) {
+ $value[] = $v;
+ } else {
+ $value = (null === $value)? $v: array($value, $v);
+ }
+ }
+ }
+ }
+ return $value;
+ } // end func getElementValue
+
+ // }}}
+ // {{{ getSubmitValue()
+
+ /**
+ * Returns the elements value after submit and filter
+ *
+ * @param string Element name
+ * @since 2.0
+ * @access public
+ * @return mixed submitted element value or null if not set
+ */
+ function getSubmitValue($elementName)
+ {
+ $value = null;
+ if (isset($this->_submitValues[$elementName]) || isset($this->_submitFiles[$elementName])) {
+ $value = isset($this->_submitValues[$elementName])? $this->_submitValues[$elementName]: array();
+ if (is_array($value) && isset($this->_submitFiles[$elementName])) {
+ foreach ($this->_submitFiles[$elementName] as $k => $v) {
+ $value = HTML_QuickForm::arrayMerge($value, $this->_reindexFiles($this->_submitFiles[$elementName][$k], $k));
+ }
+ }
+
+ } elseif ('file' == $this->getElementType($elementName)) {
+ return $this->getElementValue($elementName);
+
+ } elseif (false !== ($pos = strpos($elementName, '['))) {
+ $base = str_replace(
+ array('\\', '\''), array('\\\\', '\\\''),
+ substr($elementName, 0, $pos)
+ );
+ $idx = "['" . str_replace(
+ array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
+ substr($elementName, $pos + 1, -1)
+ ) . "']";
+ if (isset($this->_submitValues[$base])) {
+ $value = eval("return (isset(\$this->_submitValues['{$base}']{$idx})) ? \$this->_submitValues['{$base}']{$idx} : null;");
+ }
+
+ if ((is_array($value) || null === $value) && isset($this->_submitFiles[$base])) {
+ $props = array('name', 'type', 'size', 'tmp_name', 'error');
+ $code = "if (!isset(\$this->_submitFiles['{$base}']['name']{$idx})) {\n" .
+ " return null;\n" .
+ "} else {\n" .
+ " \$v = array();\n";
+ foreach ($props as $prop) {
+ $code .= " \$v = HTML_QuickForm::arrayMerge(\$v, \$this->_reindexFiles(\$this->_submitFiles['{$base}']['{$prop}']{$idx}, '{$prop}'));\n";
+ }
+ $fileValue = eval($code . " return \$v;\n}\n");
+ if (null !== $fileValue) {
+ $value = null === $value? $fileValue: HTML_QuickForm::arrayMerge($value, $fileValue);
+ }
+ }
+ }
+
+ // This is only supposed to work for groups with appendName = false
+ if (null === $value && 'group' == $this->getElementType($elementName)) {
+ $group =& $this->getElement($elementName);
+ $elements =& $group->getElements();
+ foreach (array_keys($elements) as $key) {
+ $name = $group->getElementName($key);
+ // prevent endless recursion in case of radios and such
+ if ($name != $elementName) {
+ if (null !== ($v = $this->getSubmitValue($name))) {
+ $value[$name] = $v;
+ }
+ }
+ }
+ }
+ return $value;
+ } // end func getSubmitValue
+
+ // }}}
+ // {{{ _reindexFiles()
+
+ /**
+ * A helper function to change the indexes in $_FILES array
+ *
+ * @param mixed Some value from the $_FILES array
+ * @param string The key from the $_FILES array that should be appended
+ * @return array
+ */
+ function _reindexFiles($value, $key)
+ {
+ if (!is_array($value)) {
+ return array($key => $value);
+ } else {
+ $ret = array();
+ foreach ($value as $k => $v) {
+ $ret[$k] = $this->_reindexFiles($v, $key);
+ }
+ return $ret;
+ }
+ }
+
+ // }}}
+ // {{{ getElementError()
+
+ /**
+ * Returns error corresponding to validated element
+ *
+ * @param string $element Name of form element to check
+ * @since 1.0
+ * @access public
+ * @return string error message corresponding to checked element
+ */
+ function getElementError($element)
+ {
+ if (isset($this->_errors[$element])) {
+ return $this->_errors[$element];
+ }
+ } // end func getElementError
+
+ // }}}
+ // {{{ setElementError()
+
+ /**
+ * Set error message for a form element
+ *
+ * @param string $element Name of form element to set error for
+ * @param string $message Error message, if empty then removes the current error message
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setElementError($element, $message = null)
+ {
+ if (!empty($message)) {
+ $this->_errors[$element] = $message;
+ } else {
+ unset($this->_errors[$element]);
+ }
+ } // end func setElementError
+
+ // }}}
+ // {{{ getElementType()
+
+ /**
+ * Returns the type of the given element
+ *
+ * @param string $element Name of form element
+ * @since 1.1
+ * @access public
+ * @return string Type of the element, false if the element is not found
+ */
+ function getElementType($element)
+ {
+ if (isset($this->_elementIndex[$element])) {
+ return $this->_elements[$this->_elementIndex[$element]]->getType();
+ }
+ return false;
+ } // end func getElementType
+
+ // }}}
+ // {{{ updateElementAttr()
+
+ /**
+ * Updates Attributes for one or more elements
+ *
+ * @param mixed $elements Array of element names/objects or string of elements to be updated
+ * @param mixed $attrs Array or sting of html attributes
+ * @since 2.10
+ * @access public
+ * @return void
+ */
+ function updateElementAttr($elements, $attrs)
+ {
+ if (is_string($elements)) {
+ $elements = split('[ ]?,[ ]?', $elements);
+ }
+ foreach (array_keys($elements) as $key) {
+ if (is_object($elements[$key]) && is_a($elements[$key], 'HTML_QuickForm_element')) {
+ $elements[$key]->updateAttributes($attrs);
+ } elseif (isset($this->_elementIndex[$elements[$key]])) {
+ $this->_elements[$this->_elementIndex[$elements[$key]]]->updateAttributes($attrs);
+ if (isset($this->_duplicateIndex[$elements[$key]])) {
+ foreach ($this->_duplicateIndex[$elements[$key]] as $index) {
+ $this->_elements[$index]->updateAttributes($attrs);
+ }
+ }
+ }
+ }
+ } // end func updateElementAttr
+
+ // }}}
+ // {{{ removeElement()
+
+ /**
+ * Removes an element
+ *
+ * The method "unlinks" an element from the form, returning the reference
+ * to the element object. If several elements named $elementName exist,
+ * it removes the first one, leaving the others intact.
+ *
+ * @param string $elementName The element name
+ * @param boolean $removeRules True if rules for this element are to be removed too
+ * @access public
+ * @since 2.0
+ * @return HTML_QuickForm_element a reference to the removed element
+ * @throws HTML_QuickForm_Error
+ */
+ function &removeElement($elementName, $removeRules = true)
+ {
+ if (!isset($this->_elementIndex[$elementName])) {
+ $error = PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$elementName' does not exist in HTML_QuickForm::removeElement()", 'HTML_QuickForm_Error', true);
+ return $error;
+ }
+ $el =& $this->_elements[$this->_elementIndex[$elementName]];
+ unset($this->_elements[$this->_elementIndex[$elementName]]);
+ if (empty($this->_duplicateIndex[$elementName])) {
+ unset($this->_elementIndex[$elementName]);
+ } else {
+ $this->_elementIndex[$elementName] = array_shift($this->_duplicateIndex[$elementName]);
+ }
+ if ($removeRules) {
+ unset($this->_rules[$elementName], $this->_errors[$elementName]);
+ }
+ return $el;
+ } // end func removeElement
+
+ // }}}
+ // {{{ addRule()
+
+ /**
+ * Adds a validation rule for the given field
+ *
+ * If the element is in fact a group, it will be considered as a whole.
+ * To validate grouped elements as separated entities,
+ * use addGroupRule instead of addRule.
+ *
+ * @param string $element Form element name
+ * @param string $message Message to display for invalid data
+ * @param string $type Rule type, use getRegisteredRules() to get types
+ * @param string $format (optional)Required for extra rule data
+ * @param string $validation (optional)Where to perform validation: "server", "client"
+ * @param boolean $reset Client-side validation: reset the form element to its original value if there is an error?
+ * @param boolean $force Force the rule to be applied, even if the target form element does not exist
+ * @since 1.0
+ * @access public
+ * @throws HTML_QuickForm_Error
+ */
+ function addRule($element, $message, $type, $format=null, $validation='server', $reset = false, $force = false)
+ {
+ if (!$force) {
+ if (!is_array($element) && !$this->elementExists($element)) {
+ return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::addRule()", 'HTML_QuickForm_Error', true);
+ } elseif (is_array($element)) {
+ foreach ($element as $el) {
+ if (!$this->elementExists($el)) {
+ return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$el' does not exist in HTML_QuickForm::addRule()", 'HTML_QuickForm_Error', true);
+ }
+ }
+ }
+ }
+ if (false === ($newName = $this->isRuleRegistered($type, true))) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, "Rule '$type' is not registered in HTML_QuickForm::addRule()", 'HTML_QuickForm_Error', true);
+ } elseif (is_string($newName)) {
+ $type = $newName;
+ }
+ if (is_array($element)) {
+ $dependent = $element;
+ $element = array_shift($dependent);
+ } else {
+ $dependent = null;
+ }
+ if ($type == 'required' || $type == 'uploadedfile') {
+ $this->_required[] = $element;
+ }
+ if (!isset($this->_rules[$element])) {
+ $this->_rules[$element] = array();
+ }
+ if ($validation == 'client') {
+ $this->updateAttributes(array('onsubmit' => 'try { var myValidator = validate_' . $this->_attributes['id'] . '; } catch(e) { return true; } return myValidator(this);'));
+ }
+ $this->_rules[$element][] = array(
+ 'type' => $type,
+ 'format' => $format,
+ 'message' => $message,
+ 'validation' => $validation,
+ 'reset' => $reset,
+ 'dependent' => $dependent
+ );
+ } // end func addRule
+
+ // }}}
+ // {{{ addGroupRule()
+
+ /**
+ * Adds a validation rule for the given group of elements
+ *
+ * Only groups with a name can be assigned a validation rule
+ * Use addGroupRule when you need to validate elements inside the group.
+ * Use addRule if you need to validate the group as a whole. In this case,
+ * the same rule will be applied to all elements in the group.
+ * Use addRule if you need to validate the group against a function.
+ *
+ * @param string $group Form group name
+ * @param mixed $arg1 Array for multiple elements or error message string for one element
+ * @param string $type (optional)Rule type use getRegisteredRules() to get types
+ * @param string $format (optional)Required for extra rule data
+ * @param int $howmany (optional)How many valid elements should be in the group
+ * @param string $validation (optional)Where to perform validation: "server", "client"
+ * @param bool $reset Client-side: whether to reset the element's value to its original state if validation failed.
+ * @since 2.5
+ * @access public
+ * @throws HTML_QuickForm_Error
+ */
+ function addGroupRule($group, $arg1, $type='', $format=null, $howmany=0, $validation = 'server', $reset = false)
+ {
+ if (!$this->elementExists($group)) {
+ return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Group '$group' does not exist in HTML_QuickForm::addGroupRule()", 'HTML_QuickForm_Error', true);
+ }
+
+ $groupObj =& $this->getElement($group);
+ if (is_array($arg1)) {
+ $required = 0;
+ foreach ($arg1 as $elementIndex => $rules) {
+ $elementName = $groupObj->getElementName($elementIndex);
+ foreach ($rules as $rule) {
+ $format = (isset($rule[2])) ? $rule[2] : null;
+ $validation = (isset($rule[3]) && 'client' == $rule[3])? 'client': 'server';
+ $reset = isset($rule[4]) && $rule[4];
+ $type = $rule[1];
+ if (false === ($newName = $this->isRuleRegistered($type, true))) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, "Rule '$type' is not registered in HTML_QuickForm::addGroupRule()", 'HTML_QuickForm_Error', true);
+ } elseif (is_string($newName)) {
+ $type = $newName;
+ }
+
+ $this->_rules[$elementName][] = array(
+ 'type' => $type,
+ 'format' => $format,
+ 'message' => $rule[0],
+ 'validation' => $validation,
+ 'reset' => $reset,
+ 'group' => $group);
+
+ if ('required' == $type || 'uploadedfile' == $type) {
+ $groupObj->_required[] = $elementName;
+ $this->_required[] = $elementName;
+ $required++;
+ }
+ if ('client' == $validation) {
+ $this->updateAttributes(array('onsubmit' => 'try { var myValidator = validate_' . $this->_attributes['id'] . '; } catch(e) { return true; } return myValidator(this);'));
+ }
+ }
+ }
+ if ($required > 0 && count($groupObj->getElements()) == $required) {
+ $this->_required[] = $group;
+ }
+ } elseif (is_string($arg1)) {
+ if (false === ($newName = $this->isRuleRegistered($type, true))) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, "Rule '$type' is not registered in HTML_QuickForm::addGroupRule()", 'HTML_QuickForm_Error', true);
+ } elseif (is_string($newName)) {
+ $type = $newName;
+ }
+
+ // addGroupRule() should also handle <select multiple>
+ if (is_a($groupObj, 'html_quickform_group')) {
+ // Radios need to be handled differently when required
+ if ($type == 'required' && $groupObj->getGroupType() == 'radio') {
+ $howmany = ($howmany == 0) ? 1 : $howmany;
+ } else {
+ $howmany = ($howmany == 0) ? count($groupObj->getElements()) : $howmany;
+ }
+ }
+
+ $this->_rules[$group][] = array('type' => $type,
+ 'format' => $format,
+ 'message' => $arg1,
+ 'validation' => $validation,
+ 'howmany' => $howmany,
+ 'reset' => $reset);
+ if ($type == 'required') {
+ $this->_required[] = $group;
+ }
+ if ($validation == 'client') {
+ $this->updateAttributes(array('onsubmit' => 'try { var myValidator = validate_' . $this->_attributes['id'] . '; } catch(e) { return true; } return myValidator(this);'));
+ }
+ }
+ } // end func addGroupRule
+
+ // }}}
+ // {{{ addFormRule()
+
+ /**
+ * Adds a global validation rule
+ *
+ * This should be used when for a rule involving several fields or if
+ * you want to use some completely custom validation for your form.
+ * The rule function/method should return true in case of successful
+ * validation and array('element name' => 'error') when there were errors.
+ *
+ * @access public
+ * @param mixed Callback, either function name or array(&$object, 'method')
+ * @throws HTML_QuickForm_Error
+ */
+ function addFormRule($rule)
+ {
+ if (!is_callable($rule)) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_RULE, null, E_USER_WARNING, 'Callback function does not exist in HTML_QuickForm::addFormRule()', 'HTML_QuickForm_Error', true);
+ }
+ $this->_formRules[] = $rule;
+ }
+
+ // }}}
+ // {{{ applyFilter()
+
+ /**
+ * Applies a data filter for the given field(s)
+ *
+ * @param mixed $element Form element name or array of such names
+ * @param mixed $filter Callback, either function name or array(&$object, 'method')
+ * @since 2.0
+ * @access public
+ * @throws HTML_QuickForm_Error
+ */
+ function applyFilter($element, $filter)
+ {
+ if (!is_callable($filter)) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_FILTER, null, E_USER_WARNING, "Callback function does not exist in QuickForm::applyFilter()", 'HTML_QuickForm_Error', true);
+ }
+ if ($element == '__ALL__') {
+ $this->_submitValues = $this->_recursiveFilter($filter, $this->_submitValues);
+ } else {
+ if (!is_array($element)) {
+ $element = array($element);
+ }
+ foreach ($element as $elName) {
+ $value = $this->getSubmitValue($elName);
+ if (null !== $value) {
+ if (false === strpos($elName, '[')) {
+ $this->_submitValues[$elName] = $this->_recursiveFilter($filter, $value);
+ } else {
+ $idx = "['" . str_replace(
+ array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
+ $elName
+ ) . "']";
+ eval("\$this->_submitValues{$idx} = \$this->_recursiveFilter(\$filter, \$value);");
+ }
+ }
+ }
+ }
+ } // end func applyFilter
+
+ // }}}
+ // {{{ _recursiveFilter()
+
+ /**
+ * Recursively apply a filter function
+ *
+ * @param string $filter filter to apply
+ * @param mixed $value submitted values
+ * @since 2.0
+ * @access private
+ * @return cleaned values
+ */
+ function _recursiveFilter($filter, $value)
+ {
+ if (is_array($value)) {
+ $cleanValues = array();
+ foreach ($value as $k => $v) {
+ $cleanValues[$k] = $this->_recursiveFilter($filter, $v);
+ }
+ return $cleanValues;
+ } else {
+ return call_user_func($filter, $value);
+ }
+ } // end func _recursiveFilter
+
+ // }}}
+ // {{{ arrayMerge()
+
+ /**
+ * Merges two arrays
+ *
+ * Merges two array like the PHP function array_merge but recursively.
+ * The main difference is that existing keys will not be renumbered
+ * if they are integers.
+ *
+ * @access public
+ * @param array $a original array
+ * @param array $b array which will be merged into first one
+ * @return array merged array
+ */
+ function arrayMerge($a, $b)
+ {
+ foreach ($b as $k => $v) {
+ if (is_array($v)) {
+ if (isset($a[$k]) && !is_array($a[$k])) {
+ $a[$k] = $v;
+ } else {
+ if (!isset($a[$k])) {
+ $a[$k] = array();
+ }
+ $a[$k] = HTML_QuickForm::arrayMerge($a[$k], $v);
+ }
+ } else {
+ $a[$k] = $v;
+ }
+ }
+ return $a;
+ } // end func arrayMerge
+
+ // }}}
+ // {{{ isTypeRegistered()
+
+ /**
+ * Returns whether or not the form element type is supported
+ *
+ * @param string $type Form element type
+ * @since 1.0
+ * @access public
+ * @return boolean
+ */
+ function isTypeRegistered($type)
+ {
+ return isset($GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][strtolower($type)]);
+ } // end func isTypeRegistered
+
+ // }}}
+ // {{{ getRegisteredTypes()
+
+ /**
+ * Returns an array of registered element types
+ *
+ * @since 1.0
+ * @access public
+ * @return array
+ */
+ function getRegisteredTypes()
+ {
+ return array_keys($GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES']);
+ } // end func getRegisteredTypes
+
+ // }}}
+ // {{{ isRuleRegistered()
+
+ /**
+ * Returns whether or not the given rule is supported
+ *
+ * @param string $name Validation rule name
+ * @param bool Whether to automatically register subclasses of HTML_QuickForm_Rule
+ * @since 1.0
+ * @access public
+ * @return mixed true if previously registered, false if not, new rule name if auto-registering worked
+ */
+ function isRuleRegistered($name, $autoRegister = false)
+ {
+ if (is_scalar($name) && isset($GLOBALS['_HTML_QuickForm_registered_rules'][$name])) {
+ return true;
+ } elseif (!$autoRegister) {
+ return false;
+ }
+ // automatically register the rule if requested
+ include_once 'HTML/QuickForm/RuleRegistry.php';
+ $ruleName = false;
+ if (is_object($name) && is_a($name, 'html_quickform_rule')) {
+ $ruleName = !empty($name->name)? $name->name: strtolower(get_class($name));
+ } elseif (is_string($name) && class_exists($name)) {
+ $parent = strtolower($name);
+ do {
+ if ('html_quickform_rule' == strtolower($parent)) {
+ $ruleName = strtolower($name);
+ break;
+ }
+ } while ($parent = get_parent_class($parent));
+ }
+ if ($ruleName) {
+ $registry =& HTML_QuickForm_RuleRegistry::singleton();
+ $registry->registerRule($ruleName, null, $name);
+ }
+ return $ruleName;
+ } // end func isRuleRegistered
+
+ // }}}
+ // {{{ getRegisteredRules()
+
+ /**
+ * Returns an array of registered validation rules
+ *
+ * @since 1.0
+ * @access public
+ * @return array
+ */
+ function getRegisteredRules()
+ {
+ return array_keys($GLOBALS['_HTML_QuickForm_registered_rules']);
+ } // end func getRegisteredRules
+
+ // }}}
+ // {{{ isElementRequired()
+
+ /**
+ * Returns whether or not the form element is required
+ *
+ * @param string $element Form element name
+ * @since 1.0
+ * @access public
+ * @return boolean
+ */
+ function isElementRequired($element)
+ {
+ return in_array($element, $this->_required, true);
+ } // end func isElementRequired
+
+ // }}}
+ // {{{ isElementFrozen()
+
+ /**
+ * Returns whether or not the form element is frozen
+ *
+ * @param string $element Form element name
+ * @since 1.0
+ * @access public
+ * @return boolean
+ */
+ function isElementFrozen($element)
+ {
+ if (isset($this->_elementIndex[$element])) {
+ return $this->_elements[$this->_elementIndex[$element]]->isFrozen();
+ }
+ return false;
+ } // end func isElementFrozen
+
+ // }}}
+ // {{{ setJsWarnings()
+
+ /**
+ * Sets JavaScript warning messages
+ *
+ * @param string $pref Prefix warning
+ * @param string $post Postfix warning
+ * @since 1.1
+ * @access public
+ * @return void
+ */
+ function setJsWarnings($pref, $post)
+ {
+ $this->_jsPrefix = $pref;
+ $this->_jsPostfix = $post;
+ } // end func setJsWarnings
+
+ // }}}
+ // {{{ setRequiredNote()
+
+ /**
+ * Sets required-note
+ *
+ * @param string $note Message indicating some elements are required
+ * @since 1.1
+ * @access public
+ * @return void
+ */
+ function setRequiredNote($note)
+ {
+ $this->_requiredNote = $note;
+ } // end func setRequiredNote
+
+ // }}}
+ // {{{ getRequiredNote()
+
+ /**
+ * Returns the required note
+ *
+ * @since 2.0
+ * @access public
+ * @return string
+ */
+ function getRequiredNote()
+ {
+ return $this->_requiredNote;
+ } // end func getRequiredNote
+
+ // }}}
+ // {{{ validate()
+
+ /**
+ * Performs the server side validation
+ * @access public
+ * @since 1.0
+ * @return boolean true if no error found
+ * @throws HTML_QuickForm_Error
+ */
+ function validate()
+ {
+ if (count($this->_rules) == 0 && count($this->_formRules) == 0 &&
+ $this->isSubmitted()) {
+ return (0 == count($this->_errors));
+ } elseif (!$this->isSubmitted()) {
+ return false;
+ }
+
+ include_once('HTML/QuickForm/RuleRegistry.php');
+ $registry = HTML_QuickForm_RuleRegistry::singleton();
+
+ foreach ($this->_rules as $target => $rules) {
+ $submitValue = $this->getSubmitValue($target);
+
+ foreach ($rules as $rule) {
+ if ((isset($rule['group']) && isset($this->_errors[$rule['group']])) ||
+ isset($this->_errors[$target])) {
+ continue 2;
+ }
+ // If element is not required and is empty, we shouldn't validate it
+ if (!$this->isElementRequired($target)) {
+ if (!isset($submitValue) || '' == $submitValue) {
+ continue 2;
+ // Fix for bug #3501: we shouldn't validate not uploaded files, either.
+ // Unfortunately, we can't just use $element->isUploadedFile() since
+ // the element in question can be buried in group. Thus this hack.
+ } elseif (is_array($submitValue)) {
+ if (false === ($pos = strpos($target, '['))) {
+ $isUpload = !empty($this->_submitFiles[$target]);
+ } else {
+ $base = str_replace(
+ array('\\', '\''), array('\\\\', '\\\''),
+ substr($target, 0, $pos)
+ );
+ $idx = "['" . str_replace(
+ array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
+ substr($target, $pos + 1, -1)
+ ) . "']";
+ eval("\$isUpload = isset(\$this->_submitFiles['{$base}']['name']{$idx});");
+ }
+ if ($isUpload && (!isset($submitValue['error']) || 0 != $submitValue['error'])) {
+ continue 2;
+ }
+ }
+ }
+ if (isset($rule['dependent']) && is_array($rule['dependent'])) {
+ $values = array($submitValue);
+ foreach ($rule['dependent'] as $elName) {
+ $values[] = $this->getSubmitValue($elName);
+ }
+ $result = $registry->validate($rule['type'], $values, $rule['format'], true);
+ } elseif (is_array($submitValue) && !isset($rule['howmany'])) {
+ $result = $registry->validate($rule['type'], $submitValue, $rule['format'], true);
+ } else {
+ $result = $registry->validate($rule['type'], $submitValue, $rule['format'], false);
+ }
+
+ if (!$result || (!empty($rule['howmany']) && $rule['howmany'] > (int)$result)) {
+ if (isset($rule['group'])) {
+ $this->_errors[$rule['group']] = $rule['message'];
+ } else {
+ $this->_errors[$target] = $rule['message'];
+ }
+ }
+ }
+ }
+
+ // process the global rules now
+ foreach ($this->_formRules as $rule) {
+ if (true !== ($res = call_user_func($rule, $this->_submitValues, $this->_submitFiles))) {
+ if (is_array($res)) {
+ $this->_errors += $res;
+ } else {
+ return PEAR::raiseError(null, QUICKFORM_ERROR, null, E_USER_WARNING, 'Form rule callback returned invalid value in HTML_QuickForm::validate()', 'HTML_QuickForm_Error', true);
+ }
+ }
+ }
+
+ return (0 == count($this->_errors));
+ } // end func validate
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Displays elements without HTML input tags
+ *
+ * @param mixed $elementList array or string of element(s) to be frozen
+ * @since 1.0
+ * @access public
+ * @throws HTML_QuickForm_Error
+ */
+ function freeze($elementList=null)
+ {
+ if (!isset($elementList)) {
+ $this->_freezeAll = true;
+ $elementList = array();
+ } else {
+ if (!is_array($elementList)) {
+ $elementList = preg_split('/[ ]*,[ ]*/', $elementList);
+ }
+ $elementList = array_flip($elementList);
+ }
+
+ foreach (array_keys($this->_elements) as $key) {
+ $name = $this->_elements[$key]->getName();
+ if ($this->_freezeAll || isset($elementList[$name])) {
+ $this->_elements[$key]->freeze();
+ unset($elementList[$name]);
+ }
+ }
+
+ if (!empty($elementList)) {
+ return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Nonexistant element(s): '" . implode("', '", array_keys($elementList)) . "' in HTML_QuickForm::freeze()", 'HTML_QuickForm_Error', true);
+ }
+ return true;
+ } // end func freeze
+
+ // }}}
+ // {{{ isFrozen()
+
+ /**
+ * Returns whether or not the whole form is frozen
+ *
+ * @since 3.0
+ * @access public
+ * @return boolean
+ */
+ function isFrozen()
+ {
+ return $this->_freezeAll;
+ } // end func isFrozen
+
+ // }}}
+ // {{{ process()
+
+ /**
+ * Performs the form data processing
+ *
+ * @param mixed $callback Callback, either function name or array(&$object, 'method')
+ * @param bool $mergeFiles Whether uploaded files should be processed too
+ * @since 1.0
+ * @access public
+ * @throws HTML_QuickForm_Error
+ * @return mixed Whatever value the $callback function returns
+ */
+ function process($callback, $mergeFiles = true)
+ {
+ if (!is_callable($callback)) {
+ return PEAR::raiseError(null, QUICKFORM_INVALID_PROCESS, null, E_USER_WARNING, "Callback function does not exist in QuickForm::process()", 'HTML_QuickForm_Error', true);
+ }
+ $values = ($mergeFiles === true) ? HTML_QuickForm::arrayMerge($this->_submitValues, $this->_submitFiles) : $this->_submitValues;
+ return call_user_func($callback, $values);
+ } // end func process
+
+ // }}}
+ // {{{ accept()
+
+ /**
+ * Accepts a renderer
+ *
+ * @param object An HTML_QuickForm_Renderer object
+ * @since 3.0
+ * @access public
+ * @return void
+ */
+ function accept(&$renderer)
+ {
+ $renderer->startForm($this);
+ foreach (array_keys($this->_elements) as $key) {
+ $element =& $this->_elements[$key];
+ $elementName = $element->getName();
+ $required = ($this->isElementRequired($elementName) && !$element->isFrozen());
+ $error = $this->getElementError($elementName);
+ $element->accept($renderer, $required, $error);
+ }
+ $renderer->finishForm($this);
+ } // end func accept
+
+ // }}}
+ // {{{ defaultRenderer()
+
+ /**
+ * Returns a reference to default renderer object
+ *
+ * @access public
+ * @since 3.0
+ * @return object a default renderer object
+ */
+ function &defaultRenderer()
+ {
+ if (!isset($GLOBALS['_HTML_QuickForm_default_renderer'])) {
+ include_once('HTML/QuickForm/Renderer/Default.php');
+ $GLOBALS['_HTML_QuickForm_default_renderer'] = new HTML_QuickForm_Renderer_Default();
+ }
+ return $GLOBALS['_HTML_QuickForm_default_renderer'];
+ } // end func defaultRenderer
+
+ // }}}
+ // {{{ toHtml ()
+
+ /**
+ * Returns an HTML version of the form
+ *
+ * @param string $in_data (optional) Any extra data to insert right
+ * before form is rendered. Useful when using templates.
+ *
+ * @return string Html version of the form
+ * @since 1.0
+ * @access public
+ */
+ function toHtml ($in_data = null)
+ {
+ if (!is_null($in_data)) {
+ $this->addElement('html', $in_data);
+ }
+ $renderer =& $this->defaultRenderer();
+ $this->accept($renderer);
+ return $renderer->toHtml();
+ } // end func toHtml
+
+ // }}}
+ // {{{ getValidationScript()
+
+ /**
+ * Returns the client side validation script
+ *
+ * @since 2.0
+ * @access public
+ * @return string Javascript to perform validation, empty string if no 'client' rules were added
+ */
+ function getValidationScript()
+ {
+ if (empty($this->_rules) || empty($this->_attributes['onsubmit'])) {
+ return '';
+ }
+
+ include_once('HTML/QuickForm/RuleRegistry.php');
+ $registry =& HTML_QuickForm_RuleRegistry::singleton();
+ $test = array();
+ $js_escape = array(
+ "\r" => '\r',
+ "\n" => '\n',
+ "\t" => '\t',
+ "'" => "\\'",
+ '"' => '\"',
+ '\\' => '\\\\'
+ );
+
+ foreach ($this->_rules as $elementName => $rules) {
+ foreach ($rules as $rule) {
+ if ('client' == $rule['validation']) {
+ unset($element);
+
+ $dependent = isset($rule['dependent']) && is_array($rule['dependent']);
+ $rule['message'] = strtr($rule['message'], $js_escape);
+
+ if (isset($rule['group'])) {
+ $group =& $this->getElement($rule['group']);
+ // No JavaScript validation for frozen elements
+ if ($group->isFrozen()) {
+ continue 2;
+ }
+ $elements =& $group->getElements();
+ foreach (array_keys($elements) as $key) {
+ if ($elementName == $group->getElementName($key)) {
+ $element =& $elements[$key];
+ break;
+ }
+ }
+ } elseif ($dependent) {
+ $element = array();
+ $element[] =& $this->getElement($elementName);
+ foreach ($rule['dependent'] as $elName) {
+ $element[] =& $this->getElement($elName);
+ }
+ } else {
+ $element =& $this->getElement($elementName);
+ }
+ // No JavaScript validation for frozen elements
+ if (is_object($element) && $element->isFrozen()) {
+ continue 2;
+ } elseif (is_array($element)) {
+ foreach (array_keys($element) as $key) {
+ if ($element[$key]->isFrozen()) {
+ continue 3;
+ }
+ }
+ }
+
+ $test[] = $registry->getValidationScript($element, $elementName, $rule);
+ }
+ }
+ }
+ if (count($test) > 0) {
+ return
+ "\n<script type=\"text/javascript\">\n" .
+ "//<![CDATA[\n" .
+ "function validate_" . $this->_attributes['id'] . "(frm) {\n" .
+ " var value = '';\n" .
+ " var errFlag = new Array();\n" .
+ " var _qfGroups = {};\n" .
+ " _qfMsg = '';\n\n" .
+ join("\n", $test) .
+ "\n if (_qfMsg != '') {\n" .
+ " _qfMsg = '" . strtr($this->_jsPrefix, $js_escape) . "' + _qfMsg;\n" .
+ " _qfMsg = _qfMsg + '\\n" . strtr($this->_jsPostfix, $js_escape) . "';\n" .
+ " alert(_qfMsg);\n" .
+ " return false;\n" .
+ " }\n" .
+ " return true;\n" .
+ "}\n" .
+ "//]]>\n" .
+ "</script>";
+ }
+ return '';
+ } // end func getValidationScript
+
+ // }}}
+ // {{{ getSubmitValues()
+
+ /**
+ * Returns the values submitted by the form
+ *
+ * @since 2.0
+ * @access public
+ * @param bool Whether uploaded files should be returned too
+ * @return array
+ */
+ function getSubmitValues($mergeFiles = false)
+ {
+ return $mergeFiles? HTML_QuickForm::arrayMerge($this->_submitValues, $this->_submitFiles): $this->_submitValues;
+ } // end func getSubmitValues
+
+ // }}}
+ // {{{ toArray()
+
+ /**
+ * Returns the form's contents in an array.
+ *
+ * The description of the array structure is in HTML_QuickForm_Renderer_Array docs
+ *
+ * @since 2.0
+ * @access public
+ * @param bool Whether to collect hidden elements (passed to the Renderer's constructor)
+ * @return array of form contents
+ */
+ function toArray($collectHidden = false)
+ {
+ include_once 'HTML/QuickForm/Renderer/Array.php';
+ $renderer = new HTML_QuickForm_Renderer_Array($collectHidden);
+ $this->accept($renderer);
+ return $renderer->toArray();
+ } // end func toArray
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * Returns a 'safe' element's value
+ *
+ * This method first tries to find a cleaned-up submitted value,
+ * it will return a value set by setValue()/setDefaults()/setConstants()
+ * if submitted value does not exist for the given element.
+ *
+ * @param string Name of an element
+ * @access public
+ * @return mixed
+ * @throws HTML_QuickForm_Error
+ */
+ function exportValue($element)
+ {
+ if (!isset($this->_elementIndex[$element])) {
+ return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Element '$element' does not exist in HTML_QuickForm::getElementValue()", 'HTML_QuickForm_Error', true);
+ }
+ $value = $this->_elements[$this->_elementIndex[$element]]->exportValue($this->_submitValues, false);
+ if (isset($this->_duplicateIndex[$element])) {
+ foreach ($this->_duplicateIndex[$element] as $index) {
+ if (null !== ($v = $this->_elements[$index]->exportValue($this->_submitValues, false))) {
+ if (is_array($value)) {
+ $value[] = $v;
+ } else {
+ $value = (null === $value)? $v: array($value, $v);
+ }
+ }
+ }
+ }
+ return $value;
+ }
+
+ // }}}
+ // {{{ exportValues()
+
+ /**
+ * Returns 'safe' elements' values
+ *
+ * Unlike getSubmitValues(), this will return only the values
+ * corresponding to the elements present in the form.
+ *
+ * @param mixed Array/string of element names, whose values we want. If not set then return all elements.
+ * @access public
+ * @return array An assoc array of elements' values
+ * @throws HTML_QuickForm_Error
+ */
+ function exportValues($elementList = null)
+ {
+ $values = array();
+ if (null === $elementList) {
+ // iterate over all elements, calling their exportValue() methods
+ foreach (array_keys($this->_elements) as $key) {
+ $value = $this->_elements[$key]->exportValue($this->_submitValues, true);
+ if (is_array($value)) {
+ // This shit throws a bogus warning in PHP 4.3.x
+ $values = HTML_QuickForm::arrayMerge($values, $value);
+ }
+ }
+ } else {
+ if (!is_array($elementList)) {
+ $elementList = array_map('trim', explode(',', $elementList));
+ }
+ foreach ($elementList as $elementName) {
+ $value = $this->exportValue($elementName);
+ if (PEAR::isError($value)) {
+ return $value;
+ }
+ $values[$elementName] = $value;
+ }
+ }
+ return $values;
+ }
+
+ // }}}
+ // {{{ isSubmitted()
+
+ /**
+ * Tells whether the form was already submitted
+ *
+ * This is useful since the _submitFiles and _submitValues arrays
+ * may be completely empty after the trackSubmit value is removed.
+ *
+ * @access public
+ * @return bool
+ */
+ function isSubmitted()
+ {
+ return $this->_flagSubmitted;
+ }
+
+
+ // }}}
+ // {{{ isError()
+
+ /**
+ * Tell whether a result from a QuickForm method is an error (an instance of HTML_QuickForm_Error)
+ *
+ * @access public
+ * @param mixed result code
+ * @return bool whether $value is an error
+ * @static
+ */
+ static function isError($value)
+ {
+ return (is_object($value) && is_a($value, 'html_quickform_error'));
+ } // end func isError
+
+ // }}}
+ // {{{ errorMessage()
+
+ /**
+ * Return a textual error message for an QuickForm error code
+ *
+ * @access public
+ * @param int error code
+ * @return string error message
+ * @static
+ */
+ static function errorMessage($value)
+ {
+ // make the variable static so that it only has to do the defining on the first call
+ static $errorMessages;
+
+ // define the varies error messages
+ if (!isset($errorMessages)) {
+ $errorMessages = array(
+ QUICKFORM_OK => 'no error',
+ QUICKFORM_ERROR => 'unknown error',
+ QUICKFORM_INVALID_RULE => 'the rule does not exist as a registered rule',
+ QUICKFORM_NONEXIST_ELEMENT => 'nonexistent html element',
+ QUICKFORM_INVALID_FILTER => 'invalid filter',
+ QUICKFORM_UNREGISTERED_ELEMENT => 'unregistered element',
+ QUICKFORM_INVALID_ELEMENT_NAME => 'element already exists',
+ QUICKFORM_INVALID_PROCESS => 'process callback does not exist',
+ QUICKFORM_DEPRECATED => 'method is deprecated',
+ QUICKFORM_INVALID_DATASOURCE => 'datasource is not an object'
+ );
+ }
+
+ // If this is an error object, then grab the corresponding error code
+ if (HTML_QuickForm::isError($value)) {
+ $value = $value->getCode();
+ }
+
+ // return the textual error message corresponding to the code
+ return isset($errorMessages[$value]) ? $errorMessages[$value] : $errorMessages[QUICKFORM_ERROR];
+ } // end func errorMessage
+
+ // }}}
+} // end class HTML_QuickForm
+
+/**
+ * Class for errors thrown by HTML_QuickForm package
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ */
+class HTML_QuickForm_Error extends PEAR_Error {
+
+ // {{{ properties
+
+ /**
+ * Prefix for all error messages
+ * @var string
+ */
+ var $error_message_prefix = 'QuickForm Error: ';
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Creates a quickform error object, extending the PEAR_Error class
+ *
+ * @param int $code the error code
+ * @param int $mode the reaction to the error, either return, die or trigger/callback
+ * @param int $level intensity of the error (PHP error code)
+ * @param mixed $debuginfo any information that can inform user as to nature of the error
+ */
+ function HTML_QuickForm_Error($code = QUICKFORM_ERROR, $mode = PEAR_ERROR_RETURN,
+ $level = E_USER_NOTICE, $debuginfo = null)
+ {
+ if (is_int($code)) {
+ $this->PEAR_Error(HTML_QuickForm::errorMessage($code), $code, $mode, $level, $debuginfo);
+ } else {
+ $this->PEAR_Error("Invalid error code: $code", QUICKFORM_ERROR, $mode, $level, $debuginfo);
+ }
+ }
+
+ // }}}
+} // end class HTML_QuickForm_Error
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Renderer.php b/libs/HTML/QuickForm/Renderer.php
index 9524dfd4f7..970d4367d8 100755
--- a/libs/HTML/QuickForm/Renderer.php
+++ b/libs/HTML/QuickForm/Renderer.php
@@ -1,158 +1,158 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * An abstract base class for QuickForm renderers
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * An abstract base class for QuickForm renderers
- *
- * The class implements a Visitor design pattern
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.0
- * @abstract
- */
-class HTML_QuickForm_Renderer
-{
- /**
- * Constructor
- *
- * @access public
- */
- function HTML_QuickForm_Renderer()
- {
- } // end constructor
-
- /**
- * Called when visiting a form, before processing any form elements
- *
- * @param HTML_QuickForm a form being visited
- * @access public
- * @return void
- * @abstract
- */
- function startForm(&$form)
- {
- return;
- } // end func startForm
-
- /**
- * Called when visiting a form, after processing all form elements
- *
- * @param HTML_QuickForm a form being visited
- * @access public
- * @return void
- * @abstract
- */
- function finishForm(&$form)
- {
- return;
- } // end func finishForm
-
- /**
- * Called when visiting a header element
- *
- * @param HTML_QuickForm_header a header element being visited
- * @access public
- * @return void
- * @abstract
- */
- function renderHeader(&$header)
- {
- return;
- } // end func renderHeader
-
- /**
- * Called when visiting an element
- *
- * @param HTML_QuickForm_element form element being visited
- * @param bool Whether an element is required
- * @param string An error message associated with an element
- * @access public
- * @return void
- * @abstract
- */
- function renderElement(&$element, $required, $error)
- {
- return;
- } // end func renderElement
-
- /**
- * Called when visiting a hidden element
- *
- * @param HTML_QuickForm_element a hidden element being visited
- * @access public
- * @return void
- * @abstract
- */
- function renderHidden(&$element)
- {
- return;
- } // end func renderHidden
-
- /**
- * Called when visiting a raw HTML/text pseudo-element
- *
- * Only implemented in Default renderer. Usage of 'html' elements is
- * discouraged, templates should be used instead.
- *
- * @param HTML_QuickForm_html a 'raw html' element being visited
- * @access public
- * @return void
- * @abstract
- */
- function renderHtml(&$data)
- {
- return;
- } // end func renderHtml
-
- /**
- * Called when visiting a group, before processing any group elements
- *
- * @param HTML_QuickForm_group A group being visited
- * @param bool Whether a group is required
- * @param string An error message associated with a group
- * @access public
- * @return void
- * @abstract
- */
- function startGroup(&$group, $required, $error)
- {
- return;
- } // end func startGroup
-
- /**
- * Called when visiting a group, after processing all group elements
- *
- * @param HTML_QuickForm_group A group being visited
- * @access public
- * @return void
- * @abstract
- */
- function finishGroup(&$group)
- {
- return;
- } // end func finishGroup
-} // end class HTML_QuickForm_Renderer
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * An abstract base class for QuickForm renderers
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * An abstract base class for QuickForm renderers
+ *
+ * The class implements a Visitor design pattern
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.0
+ * @abstract
+ */
+class HTML_QuickForm_Renderer
+{
+ /**
+ * Constructor
+ *
+ * @access public
+ */
+ function HTML_QuickForm_Renderer()
+ {
+ } // end constructor
+
+ /**
+ * Called when visiting a form, before processing any form elements
+ *
+ * @param HTML_QuickForm a form being visited
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function startForm(&$form)
+ {
+ return;
+ } // end func startForm
+
+ /**
+ * Called when visiting a form, after processing all form elements
+ *
+ * @param HTML_QuickForm a form being visited
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function finishForm(&$form)
+ {
+ return;
+ } // end func finishForm
+
+ /**
+ * Called when visiting a header element
+ *
+ * @param HTML_QuickForm_header a header element being visited
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function renderHeader(&$header)
+ {
+ return;
+ } // end func renderHeader
+
+ /**
+ * Called when visiting an element
+ *
+ * @param HTML_QuickForm_element form element being visited
+ * @param bool Whether an element is required
+ * @param string An error message associated with an element
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function renderElement(&$element, $required, $error)
+ {
+ return;
+ } // end func renderElement
+
+ /**
+ * Called when visiting a hidden element
+ *
+ * @param HTML_QuickForm_element a hidden element being visited
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function renderHidden(&$element)
+ {
+ return;
+ } // end func renderHidden
+
+ /**
+ * Called when visiting a raw HTML/text pseudo-element
+ *
+ * Only implemented in Default renderer. Usage of 'html' elements is
+ * discouraged, templates should be used instead.
+ *
+ * @param HTML_QuickForm_html a 'raw html' element being visited
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function renderHtml(&$data)
+ {
+ return;
+ } // end func renderHtml
+
+ /**
+ * Called when visiting a group, before processing any group elements
+ *
+ * @param HTML_QuickForm_group A group being visited
+ * @param bool Whether a group is required
+ * @param string An error message associated with a group
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function startGroup(&$group, $required, $error)
+ {
+ return;
+ } // end func startGroup
+
+ /**
+ * Called when visiting a group, after processing all group elements
+ *
+ * @param HTML_QuickForm_group A group being visited
+ * @access public
+ * @return void
+ * @abstract
+ */
+ function finishGroup(&$group)
+ {
+ return;
+ } // end func finishGroup
+} // end class HTML_QuickForm_Renderer
+?>
diff --git a/libs/HTML/QuickForm/Renderer/Array.php b/libs/HTML/QuickForm/Renderer/Array.php
index b8eab80b7a..fd2fefc60e 100755
--- a/libs/HTML/QuickForm/Renderer/Array.php
+++ b/libs/HTML/QuickForm/Renderer/Array.php
@@ -1,340 +1,340 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * A concrete renderer for HTML_QuickForm, makes an array of form contents
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Thomas Schulz <ths@4bconsult.de>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * An abstract base class for QuickForm renderers
- */
-require_once 'HTML/QuickForm/Renderer.php';
-
-/**
- * A concrete renderer for HTML_QuickForm, makes an array of form contents
- *
- * Based on old HTML_QuickForm::toArray() code.
- *
- * The form array structure is the following:
- * <pre>
- * array(
- * 'frozen' => 'whether the form is frozen',
- * 'javascript' => 'javascript for client-side validation',
- * 'attributes' => 'attributes for <form> tag',
- * 'requirednote => 'note about the required elements',
- * // if we set the option to collect hidden elements
- * 'hidden' => 'collected html of all hidden elements',
- * // if there were some validation errors:
- * 'errors' => array(
- * '1st element name' => 'Error for the 1st element',
- * ...
- * 'nth element name' => 'Error for the nth element'
- * ),
- * // if there are no headers in the form:
- * 'elements' => array(
- * element_1,
- * ...
- * element_N
- * )
- * // if there are headers in the form:
- * 'sections' => array(
- * array(
- * 'header' => 'Header text for the first header',
- * 'name' => 'Header name for the first header',
- * 'elements' => array(
- * element_1,
- * ...
- * element_K1
- * )
- * ),
- * ...
- * array(
- * 'header' => 'Header text for the Mth header',
- * 'name' => 'Header name for the Mth header',
- * 'elements' => array(
- * element_1,
- * ...
- * element_KM
- * )
- * )
- * )
- * );
- * </pre>
- *
- * where element_i is an array of the form:
- * <pre>
- * array(
- * 'name' => 'element name',
- * 'value' => 'element value',
- * 'type' => 'type of the element',
- * 'frozen' => 'whether element is frozen',
- * 'label' => 'label for the element',
- * 'required' => 'whether element is required',
- * 'error' => 'error associated with the element',
- * 'style' => 'some information about element style (e.g. for Smarty)',
- * // if element is not a group
- * 'html' => 'HTML for the element'
- * // if element is a group
- * 'separator' => 'separator for group elements',
- * 'elements' => array(
- * element_1,
- * ...
- * element_N
- * )
- * );
- * </pre>
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Thomas Schulz <ths@4bconsult.de>
- * @version Release: 3.2.9
- * @since 3.0
- */
-class HTML_QuickForm_Renderer_Array extends HTML_QuickForm_Renderer
-{
- /**#@+
- * @access private
- */
- /**
- * An array being generated
- * @var array
- */
- var $_ary;
-
- /**
- * Number of sections in the form (i.e. number of headers in it)
- * @var integer
- */
- var $_sectionCount;
-
- /**
- * Current section number
- * @var integer
- */
- var $_currentSection;
-
- /**
- * Array representing current group
- * @var array
- */
- var $_currentGroup = null;
-
- /**
- * Additional style information for different elements
- * @var array
- */
- var $_elementStyles = array();
-
- /**
- * true: collect all hidden elements into string; false: process them as usual form elements
- * @var bool
- */
- var $_collectHidden = false;
-
- /**
- * true: render an array of labels to many labels, $key 0 named 'label', the rest "label_$key"
- * false: leave labels as defined
- * @var bool
- */
- var $_staticLabels = false;
- /**#@-*/
-
- /**
- * Constructor
- *
- * @param bool true: collect all hidden elements into string; false: process them as usual form elements
- * @param bool true: render an array of labels to many labels, $key 0 to 'label' and the oterh to "label_$key"
- * @access public
- */
- function HTML_QuickForm_Renderer_Array($collectHidden = false, $staticLabels = false)
- {
- $this->HTML_QuickForm_Renderer();
- $this->_collectHidden = $collectHidden;
- $this->_staticLabels = $staticLabels;
- } // end constructor
-
-
- /**
- * Returns the resultant array
- *
- * @access public
- * @return array
- */
- function toArray()
- {
- return $this->_ary;
- }
-
-
- function startForm(&$form)
- {
- $this->_ary = array(
- 'frozen' => $form->isFrozen(),
- 'javascript' => $form->getValidationScript(),
- 'attributes' => $form->getAttributes(true),
- 'requirednote' => $form->getRequiredNote(),
- 'errors' => array()
- );
- if ($this->_collectHidden) {
- $this->_ary['hidden'] = '';
- }
- $this->_elementIdx = 1;
- $this->_currentSection = null;
- $this->_sectionCount = 0;
- } // end func startForm
-
-
- function renderHeader(&$header)
- {
- $this->_ary['sections'][$this->_sectionCount] = array(
- 'header' => $header->toHtml(),
- 'name' => $header->getName()
- );
- $this->_currentSection = $this->_sectionCount++;
- } // end func renderHeader
-
-
- function renderElement(&$element, $required, $error)
- {
- $elAry = $this->_elementToArray($element, $required, $error);
- if (!empty($error)) {
- $this->_ary['errors'][$elAry['name']] = $error;
- }
- $this->_storeArray($elAry);
- } // end func renderElement
-
-
- function renderHidden(&$element)
- {
- if ($this->_collectHidden) {
- $this->_ary['hidden'] .= $element->toHtml() . "\n";
- } else {
- $this->renderElement($element, false, null);
- }
- } // end func renderHidden
-
-
- function startGroup(&$group, $required, $error)
- {
- $this->_currentGroup = $this->_elementToArray($group, $required, $error);
- if (!empty($error)) {
- $this->_ary['errors'][$this->_currentGroup['name']] = $error;
- }
- } // end func startGroup
-
-
- function finishGroup(&$group)
- {
- $this->_storeArray($this->_currentGroup);
- $this->_currentGroup = null;
- } // end func finishGroup
-
-
- /**
- * Creates an array representing an element
- *
- * @access private
- * @param HTML_QuickForm_element element being processed
- * @param bool Whether an element is required
- * @param string Error associated with the element
- * @return array
- */
- function _elementToArray(&$element, $required, $error)
- {
- $ret = array(
- 'name' => $element->getName(),
- 'value' => $element->getValue(),
- 'type' => $element->getType(),
- 'frozen' => $element->isFrozen(),
- 'required' => $required,
- 'error' => $error
- );
- // render label(s)
- $labels = $element->getLabel();
- if (is_array($labels) && $this->_staticLabels) {
- foreach($labels as $key => $label) {
- $key = is_int($key)? $key + 1: $key;
- if (1 === $key) {
- $ret['label'] = $label;
- } else {
- $ret['label_' . $key] = $label;
- }
- }
- } else {
- $ret['label'] = $labels;
- }
-
- // set the style for the element
- if (isset($this->_elementStyles[$ret['name']])) {
- $ret['style'] = $this->_elementStyles[$ret['name']];
- }
- if ('group' == $ret['type']) {
- $ret['separator'] = $element->_separator;
- $ret['elements'] = array();
- } else {
- $ret['html'] = $element->toHtml();
- }
- return $ret;
- }
-
-
- /**
- * Stores an array representation of an element in the form array
- *
- * @access private
- * @param array Array representation of an element
- * @return void
- */
- function _storeArray($elAry)
- {
- // where should we put this element...
- if (is_array($this->_currentGroup) && ('group' != $elAry['type'])) {
- $this->_currentGroup['elements'][] = $elAry;
- } elseif (isset($this->_currentSection)) {
- $this->_ary['sections'][$this->_currentSection]['elements'][] = $elAry;
- } else {
- $this->_ary['elements'][] = $elAry;
- }
- }
-
-
- /**
- * Sets a style to use for element rendering
- *
- * @param mixed element name or array ('element name' => 'style name')
- * @param string style name if $elementName is not an array
- * @access public
- * @return void
- */
- function setElementStyle($elementName, $styleName = null)
- {
- if (is_array($elementName)) {
- $this->_elementStyles = array_merge($this->_elementStyles, $elementName);
- } else {
- $this->_elementStyles[$elementName] = $styleName;
- }
- }
-}
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * A concrete renderer for HTML_QuickForm, makes an array of form contents
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Thomas Schulz <ths@4bconsult.de>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * An abstract base class for QuickForm renderers
+ */
+require_once 'HTML/QuickForm/Renderer.php';
+
+/**
+ * A concrete renderer for HTML_QuickForm, makes an array of form contents
+ *
+ * Based on old HTML_QuickForm::toArray() code.
+ *
+ * The form array structure is the following:
+ * <pre>
+ * array(
+ * 'frozen' => 'whether the form is frozen',
+ * 'javascript' => 'javascript for client-side validation',
+ * 'attributes' => 'attributes for <form> tag',
+ * 'requirednote => 'note about the required elements',
+ * // if we set the option to collect hidden elements
+ * 'hidden' => 'collected html of all hidden elements',
+ * // if there were some validation errors:
+ * 'errors' => array(
+ * '1st element name' => 'Error for the 1st element',
+ * ...
+ * 'nth element name' => 'Error for the nth element'
+ * ),
+ * // if there are no headers in the form:
+ * 'elements' => array(
+ * element_1,
+ * ...
+ * element_N
+ * )
+ * // if there are headers in the form:
+ * 'sections' => array(
+ * array(
+ * 'header' => 'Header text for the first header',
+ * 'name' => 'Header name for the first header',
+ * 'elements' => array(
+ * element_1,
+ * ...
+ * element_K1
+ * )
+ * ),
+ * ...
+ * array(
+ * 'header' => 'Header text for the Mth header',
+ * 'name' => 'Header name for the Mth header',
+ * 'elements' => array(
+ * element_1,
+ * ...
+ * element_KM
+ * )
+ * )
+ * )
+ * );
+ * </pre>
+ *
+ * where element_i is an array of the form:
+ * <pre>
+ * array(
+ * 'name' => 'element name',
+ * 'value' => 'element value',
+ * 'type' => 'type of the element',
+ * 'frozen' => 'whether element is frozen',
+ * 'label' => 'label for the element',
+ * 'required' => 'whether element is required',
+ * 'error' => 'error associated with the element',
+ * 'style' => 'some information about element style (e.g. for Smarty)',
+ * // if element is not a group
+ * 'html' => 'HTML for the element'
+ * // if element is a group
+ * 'separator' => 'separator for group elements',
+ * 'elements' => array(
+ * element_1,
+ * ...
+ * element_N
+ * )
+ * );
+ * </pre>
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Thomas Schulz <ths@4bconsult.de>
+ * @version Release: 3.2.9
+ * @since 3.0
+ */
+class HTML_QuickForm_Renderer_Array extends HTML_QuickForm_Renderer
+{
+ /**#@+
+ * @access private
+ */
+ /**
+ * An array being generated
+ * @var array
+ */
+ var $_ary;
+
+ /**
+ * Number of sections in the form (i.e. number of headers in it)
+ * @var integer
+ */
+ var $_sectionCount;
+
+ /**
+ * Current section number
+ * @var integer
+ */
+ var $_currentSection;
+
+ /**
+ * Array representing current group
+ * @var array
+ */
+ var $_currentGroup = null;
+
+ /**
+ * Additional style information for different elements
+ * @var array
+ */
+ var $_elementStyles = array();
+
+ /**
+ * true: collect all hidden elements into string; false: process them as usual form elements
+ * @var bool
+ */
+ var $_collectHidden = false;
+
+ /**
+ * true: render an array of labels to many labels, $key 0 named 'label', the rest "label_$key"
+ * false: leave labels as defined
+ * @var bool
+ */
+ var $_staticLabels = false;
+ /**#@-*/
+
+ /**
+ * Constructor
+ *
+ * @param bool true: collect all hidden elements into string; false: process them as usual form elements
+ * @param bool true: render an array of labels to many labels, $key 0 to 'label' and the oterh to "label_$key"
+ * @access public
+ */
+ function HTML_QuickForm_Renderer_Array($collectHidden = false, $staticLabels = false)
+ {
+ $this->HTML_QuickForm_Renderer();
+ $this->_collectHidden = $collectHidden;
+ $this->_staticLabels = $staticLabels;
+ } // end constructor
+
+
+ /**
+ * Returns the resultant array
+ *
+ * @access public
+ * @return array
+ */
+ function toArray()
+ {
+ return $this->_ary;
+ }
+
+
+ function startForm(&$form)
+ {
+ $this->_ary = array(
+ 'frozen' => $form->isFrozen(),
+ 'javascript' => $form->getValidationScript(),
+ 'attributes' => $form->getAttributes(true),
+ 'requirednote' => $form->getRequiredNote(),
+ 'errors' => array()
+ );
+ if ($this->_collectHidden) {
+ $this->_ary['hidden'] = '';
+ }
+ $this->_elementIdx = 1;
+ $this->_currentSection = null;
+ $this->_sectionCount = 0;
+ } // end func startForm
+
+
+ function renderHeader(&$header)
+ {
+ $this->_ary['sections'][$this->_sectionCount] = array(
+ 'header' => $header->toHtml(),
+ 'name' => $header->getName()
+ );
+ $this->_currentSection = $this->_sectionCount++;
+ } // end func renderHeader
+
+
+ function renderElement(&$element, $required, $error)
+ {
+ $elAry = $this->_elementToArray($element, $required, $error);
+ if (!empty($error)) {
+ $this->_ary['errors'][$elAry['name']] = $error;
+ }
+ $this->_storeArray($elAry);
+ } // end func renderElement
+
+
+ function renderHidden(&$element)
+ {
+ if ($this->_collectHidden) {
+ $this->_ary['hidden'] .= $element->toHtml() . "\n";
+ } else {
+ $this->renderElement($element, false, null);
+ }
+ } // end func renderHidden
+
+
+ function startGroup(&$group, $required, $error)
+ {
+ $this->_currentGroup = $this->_elementToArray($group, $required, $error);
+ if (!empty($error)) {
+ $this->_ary['errors'][$this->_currentGroup['name']] = $error;
+ }
+ } // end func startGroup
+
+
+ function finishGroup(&$group)
+ {
+ $this->_storeArray($this->_currentGroup);
+ $this->_currentGroup = null;
+ } // end func finishGroup
+
+
+ /**
+ * Creates an array representing an element
+ *
+ * @access private
+ * @param HTML_QuickForm_element element being processed
+ * @param bool Whether an element is required
+ * @param string Error associated with the element
+ * @return array
+ */
+ function _elementToArray(&$element, $required, $error)
+ {
+ $ret = array(
+ 'name' => $element->getName(),
+ 'value' => $element->getValue(),
+ 'type' => $element->getType(),
+ 'frozen' => $element->isFrozen(),
+ 'required' => $required,
+ 'error' => $error
+ );
+ // render label(s)
+ $labels = $element->getLabel();
+ if (is_array($labels) && $this->_staticLabels) {
+ foreach($labels as $key => $label) {
+ $key = is_int($key)? $key + 1: $key;
+ if (1 === $key) {
+ $ret['label'] = $label;
+ } else {
+ $ret['label_' . $key] = $label;
+ }
+ }
+ } else {
+ $ret['label'] = $labels;
+ }
+
+ // set the style for the element
+ if (isset($this->_elementStyles[$ret['name']])) {
+ $ret['style'] = $this->_elementStyles[$ret['name']];
+ }
+ if ('group' == $ret['type']) {
+ $ret['separator'] = $element->_separator;
+ $ret['elements'] = array();
+ } else {
+ $ret['html'] = $element->toHtml();
+ }
+ return $ret;
+ }
+
+
+ /**
+ * Stores an array representation of an element in the form array
+ *
+ * @access private
+ * @param array Array representation of an element
+ * @return void
+ */
+ function _storeArray($elAry)
+ {
+ // where should we put this element...
+ if (is_array($this->_currentGroup) && ('group' != $elAry['type'])) {
+ $this->_currentGroup['elements'][] = $elAry;
+ } elseif (isset($this->_currentSection)) {
+ $this->_ary['sections'][$this->_currentSection]['elements'][] = $elAry;
+ } else {
+ $this->_ary['elements'][] = $elAry;
+ }
+ }
+
+
+ /**
+ * Sets a style to use for element rendering
+ *
+ * @param mixed element name or array ('element name' => 'style name')
+ * @param string style name if $elementName is not an array
+ * @access public
+ * @return void
+ */
+ function setElementStyle($elementName, $styleName = null)
+ {
+ if (is_array($elementName)) {
+ $this->_elementStyles = array_merge($this->_elementStyles, $elementName);
+ } else {
+ $this->_elementStyles[$elementName] = $styleName;
+ }
+ }
+}
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Renderer/ArraySmarty.php b/libs/HTML/QuickForm/Renderer/ArraySmarty.php
index e7495a17b3..6eb06dc2c8 100755
--- a/libs/HTML/QuickForm/Renderer/ArraySmarty.php
+++ b/libs/HTML/QuickForm/Renderer/ArraySmarty.php
@@ -1,402 +1,402 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * A static renderer for HTML_QuickForm, makes an array of form content
- * useful for a Smarty template
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Thomas Schulz <ths@4bconsult.de>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * A concrete renderer for HTML_QuickForm, makes an array of form contents
- */
-require_once 'HTML/QuickForm/Renderer/Array.php';
-
-/**
- * A static renderer for HTML_QuickForm, makes an array of form content
- * useful for a Smarty template
- *
- * Based on old HTML_QuickForm::toArray() code and ITStatic renderer.
- *
- * The form array structure is the following:
- * <pre>
- * Array (
- * [frozen] => whether the complete form is frozen'
- * [javascript] => javascript for client-side validation
- * [attributes] => attributes for <form> tag
- * [hidden] => html of all hidden elements
- * [requirednote] => note about the required elements
- * [errors] => Array
- * (
- * [1st_element_name] => Error for the 1st element
- * ...
- * [nth_element_name] => Error for the nth element
- * )
- *
- * [header] => Array
- * (
- * [1st_header_name] => Header text for the 1st header
- * ...
- * [nth_header_name] => Header text for the nth header
- * )
- *
- * [1st_element_name] => Array for the 1st element
- * ...
- * [nth_element_name] => Array for the nth element
- * </pre>
- *
- * where an element array has the form:
- * <pre>
- * (
- * [name] => element name
- * [value] => element value,
- * [type] => type of the element
- * [frozen] => whether element is frozen
- * [label] => label for the element
- * [required] => whether element is required
- * // if element is not a group:
- * [html] => HTML for the element
- * // if element is a group:
- * [separator] => separator for group elements
- * [1st_gitem_name] => Array for the 1st element in group
- * ...
- * [nth_gitem_name] => Array for the nth element in group
- * )
- * )
- * </pre>
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Thomas Schulz <ths@4bconsult.de>
- * @version Release: 3.2.9
- * @since 3.0
- */
-class HTML_QuickForm_Renderer_ArraySmarty extends HTML_QuickForm_Renderer_Array
-{
- /**#@+
- * @access private
- */
- /**
- * The Smarty template engine instance
- * @var object
- */
- var $_tpl = null;
-
- /**
- * Current element index
- * @var integer
- */
- var $_elementIdx = 0;
-
- /**
- * The current element index inside a group
- * @var integer
- */
- var $_groupElementIdx = 0;
-
- /**
- * How to handle the required tag for required fields
- * @var string
- * @see setRequiredTemplate()
- */
- var $_required = '';
-
- /**
- * How to handle error messages in form validation
- * @var string
- * @see setErrorTemplate()
- */
- var $_error = '';
- /**#@-*/
-
- /**
- * Constructor
- *
- * @param Smarty reference to the Smarty template engine instance
- * @param bool true: render an array of labels to many labels, $key 0 to 'label' and the oterh to "label_$key"
- * @access public
- */
- function HTML_QuickForm_Renderer_ArraySmarty(&$tpl, $staticLabels = false)
- {
- $this->HTML_QuickForm_Renderer_Array(false, $staticLabels);
- $this->_tpl =& $tpl;
- } // end constructor
-
- /**
- * Called when visiting a header element
- *
- * @param HTML_QuickForm_header header element being visited
- * @access public
- * @return void
- */
- function renderHeader(&$header)
- {
- if ($name = $header->getName()) {
- $this->_ary['header'][$name] = $header->toHtml();
- } else {
- $this->_ary['header'][$this->_sectionCount] = $header->toHtml();
- }
- $this->_currentSection = $this->_sectionCount++;
- } // end func renderHeader
-
- /**
- * Called when visiting a group, before processing any group elements
- *
- * @param HTML_QuickForm_group group being visited
- * @param bool Whether a group is required
- * @param string An error message associated with a group
- * @access public
- * @return void
- */
- function startGroup(&$group, $required, $error)
- {
- parent::startGroup($group, $required, $error);
- $this->_groupElementIdx = 1;
- } // end func startGroup
-
- /**
- * Creates an array representing an element containing
- * the key for storing this
- *
- * @access private
- * @param HTML_QuickForm_element form element being visited
- * @param bool Whether an element is required
- * @param string Error associated with the element
- * @return array
- */
- function _elementToArray(&$element, $required, $error)
- {
- $ret = parent::_elementToArray($element, $required, $error);
-
- if ('group' == $ret['type']) {
- $ret['html'] = $element->toHtml();
- // we don't need the elements, see the array structure
- unset($ret['elements']);
- }
- if (($required || $error) && !empty($this->_required)){
- $this->_renderRequired($ret['label'], $ret['html'], $required, $error);
- }
- if ($error && !empty($this->_error)) {
- $this->_renderError($ret['label'], $ret['html'], $error);
- $ret['error'] = $error;
- }
- // create keys for elements grouped by native group or name
- if (strstr($ret['name'], '[') or $this->_currentGroup) {
- // Fix for bug #8123: escape backslashes and quotes to prevent errors
- // in eval(). The code below seems to handle the case where element
- // name has unbalanced square brackets. Dunno whether we really
- // need this after the fix for #8123, but I'm wary of making big
- // changes to this code.
- preg_match('/([^]]*)\\[([^]]*)\\]/', $ret['name'], $matches);
- if (isset($matches[1])) {
- $sKeysSub = substr_replace($ret['name'], '', 0, strlen($matches[1]));
- $sKeysSub = str_replace(
- array('\\', '\'', '[' , ']', '[\'\']'),
- array('\\\\', '\\\'', '[\'', '\']', '[]' ),
- $sKeysSub
- );
- $sKeys = '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $matches[1]) . '\']' . $sKeysSub;
- } else {
- $sKeys = '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $ret['name']) . '\']';
- }
- // special handling for elements in native groups
- if ($this->_currentGroup) {
- // skip unnamed group items unless radios: no name -> no static access
- // identification: have the same key string as the parent group
- if ($this->_currentGroup['keys'] == $sKeys and 'radio' != $ret['type']) {
- return false;
- }
- // reduce string of keys by remove leading group keys
- if (0 === strpos($sKeys, $this->_currentGroup['keys'])) {
- $sKeys = substr_replace($sKeys, '', 0, strlen($this->_currentGroup['keys']));
- }
- }
- // element without a name
- } elseif ($ret['name'] == '') {
- $sKeys = '[\'element_' . $this->_elementIdx . '\']';
- // other elements
- } else {
- $sKeys = '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $ret['name']) . '\']';
- }
- // for radios: add extra key from value
- if ('radio' == $ret['type'] and substr($sKeys, -2) != '[]') {
- $sKeys .= '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $ret['value']) . '\']';
- }
- $this->_elementIdx++;
- $ret['keys'] = $sKeys;
- return $ret;
- } // end func _elementToArray
-
- /**
- * Stores an array representation of an element in the form array
- *
- * @access private
- * @param array Array representation of an element
- * @return void
- */
- function _storeArray($elAry)
- {
- if ($elAry) {
- $sKeys = $elAry['keys'];
- unset($elAry['keys']);
- // where should we put this element...
- if (is_array($this->_currentGroup) && ('group' != $elAry['type'])) {
- $toEval = '$this->_currentGroup' . $sKeys . ' = $elAry;';
- } else {
- $toEval = '$this->_ary' . $sKeys . ' = $elAry;';
- }
- eval($toEval);
- }
- return;
- }
-
- /**
- * Called when an element is required
- *
- * This method will add the required tag to the element label and/or the element html
- * such as defined with the method setRequiredTemplate.
- *
- * @param string The element label
- * @param string The element html rendering
- * @param boolean The element required
- * @param string The element error
- * @see setRequiredTemplate()
- * @access private
- * @return void
- */
- function _renderRequired(&$label, &$html, &$required, &$error)
- {
- $this->_tpl->assign(array(
- 'label' => $label,
- 'html' => $html,
- 'required' => $required,
- 'error' => $error
- ));
- if (!empty($label) && strpos($this->_required, $this->_tpl->left_delimiter . '$label') !== false) {
- $label = $this->_tplFetch($this->_required);
- }
- if (!empty($html) && strpos($this->_required, $this->_tpl->left_delimiter . '$html') !== false) {
- $html = $this->_tplFetch($this->_required);
- }
- $this->_tpl->clear_assign(array('label', 'html', 'required'));
- } // end func _renderRequired
-
- /**
- * Called when an element has a validation error
- *
- * This method will add the error message to the element label or the element html
- * such as defined with the method setErrorTemplate. If the error placeholder is not found
- * in the template, the error will be displayed in the form error block.
- *
- * @param string The element label
- * @param string The element html rendering
- * @param string The element error
- * @see setErrorTemplate()
- * @access private
- * @return void
- */
- function _renderError(&$label, &$html, &$error)
- {
- $this->_tpl->assign(array('label' => '', 'html' => '', 'error' => $error));
- $error = $this->_tplFetch($this->_error);
- $this->_tpl->assign(array('label' => $label, 'html' => $html));
-
- if (!empty($label) && strpos($this->_error, $this->_tpl->left_delimiter . '$label') !== false) {
- $label = $this->_tplFetch($this->_error);
- } elseif (!empty($html) && strpos($this->_error, $this->_tpl->left_delimiter . '$html') !== false) {
- $html = $this->_tplFetch($this->_error);
- }
- $this->_tpl->clear_assign(array('label', 'html', 'error'));
- } // end func _renderError
-
- /**
- * Process an template sourced in a string with Smarty
- *
- * Smarty has no core function to render a template given as a string.
- * So we use the smarty eval plugin function to do this.
- *
- * @param string The template source
- * @access private
- * @return void
- */
- function _tplFetch($tplSource)
- {
- if (!function_exists('smarty_function_eval')) {
- require SMARTY_DIR . '/plugins/function.eval.php';
- }
- return smarty_function_eval(array('var' => $tplSource), $this->_tpl);
- }// end func _tplFetch
-
- /**
- * Sets the way required elements are rendered
- *
- * You can use {$label} or {$html} placeholders to let the renderer know where
- * where the element label or the element html are positionned according to the
- * required tag. They will be replaced accordingly with the right value. You
- * can use the full smarty syntax here, especially a custom modifier for I18N.
- * For example:
- * {if $required}<span style="color: red;">*</span>{/if}{$label|translate}
- * will put a red star in front of the label if the element is required and
- * translate the label.
- *
- *
- * @param string The required element template
- * @access public
- * @return void
- */
- function setRequiredTemplate($template)
- {
- $this->_required = $template;
- } // end func setRequiredTemplate
-
- /**
- * Sets the way elements with validation errors are rendered
- *
- * You can use {$label} or {$html} placeholders to let the renderer know where
- * where the element label or the element html are positionned according to the
- * error message. They will be replaced accordingly with the right value.
- * The error message will replace the {$error} placeholder.
- * For example:
- * {if $error}<span style="color: red;">{$error}</span>{/if}<br />{$html}
- * will put the error message in red on top of the element html.
- *
- * If you want all error messages to be output in the main error block, use
- * the {$form.errors} part of the rendered array that collects all raw error
- * messages.
- *
- * If you want to place all error messages manually, do not specify {$html}
- * nor {$label}.
- *
- * Groups can have special layouts. With this kind of groups, you have to
- * place the formated error message manually. In this case, use {$form.group.error}
- * where you want the formated error message to appear in the form.
- *
- * @param string The element error template
- * @access public
- * @return void
- */
- function setErrorTemplate($template)
- {
- $this->_error = $template;
- } // end func setErrorTemplate
-}
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * A static renderer for HTML_QuickForm, makes an array of form content
+ * useful for a Smarty template
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Thomas Schulz <ths@4bconsult.de>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * A concrete renderer for HTML_QuickForm, makes an array of form contents
+ */
+require_once 'HTML/QuickForm/Renderer/Array.php';
+
+/**
+ * A static renderer for HTML_QuickForm, makes an array of form content
+ * useful for a Smarty template
+ *
+ * Based on old HTML_QuickForm::toArray() code and ITStatic renderer.
+ *
+ * The form array structure is the following:
+ * <pre>
+ * Array (
+ * [frozen] => whether the complete form is frozen'
+ * [javascript] => javascript for client-side validation
+ * [attributes] => attributes for <form> tag
+ * [hidden] => html of all hidden elements
+ * [requirednote] => note about the required elements
+ * [errors] => Array
+ * (
+ * [1st_element_name] => Error for the 1st element
+ * ...
+ * [nth_element_name] => Error for the nth element
+ * )
+ *
+ * [header] => Array
+ * (
+ * [1st_header_name] => Header text for the 1st header
+ * ...
+ * [nth_header_name] => Header text for the nth header
+ * )
+ *
+ * [1st_element_name] => Array for the 1st element
+ * ...
+ * [nth_element_name] => Array for the nth element
+ * </pre>
+ *
+ * where an element array has the form:
+ * <pre>
+ * (
+ * [name] => element name
+ * [value] => element value,
+ * [type] => type of the element
+ * [frozen] => whether element is frozen
+ * [label] => label for the element
+ * [required] => whether element is required
+ * // if element is not a group:
+ * [html] => HTML for the element
+ * // if element is a group:
+ * [separator] => separator for group elements
+ * [1st_gitem_name] => Array for the 1st element in group
+ * ...
+ * [nth_gitem_name] => Array for the nth element in group
+ * )
+ * )
+ * </pre>
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Thomas Schulz <ths@4bconsult.de>
+ * @version Release: 3.2.9
+ * @since 3.0
+ */
+class HTML_QuickForm_Renderer_ArraySmarty extends HTML_QuickForm_Renderer_Array
+{
+ /**#@+
+ * @access private
+ */
+ /**
+ * The Smarty template engine instance
+ * @var object
+ */
+ var $_tpl = null;
+
+ /**
+ * Current element index
+ * @var integer
+ */
+ var $_elementIdx = 0;
+
+ /**
+ * The current element index inside a group
+ * @var integer
+ */
+ var $_groupElementIdx = 0;
+
+ /**
+ * How to handle the required tag for required fields
+ * @var string
+ * @see setRequiredTemplate()
+ */
+ var $_required = '';
+
+ /**
+ * How to handle error messages in form validation
+ * @var string
+ * @see setErrorTemplate()
+ */
+ var $_error = '';
+ /**#@-*/
+
+ /**
+ * Constructor
+ *
+ * @param Smarty reference to the Smarty template engine instance
+ * @param bool true: render an array of labels to many labels, $key 0 to 'label' and the oterh to "label_$key"
+ * @access public
+ */
+ function HTML_QuickForm_Renderer_ArraySmarty(&$tpl, $staticLabels = false)
+ {
+ $this->HTML_QuickForm_Renderer_Array(false, $staticLabels);
+ $this->_tpl =& $tpl;
+ } // end constructor
+
+ /**
+ * Called when visiting a header element
+ *
+ * @param HTML_QuickForm_header header element being visited
+ * @access public
+ * @return void
+ */
+ function renderHeader(&$header)
+ {
+ if ($name = $header->getName()) {
+ $this->_ary['header'][$name] = $header->toHtml();
+ } else {
+ $this->_ary['header'][$this->_sectionCount] = $header->toHtml();
+ }
+ $this->_currentSection = $this->_sectionCount++;
+ } // end func renderHeader
+
+ /**
+ * Called when visiting a group, before processing any group elements
+ *
+ * @param HTML_QuickForm_group group being visited
+ * @param bool Whether a group is required
+ * @param string An error message associated with a group
+ * @access public
+ * @return void
+ */
+ function startGroup(&$group, $required, $error)
+ {
+ parent::startGroup($group, $required, $error);
+ $this->_groupElementIdx = 1;
+ } // end func startGroup
+
+ /**
+ * Creates an array representing an element containing
+ * the key for storing this
+ *
+ * @access private
+ * @param HTML_QuickForm_element form element being visited
+ * @param bool Whether an element is required
+ * @param string Error associated with the element
+ * @return array
+ */
+ function _elementToArray(&$element, $required, $error)
+ {
+ $ret = parent::_elementToArray($element, $required, $error);
+
+ if ('group' == $ret['type']) {
+ $ret['html'] = $element->toHtml();
+ // we don't need the elements, see the array structure
+ unset($ret['elements']);
+ }
+ if (($required || $error) && !empty($this->_required)){
+ $this->_renderRequired($ret['label'], $ret['html'], $required, $error);
+ }
+ if ($error && !empty($this->_error)) {
+ $this->_renderError($ret['label'], $ret['html'], $error);
+ $ret['error'] = $error;
+ }
+ // create keys for elements grouped by native group or name
+ if (strstr($ret['name'], '[') or $this->_currentGroup) {
+ // Fix for bug #8123: escape backslashes and quotes to prevent errors
+ // in eval(). The code below seems to handle the case where element
+ // name has unbalanced square brackets. Dunno whether we really
+ // need this after the fix for #8123, but I'm wary of making big
+ // changes to this code.
+ preg_match('/([^]]*)\\[([^]]*)\\]/', $ret['name'], $matches);
+ if (isset($matches[1])) {
+ $sKeysSub = substr_replace($ret['name'], '', 0, strlen($matches[1]));
+ $sKeysSub = str_replace(
+ array('\\', '\'', '[' , ']', '[\'\']'),
+ array('\\\\', '\\\'', '[\'', '\']', '[]' ),
+ $sKeysSub
+ );
+ $sKeys = '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $matches[1]) . '\']' . $sKeysSub;
+ } else {
+ $sKeys = '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $ret['name']) . '\']';
+ }
+ // special handling for elements in native groups
+ if ($this->_currentGroup) {
+ // skip unnamed group items unless radios: no name -> no static access
+ // identification: have the same key string as the parent group
+ if ($this->_currentGroup['keys'] == $sKeys and 'radio' != $ret['type']) {
+ return false;
+ }
+ // reduce string of keys by remove leading group keys
+ if (0 === strpos($sKeys, $this->_currentGroup['keys'])) {
+ $sKeys = substr_replace($sKeys, '', 0, strlen($this->_currentGroup['keys']));
+ }
+ }
+ // element without a name
+ } elseif ($ret['name'] == '') {
+ $sKeys = '[\'element_' . $this->_elementIdx . '\']';
+ // other elements
+ } else {
+ $sKeys = '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $ret['name']) . '\']';
+ }
+ // for radios: add extra key from value
+ if ('radio' == $ret['type'] and substr($sKeys, -2) != '[]') {
+ $sKeys .= '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $ret['value']) . '\']';
+ }
+ $this->_elementIdx++;
+ $ret['keys'] = $sKeys;
+ return $ret;
+ } // end func _elementToArray
+
+ /**
+ * Stores an array representation of an element in the form array
+ *
+ * @access private
+ * @param array Array representation of an element
+ * @return void
+ */
+ function _storeArray($elAry)
+ {
+ if ($elAry) {
+ $sKeys = $elAry['keys'];
+ unset($elAry['keys']);
+ // where should we put this element...
+ if (is_array($this->_currentGroup) && ('group' != $elAry['type'])) {
+ $toEval = '$this->_currentGroup' . $sKeys . ' = $elAry;';
+ } else {
+ $toEval = '$this->_ary' . $sKeys . ' = $elAry;';
+ }
+ eval($toEval);
+ }
+ return;
+ }
+
+ /**
+ * Called when an element is required
+ *
+ * This method will add the required tag to the element label and/or the element html
+ * such as defined with the method setRequiredTemplate.
+ *
+ * @param string The element label
+ * @param string The element html rendering
+ * @param boolean The element required
+ * @param string The element error
+ * @see setRequiredTemplate()
+ * @access private
+ * @return void
+ */
+ function _renderRequired(&$label, &$html, &$required, &$error)
+ {
+ $this->_tpl->assign(array(
+ 'label' => $label,
+ 'html' => $html,
+ 'required' => $required,
+ 'error' => $error
+ ));
+ if (!empty($label) && strpos($this->_required, $this->_tpl->left_delimiter . '$label') !== false) {
+ $label = $this->_tplFetch($this->_required);
+ }
+ if (!empty($html) && strpos($this->_required, $this->_tpl->left_delimiter . '$html') !== false) {
+ $html = $this->_tplFetch($this->_required);
+ }
+ $this->_tpl->clear_assign(array('label', 'html', 'required'));
+ } // end func _renderRequired
+
+ /**
+ * Called when an element has a validation error
+ *
+ * This method will add the error message to the element label or the element html
+ * such as defined with the method setErrorTemplate. If the error placeholder is not found
+ * in the template, the error will be displayed in the form error block.
+ *
+ * @param string The element label
+ * @param string The element html rendering
+ * @param string The element error
+ * @see setErrorTemplate()
+ * @access private
+ * @return void
+ */
+ function _renderError(&$label, &$html, &$error)
+ {
+ $this->_tpl->assign(array('label' => '', 'html' => '', 'error' => $error));
+ $error = $this->_tplFetch($this->_error);
+ $this->_tpl->assign(array('label' => $label, 'html' => $html));
+
+ if (!empty($label) && strpos($this->_error, $this->_tpl->left_delimiter . '$label') !== false) {
+ $label = $this->_tplFetch($this->_error);
+ } elseif (!empty($html) && strpos($this->_error, $this->_tpl->left_delimiter . '$html') !== false) {
+ $html = $this->_tplFetch($this->_error);
+ }
+ $this->_tpl->clear_assign(array('label', 'html', 'error'));
+ } // end func _renderError
+
+ /**
+ * Process an template sourced in a string with Smarty
+ *
+ * Smarty has no core function to render a template given as a string.
+ * So we use the smarty eval plugin function to do this.
+ *
+ * @param string The template source
+ * @access private
+ * @return void
+ */
+ function _tplFetch($tplSource)
+ {
+ if (!function_exists('smarty_function_eval')) {
+ require SMARTY_DIR . '/plugins/function.eval.php';
+ }
+ return smarty_function_eval(array('var' => $tplSource), $this->_tpl);
+ }// end func _tplFetch
+
+ /**
+ * Sets the way required elements are rendered
+ *
+ * You can use {$label} or {$html} placeholders to let the renderer know where
+ * where the element label or the element html are positionned according to the
+ * required tag. They will be replaced accordingly with the right value. You
+ * can use the full smarty syntax here, especially a custom modifier for I18N.
+ * For example:
+ * {if $required}<span style="color: red;">*</span>{/if}{$label|translate}
+ * will put a red star in front of the label if the element is required and
+ * translate the label.
+ *
+ *
+ * @param string The required element template
+ * @access public
+ * @return void
+ */
+ function setRequiredTemplate($template)
+ {
+ $this->_required = $template;
+ } // end func setRequiredTemplate
+
+ /**
+ * Sets the way elements with validation errors are rendered
+ *
+ * You can use {$label} or {$html} placeholders to let the renderer know where
+ * where the element label or the element html are positionned according to the
+ * error message. They will be replaced accordingly with the right value.
+ * The error message will replace the {$error} placeholder.
+ * For example:
+ * {if $error}<span style="color: red;">{$error}</span>{/if}<br />{$html}
+ * will put the error message in red on top of the element html.
+ *
+ * If you want all error messages to be output in the main error block, use
+ * the {$form.errors} part of the rendered array that collects all raw error
+ * messages.
+ *
+ * If you want to place all error messages manually, do not specify {$html}
+ * nor {$label}.
+ *
+ * Groups can have special layouts. With this kind of groups, you have to
+ * place the formated error message manually. In this case, use {$form.group.error}
+ * where you want the formated error message to appear in the form.
+ *
+ * @param string The element error template
+ * @access public
+ * @return void
+ */
+ function setErrorTemplate($template)
+ {
+ $this->_error = $template;
+ } // end func setErrorTemplate
+}
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Rule.php b/libs/HTML/QuickForm/Rule.php
index e172a43199..4870ad1720 100755
--- a/libs/HTML/QuickForm/Rule.php
+++ b/libs/HTML/QuickForm/Rule.php
@@ -1,82 +1,82 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Abstract base class for QuickForm validation rules
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Abstract base class for QuickForm validation rules
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 3.2
- * @abstract
- */
-class HTML_QuickForm_Rule
-{
- /**
- * Name of the rule to use in validate method
- *
- * This property is used in more global rules like Callback and Regex
- * to determine which callback and which regex is to be used for validation
- *
- * @var string
- * @access public
- */
- var $name;
-
- /**
- * Validates a value
- *
- * @access public
- * @abstract
- */
- function validate($value)
- {
- return true;
- }
-
- /**
- * Sets the rule name
- *
- * @param string rule name
- * @access public
- */
- function setName($ruleName)
- {
- $this->name = $ruleName;
- }
-
- /**
- * Returns the javascript test (the test should return true if the value is INVALID)
- *
- * @param mixed Options for the rule
- * @access public
- * @return array first element is code to setup validation, second is the check itself
- * @abstract
- */
- function getValidationScript($options = null)
- {
- return array('', '');
- }
-}
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 3.2
+ * @abstract
+ */
+class HTML_QuickForm_Rule
+{
+ /**
+ * Name of the rule to use in validate method
+ *
+ * This property is used in more global rules like Callback and Regex
+ * to determine which callback and which regex is to be used for validation
+ *
+ * @var string
+ * @access public
+ */
+ var $name;
+
+ /**
+ * Validates a value
+ *
+ * @access public
+ * @abstract
+ */
+ function validate($value)
+ {
+ return true;
+ }
+
+ /**
+ * Sets the rule name
+ *
+ * @param string rule name
+ * @access public
+ */
+ function setName($ruleName)
+ {
+ $this->name = $ruleName;
+ }
+
+ /**
+ * Returns the javascript test (the test should return true if the value is INVALID)
+ *
+ * @param mixed Options for the rule
+ * @access public
+ * @return array first element is code to setup validation, second is the check itself
+ * @abstract
+ */
+ function getValidationScript($options = null)
+ {
+ return array('', '');
+ }
+}
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Rule/Callback.php b/libs/HTML/QuickForm/Rule/Callback.php
index e35b79f223..d5dec846a6 100755
--- a/libs/HTML/QuickForm/Rule/Callback.php
+++ b/libs/HTML/QuickForm/Rule/Callback.php
@@ -1,124 +1,124 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Validates values using callback functions or methods
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Abstract base class for QuickForm validation rules
- */
-require_once 'HTML/QuickForm/Rule.php';
-
-/**
- * Validates values using callback functions or methods
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_Rule_Callback extends HTML_QuickForm_Rule
-{
- /**
- * Array of callbacks
- *
- * Array is in the format:
- * $_data['rulename'] = array('functionname', 'classname');
- * If the callback is not a method, then the class name is not set.
- *
- * @var array
- * @access private
- */
- var $_data = array();
-
- /**
- * Whether to use BC mode for specific rules
- *
- * Previous versions of QF passed element's name as a first parameter
- * to validation functions, but not to validation methods. This behaviour
- * is emulated if you are using 'function' as rule type when registering.
- *
- * @var array
- * @access private
- */
- var $_BCMode = array();
-
- /**
- * Validates a value using a callback
- *
- * @param string $value Value to be checked
- * @param mixed $options Options for callback
- * @access public
- * @return boolean true if value is valid
- */
- function validate($value, $options = null)
- {
- if (isset($this->_data[$this->name])) {
- $callback = $this->_data[$this->name];
- if (isset($callback[1])) {
- return call_user_func(array($callback[1], $callback[0]), $value, $options);
- } elseif ($this->_BCMode[$this->name]) {
- return $callback[0]('', $value, $options);
- } else {
- return $callback[0]($value, $options);
- }
- } elseif (is_callable($options)) {
- return call_user_func($options, $value);
- } else {
- return true;
- }
- } // end func validate
-
- /**
- * Adds new callbacks to the callbacks list
- *
- * @param string $name Name of rule
- * @param string $callback Name of function or method
- * @param string $class Name of class containing the method
- * @param bool $BCMode Backwards compatibility mode
- * @access public
- */
- function addData($name, $callback, $class = null, $BCMode = false)
- {
- if (!empty($class)) {
- $this->_data[$name] = array($callback, $class);
- } else {
- $this->_data[$name] = array($callback);
- }
- $this->_BCMode[$name] = $BCMode;
- } // end func addData
-
-
- function getValidationScript($options = null)
- {
- if (isset($this->_data[$this->name])) {
- $callback = $this->_data[$this->name][0];
- $params = ($this->_BCMode[$this->name]? "'', {jsVar}": '{jsVar}') .
- (isset($options)? ", '{$options}'": '');
- } else {
- $callback = is_array($options)? $options[1]: $options;
- $params = '{jsVar}';
- }
- return array('', "{jsVar} != '' && !{$callback}({$params})");
- } // end func getValidationScript
-
-} // end class HTML_QuickForm_Rule_Callback
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Validates values using callback functions or methods
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ */
+require_once 'HTML/QuickForm/Rule.php';
+
+/**
+ * Validates values using callback functions or methods
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_Rule_Callback extends HTML_QuickForm_Rule
+{
+ /**
+ * Array of callbacks
+ *
+ * Array is in the format:
+ * $_data['rulename'] = array('functionname', 'classname');
+ * If the callback is not a method, then the class name is not set.
+ *
+ * @var array
+ * @access private
+ */
+ var $_data = array();
+
+ /**
+ * Whether to use BC mode for specific rules
+ *
+ * Previous versions of QF passed element's name as a first parameter
+ * to validation functions, but not to validation methods. This behaviour
+ * is emulated if you are using 'function' as rule type when registering.
+ *
+ * @var array
+ * @access private
+ */
+ var $_BCMode = array();
+
+ /**
+ * Validates a value using a callback
+ *
+ * @param string $value Value to be checked
+ * @param mixed $options Options for callback
+ * @access public
+ * @return boolean true if value is valid
+ */
+ function validate($value, $options = null)
+ {
+ if (isset($this->_data[$this->name])) {
+ $callback = $this->_data[$this->name];
+ if (isset($callback[1])) {
+ return call_user_func(array($callback[1], $callback[0]), $value, $options);
+ } elseif ($this->_BCMode[$this->name]) {
+ return $callback[0]('', $value, $options);
+ } else {
+ return $callback[0]($value, $options);
+ }
+ } elseif (is_callable($options)) {
+ return call_user_func($options, $value);
+ } else {
+ return true;
+ }
+ } // end func validate
+
+ /**
+ * Adds new callbacks to the callbacks list
+ *
+ * @param string $name Name of rule
+ * @param string $callback Name of function or method
+ * @param string $class Name of class containing the method
+ * @param bool $BCMode Backwards compatibility mode
+ * @access public
+ */
+ function addData($name, $callback, $class = null, $BCMode = false)
+ {
+ if (!empty($class)) {
+ $this->_data[$name] = array($callback, $class);
+ } else {
+ $this->_data[$name] = array($callback);
+ }
+ $this->_BCMode[$name] = $BCMode;
+ } // end func addData
+
+
+ function getValidationScript($options = null)
+ {
+ if (isset($this->_data[$this->name])) {
+ $callback = $this->_data[$this->name][0];
+ $params = ($this->_BCMode[$this->name]? "'', {jsVar}": '{jsVar}') .
+ (isset($options)? ", '{$options}'": '');
+ } else {
+ $callback = is_array($options)? $options[1]: $options;
+ $params = '{jsVar}';
+ }
+ return array('', "{jsVar} != '' && !{$callback}({$params})");
+ } // end func getValidationScript
+
+} // end class HTML_QuickForm_Rule_Callback
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Rule/Compare.php b/libs/HTML/QuickForm/Rule/Compare.php
index e7d491301d..7b8ed4a283 100755
--- a/libs/HTML/QuickForm/Rule/Compare.php
+++ b/libs/HTML/QuickForm/Rule/Compare.php
@@ -1,105 +1,105 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Rule to compare two form fields
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Abstract base class for QuickForm validation rules
- */
-require_once 'HTML/QuickForm/Rule.php';
-
-/**
- * Rule to compare two form fields
- *
- * The most common usage for this is to ensure that the password
- * confirmation field matches the password field
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_Rule_Compare extends HTML_QuickForm_Rule
-{
- /**
- * Possible operators to use
- * @var array
- * @access private
- */
- var $_operators = array(
- 'eq' => '===',
- 'neq' => '!==',
- 'gt' => '>',
- 'gte' => '>=',
- 'lt' => '<',
- 'lte' => '<=',
- '==' => '===',
- '!=' => '!=='
- );
-
-
- /**
- * Returns the operator to use for comparing the values
- *
- * @access private
- * @param string operator name
- * @return string operator to use for validation
- */
- function _findOperator($name)
- {
- if (empty($name)) {
- return '===';
- } elseif (isset($this->_operators[$name])) {
- return $this->_operators[$name];
- } elseif (in_array($name, $this->_operators)) {
- return $name;
- } else {
- return '===';
- }
- }
-
-
- function validate($values, $operator = null)
- {
- $operator = $this->_findOperator($operator);
- if ('===' != $operator && '!==' != $operator) {
- $compareFn = create_function('$a, $b', 'return floatval($a) ' . $operator . ' floatval($b);');
- } else {
- $compareFn = create_function('$a, $b', 'return strval($a) ' . $operator . ' strval($b);');
- }
-
- return $compareFn($values[0], $values[1]);
- }
-
-
- function getValidationScript($operator = null)
- {
- $operator = $this->_findOperator($operator);
- if ('===' != $operator && '!==' != $operator) {
- $check = "!(Number({jsVar}[0]) {$operator} Number({jsVar}[1]))";
- } else {
- $check = "!(String({jsVar}[0]) {$operator} String({jsVar}[1]))";
- }
- return array('', "'' != {jsVar}[0] && {$check}");
- }
-}
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Rule to compare two form fields
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ */
+require_once 'HTML/QuickForm/Rule.php';
+
+/**
+ * Rule to compare two form fields
+ *
+ * The most common usage for this is to ensure that the password
+ * confirmation field matches the password field
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_Rule_Compare extends HTML_QuickForm_Rule
+{
+ /**
+ * Possible operators to use
+ * @var array
+ * @access private
+ */
+ var $_operators = array(
+ 'eq' => '===',
+ 'neq' => '!==',
+ 'gt' => '>',
+ 'gte' => '>=',
+ 'lt' => '<',
+ 'lte' => '<=',
+ '==' => '===',
+ '!=' => '!=='
+ );
+
+
+ /**
+ * Returns the operator to use for comparing the values
+ *
+ * @access private
+ * @param string operator name
+ * @return string operator to use for validation
+ */
+ function _findOperator($name)
+ {
+ if (empty($name)) {
+ return '===';
+ } elseif (isset($this->_operators[$name])) {
+ return $this->_operators[$name];
+ } elseif (in_array($name, $this->_operators)) {
+ return $name;
+ } else {
+ return '===';
+ }
+ }
+
+
+ function validate($values, $operator = null)
+ {
+ $operator = $this->_findOperator($operator);
+ if ('===' != $operator && '!==' != $operator) {
+ $compareFn = create_function('$a, $b', 'return floatval($a) ' . $operator . ' floatval($b);');
+ } else {
+ $compareFn = create_function('$a, $b', 'return strval($a) ' . $operator . ' strval($b);');
+ }
+
+ return $compareFn($values[0], $values[1]);
+ }
+
+
+ function getValidationScript($operator = null)
+ {
+ $operator = $this->_findOperator($operator);
+ if ('===' != $operator && '!==' != $operator) {
+ $check = "!(Number({jsVar}[0]) {$operator} Number({jsVar}[1]))";
+ } else {
+ $check = "!(String({jsVar}[0]) {$operator} String({jsVar}[1]))";
+ }
+ return array('', "'' != {jsVar}[0] && {$check}");
+ }
+}
+?>
diff --git a/libs/HTML/QuickForm/Rule/Email.php b/libs/HTML/QuickForm/Rule/Email.php
index bb30c6546c..06ca30f172 100755
--- a/libs/HTML/QuickForm/Rule/Email.php
+++ b/libs/HTML/QuickForm/Rule/Email.php
@@ -1,73 +1,73 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Email validation rule
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Abstract base class for QuickForm validation rules
- */
-require_once 'HTML/QuickForm/Rule.php';
-
-/**
- * Email validation rule
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_Rule_Email extends HTML_QuickForm_Rule
-{
- var $regex = '/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/';
-
- /**
- * Validates an email address
- *
- * @param string $email Email address
- * @param boolean $checkDomain True if dns check should be performed
- * @access public
- * @return boolean true if email is valid
- */
- function validate($email, $checkDomain = false)
- {
- // Fix for bug #10799: add 'D' modifier to regex
- if (preg_match($this->regex . 'D', $email)) {
- if ($checkDomain && function_exists('checkdnsrr')) {
- $tokens = explode('@', $email);
- if (checkdnsrr($tokens[1], 'MX') || checkdnsrr($tokens[1], 'A')) {
- return true;
- }
- return false;
- }
- return true;
- }
- return false;
- } // end func validate
-
-
- function getValidationScript($options = null)
- {
- return array(" var regex = " . $this->regex . ";\n", "{jsVar} != '' && !regex.test({jsVar})");
- } // end func getValidationScript
-
-} // end class HTML_QuickForm_Rule_Email
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Email validation rule
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ */
+require_once 'HTML/QuickForm/Rule.php';
+
+/**
+ * Email validation rule
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_Rule_Email extends HTML_QuickForm_Rule
+{
+ var $regex = '/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/';
+
+ /**
+ * Validates an email address
+ *
+ * @param string $email Email address
+ * @param boolean $checkDomain True if dns check should be performed
+ * @access public
+ * @return boolean true if email is valid
+ */
+ function validate($email, $checkDomain = false)
+ {
+ // Fix for bug #10799: add 'D' modifier to regex
+ if (preg_match($this->regex . 'D', $email)) {
+ if ($checkDomain && function_exists('checkdnsrr')) {
+ $tokens = explode('@', $email);
+ if (checkdnsrr($tokens[1], 'MX') || checkdnsrr($tokens[1], 'A')) {
+ return true;
+ }
+ return false;
+ }
+ return true;
+ }
+ return false;
+ } // end func validate
+
+
+ function getValidationScript($options = null)
+ {
+ return array(" var regex = " . $this->regex . ";\n", "{jsVar} != '' && !regex.test({jsVar})");
+ } // end func getValidationScript
+
+} // end class HTML_QuickForm_Rule_Email
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Rule/Range.php b/libs/HTML/QuickForm/Rule/Range.php
index aaa32d0660..76f1837a3e 100755
--- a/libs/HTML/QuickForm/Rule/Range.php
+++ b/libs/HTML/QuickForm/Rule/Range.php
@@ -1,75 +1,75 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Checks that the length of value is within range
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Abstract base class for QuickForm validation rules
- */
-require_once 'HTML/QuickForm/Rule.php';
-
-/**
- * Checks that the length of value is within range
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_Rule_Range extends HTML_QuickForm_Rule
-{
- /**
- * Validates a value using a range comparison
- *
- * @param string $value Value to be checked
- * @param mixed $options Int for length, array for range
- * @access public
- * @return boolean true if value is valid
- */
- function validate($value, $options)
- {
- $length = strlen($value);
- switch ($this->name) {
- case 'minlength': return ($length >= $options);
- case 'maxlength': return ($length <= $options);
- default: return ($length >= $options[0] && $length <= $options[1]);
- }
- } // end func validate
-
-
- function getValidationScript($options = null)
- {
- switch ($this->name) {
- case 'minlength':
- $test = '{jsVar}.length < '.$options;
- break;
- case 'maxlength':
- $test = '{jsVar}.length > '.$options;
- break;
- default:
- $test = '({jsVar}.length < '.$options[0].' || {jsVar}.length > '.$options[1].')';
- }
- return array('', "{jsVar} != '' && {$test}");
- } // end func getValidationScript
-
-} // end class HTML_QuickForm_Rule_Range
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Checks that the length of value is within range
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ */
+require_once 'HTML/QuickForm/Rule.php';
+
+/**
+ * Checks that the length of value is within range
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_Rule_Range extends HTML_QuickForm_Rule
+{
+ /**
+ * Validates a value using a range comparison
+ *
+ * @param string $value Value to be checked
+ * @param mixed $options Int for length, array for range
+ * @access public
+ * @return boolean true if value is valid
+ */
+ function validate($value, $options)
+ {
+ $length = strlen($value);
+ switch ($this->name) {
+ case 'minlength': return ($length >= $options);
+ case 'maxlength': return ($length <= $options);
+ default: return ($length >= $options[0] && $length <= $options[1]);
+ }
+ } // end func validate
+
+
+ function getValidationScript($options = null)
+ {
+ switch ($this->name) {
+ case 'minlength':
+ $test = '{jsVar}.length < '.$options;
+ break;
+ case 'maxlength':
+ $test = '{jsVar}.length > '.$options;
+ break;
+ default:
+ $test = '({jsVar}.length < '.$options[0].' || {jsVar}.length > '.$options[1].')';
+ }
+ return array('', "{jsVar} != '' && {$test}");
+ } // end func getValidationScript
+
+} // end class HTML_QuickForm_Rule_Range
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Rule/Regex.php b/libs/HTML/QuickForm/Rule/Regex.php
index bc060b9887..2417a022e2 100755
--- a/libs/HTML/QuickForm/Rule/Regex.php
+++ b/libs/HTML/QuickForm/Rule/Regex.php
@@ -1,101 +1,101 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Validates values using regular expressions
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Abstract base class for QuickForm validation rules
- */
-require_once 'HTML/QuickForm/Rule.php';
-
-/**
- * Validates values using regular expressions
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_Rule_Regex extends HTML_QuickForm_Rule
-{
- /**
- * Array of regular expressions
- *
- * Array is in the format:
- * $_data['rulename'] = 'pattern';
- *
- * @var array
- * @access private
- */
- var $_data = array(
- 'lettersonly' => '/^[a-zA-Z]+$/',
- 'alphanumeric' => '/^[a-zA-Z0-9]+$/',
- 'numeric' => '/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/',
- 'nopunctuation' => '/^[^().\/\*\^\?#!@$%+=,\"\'><~\[\]{}]+$/',
- 'nonzero' => '/^-?[1-9][0-9]*/'
- );
-
- /**
- * Validates a value using a regular expression
- *
- * @param string $value Value to be checked
- * @param string $regex Regular expression
- * @access public
- * @return boolean true if value is valid
- */
- function validate($value, $regex = null)
- {
- // Fix for bug #10799: add 'D' modifier to regex
- if (isset($this->_data[$this->name])) {
- if (!preg_match($this->_data[$this->name] . 'D', $value)) {
- return false;
- }
- } else {
- if (!preg_match($regex . 'D', $value)) {
- return false;
- }
- }
- return true;
- } // end func validate
-
- /**
- * Adds new regular expressions to the list
- *
- * @param string $name Name of rule
- * @param string $pattern Regular expression pattern
- * @access public
- */
- function addData($name, $pattern)
- {
- $this->_data[$name] = $pattern;
- } // end func addData
-
-
- function getValidationScript($options = null)
- {
- $regex = isset($this->_data[$this->name]) ? $this->_data[$this->name] : $options;
-
- return array(" var regex = " . $regex . ";\n", "{jsVar} != '' && !regex.test({jsVar})");
- } // end func getValidationScript
-
-} // end class HTML_QuickForm_Rule_Regex
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Validates values using regular expressions
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ */
+require_once 'HTML/QuickForm/Rule.php';
+
+/**
+ * Validates values using regular expressions
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_Rule_Regex extends HTML_QuickForm_Rule
+{
+ /**
+ * Array of regular expressions
+ *
+ * Array is in the format:
+ * $_data['rulename'] = 'pattern';
+ *
+ * @var array
+ * @access private
+ */
+ var $_data = array(
+ 'lettersonly' => '/^[a-zA-Z]+$/',
+ 'alphanumeric' => '/^[a-zA-Z0-9]+$/',
+ 'numeric' => '/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/',
+ 'nopunctuation' => '/^[^().\/\*\^\?#!@$%+=,\"\'><~\[\]{}]+$/',
+ 'nonzero' => '/^-?[1-9][0-9]*/'
+ );
+
+ /**
+ * Validates a value using a regular expression
+ *
+ * @param string $value Value to be checked
+ * @param string $regex Regular expression
+ * @access public
+ * @return boolean true if value is valid
+ */
+ function validate($value, $regex = null)
+ {
+ // Fix for bug #10799: add 'D' modifier to regex
+ if (isset($this->_data[$this->name])) {
+ if (!preg_match($this->_data[$this->name] . 'D', $value)) {
+ return false;
+ }
+ } else {
+ if (!preg_match($regex . 'D', $value)) {
+ return false;
+ }
+ }
+ return true;
+ } // end func validate
+
+ /**
+ * Adds new regular expressions to the list
+ *
+ * @param string $name Name of rule
+ * @param string $pattern Regular expression pattern
+ * @access public
+ */
+ function addData($name, $pattern)
+ {
+ $this->_data[$name] = $pattern;
+ } // end func addData
+
+
+ function getValidationScript($options = null)
+ {
+ $regex = isset($this->_data[$this->name]) ? $this->_data[$this->name] : $options;
+
+ return array(" var regex = " . $regex . ";\n", "{jsVar} != '' && !regex.test({jsVar})");
+ } // end func getValidationScript
+
+} // end class HTML_QuickForm_Rule_Regex
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/Rule/Required.php b/libs/HTML/QuickForm/Rule/Required.php
index 831efcf3ee..f8cc8f5924 100755
--- a/libs/HTML/QuickForm/Rule/Required.php
+++ b/libs/HTML/QuickForm/Rule/Required.php
@@ -1,63 +1,63 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Required elements validation
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Abstract base class for QuickForm validation rules
- */
-require_once 'HTML/QuickForm/Rule.php';
-
-/**
- * Required elements validation
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_Rule_Required extends HTML_QuickForm_Rule
-{
- /**
- * Checks if an element is empty
- *
- * @param string $value Value to check
- * @param mixed $options Not used yet
- * @access public
- * @return boolean true if value is not empty
- */
- function validate($value, $options = null)
- {
- if ((string)$value == '') {
- return false;
- }
- return true;
- } // end func validate
-
-
- function getValidationScript($options = null)
- {
- return array('', "{jsVar} == ''");
- } // end func getValidationScript
-
-} // end class HTML_QuickForm_Rule_Required
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Required elements validation
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Abstract base class for QuickForm validation rules
+ */
+require_once 'HTML/QuickForm/Rule.php';
+
+/**
+ * Required elements validation
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_Rule_Required extends HTML_QuickForm_Rule
+{
+ /**
+ * Checks if an element is empty
+ *
+ * @param string $value Value to check
+ * @param mixed $options Not used yet
+ * @access public
+ * @return boolean true if value is not empty
+ */
+ function validate($value, $options = null)
+ {
+ if ((string)$value == '') {
+ return false;
+ }
+ return true;
+ } // end func validate
+
+
+ function getValidationScript($options = null)
+ {
+ return array('', "{jsVar} == ''");
+ } // end func getValidationScript
+
+} // end class HTML_QuickForm_Rule_Required
+?>
diff --git a/libs/HTML/QuickForm/RuleRegistry.php b/libs/HTML/QuickForm/RuleRegistry.php
index e77c338a25..cb1a74eb18 100755
--- a/libs/HTML/QuickForm/RuleRegistry.php
+++ b/libs/HTML/QuickForm/RuleRegistry.php
@@ -1,349 +1,349 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Registers rule objects and uses them for validation
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Registers rule objects and uses them for validation
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_RuleRegistry
-{
- /**
- * Array containing references to used rules
- * @var array
- * @access private
- */
- var $_rules = array();
-
-
- /**
- * Returns a singleton of HTML_QuickForm_RuleRegistry
- *
- * Usually, only one RuleRegistry object is needed, this is the reason
- * why it is recommended to use this method to get the validation object.
- *
- * @access public
- * @static
- * @return HTML_QuickForm_RuleRegistry
- */
- static function &singleton()
- {
- static $obj;
- if (!isset($obj)) {
- $obj = new HTML_QuickForm_RuleRegistry();
- }
- return $obj;
- } // end func singleton
-
- /**
- * Registers a new validation rule
- *
- * In order to use a custom rule in your form, you need to register it
- * first. For regular expressions, one can directly use the 'regex' type
- * rule in addRule(), this is faster than registering the rule.
- *
- * Functions and methods can be registered. Use the 'function' type.
- * When registering a method, specify the class name as second parameter.
- *
- * You can also register an HTML_QuickForm_Rule subclass with its own
- * validate() method.
- *
- * @param string $ruleName Name of validation rule
- * @param string $type Either: 'regex', 'function' or null
- * @param string $data1 Name of function, regular expression or
- * HTML_QuickForm_Rule object class name
- * @param string $data2 Object parent of above function or HTML_QuickForm_Rule file path
- * @access public
- * @return void
- */
- function registerRule($ruleName, $type, $data1, $data2 = null)
- {
- $type = strtolower($type);
- if ($type == 'regex') {
- // Regular expression
- $rule =& $this->getRule('regex');
- $rule->addData($ruleName, $data1);
- $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = $GLOBALS['_HTML_QuickForm_registered_rules']['regex'];
-
- } elseif ($type == 'function' || $type == 'callback') {
- // Callback function
- $rule =& $this->getRule('callback');
- $rule->addData($ruleName, $data1, $data2, 'function' == $type);
- $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = $GLOBALS['_HTML_QuickForm_registered_rules']['callback'];
-
- } elseif (is_object($data1)) {
- // An instance of HTML_QuickForm_Rule
- $this->_rules[strtolower(get_class($data1))] = $data1;
- $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = array(strtolower(get_class($data1)), null);
-
- } else {
- // Rule class name
- $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = array(strtolower($data1), $data2);
- }
- } // end func registerRule
-
- /**
- * Returns a reference to the requested rule object
- *
- * @param string $ruleName Name of the requested rule
- * @access public
- * @return HTML_QuickForm_Rule
- */
- function &getRule($ruleName)
- {
- list($class, $path) = $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName];
-
- if (!isset($this->_rules[$class])) {
- if (!empty($path)) {
- include_once($path);
- }
- $this->_rules[$class] = new $class();
- }
- $this->_rules[$class]->setName($ruleName);
- return $this->_rules[$class];
- } // end func getRule
-
- /**
- * Performs validation on the given values
- *
- * @param string $ruleName Name of the rule to be used
- * @param mixed $values Can be a scalar or an array of values
- * to be validated
- * @param mixed $options Options used by the rule
- * @param mixed $multiple Whether to validate an array of values altogether
- * @access public
- * @return mixed true if no error found, int of valid values (when an array of values is given) or false if error
- */
- function validate($ruleName, $values, $options = null, $multiple = false)
- {
- $rule =& $this->getRule($ruleName);
-
- if (is_array($values) && !$multiple) {
- $result = 0;
- foreach ($values as $value) {
- if ($rule->validate($value, $options) === true) {
- $result++;
- }
- }
- return ($result == 0) ? false : $result;
- } else {
- return $rule->validate($values, $options);
- }
- } // end func validate
-
- /**
- * Returns the validation test in javascript code
- *
- * @param array|HTML_QuickForm_element Element(s) the rule applies to
- * @param string Element name, in case $element is
- * not an array
- * @param array Rule data
- * @access public
- * @return string JavaScript for the rule
- */
- function getValidationScript(&$element, $elementName, $ruleData)
- {
- $reset = (isset($ruleData['reset'])) ? $ruleData['reset'] : false;
- $rule =& $this->getRule($ruleData['type']);
- if (!is_array($element)) {
- list($jsValue, $jsReset) = $this->_getJsValue($element, $elementName, $reset, null);
- } else {
- $jsValue = " value = new Array();\n";
- $jsReset = '';
- for ($i = 0; $i < count($element); $i++) {
- list($tmp_value, $tmp_reset) = $this->_getJsValue($element[$i], $element[$i]->getName(), $reset, $i);
- $jsValue .= "\n" . $tmp_value;
- $jsReset .= $tmp_reset;
- }
- }
- $jsField = isset($ruleData['group'])? $ruleData['group']: $elementName;
- list ($jsPrefix, $jsCheck) = $rule->getValidationScript($ruleData['format']);
- if (!isset($ruleData['howmany'])) {
- $js = $jsValue . "\n" . $jsPrefix .
- " if (" . str_replace('{jsVar}', 'value', $jsCheck) . " && !errFlag['{$jsField}']) {\n" .
- " errFlag['{$jsField}'] = true;\n" .
- " _qfMsg = _qfMsg + '\\n - {$ruleData['message']}';\n" .
- $jsReset .
- " }\n";
- } else {
- $js = $jsValue . "\n" . $jsPrefix .
- " var res = 0;\n" .
- " for (var i = 0; i < value.length; i++) {\n" .
- " if (!(" . str_replace('{jsVar}', 'value[i]', $jsCheck) . ")) {\n" .
- " res++;\n" .
- " }\n" .
- " }\n" .
- " if (res < {$ruleData['howmany']} && !errFlag['{$jsField}']) {\n" .
- " errFlag['{$jsField}'] = true;\n" .
- " _qfMsg = _qfMsg + '\\n - {$ruleData['message']}';\n" .
- $jsReset .
- " }\n";
- }
- return $js;
- } // end func getValidationScript
-
-
- /**
- * Returns JavaScript to get and to reset the element's value
- *
- * @access private
- * @param HTML_QuickForm_element element being processed
- * @param string element's name
- * @param bool whether to generate JavaScript to reset
- * the value
- * @param integer value's index in the array (only used for
- * multielement rules)
- * @return array first item is value javascript, second is reset
- */
- function _getJsValue(&$element, $elementName, $reset = false, $index = null)
- {
- $jsIndex = isset($index)? '[' . $index . ']': '';
- $tmp_reset = $reset? " var field = frm.elements['$elementName'];\n": '';
- if (is_a($element, 'html_quickform_group')) {
- $value = " _qfGroups['{$elementName}'] = {";
- $elements =& $element->getElements();
- for ($i = 0, $count = count($elements); $i < $count; $i++) {
- $append = ($elements[$i]->getType() == 'select' && $elements[$i]->getMultiple())? '[]': '';
- $value .= "'" . $element->getElementName($i) . $append . "': true" .
- ($i < $count - 1? ', ': '');
- }
- $value .=
- "};\n" .
- " value{$jsIndex} = new Array();\n" .
- " var valueIdx = 0;\n" .
- " for (var i = 0; i < frm.elements.length; i++) {\n" .
- " var _element = frm.elements[i];\n" .
- " if (_element.name in _qfGroups['{$elementName}']) {\n" .
- " switch (_element.type) {\n" .
- " case 'checkbox':\n" .
- " case 'radio':\n" .
- " if (_element.checked) {\n" .
- " value{$jsIndex}[valueIdx++] = _element.value;\n" .
- " }\n" .
- " break;\n" .
- " case 'select-one':\n" .
- " if (-1 != _element.selectedIndex) {\n" .
- " value{$jsIndex}[valueIdx++] = _element.options[_element.selectedIndex].value;\n" .
- " }\n" .
- " break;\n" .
- " case 'select-multiple':\n" .
- " var tmpVal = new Array();\n" .
- " var tmpIdx = 0;\n" .
- " for (var j = 0; j < _element.options.length; j++) {\n" .
- " if (_element.options[j].selected) {\n" .
- " tmpVal[tmpIdx++] = _element.options[j].value;\n" .
- " }\n" .
- " }\n" .
- " if (tmpIdx > 0) {\n" .
- " value{$jsIndex}[valueIdx++] = tmpVal;\n" .
- " }\n" .
- " break;\n" .
- " default:\n" .
- " value{$jsIndex}[valueIdx++] = _element.value;\n" .
- " }\n" .
- " }\n" .
- " }\n";
- if ($reset) {
- $tmp_reset =
- " for (var i = 0; i < frm.elements.length; i++) {\n" .
- " var _element = frm.elements[i];\n" .
- " if (_element.name in _qfGroups['{$elementName}']) {\n" .
- " switch (_element.type) {\n" .
- " case 'checkbox':\n" .
- " case 'radio':\n" .
- " _element.checked = _element.defaultChecked;\n" .
- " break;\n" .
- " case 'select-one':\n" .
- " case 'select-multiple':\n" .
- " for (var j = 0; j < _element.options.length; j++) {\n" .
- " _element.options[j].selected = _element.options[j].defaultSelected;\n" .
- " }\n" .
- " break;\n" .
- " default:\n" .
- " _element.value = _element.defaultValue;\n" .
- " }\n" .
- " }\n" .
- " }\n";
- }
-
- } elseif ($element->getType() == 'select') {
- if ($element->getMultiple()) {
- $elementName .= '[]';
- $value =
- " value{$jsIndex} = new Array();\n" .
- " var valueIdx = 0;\n" .
- " for (var i = 0; i < frm.elements['{$elementName}'].options.length; i++) {\n" .
- " if (frm.elements['{$elementName}'].options[i].selected) {\n" .
- " value{$jsIndex}[valueIdx++] = frm.elements['{$elementName}'].options[i].value;\n" .
- " }\n" .
- " }\n";
- } else {
- $value = " value{$jsIndex} = frm.elements['{$elementName}'].selectedIndex == -1? '': frm.elements['{$elementName}'].options[frm.elements['{$elementName}'].selectedIndex].value;\n";
- }
- if ($reset) {
- $tmp_reset .=
- " for (var i = 0; i < field.options.length; i++) {\n" .
- " field.options[i].selected = field.options[i].defaultSelected;\n" .
- " }\n";
- }
-
- } elseif ($element->getType() == 'checkbox') {
- if (is_a($element, 'html_quickform_advcheckbox')) {
- $value = " value{$jsIndex} = frm.elements['$elementName'][1].checked? frm.elements['$elementName'][1].value: frm.elements['$elementName'][0].value;\n";
- $tmp_reset .= $reset ? " field[1].checked = field[1].defaultChecked;\n" : '';
- } else {
- $value = " value{$jsIndex} = frm.elements['$elementName'].checked? '1': '';\n";
- $tmp_reset .= $reset ? " field.checked = field.defaultChecked;\n" : '';
- }
-
- } elseif ($element->getType() == 'radio') {
- $value = " value{$jsIndex} = '';\n" .
- // Fix for bug #5644
- " var els = 'length' in frm.elements['$elementName']? frm.elements['$elementName']: [ frm.elements['$elementName'] ];\n" .
- " for (var i = 0; i < els.length; i++) {\n" .
- " if (els[i].checked) {\n" .
- " value{$jsIndex} = els[i].value;\n" .
- " }\n" .
- " }";
- if ($reset) {
- $tmp_reset .= " for (var i = 0; i < field.length; i++) {\n" .
- " field[i].checked = field[i].defaultChecked;\n" .
- " }";
- }
-
- } else {
- $value = " value{$jsIndex} = frm.elements['$elementName'].value;";
- $tmp_reset .= ($reset) ? " field.value = field.defaultValue;\n" : '';
- }
- return array($value, $tmp_reset);
- }
-} // end class HTML_QuickForm_RuleRegistry
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Registers rule objects and uses them for validation
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Registers rule objects and uses them for validation
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_RuleRegistry
+{
+ /**
+ * Array containing references to used rules
+ * @var array
+ * @access private
+ */
+ var $_rules = array();
+
+
+ /**
+ * Returns a singleton of HTML_QuickForm_RuleRegistry
+ *
+ * Usually, only one RuleRegistry object is needed, this is the reason
+ * why it is recommended to use this method to get the validation object.
+ *
+ * @access public
+ * @static
+ * @return HTML_QuickForm_RuleRegistry
+ */
+ static function &singleton()
+ {
+ static $obj;
+ if (!isset($obj)) {
+ $obj = new HTML_QuickForm_RuleRegistry();
+ }
+ return $obj;
+ } // end func singleton
+
+ /**
+ * Registers a new validation rule
+ *
+ * In order to use a custom rule in your form, you need to register it
+ * first. For regular expressions, one can directly use the 'regex' type
+ * rule in addRule(), this is faster than registering the rule.
+ *
+ * Functions and methods can be registered. Use the 'function' type.
+ * When registering a method, specify the class name as second parameter.
+ *
+ * You can also register an HTML_QuickForm_Rule subclass with its own
+ * validate() method.
+ *
+ * @param string $ruleName Name of validation rule
+ * @param string $type Either: 'regex', 'function' or null
+ * @param string $data1 Name of function, regular expression or
+ * HTML_QuickForm_Rule object class name
+ * @param string $data2 Object parent of above function or HTML_QuickForm_Rule file path
+ * @access public
+ * @return void
+ */
+ function registerRule($ruleName, $type, $data1, $data2 = null)
+ {
+ $type = strtolower($type);
+ if ($type == 'regex') {
+ // Regular expression
+ $rule =& $this->getRule('regex');
+ $rule->addData($ruleName, $data1);
+ $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = $GLOBALS['_HTML_QuickForm_registered_rules']['regex'];
+
+ } elseif ($type == 'function' || $type == 'callback') {
+ // Callback function
+ $rule =& $this->getRule('callback');
+ $rule->addData($ruleName, $data1, $data2, 'function' == $type);
+ $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = $GLOBALS['_HTML_QuickForm_registered_rules']['callback'];
+
+ } elseif (is_object($data1)) {
+ // An instance of HTML_QuickForm_Rule
+ $this->_rules[strtolower(get_class($data1))] = $data1;
+ $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = array(strtolower(get_class($data1)), null);
+
+ } else {
+ // Rule class name
+ $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName] = array(strtolower($data1), $data2);
+ }
+ } // end func registerRule
+
+ /**
+ * Returns a reference to the requested rule object
+ *
+ * @param string $ruleName Name of the requested rule
+ * @access public
+ * @return HTML_QuickForm_Rule
+ */
+ function &getRule($ruleName)
+ {
+ list($class, $path) = $GLOBALS['_HTML_QuickForm_registered_rules'][$ruleName];
+
+ if (!isset($this->_rules[$class])) {
+ if (!empty($path)) {
+ include_once($path);
+ }
+ $this->_rules[$class] = new $class();
+ }
+ $this->_rules[$class]->setName($ruleName);
+ return $this->_rules[$class];
+ } // end func getRule
+
+ /**
+ * Performs validation on the given values
+ *
+ * @param string $ruleName Name of the rule to be used
+ * @param mixed $values Can be a scalar or an array of values
+ * to be validated
+ * @param mixed $options Options used by the rule
+ * @param mixed $multiple Whether to validate an array of values altogether
+ * @access public
+ * @return mixed true if no error found, int of valid values (when an array of values is given) or false if error
+ */
+ function validate($ruleName, $values, $options = null, $multiple = false)
+ {
+ $rule =& $this->getRule($ruleName);
+
+ if (is_array($values) && !$multiple) {
+ $result = 0;
+ foreach ($values as $value) {
+ if ($rule->validate($value, $options) === true) {
+ $result++;
+ }
+ }
+ return ($result == 0) ? false : $result;
+ } else {
+ return $rule->validate($values, $options);
+ }
+ } // end func validate
+
+ /**
+ * Returns the validation test in javascript code
+ *
+ * @param array|HTML_QuickForm_element Element(s) the rule applies to
+ * @param string Element name, in case $element is
+ * not an array
+ * @param array Rule data
+ * @access public
+ * @return string JavaScript for the rule
+ */
+ function getValidationScript(&$element, $elementName, $ruleData)
+ {
+ $reset = (isset($ruleData['reset'])) ? $ruleData['reset'] : false;
+ $rule =& $this->getRule($ruleData['type']);
+ if (!is_array($element)) {
+ list($jsValue, $jsReset) = $this->_getJsValue($element, $elementName, $reset, null);
+ } else {
+ $jsValue = " value = new Array();\n";
+ $jsReset = '';
+ for ($i = 0; $i < count($element); $i++) {
+ list($tmp_value, $tmp_reset) = $this->_getJsValue($element[$i], $element[$i]->getName(), $reset, $i);
+ $jsValue .= "\n" . $tmp_value;
+ $jsReset .= $tmp_reset;
+ }
+ }
+ $jsField = isset($ruleData['group'])? $ruleData['group']: $elementName;
+ list ($jsPrefix, $jsCheck) = $rule->getValidationScript($ruleData['format']);
+ if (!isset($ruleData['howmany'])) {
+ $js = $jsValue . "\n" . $jsPrefix .
+ " if (" . str_replace('{jsVar}', 'value', $jsCheck) . " && !errFlag['{$jsField}']) {\n" .
+ " errFlag['{$jsField}'] = true;\n" .
+ " _qfMsg = _qfMsg + '\\n - {$ruleData['message']}';\n" .
+ $jsReset .
+ " }\n";
+ } else {
+ $js = $jsValue . "\n" . $jsPrefix .
+ " var res = 0;\n" .
+ " for (var i = 0; i < value.length; i++) {\n" .
+ " if (!(" . str_replace('{jsVar}', 'value[i]', $jsCheck) . ")) {\n" .
+ " res++;\n" .
+ " }\n" .
+ " }\n" .
+ " if (res < {$ruleData['howmany']} && !errFlag['{$jsField}']) {\n" .
+ " errFlag['{$jsField}'] = true;\n" .
+ " _qfMsg = _qfMsg + '\\n - {$ruleData['message']}';\n" .
+ $jsReset .
+ " }\n";
+ }
+ return $js;
+ } // end func getValidationScript
+
+
+ /**
+ * Returns JavaScript to get and to reset the element's value
+ *
+ * @access private
+ * @param HTML_QuickForm_element element being processed
+ * @param string element's name
+ * @param bool whether to generate JavaScript to reset
+ * the value
+ * @param integer value's index in the array (only used for
+ * multielement rules)
+ * @return array first item is value javascript, second is reset
+ */
+ function _getJsValue(&$element, $elementName, $reset = false, $index = null)
+ {
+ $jsIndex = isset($index)? '[' . $index . ']': '';
+ $tmp_reset = $reset? " var field = frm.elements['$elementName'];\n": '';
+ if (is_a($element, 'html_quickform_group')) {
+ $value = " _qfGroups['{$elementName}'] = {";
+ $elements =& $element->getElements();
+ for ($i = 0, $count = count($elements); $i < $count; $i++) {
+ $append = ($elements[$i]->getType() == 'select' && $elements[$i]->getMultiple())? '[]': '';
+ $value .= "'" . $element->getElementName($i) . $append . "': true" .
+ ($i < $count - 1? ', ': '');
+ }
+ $value .=
+ "};\n" .
+ " value{$jsIndex} = new Array();\n" .
+ " var valueIdx = 0;\n" .
+ " for (var i = 0; i < frm.elements.length; i++) {\n" .
+ " var _element = frm.elements[i];\n" .
+ " if (_element.name in _qfGroups['{$elementName}']) {\n" .
+ " switch (_element.type) {\n" .
+ " case 'checkbox':\n" .
+ " case 'radio':\n" .
+ " if (_element.checked) {\n" .
+ " value{$jsIndex}[valueIdx++] = _element.value;\n" .
+ " }\n" .
+ " break;\n" .
+ " case 'select-one':\n" .
+ " if (-1 != _element.selectedIndex) {\n" .
+ " value{$jsIndex}[valueIdx++] = _element.options[_element.selectedIndex].value;\n" .
+ " }\n" .
+ " break;\n" .
+ " case 'select-multiple':\n" .
+ " var tmpVal = new Array();\n" .
+ " var tmpIdx = 0;\n" .
+ " for (var j = 0; j < _element.options.length; j++) {\n" .
+ " if (_element.options[j].selected) {\n" .
+ " tmpVal[tmpIdx++] = _element.options[j].value;\n" .
+ " }\n" .
+ " }\n" .
+ " if (tmpIdx > 0) {\n" .
+ " value{$jsIndex}[valueIdx++] = tmpVal;\n" .
+ " }\n" .
+ " break;\n" .
+ " default:\n" .
+ " value{$jsIndex}[valueIdx++] = _element.value;\n" .
+ " }\n" .
+ " }\n" .
+ " }\n";
+ if ($reset) {
+ $tmp_reset =
+ " for (var i = 0; i < frm.elements.length; i++) {\n" .
+ " var _element = frm.elements[i];\n" .
+ " if (_element.name in _qfGroups['{$elementName}']) {\n" .
+ " switch (_element.type) {\n" .
+ " case 'checkbox':\n" .
+ " case 'radio':\n" .
+ " _element.checked = _element.defaultChecked;\n" .
+ " break;\n" .
+ " case 'select-one':\n" .
+ " case 'select-multiple':\n" .
+ " for (var j = 0; j < _element.options.length; j++) {\n" .
+ " _element.options[j].selected = _element.options[j].defaultSelected;\n" .
+ " }\n" .
+ " break;\n" .
+ " default:\n" .
+ " _element.value = _element.defaultValue;\n" .
+ " }\n" .
+ " }\n" .
+ " }\n";
+ }
+
+ } elseif ($element->getType() == 'select') {
+ if ($element->getMultiple()) {
+ $elementName .= '[]';
+ $value =
+ " value{$jsIndex} = new Array();\n" .
+ " var valueIdx = 0;\n" .
+ " for (var i = 0; i < frm.elements['{$elementName}'].options.length; i++) {\n" .
+ " if (frm.elements['{$elementName}'].options[i].selected) {\n" .
+ " value{$jsIndex}[valueIdx++] = frm.elements['{$elementName}'].options[i].value;\n" .
+ " }\n" .
+ " }\n";
+ } else {
+ $value = " value{$jsIndex} = frm.elements['{$elementName}'].selectedIndex == -1? '': frm.elements['{$elementName}'].options[frm.elements['{$elementName}'].selectedIndex].value;\n";
+ }
+ if ($reset) {
+ $tmp_reset .=
+ " for (var i = 0; i < field.options.length; i++) {\n" .
+ " field.options[i].selected = field.options[i].defaultSelected;\n" .
+ " }\n";
+ }
+
+ } elseif ($element->getType() == 'checkbox') {
+ if (is_a($element, 'html_quickform_advcheckbox')) {
+ $value = " value{$jsIndex} = frm.elements['$elementName'][1].checked? frm.elements['$elementName'][1].value: frm.elements['$elementName'][0].value;\n";
+ $tmp_reset .= $reset ? " field[1].checked = field[1].defaultChecked;\n" : '';
+ } else {
+ $value = " value{$jsIndex} = frm.elements['$elementName'].checked? '1': '';\n";
+ $tmp_reset .= $reset ? " field.checked = field.defaultChecked;\n" : '';
+ }
+
+ } elseif ($element->getType() == 'radio') {
+ $value = " value{$jsIndex} = '';\n" .
+ // Fix for bug #5644
+ " var els = 'length' in frm.elements['$elementName']? frm.elements['$elementName']: [ frm.elements['$elementName'] ];\n" .
+ " for (var i = 0; i < els.length; i++) {\n" .
+ " if (els[i].checked) {\n" .
+ " value{$jsIndex} = els[i].value;\n" .
+ " }\n" .
+ " }";
+ if ($reset) {
+ $tmp_reset .= " for (var i = 0; i < field.length; i++) {\n" .
+ " field[i].checked = field[i].defaultChecked;\n" .
+ " }";
+ }
+
+ } else {
+ $value = " value{$jsIndex} = frm.elements['$elementName'].value;";
+ $tmp_reset .= ($reset) ? " field.value = field.defaultValue;\n" : '';
+ }
+ return array($value, $tmp_reset);
+ }
+} // end class HTML_QuickForm_RuleRegistry
+?>
diff --git a/libs/HTML/QuickForm/advcheckbox.php b/libs/HTML/QuickForm/advcheckbox.php
index 3112d4f415..adda853f90 100755
--- a/libs/HTML/QuickForm/advcheckbox.php
+++ b/libs/HTML/QuickForm/advcheckbox.php
@@ -1,286 +1,286 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for an advanced checkbox type field
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Jason Rust <jrust@php.net>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * HTML class for a checkbox type field
- */
-require_once 'HTML/QuickForm/checkbox.php';
-
-/**
- * HTML class for an advanced checkbox type field
- *
- * Basically this fixes a problem that HTML has had
- * where checkboxes can only pass a single value (the
- * value of the checkbox when checked). A value for when
- * the checkbox is not checked cannot be passed, and
- * furthermore the checkbox variable doesn't even exist if
- * the checkbox was submitted unchecked.
- *
- * It works by prepending a hidden field with the same name and
- * another "unchecked" value to the checbox. If the checkbox is
- * checked, PHP overwrites the value of the hidden field with
- * its value.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Jason Rust <jrust@php.net>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 2.0
- */
-class HTML_QuickForm_advcheckbox extends HTML_QuickForm_checkbox
-{
- // {{{ properties
-
- /**
- * The values passed by the hidden elment
- *
- * @var array
- * @access private
- */
- var $_values = null;
-
- /**
- * The default value
- *
- * @var boolean
- * @access private
- */
- var $_currentValue = null;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $elementLabel (optional)Input field label
- * @param string $text (optional)Text to put after the checkbox
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @param mixed $values (optional)Values to pass if checked or not checked
- *
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_advcheckbox($elementName=null, $elementLabel=null, $text=null, $attributes=null, $values=null)
- {
- $this->HTML_QuickForm_checkbox($elementName, $elementLabel, $text, $attributes);
- $this->setValues($values);
- } //end constructor
-
- // }}}
- // {{{ getPrivateName()
-
- /**
- * Gets the private name for the element
- *
- * @param string $elementName The element name to make private
- *
- * @access public
- * @return string
- *
- * @deprecated Deprecated since 3.2.6, both generated elements have the same name
- */
- function getPrivateName($elementName)
- {
- return '__'.$elementName;
- }
-
- // }}}
- // {{{ getOnclickJs()
-
- /**
- * Create the javascript for the onclick event which will
- * set the value of the hidden field
- *
- * @param string $elementName The element name
- *
- * @access public
- * @return string
- *
- * @deprecated Deprecated since 3.2.6, this element no longer uses any javascript
- */
- function getOnclickJs($elementName)
- {
- $onclickJs = 'if (this.checked) { this.form[\''.$elementName.'\'].value=\''.addcslashes($this->_values[1], '\'').'\'; }';
- $onclickJs .= 'else { this.form[\''.$elementName.'\'].value=\''.addcslashes($this->_values[0], '\'').'\'; }';
- return $onclickJs;
- }
-
- // }}}
- // {{{ setValues()
-
- /**
- * Sets the values used by the hidden element
- *
- * @param mixed $values The values, either a string or an array
- *
- * @access public
- * @return void
- */
- function setValues($values)
- {
- if (empty($values)) {
- // give it default checkbox behavior
- $this->_values = array('', 1);
- } elseif (is_scalar($values)) {
- // if it's string, then assume the value to
- // be passed is for when the element is checked
- $this->_values = array('', $values);
- } else {
- $this->_values = $values;
- }
- $this->updateAttributes(array('value' => $this->_values[1]));
- $this->setChecked($this->_currentValue == $this->_values[1]);
- }
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets the element's value
- *
- * @param mixed Element's value
- * @access public
- */
- function setValue($value)
- {
- $this->setChecked(isset($this->_values[1]) && $value == $this->_values[1]);
- $this->_currentValue = $value;
- }
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns the element's value
- *
- * @access public
- * @return mixed
- */
- function getValue()
- {
- if (is_array($this->_values)) {
- return $this->_values[$this->getChecked()? 1: 0];
- } else {
- return null;
- }
- }
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the checkbox element in HTML
- * and the additional hidden element in HTML
- *
- * @access public
- * @return string
- */
- function toHtml()
- {
- if ($this->_flagFrozen) {
- return parent::toHtml();
- } else {
- return '<input' . $this->_getAttrString(array(
- 'type' => 'hidden',
- 'name' => $this->getName(),
- 'value' => $this->_values[0]
- )) . ' />' . parent::toHtml();
-
- }
- } //end func toHtml
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Unlike checkbox, this has to append a hidden input in both
- * checked and non-checked states
- */
- function getFrozenHtml()
- {
- return ($this->getChecked()? '<tt>[x]</tt>': '<tt>[ ]</tt>') .
- $this->_getPersistantData();
- }
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string $event Name of event
- * @param mixed $arg event arguments
- * @param object &$caller calling object
- * @since 1.0
- * @access public
- * @return void
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- switch ($event) {
- case 'updateValue':
- // constant values override both default and submitted ones
- // default values are overriden by submitted
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_submitValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_defaultValues);
- }
- }
- if (null !== $value) {
- $this->setValue($value);
- }
- break;
- default:
- parent::onQuickFormEvent($event, $arg, $caller);
- }
- return true;
- } // end func onQuickFormLoad
-
- // }}}
- // {{{ exportValue()
-
- /**
- * This element has a value even if it is not checked, thus we override
- * checkbox's behaviour here
- */
- function exportValue(&$submitValues, $assoc)
- {
- $value = $this->_findValue($submitValues);
- if (null === $value) {
- $value = $this->getValue();
- } elseif (is_array($this->_values) && ($value != $this->_values[0]) && ($value != $this->_values[1])) {
- $value = null;
- }
- return $this->_prepareValue($value, $assoc);
- }
- // }}}
-} //end class HTML_QuickForm_advcheckbox
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for an advanced checkbox type field
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Jason Rust <jrust@php.net>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * HTML class for a checkbox type field
+ */
+require_once 'HTML/QuickForm/checkbox.php';
+
+/**
+ * HTML class for an advanced checkbox type field
+ *
+ * Basically this fixes a problem that HTML has had
+ * where checkboxes can only pass a single value (the
+ * value of the checkbox when checked). A value for when
+ * the checkbox is not checked cannot be passed, and
+ * furthermore the checkbox variable doesn't even exist if
+ * the checkbox was submitted unchecked.
+ *
+ * It works by prepending a hidden field with the same name and
+ * another "unchecked" value to the checbox. If the checkbox is
+ * checked, PHP overwrites the value of the hidden field with
+ * its value.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Jason Rust <jrust@php.net>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 2.0
+ */
+class HTML_QuickForm_advcheckbox extends HTML_QuickForm_checkbox
+{
+ // {{{ properties
+
+ /**
+ * The values passed by the hidden elment
+ *
+ * @var array
+ * @access private
+ */
+ var $_values = null;
+
+ /**
+ * The default value
+ *
+ * @var boolean
+ * @access private
+ */
+ var $_currentValue = null;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $elementLabel (optional)Input field label
+ * @param string $text (optional)Text to put after the checkbox
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @param mixed $values (optional)Values to pass if checked or not checked
+ *
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_advcheckbox($elementName=null, $elementLabel=null, $text=null, $attributes=null, $values=null)
+ {
+ $this->HTML_QuickForm_checkbox($elementName, $elementLabel, $text, $attributes);
+ $this->setValues($values);
+ } //end constructor
+
+ // }}}
+ // {{{ getPrivateName()
+
+ /**
+ * Gets the private name for the element
+ *
+ * @param string $elementName The element name to make private
+ *
+ * @access public
+ * @return string
+ *
+ * @deprecated Deprecated since 3.2.6, both generated elements have the same name
+ */
+ function getPrivateName($elementName)
+ {
+ return '__'.$elementName;
+ }
+
+ // }}}
+ // {{{ getOnclickJs()
+
+ /**
+ * Create the javascript for the onclick event which will
+ * set the value of the hidden field
+ *
+ * @param string $elementName The element name
+ *
+ * @access public
+ * @return string
+ *
+ * @deprecated Deprecated since 3.2.6, this element no longer uses any javascript
+ */
+ function getOnclickJs($elementName)
+ {
+ $onclickJs = 'if (this.checked) { this.form[\''.$elementName.'\'].value=\''.addcslashes($this->_values[1], '\'').'\'; }';
+ $onclickJs .= 'else { this.form[\''.$elementName.'\'].value=\''.addcslashes($this->_values[0], '\'').'\'; }';
+ return $onclickJs;
+ }
+
+ // }}}
+ // {{{ setValues()
+
+ /**
+ * Sets the values used by the hidden element
+ *
+ * @param mixed $values The values, either a string or an array
+ *
+ * @access public
+ * @return void
+ */
+ function setValues($values)
+ {
+ if (empty($values)) {
+ // give it default checkbox behavior
+ $this->_values = array('', 1);
+ } elseif (is_scalar($values)) {
+ // if it's string, then assume the value to
+ // be passed is for when the element is checked
+ $this->_values = array('', $values);
+ } else {
+ $this->_values = $values;
+ }
+ $this->updateAttributes(array('value' => $this->_values[1]));
+ $this->setChecked($this->_currentValue == $this->_values[1]);
+ }
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets the element's value
+ *
+ * @param mixed Element's value
+ * @access public
+ */
+ function setValue($value)
+ {
+ $this->setChecked(isset($this->_values[1]) && $value == $this->_values[1]);
+ $this->_currentValue = $value;
+ }
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns the element's value
+ *
+ * @access public
+ * @return mixed
+ */
+ function getValue()
+ {
+ if (is_array($this->_values)) {
+ return $this->_values[$this->getChecked()? 1: 0];
+ } else {
+ return null;
+ }
+ }
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the checkbox element in HTML
+ * and the additional hidden element in HTML
+ *
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ if ($this->_flagFrozen) {
+ return parent::toHtml();
+ } else {
+ return '<input' . $this->_getAttrString(array(
+ 'type' => 'hidden',
+ 'name' => $this->getName(),
+ 'value' => $this->_values[0]
+ )) . ' />' . parent::toHtml();
+
+ }
+ } //end func toHtml
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Unlike checkbox, this has to append a hidden input in both
+ * checked and non-checked states
+ */
+ function getFrozenHtml()
+ {
+ return ($this->getChecked()? '<tt>[x]</tt>': '<tt>[ ]</tt>') .
+ $this->_getPersistantData();
+ }
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string $event Name of event
+ * @param mixed $arg event arguments
+ * @param object &$caller calling object
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ switch ($event) {
+ case 'updateValue':
+ // constant values override both default and submitted ones
+ // default values are overriden by submitted
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_submitValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ }
+ if (null !== $value) {
+ $this->setValue($value);
+ }
+ break;
+ default:
+ parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ return true;
+ } // end func onQuickFormLoad
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * This element has a value even if it is not checked, thus we override
+ * checkbox's behaviour here
+ */
+ function exportValue(&$submitValues, $assoc)
+ {
+ $value = $this->_findValue($submitValues);
+ if (null === $value) {
+ $value = $this->getValue();
+ } elseif (is_array($this->_values) && ($value != $this->_values[0]) && ($value != $this->_values[1])) {
+ $value = null;
+ }
+ return $this->_prepareValue($value, $assoc);
+ }
+ // }}}
+} //end class HTML_QuickForm_advcheckbox
+?>
diff --git a/libs/HTML/QuickForm/autocomplete.php b/libs/HTML/QuickForm/autocomplete.php
index b4b537c6db..fa10b5e435 100755
--- a/libs/HTML/QuickForm/autocomplete.php
+++ b/libs/HTML/QuickForm/autocomplete.php
@@ -1,258 +1,258 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for an autocomplete element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Matteo Di Giovinazzo <matteodg@infinito.it>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * HTML class for a text field
- */
-require_once 'HTML/QuickForm/text.php';
-
-/**
- * HTML class for an autocomplete element
- *
- * Creates an HTML input text element that
- * at every keypressed javascript event checks in an array of options
- * if there's a match and autocompletes the text in case of match.
- *
- * For the JavaScript code thanks to Martin Honnen and Nicholas C. Zakas
- * See {@link http://www.faqts.com/knowledge_base/view.phtml/aid/13562} and
- * {@link http://www.sitepoint.com/article/1220}
- *
- * Example:
- * <code>
- * $autocomplete =& $form->addElement('autocomplete', 'fruit', 'Favourite fruit:');
- * $options = array("Apple", "Orange", "Pear", "Strawberry");
- * $autocomplete->setOptions($options);
- * </code>
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Matteo Di Giovinazzo <matteodg@infinito.it>
- * @version Release: 3.2.9
- * @since 3.2
- */
-class HTML_QuickForm_autocomplete extends HTML_QuickForm_text
-{
- // {{{ properties
-
- /**
- * Options for the autocomplete input text element
- *
- * @var array
- * @access private
- */
- var $_options = array();
-
- /**
- * "One-time" javascript (containing functions), see bug #4611
- *
- * @var string
- * @access private
- */
- var $_js = '';
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $elementLabel (optional)Input field label in form
- * @param array $options (optional)Autocomplete options
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array. Date format is passed along the attributes.
- * @access public
- * @return void
- */
- function HTML_QuickForm_autocomplete($elementName = null, $elementLabel = null, $options = null, $attributes = null)
- {
- $this->HTML_QuickForm_text($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- $this->_type = 'autocomplete';
- if (isset($options)) {
- $this->setOptions($options);
- }
- } //end constructor
-
- // }}}
- // {{{ setOptions()
-
- /**
- * Sets the options for the autocomplete input text element
- *
- * @param array $options Array of options for the autocomplete input text element
- * @access public
- * @return void
- */
- function setOptions($options)
- {
- $this->_options = array_values($options);
- } // end func setOptions
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns Html for the autocomplete input text element
- *
- * @access public
- * @return string
- */
- function toHtml()
- {
- // prevent problems with grouped elements
- $arrayName = str_replace(array('[', ']'), array('__', ''), $this->getName()) . '_values';
-
- $this->updateAttributes(array(
- 'onkeypress' => 'return autocomplete(this, event, ' . $arrayName . ');'
- ));
- if ($this->_flagFrozen) {
- $js = '';
- } else {
- $js = "<script type=\"text/javascript\">\n//<![CDATA[\n";
- if (!defined('HTML_QUICKFORM_AUTOCOMPLETE_EXISTS')) {
- $this->_js .= <<<EOS
-
-/* begin javascript for autocomplete */
-function setSelectionRange(input, selectionStart, selectionEnd) {
- if (input.setSelectionRange) {
- input.setSelectionRange(selectionStart, selectionEnd);
- }
- else if (input.createTextRange) {
- var range = input.createTextRange();
- range.collapse(true);
- range.moveEnd("character", selectionEnd);
- range.moveStart("character", selectionStart);
- range.select();
- }
- input.focus();
-}
-
-function setCaretToPosition(input, position) {
- setSelectionRange(input, position, position);
-}
-
-function replaceSelection (input, replaceString) {
- var len = replaceString.length;
- if (input.setSelectionRange) {
- var selectionStart = input.selectionStart;
- var selectionEnd = input.selectionEnd;
-
- input.value = input.value.substring(0, selectionStart) + replaceString + input.value.substring(selectionEnd);
- input.selectionStart = selectionStart + len;
- input.selectionEnd = selectionStart + len;
- }
- else if (document.selection) {
- var range = document.selection.createRange();
- var saved_range = range.duplicate();
-
- if (range.parentElement() == input) {
- range.text = replaceString;
- range.moveEnd("character", saved_range.selectionStart + len);
- range.moveStart("character", saved_range.selectionStart + len);
- range.select();
- }
- }
- input.focus();
-}
-
-
-function autocompleteMatch (text, values) {
- for (var i = 0; i < values.length; i++) {
- if (values[i].toUpperCase().indexOf(text.toUpperCase()) == 0) {
- return values[i];
- }
- }
-
- return null;
-}
-
-function autocomplete(textbox, event, values) {
- if (textbox.setSelectionRange || textbox.createTextRange) {
- switch (event.keyCode) {
- case 38: // up arrow
- case 40: // down arrow
- case 37: // left arrow
- case 39: // right arrow
- case 33: // page up
- case 34: // page down
- case 36: // home
- case 35: // end
- case 13: // enter
- case 9: // tab
- case 27: // esc
- case 16: // shift
- case 17: // ctrl
- case 18: // alt
- case 20: // caps lock
- case 8: // backspace
- case 46: // delete
- return true;
- break;
-
- default:
- var c = String.fromCharCode(
- (event.charCode == undefined) ? event.keyCode : event.charCode
- );
- replaceSelection(textbox, c);
- sMatch = autocompleteMatch(textbox.value, values);
- var len = textbox.value.length;
-
- if (sMatch != null) {
- textbox.value = sMatch;
- setSelectionRange(textbox, len, textbox.value.length);
- }
- return false;
- }
- }
- else {
- return true;
- }
-}
-/* end javascript for autocomplete */
-
-EOS;
- define('HTML_QUICKFORM_AUTOCOMPLETE_EXISTS', true);
- }
- $jsEscape = array(
- "\r" => '\r',
- "\n" => '\n',
- "\t" => '\t',
- "'" => "\\'",
- '"' => '\"',
- '\\' => '\\\\'
- );
-
- $js .= $this->_js;
- $js .= 'var ' . $arrayName . " = new Array();\n";
- for ($i = 0; $i < count($this->_options); $i++) {
- $js .= $arrayName . '[' . $i . "] = '" . strtr($this->_options[$i], $jsEscape) . "';\n";
- }
- $js .= "//]]>\n</script>";
- }
- return $js . parent::toHtml();
- }// end func toHtml
-
- // }}}
-} // end class HTML_QuickForm_autocomplete
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for an autocomplete element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Matteo Di Giovinazzo <matteodg@infinito.it>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * HTML class for a text field
+ */
+require_once 'HTML/QuickForm/text.php';
+
+/**
+ * HTML class for an autocomplete element
+ *
+ * Creates an HTML input text element that
+ * at every keypressed javascript event checks in an array of options
+ * if there's a match and autocompletes the text in case of match.
+ *
+ * For the JavaScript code thanks to Martin Honnen and Nicholas C. Zakas
+ * See {@link http://www.faqts.com/knowledge_base/view.phtml/aid/13562} and
+ * {@link http://www.sitepoint.com/article/1220}
+ *
+ * Example:
+ * <code>
+ * $autocomplete =& $form->addElement('autocomplete', 'fruit', 'Favourite fruit:');
+ * $options = array("Apple", "Orange", "Pear", "Strawberry");
+ * $autocomplete->setOptions($options);
+ * </code>
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Matteo Di Giovinazzo <matteodg@infinito.it>
+ * @version Release: 3.2.9
+ * @since 3.2
+ */
+class HTML_QuickForm_autocomplete extends HTML_QuickForm_text
+{
+ // {{{ properties
+
+ /**
+ * Options for the autocomplete input text element
+ *
+ * @var array
+ * @access private
+ */
+ var $_options = array();
+
+ /**
+ * "One-time" javascript (containing functions), see bug #4611
+ *
+ * @var string
+ * @access private
+ */
+ var $_js = '';
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $elementLabel (optional)Input field label in form
+ * @param array $options (optional)Autocomplete options
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array. Date format is passed along the attributes.
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_autocomplete($elementName = null, $elementLabel = null, $options = null, $attributes = null)
+ {
+ $this->HTML_QuickForm_text($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->_type = 'autocomplete';
+ if (isset($options)) {
+ $this->setOptions($options);
+ }
+ } //end constructor
+
+ // }}}
+ // {{{ setOptions()
+
+ /**
+ * Sets the options for the autocomplete input text element
+ *
+ * @param array $options Array of options for the autocomplete input text element
+ * @access public
+ * @return void
+ */
+ function setOptions($options)
+ {
+ $this->_options = array_values($options);
+ } // end func setOptions
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns Html for the autocomplete input text element
+ *
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ // prevent problems with grouped elements
+ $arrayName = str_replace(array('[', ']'), array('__', ''), $this->getName()) . '_values';
+
+ $this->updateAttributes(array(
+ 'onkeypress' => 'return autocomplete(this, event, ' . $arrayName . ');'
+ ));
+ if ($this->_flagFrozen) {
+ $js = '';
+ } else {
+ $js = "<script type=\"text/javascript\">\n//<![CDATA[\n";
+ if (!defined('HTML_QUICKFORM_AUTOCOMPLETE_EXISTS')) {
+ $this->_js .= <<<EOS
+
+/* begin javascript for autocomplete */
+function setSelectionRange(input, selectionStart, selectionEnd) {
+ if (input.setSelectionRange) {
+ input.setSelectionRange(selectionStart, selectionEnd);
+ }
+ else if (input.createTextRange) {
+ var range = input.createTextRange();
+ range.collapse(true);
+ range.moveEnd("character", selectionEnd);
+ range.moveStart("character", selectionStart);
+ range.select();
+ }
+ input.focus();
+}
+
+function setCaretToPosition(input, position) {
+ setSelectionRange(input, position, position);
+}
+
+function replaceSelection (input, replaceString) {
+ var len = replaceString.length;
+ if (input.setSelectionRange) {
+ var selectionStart = input.selectionStart;
+ var selectionEnd = input.selectionEnd;
+
+ input.value = input.value.substring(0, selectionStart) + replaceString + input.value.substring(selectionEnd);
+ input.selectionStart = selectionStart + len;
+ input.selectionEnd = selectionStart + len;
+ }
+ else if (document.selection) {
+ var range = document.selection.createRange();
+ var saved_range = range.duplicate();
+
+ if (range.parentElement() == input) {
+ range.text = replaceString;
+ range.moveEnd("character", saved_range.selectionStart + len);
+ range.moveStart("character", saved_range.selectionStart + len);
+ range.select();
+ }
+ }
+ input.focus();
+}
+
+
+function autocompleteMatch (text, values) {
+ for (var i = 0; i < values.length; i++) {
+ if (values[i].toUpperCase().indexOf(text.toUpperCase()) == 0) {
+ return values[i];
+ }
+ }
+
+ return null;
+}
+
+function autocomplete(textbox, event, values) {
+ if (textbox.setSelectionRange || textbox.createTextRange) {
+ switch (event.keyCode) {
+ case 38: // up arrow
+ case 40: // down arrow
+ case 37: // left arrow
+ case 39: // right arrow
+ case 33: // page up
+ case 34: // page down
+ case 36: // home
+ case 35: // end
+ case 13: // enter
+ case 9: // tab
+ case 27: // esc
+ case 16: // shift
+ case 17: // ctrl
+ case 18: // alt
+ case 20: // caps lock
+ case 8: // backspace
+ case 46: // delete
+ return true;
+ break;
+
+ default:
+ var c = String.fromCharCode(
+ (event.charCode == undefined) ? event.keyCode : event.charCode
+ );
+ replaceSelection(textbox, c);
+ sMatch = autocompleteMatch(textbox.value, values);
+ var len = textbox.value.length;
+
+ if (sMatch != null) {
+ textbox.value = sMatch;
+ setSelectionRange(textbox, len, textbox.value.length);
+ }
+ return false;
+ }
+ }
+ else {
+ return true;
+ }
+}
+/* end javascript for autocomplete */
+
+EOS;
+ define('HTML_QUICKFORM_AUTOCOMPLETE_EXISTS', true);
+ }
+ $jsEscape = array(
+ "\r" => '\r',
+ "\n" => '\n',
+ "\t" => '\t',
+ "'" => "\\'",
+ '"' => '\"',
+ '\\' => '\\\\'
+ );
+
+ $js .= $this->_js;
+ $js .= 'var ' . $arrayName . " = new Array();\n";
+ for ($i = 0; $i < count($this->_options); $i++) {
+ $js .= $arrayName . '[' . $i . "] = '" . strtr($this->_options[$i], $jsEscape) . "';\n";
+ }
+ $js .= "//]]>\n</script>";
+ }
+ return $js . parent::toHtml();
+ }// end func toHtml
+
+ // }}}
+} // end class HTML_QuickForm_autocomplete
+?>
diff --git a/libs/HTML/QuickForm/button.php b/libs/HTML/QuickForm/button.php
index a91f5900ca..15885503e2 100755
--- a/libs/HTML/QuickForm/button.php
+++ b/libs/HTML/QuickForm/button.php
@@ -1,80 +1,80 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for an <input type="button" /> elements
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for an <input type="button" /> elements
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_button extends HTML_QuickForm_input
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $value (optional)Input field value
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_button($elementName=null, $value=null, $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
- $this->_persistantFreeze = false;
- $this->setValue($value);
- $this->setType('button');
- } //end constructor
-
- // }}}
- // {{{ freeze()
-
- /**
- * Freeze the element so that only its value is returned
- *
- * @access public
- * @return void
- */
- function freeze()
- {
- return false;
- } //end func freeze
-
- // }}}
-
-} //end class HTML_QuickForm_button
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for an <input type="button" /> elements
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for an <input type="button" /> elements
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_button extends HTML_QuickForm_input
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $value (optional)Input field value
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_button($elementName=null, $value=null, $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
+ $this->_persistantFreeze = false;
+ $this->setValue($value);
+ $this->setType('button');
+ } //end constructor
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Freeze the element so that only its value is returned
+ *
+ * @access public
+ * @return void
+ */
+ function freeze()
+ {
+ return false;
+ } //end func freeze
+
+ // }}}
+
+} //end class HTML_QuickForm_button
+?>
diff --git a/libs/HTML/QuickForm/checkbox.php b/libs/HTML/QuickForm/checkbox.php
index 2475b43712..123a7679cd 100755
--- a/libs/HTML/QuickForm/checkbox.php
+++ b/libs/HTML/QuickForm/checkbox.php
@@ -1,277 +1,277 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a checkbox type field
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for a checkbox type field
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_checkbox extends HTML_QuickForm_input
-{
- // {{{ properties
-
- /**
- * Checkbox display text
- * @var string
- * @since 1.1
- * @access private
- */
- var $_text = '';
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $elementLabel (optional)Input field value
- * @param string $text (optional)Checkbox display text
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_checkbox($elementName=null, $elementLabel=null, $text='', $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- $this->_text = $text;
- $this->setType('checkbox');
- $this->updateAttributes(array('value'=>1));
- $this->_generateId();
- } //end constructor
-
- // }}}
- // {{{ setChecked()
-
- /**
- * Sets whether a checkbox is checked
- *
- * @param bool $checked Whether the field is checked or not
- * @since 1.0
- * @access public
- * @return void
- */
- function setChecked($checked)
- {
- if (!$checked) {
- $this->removeAttribute('checked');
- } else {
- $this->updateAttributes(array('checked'=>'checked'));
- }
- } //end func setChecked
-
- // }}}
- // {{{ getChecked()
-
- /**
- * Returns whether a checkbox is checked
- *
- * @since 1.0
- * @access public
- * @return bool
- */
- function getChecked()
- {
- return (bool)$this->getAttribute('checked');
- } //end func getChecked
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the checkbox element in HTML
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function toHtml()
- {
- if (0 == strlen($this->_text)) {
- $label = '';
- } elseif ($this->_flagFrozen) {
- $label = $this->_text;
- } else {
- $label = '<label for="' . $this->getAttribute('id') . '">' . $this->_text . '</label>';
- }
- return HTML_QuickForm_input::toHtml() . $label;
- } //end func toHtml
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getFrozenHtml()
- {
- if ($this->getChecked()) {
- return '<tt>[x]</tt>' .
- $this->_getPersistantData();
- } else {
- return '<tt>[ ]</tt>';
- }
- } //end func getFrozenHtml
-
- // }}}
- // {{{ setText()
-
- /**
- * Sets the checkbox text
- *
- * @param string $text
- * @since 1.1
- * @access public
- * @return void
- */
- function setText($text)
- {
- $this->_text = $text;
- } //end func setText
-
- // }}}
- // {{{ getText()
-
- /**
- * Returns the checkbox text
- *
- * @since 1.1
- * @access public
- * @return string
- */
- function getText()
- {
- return $this->_text;
- } //end func getText
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets the value of the form element
- *
- * @param string $value Default value of the form element
- * @since 1.0
- * @access public
- * @return void
- */
- function setValue($value)
- {
- return $this->setChecked($value);
- } // end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns the value of the form element
- *
- * @since 1.0
- * @access public
- * @return bool
- */
- function getValue()
- {
- return $this->getChecked();
- } // end func getValue
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string $event Name of event
- * @param mixed $arg event arguments
- * @param object &$caller calling object
- * @since 1.0
- * @access public
- * @return void
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- switch ($event) {
- case 'updateValue':
- // constant values override both default and submitted ones
- // default values are overriden by submitted
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- // if no boxes were checked, then there is no value in the array
- // yet we don't want to display default value in this case
- if ($caller->isSubmitted()) {
- $value = $this->_findValue($caller->_submitValues);
- } else {
- $value = $this->_findValue($caller->_defaultValues);
- }
- }
- if (null !== $value || $caller->isSubmitted()) {
- $this->setChecked($value);
- }
- break;
- case 'setGroupValue':
- $this->setChecked($arg);
- break;
- default:
- parent::onQuickFormEvent($event, $arg, $caller);
- }
- return true;
- } // end func onQuickFormEvent
-
- // }}}
- // {{{ exportValue()
-
- /**
- * Return true if the checkbox is checked, null if it is not checked (getValue() returns false)
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- $value = $this->_findValue($submitValues);
- if (null === $value) {
- $value = $this->getChecked()? true: null;
- }
- return $this->_prepareValue($value, $assoc);
- }
-
- // }}}
-} //end class HTML_QuickForm_checkbox
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a checkbox type field
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for a checkbox type field
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_checkbox extends HTML_QuickForm_input
+{
+ // {{{ properties
+
+ /**
+ * Checkbox display text
+ * @var string
+ * @since 1.1
+ * @access private
+ */
+ var $_text = '';
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $elementLabel (optional)Input field value
+ * @param string $text (optional)Checkbox display text
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_checkbox($elementName=null, $elementLabel=null, $text='', $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->_text = $text;
+ $this->setType('checkbox');
+ $this->updateAttributes(array('value'=>1));
+ $this->_generateId();
+ } //end constructor
+
+ // }}}
+ // {{{ setChecked()
+
+ /**
+ * Sets whether a checkbox is checked
+ *
+ * @param bool $checked Whether the field is checked or not
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setChecked($checked)
+ {
+ if (!$checked) {
+ $this->removeAttribute('checked');
+ } else {
+ $this->updateAttributes(array('checked'=>'checked'));
+ }
+ } //end func setChecked
+
+ // }}}
+ // {{{ getChecked()
+
+ /**
+ * Returns whether a checkbox is checked
+ *
+ * @since 1.0
+ * @access public
+ * @return bool
+ */
+ function getChecked()
+ {
+ return (bool)$this->getAttribute('checked');
+ } //end func getChecked
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the checkbox element in HTML
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ if (0 == strlen($this->_text)) {
+ $label = '';
+ } elseif ($this->_flagFrozen) {
+ $label = $this->_text;
+ } else {
+ $label = '<label for="' . $this->getAttribute('id') . '">' . $this->_text . '</label>';
+ }
+ return HTML_QuickForm_input::toHtml() . $label;
+ } //end func toHtml
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getFrozenHtml()
+ {
+ if ($this->getChecked()) {
+ return '<tt>[x]</tt>' .
+ $this->_getPersistantData();
+ } else {
+ return '<tt>[ ]</tt>';
+ }
+ } //end func getFrozenHtml
+
+ // }}}
+ // {{{ setText()
+
+ /**
+ * Sets the checkbox text
+ *
+ * @param string $text
+ * @since 1.1
+ * @access public
+ * @return void
+ */
+ function setText($text)
+ {
+ $this->_text = $text;
+ } //end func setText
+
+ // }}}
+ // {{{ getText()
+
+ /**
+ * Returns the checkbox text
+ *
+ * @since 1.1
+ * @access public
+ * @return string
+ */
+ function getText()
+ {
+ return $this->_text;
+ } //end func getText
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets the value of the form element
+ *
+ * @param string $value Default value of the form element
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setValue($value)
+ {
+ return $this->setChecked($value);
+ } // end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns the value of the form element
+ *
+ * @since 1.0
+ * @access public
+ * @return bool
+ */
+ function getValue()
+ {
+ return $this->getChecked();
+ } // end func getValue
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string $event Name of event
+ * @param mixed $arg event arguments
+ * @param object &$caller calling object
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ switch ($event) {
+ case 'updateValue':
+ // constant values override both default and submitted ones
+ // default values are overriden by submitted
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ // if no boxes were checked, then there is no value in the array
+ // yet we don't want to display default value in this case
+ if ($caller->isSubmitted()) {
+ $value = $this->_findValue($caller->_submitValues);
+ } else {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ }
+ if (null !== $value || $caller->isSubmitted()) {
+ $this->setChecked($value);
+ }
+ break;
+ case 'setGroupValue':
+ $this->setChecked($arg);
+ break;
+ default:
+ parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ return true;
+ } // end func onQuickFormEvent
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * Return true if the checkbox is checked, null if it is not checked (getValue() returns false)
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ $value = $this->_findValue($submitValues);
+ if (null === $value) {
+ $value = $this->getChecked()? true: null;
+ }
+ return $this->_prepareValue($value, $assoc);
+ }
+
+ // }}}
+} //end class HTML_QuickForm_checkbox
+?>
diff --git a/libs/HTML/QuickForm/date.php b/libs/HTML/QuickForm/date.php
index 3f3e00eeef..9e897a3e3a 100755
--- a/libs/HTML/QuickForm/date.php
+++ b/libs/HTML/QuickForm/date.php
@@ -1,511 +1,511 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Class for a group of elements used to input dates (and times).
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Class for a group of form elements
- */
-require_once 'HTML/QuickForm/group.php';
-/**
- * Class for <select></select> elements
- */
-require_once 'HTML/QuickForm/select.php';
-
-/**
- * Class for a group of elements used to input dates (and times).
- *
- * Inspired by original 'date' element but reimplemented as a subclass
- * of HTML_QuickForm_group
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.1
- */
-class HTML_QuickForm_date extends HTML_QuickForm_group
-{
- // {{{ properties
-
- /**
- * Various options to control the element's display.
- *
- * @access private
- * @var array
- */
- var $_options = array(
- 'language' => 'en',
- 'format' => 'dMY',
- 'minYear' => 2001,
- 'maxYear' => 2010,
- 'addEmptyOption' => false,
- 'emptyOptionValue' => '',
- 'emptyOptionText' => '&nbsp;',
- 'optionIncrement' => array('i' => 1, 's' => 1)
- );
-
- /**
- * These complement separators, they are appended to the resultant HTML
- * @access private
- * @var array
- */
- var $_wrap = array('', '');
-
- /**
- * Options in different languages
- *
- * Note to potential translators: to avoid encoding problems please send
- * your translations with "weird" letters encoded as HTML Unicode entities
- *
- * @access private
- * @var array
- */
- var $_locale = array(
- 'en' => array (
- 'weekdays_short'=> array ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'),
- 'weekdays_long' => array ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'),
- 'months_long' => array ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December')
- ),
- 'de' => array (
- 'weekdays_short'=> array ('So', 'Mon', 'Di', 'Mi', 'Do', 'Fr', 'Sa'),
- 'weekdays_long' => array ('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'),
- 'months_short' => array ('Jan', 'Feb', 'M&#xe4;rz', 'April', 'Mai', 'Juni', 'Juli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dez'),
- 'months_long' => array ('Januar', 'Februar', 'M&#xe4;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember')
- ),
- 'fr' => array (
- 'weekdays_short'=> array ('Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'),
- 'weekdays_long' => array ('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'),
- 'months_short' => array ('Jan', 'F&#xe9;v', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Ao&#xfb;t', 'Sep', 'Oct', 'Nov', 'D&#xe9;c'),
- 'months_long' => array ('Janvier', 'F&#xe9;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&#xfb;t', 'Septembre', 'Octobre', 'Novembre', 'D&#xe9;cembre')
- ),
- 'hu' => array (
- 'weekdays_short'=> array ('V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'),
- 'weekdays_long' => array ('vas&#xe1;rnap', 'h&#xe9;tf&#x151;', 'kedd', 'szerda', 'cs&#xfc;t&#xf6;rt&#xf6;k', 'p&#xe9;ntek', 'szombat'),
- 'months_short' => array ('jan', 'feb', 'm&#xe1;rc', '&#xe1;pr', 'm&#xe1;j', 'j&#xfa;n', 'j&#xfa;l', 'aug', 'szept', 'okt', 'nov', 'dec'),
- 'months_long' => array ('janu&#xe1;r', 'febru&#xe1;r', 'm&#xe1;rcius', '&#xe1;prilis', 'm&#xe1;jus', 'j&#xfa;nius', 'j&#xfa;lius', 'augusztus', 'szeptember', 'okt&#xf3;ber', 'november', 'december')
- ),
- 'pl' => array (
- 'weekdays_short'=> array ('Nie', 'Pn', 'Wt', '&#x15a;r', 'Czw', 'Pt', 'Sob'),
- 'weekdays_long' => array ('Niedziela', 'Poniedzia&#x142;ek', 'Wtorek', '&#x15a;roda', 'Czwartek', 'Pi&#x105;tek', 'Sobota'),
- 'months_short' => array ('Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Pa&#x17a;', 'Lis', 'Gru'),
- 'months_long' => array ('Stycze&#x144;', 'Luty', 'Marzec', 'Kwiecie&#x144;', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpie&#x144;', 'Wrzesie&#x144;', 'Pa&#x17a;dziernik', 'Listopad', 'Grudzie&#x144;')
- ),
- 'sl' => array (
- 'weekdays_short'=> array ('Ned', 'Pon', 'Tor', 'Sre', 'Cet', 'Pet', 'Sob'),
- 'weekdays_long' => array ('Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Cetrtek', 'Petek', 'Sobota'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'),
- 'months_long' => array ('Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij', 'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December')
- ),
- 'ru' => array (
- 'weekdays_short'=> array ('&#x412;&#x441;', '&#x41f;&#x43d;', '&#x412;&#x442;', '&#x421;&#x440;', '&#x427;&#x442;', '&#x41f;&#x442;', '&#x421;&#x431;'),
- 'weekdays_long' => array ('&#x412;&#x43e;&#x441;&#x43a;&#x440;&#x435;&#x441;&#x435;&#x43d;&#x44c;&#x435;', '&#x41f;&#x43e;&#x43d;&#x435;&#x434;&#x435;&#x43b;&#x44c;&#x43d;&#x438;&#x43a;', '&#x412;&#x442;&#x43e;&#x440;&#x43d;&#x438;&#x43a;', '&#x421;&#x440;&#x435;&#x434;&#x430;', '&#x427;&#x435;&#x442;&#x432;&#x435;&#x440;&#x433;', '&#x41f;&#x44f;&#x442;&#x43d;&#x438;&#x446;&#x430;', '&#x421;&#x443;&#x431;&#x431;&#x43e;&#x442;&#x430;'),
- 'months_short' => array ('&#x42f;&#x43d;&#x432;', '&#x424;&#x435;&#x432;', '&#x41c;&#x430;&#x440;', '&#x410;&#x43f;&#x440;', '&#x41c;&#x430;&#x439;', '&#x418;&#x44e;&#x43d;', '&#x418;&#x44e;&#x43b;', '&#x410;&#x432;&#x433;', '&#x421;&#x435;&#x43d;', '&#x41e;&#x43a;&#x442;', '&#x41d;&#x43e;&#x44f;', '&#x414;&#x435;&#x43a;'),
- 'months_long' => array ('&#x42f;&#x43d;&#x432;&#x430;&#x440;&#x44c;', '&#x424;&#x435;&#x432;&#x440;&#x430;&#x43b;&#x44c;', '&#x41c;&#x430;&#x440;&#x442;', '&#x410;&#x43f;&#x440;&#x435;&#x43b;&#x44c;', '&#x41c;&#x430;&#x439;', '&#x418;&#x44e;&#x43d;&#x44c;', '&#x418;&#x44e;&#x43b;&#x44c;', '&#x410;&#x432;&#x433;&#x443;&#x441;&#x442;', '&#x421;&#x435;&#x43d;&#x442;&#x44f;&#x431;&#x440;&#x44c;', '&#x41e;&#x43a;&#x442;&#x44f;&#x431;&#x440;&#x44c;', '&#x41d;&#x43e;&#x44f;&#x431;&#x440;&#x44c;', '&#x414;&#x435;&#x43a;&#x430;&#x431;&#x440;&#x44c;')
- ),
- 'es' => array (
- 'weekdays_short'=> array ('Dom', 'Lun', 'Mar', 'Mi&#xe9;', 'Jue', 'Vie', 'S&#xe1;b'),
- 'weekdays_long' => array ('Domingo', 'Lunes', 'Martes', 'Mi&#xe9;rcoles', 'Jueves', 'Viernes', 'S&#xe1;bado'),
- 'months_short' => array ('Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'),
- 'months_long' => array ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre')
- ),
- 'da' => array (
- 'weekdays_short'=> array ('S&#xf8;n', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'L&#xf8;r'),
- 'weekdays_long' => array ('S&#xf8;ndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'L&#xf8;rdag'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
- 'months_long' => array ('Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December')
- ),
- 'is' => array (
- 'weekdays_short'=> array ('Sun', 'M&#xe1;n', '&#xde;ri', 'Mi&#xf0;', 'Fim', 'F&#xf6;s', 'Lau'),
- 'weekdays_long' => array ('Sunnudagur', 'M&#xe1;nudagur', '&#xde;ri&#xf0;judagur', 'Mi&#xf0;vikudagur', 'Fimmtudagur', 'F&#xf6;studagur', 'Laugardagur'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Ma&#xed;', 'J&#xfa;n', 'J&#xfa;l', '&#xc1;g&#xfa;', 'Sep', 'Okt', 'N&#xf3;v', 'Des'),
- 'months_long' => array ('Jan&#xfa;ar', 'Febr&#xfa;ar', 'Mars', 'Apr&#xed;l', 'Ma&#xed;', 'J&#xfa;n&#xed;', 'J&#xfa;l&#xed;', '&#xc1;g&#xfa;st', 'September', 'Okt&#xf3;ber', 'N&#xf3;vember', 'Desember')
- ),
- 'it' => array (
- 'weekdays_short'=> array ('Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'),
- 'weekdays_long' => array ('Domenica', 'Luned&#xec;', 'Marted&#xec;', 'Mercoled&#xec;', 'Gioved&#xec;', 'Venerd&#xec;', 'Sabato'),
- 'months_short' => array ('Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'),
- 'months_long' => array ('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre')
- ),
- 'sk' => array (
- 'weekdays_short'=> array ('Ned', 'Pon', 'Uto', 'Str', '&#x8a;tv', 'Pia', 'Sob'),
- 'weekdays_long' => array ('Nede&#x17e;a', 'Pondelok', 'Utorok', 'Streda', '&#x8a;tvrtok', 'Piatok', 'Sobota'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'M&#xe1;j', 'J&#xfa;n', 'J&#xfa;l', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
- 'months_long' => array ('Janu&#xe1;r', 'Febru&#xe1;r', 'Marec', 'Apr&#xed;l', 'M&#xe1;j', 'J&#xfa;n', 'J&#xfa;l', 'August', 'September', 'Okt&#xf3;ber', 'November', 'December')
- ),
- 'cs' => array (
- 'weekdays_short'=> array ('Ne', 'Po', '&#xda;t', 'St', '&#x10c;t', 'P&#xe1;', 'So'),
- 'weekdays_long' => array ('Ned&#x11b;le', 'Pond&#x11b;l&#xed;', '&#xda;ter&#xfd;', 'St&#x159;eda', '&#x10c;tvrtek', 'P&#xe1;tek', 'Sobota'),
- 'months_short' => array ('Led', '&#xda;no', 'B&#x159;e', 'Dub', 'Kv&#x11b;', '&#x10c;en', '&#x10c;ec', 'Srp', 'Z&#xe1;&#x159;', '&#x158;&#xed;j', 'Lis', 'Pro'),
- 'months_long' => array ('Leden', '&#xda;nor', 'B&#x159;ezen', 'Duben', 'Kv&#x11b;ten', '&#x10c;erven', '&#x10c;ervenec', 'Srpen', 'Z&#xe1;&#x159;&#xed;', '&#x158;&#xed;jen', 'Listopad', 'Prosinec')
- ),
- 'hy' => array (
- 'weekdays_short'=> array ('&#x53f;&#x580;&#x56f;', '&#x535;&#x580;&#x56f;', '&#x535;&#x580;&#x584;', '&#x549;&#x580;&#x584;', '&#x540;&#x576;&#x563;', '&#x548;&#x582;&#x580;', '&#x547;&#x562;&#x569;'),
- 'weekdays_long' => array ('&#x53f;&#x56b;&#x580;&#x561;&#x56f;&#x56b;', '&#x535;&#x580;&#x56f;&#x578;&#x582;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x535;&#x580;&#x565;&#x584;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x549;&#x578;&#x580;&#x565;&#x584;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x540;&#x56b;&#x576;&#x563;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x548;&#x582;&#x580;&#x562;&#x561;&#x569;', '&#x547;&#x561;&#x562;&#x561;&#x569;'),
- 'months_short' => array ('&#x540;&#x576;&#x57e;', '&#x553;&#x57f;&#x580;', '&#x544;&#x580;&#x57f;', '&#x531;&#x57a;&#x580;', '&#x544;&#x575;&#x57d;', '&#x540;&#x576;&#x57d;', '&#x540;&#x56c;&#x57d;', '&#x555;&#x563;&#x57d;', '&#x54d;&#x57a;&#x57f;', '&#x540;&#x56f;&#x57f;', '&#x546;&#x575;&#x574;', '&#x534;&#x56f;&#x57f;'),
- 'months_long' => array ('&#x540;&#x578;&#x582;&#x576;&#x57e;&#x561;&#x580;', '&#x553;&#x565;&#x57f;&#x580;&#x57e;&#x561;&#x580;', '&#x544;&#x561;&#x580;&#x57f;', '&#x531;&#x57a;&#x580;&#x56b;&#x56c;', '&#x544;&#x561;&#x575;&#x56b;&#x57d;', '&#x540;&#x578;&#x582;&#x576;&#x56b;&#x57d;', '&#x540;&#x578;&#x582;&#x56c;&#x56b;&#x57d;', '&#x555;&#x563;&#x578;&#x57d;&#x57f;&#x578;&#x57d;', '&#x54d;&#x565;&#x57a;&#x57f;&#x565;&#x574;&#x562;&#x565;&#x580;', '&#x540;&#x578;&#x56f;&#x57f;&#x565;&#x574;&#x562;&#x565;&#x580;', '&#x546;&#x578;&#x575;&#x565;&#x574;&#x562;&#x565;&#x580;', '&#x534;&#x565;&#x56f;&#x57f;&#x565;&#x574;&#x562;&#x565;&#x580;')
- ),
- 'nl' => array (
- 'weekdays_short'=> array ('Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'),
- 'weekdays_long' => array ('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
- 'months_long' => array ('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December')
- ),
- 'et' => array (
- 'weekdays_short'=> array ('P', 'E', 'T', 'K', 'N', 'R', 'L'),
- 'weekdays_long' => array ('P&#xfc;hap&#xe4;ev', 'Esmasp&#xe4;ev', 'Teisip&#xe4;ev', 'Kolmap&#xe4;ev', 'Neljap&#xe4;ev', 'Reede', 'Laup&#xe4;ev'),
- 'months_short' => array ('Jaan', 'Veebr', 'M&#xe4;rts', 'Aprill', 'Mai', 'Juuni', 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'),
- 'months_long' => array ('Jaanuar', 'Veebruar', 'M&#xe4;rts', 'Aprill', 'Mai', 'Juuni', 'Juuli', 'August', 'September', 'Oktoober', 'November', 'Detsember')
- ),
- 'tr' => array (
- 'weekdays_short'=> array ('Paz', 'Pzt', 'Sal', '&#xc7;ar', 'Per', 'Cum', 'Cts'),
- 'weekdays_long' => array ('Pazar', 'Pazartesi', 'Sal&#x131;', '&#xc7;ar&#x15f;amba', 'Per&#x15f;embe', 'Cuma', 'Cumartesi'),
- 'months_short' => array ('Ock', '&#x15e;bt', 'Mrt', 'Nsn', 'Mys', 'Hzrn', 'Tmmz', 'A&#x11f;st', 'Eyl', 'Ekm', 'Ksm', 'Arlk'),
- 'months_long' => array ('Ocak', '&#x15e;ubat', 'Mart', 'Nisan', 'May&#x131;s', 'Haziran', 'Temmuz', 'A&#x11f;ustos', 'Eyl&#xfc;l', 'Ekim', 'Kas&#x131;m', 'Aral&#x131;k')
- ),
- 'no' => array (
- 'weekdays_short'=> array ('S&#xf8;n', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'L&#xf8;r'),
- 'weekdays_long' => array ('S&#xf8;ndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'L&#xf8;rdag'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'),
- 'months_long' => array ('Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember')
- ),
- 'eo' => array (
- 'weekdays_short'=> array ('Dim', 'Lun', 'Mar', 'Mer', '&#x134;a&#x16D;', 'Ven', 'Sab'),
- 'weekdays_long' => array ('Diman&#x109;o', 'Lundo', 'Mardo', 'Merkredo', '&#x134;a&#x16D;do', 'Vendredo', 'Sabato'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'A&#x16D;g', 'Sep', 'Okt', 'Nov', 'Dec'),
- 'months_long' => array ('Januaro', 'Februaro', 'Marto', 'Aprilo', 'Majo', 'Junio', 'Julio', 'A&#x16D;gusto', 'Septembro', 'Oktobro', 'Novembro', 'Decembro')
- ),
- 'ua' => array (
- 'weekdays_short'=> array('&#x41d;&#x434;&#x43b;', '&#x41f;&#x43d;&#x434;', '&#x412;&#x442;&#x440;', '&#x421;&#x440;&#x434;', '&#x427;&#x442;&#x432;', '&#x41f;&#x442;&#x43d;', '&#x421;&#x431;&#x442;'),
- 'weekdays_long' => array('&#x41d;&#x435;&#x434;&#x456;&#x43b;&#x44f;', '&#x41f;&#x43e;&#x43d;&#x435;&#x434;&#x456;&#x43b;&#x43e;&#x43a;', '&#x412;&#x456;&#x432;&#x442;&#x43e;&#x440;&#x43e;&#x43a;', '&#x421;&#x435;&#x440;&#x435;&#x434;&#x430;', '&#x427;&#x435;&#x442;&#x432;&#x435;&#x440;', '&#x41f;\'&#x44f;&#x442;&#x43d;&#x438;&#x446;&#x44f;', '&#x421;&#x443;&#x431;&#x43e;&#x442;&#x430;'),
- 'months_short' => array('&#x421;&#x456;&#x447;', '&#x41b;&#x44e;&#x442;', '&#x411;&#x435;&#x440;', '&#x41a;&#x432;&#x456;', '&#x422;&#x440;&#x430;', '&#x427;&#x435;&#x440;', '&#x41b;&#x438;&#x43f;', '&#x421;&#x435;&#x440;', '&#x412;&#x435;&#x440;', '&#x416;&#x43e;&#x432;', '&#x41b;&#x438;&#x441;', '&#x413;&#x440;&#x443;'),
- 'months_long' => array('&#x421;&#x456;&#x447;&#x435;&#x43d;&#x44c;', '&#x41b;&#x44e;&#x442;&#x438;&#x439;', '&#x411;&#x435;&#x440;&#x435;&#x437;&#x435;&#x43d;&#x44c;', '&#x41a;&#x432;&#x456;&#x442;&#x435;&#x43d;&#x44c;', '&#x422;&#x440;&#x430;&#x432;&#x435;&#x43d;&#x44c;', '&#x427;&#x435;&#x440;&#x432;&#x435;&#x43d;&#x44c;', '&#x41b;&#x438;&#x43f;&#x435;&#x43d;&#x44c;', '&#x421;&#x435;&#x440;&#x43f;&#x435;&#x43d;&#x44c;', '&#x412;&#x435;&#x440;&#x435;&#x441;&#x435;&#x43d;&#x44c;', '&#x416;&#x43e;&#x432;&#x442;&#x435;&#x43d;&#x44c;', '&#x41b;&#x438;&#x441;&#x442;&#x43e;&#x43f;&#x430;&#x434;', '&#x413;&#x440;&#x443;&#x434;&#x435;&#x43d;&#x44c;')
- ),
- 'ro' => array (
- 'weekdays_short'=> array ('Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam'),
- 'weekdays_long' => array ('Duminica', 'Luni', 'Marti', 'Miercuri', 'Joi', 'Vineri', 'Sambata'),
- 'months_short' => array ('Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'),
- 'months_long' => array ('Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Iunie', 'Iulie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie')
- ),
- 'he' => array (
- 'weekdays_short'=> array ('&#1512;&#1488;&#1513;&#1493;&#1503;', '&#1513;&#1504;&#1497;', '&#1513;&#1500;&#1497;&#1513;&#1497;', '&#1512;&#1489;&#1497;&#1506;&#1497;', '&#1495;&#1502;&#1497;&#1513;&#1497;', '&#1513;&#1497;&#1513;&#1497;', '&#1513;&#1489;&#1514;'),
- 'weekdays_long' => array ('&#1497;&#1493;&#1501; &#1512;&#1488;&#1513;&#1493;&#1503;', '&#1497;&#1493;&#1501; &#1513;&#1504;&#1497;', '&#1497;&#1493;&#1501; &#1513;&#1500;&#1497;&#1513;&#1497;', '&#1497;&#1493;&#1501; &#1512;&#1489;&#1497;&#1506;&#1497;', '&#1497;&#1493;&#1501; &#1495;&#1502;&#1497;&#1513;&#1497;', '&#1497;&#1493;&#1501; &#1513;&#1497;&#1513;&#1497;', '&#1513;&#1489;&#1514;'),
- 'months_short' => array ('&#1497;&#1504;&#1493;&#1488;&#1512;', '&#1508;&#1489;&#1512;&#1493;&#1488;&#1512;', '&#1502;&#1512;&#1509;', '&#1488;&#1508;&#1512;&#1497;&#1500;', '&#1502;&#1488;&#1497;', '&#1497;&#1493;&#1504;&#1497;', '&#1497;&#1493;&#1500;&#1497;', '&#1488;&#1493;&#1490;&#1493;&#1505;&#1496;', '&#1505;&#1508;&#1496;&#1502;&#1489;&#1512;', '&#1488;&#1493;&#1511;&#1496;&#1493;&#1489;&#1512;', '&#1504;&#1493;&#1489;&#1502;&#1489;&#1512;', '&#1491;&#1510;&#1502;&#1489;&#1512;'),
- 'months_long' => array ('&#1497;&#1504;&#1493;&#1488;&#1512;', '&#1508;&#1489;&#1512;&#1493;&#1488;&#1512;', '&#1502;&#1512;&#1509;', '&#1488;&#1508;&#1512;&#1497;&#1500;', '&#1502;&#1488;&#1497;', '&#1497;&#1493;&#1504;&#1497;', '&#1497;&#1493;&#1500;&#1497;', '&#1488;&#1493;&#1490;&#1493;&#1505;&#1496;', '&#1505;&#1508;&#1496;&#1502;&#1489;&#1512;', '&#1488;&#1493;&#1511;&#1496;&#1493;&#1489;&#1512;', '&#1504;&#1493;&#1489;&#1502;&#1489;&#1512;', '&#1491;&#1510;&#1502;&#1489;&#1512;')
- ),
- 'sv' => array (
- 'weekdays_short'=> array ('S&#xf6;n', 'M&#xe5;n', 'Tis', 'Ons', 'Tor', 'Fre', 'L&#xf6;r'),
- 'weekdays_long' => array ('S&#xf6;ndag', 'M&#xe5;ndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'L&#xf6;rdag'),
- 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
- 'months_long' => array ('Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December')
- ),
- 'pt' => array (
- 'weekdays_short'=> array ('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'S&aacute;b'),
- 'weekdays_long' => array ('Domingo', 'Segunda-feira', 'Ter&ccedil;a-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'S&aacute;bado'),
- 'months_short' => array ('Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'),
- 'months_long' => array ('Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro')
- ),
- 'tw' => array (
- 'weekdays_short'=> array ('&#36913;&#26085;','&#36913;&#19968;', '&#36913;&#20108;','&#36913;&#19977;', '&#36913;&#22235;','&#36913;&#20116;', '&#36913;&#20845;'),
- 'weekdays_long' => array ('&#26143;&#26399;&#26085;', '&#26143;&#26399;&#19968;', '&#26143;&#26399;&#20108;', '&#26143;&#26399;&#19977;', '&#26143;&#26399;&#22235;', '&#26143;&#26399;&#20116;', '&#26143;&#26399;&#20845;'),
- 'months_short' => array ('&#19968;&#26376;', '&#20108;&#26376;', '&#19977;&#26376;', '&#22235;&#26376;', '&#20116;&#26376;', '&#20845;&#26376;', '&#19971;&#26376;', '&#20843;&#26376;', '&#20061;&#26376;', '&#21313;&#26376;', '&#21313;&#19968;&#26376;', '&#21313;&#20108;&#26376;'),
- 'months_long' => array ('&#19968;&#26376;', '&#20108;&#26376;', '&#19977;&#26376;', '&#22235;&#26376;', '&#20116;&#26376;', '&#20845;&#26376;', '&#19971;&#26376;', '&#20843;&#26376;', '&#20061;&#26376;', '&#21313;&#26376;', '&#21313;&#19968;&#26376;', '&#21313;&#20108;&#26376;')
- ),
- 'pt-br' => array (
- 'weekdays_short'=> array ('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'S&aacute;b'),
- 'weekdays_long' => array ('Domingo', 'Segunda', 'Ter&ccedil;a', 'Quarta', 'Quinta', 'Sexta', 'S&aacute;bado'),
- 'months_short' => array ('Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'),
- 'months_long' => array ('Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro')
- )
- );
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * The following keys may appear in $options array:
- * - 'language': date language
- * - 'format': Format of the date, based on PHP's date() function.
- * The following characters are currently recognised in format string:
- * <pre>
- * D => Short names of days
- * l => Long names of days
- * d => Day numbers
- * M => Short names of months
- * F => Long names of months
- * m => Month numbers
- * Y => Four digit year
- * y => Two digit year
- * h => 12 hour format
- * H => 23 hour format
- * i => Minutes
- * s => Seconds
- * a => am/pm
- * A => AM/PM
- * </pre>
- * - 'minYear': Minimum year in year select
- * - 'maxYear': Maximum year in year select
- * - 'addEmptyOption': Should an empty option be added to the top of
- * each select box?
- * - 'emptyOptionValue': The value passed by the empty option.
- * - 'emptyOptionText': The text displayed for the empty option.
- * - 'optionIncrement': Step to increase the option values by (works for 'i' and 's')
- *
- * @access public
- * @param string Element's name
- * @param mixed Label(s) for an element
- * @param array Options to control the element's display
- * @param mixed Either a typical HTML attribute string or an associative array
- */
- function HTML_QuickForm_date($elementName = null, $elementLabel = null, $options = array(), $attributes = null)
- {
- $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- $this->_appendName = true;
- $this->_type = 'date';
- // set the options, do not bother setting bogus ones
- if (is_array($options)) {
- foreach ($options as $name => $value) {
- if ('language' == $name) {
- $this->_options['language'] = isset($this->_locale[$value])? $value: 'en';
- } elseif (isset($this->_options[$name])) {
- if (is_array($value) && is_array($this->_options[$name])) {
- $this->_options[$name] = @array_merge($this->_options[$name], $value);
- } else {
- $this->_options[$name] = $value;
- }
- }
- }
- }
- }
-
- // }}}
- // {{{ _createElements()
-
- function _createElements()
- {
- $this->_separator = $this->_elements = array();
- $separator = '';
- $locale =& $this->_locale[$this->_options['language']];
- $backslash = false;
- for ($i = 0, $length = strlen($this->_options['format']); $i < $length; $i++) {
- $sign = $this->_options['format']{$i};
- if ($backslash) {
- $backslash = false;
- $separator .= $sign;
- } else {
- $loadSelect = true;
- switch ($sign) {
- case 'D':
- // Sunday is 0 like with 'w' in date()
- $options = $locale['weekdays_short'];
- break;
- case 'l':
- $options = $locale['weekdays_long'];
- break;
- case 'd':
- $options = $this->_createOptionList(1, 31);
- break;
- case 'M':
- $options = $locale['months_short'];
- array_unshift($options , '');
- unset($options[0]);
- break;
- case 'm':
- $options = $this->_createOptionList(1, 12);
- break;
- case 'F':
- $options = $locale['months_long'];
- array_unshift($options , '');
- unset($options[0]);
- break;
- case 'Y':
- $options = $this->_createOptionList(
- $this->_options['minYear'],
- $this->_options['maxYear'],
- $this->_options['minYear'] > $this->_options['maxYear']? -1: 1
- );
- break;
- case 'y':
- $options = $this->_createOptionList(
- $this->_options['minYear'],
- $this->_options['maxYear'],
- $this->_options['minYear'] > $this->_options['maxYear']? -1: 1
- );
- array_walk($options, create_function('&$v,$k','$v = substr($v,-2);'));
- break;
- case 'h':
- $options = $this->_createOptionList(1, 12);
- break;
- case 'g':
- $options = $this->_createOptionList(1, 12);
- array_walk($options, create_function('&$v,$k', '$v = intval($v);'));
- break;
- case 'H':
- $options = $this->_createOptionList(0, 23);
- break;
- case 'i':
- $options = $this->_createOptionList(0, 59, $this->_options['optionIncrement']['i']);
- break;
- case 's':
- $options = $this->_createOptionList(0, 59, $this->_options['optionIncrement']['s']);
- break;
- case 'a':
- $options = array('am' => 'am', 'pm' => 'pm');
- break;
- case 'A':
- $options = array('AM' => 'AM', 'PM' => 'PM');
- break;
- case 'W':
- $options = $this->_createOptionList(1, 53);
- break;
- case '\\':
- $backslash = true;
- $loadSelect = false;
- break;
- default:
- $separator .= (' ' == $sign? '&nbsp;': $sign);
- $loadSelect = false;
- }
-
- if ($loadSelect) {
- if (0 < count($this->_elements)) {
- $this->_separator[] = $separator;
- } else {
- $this->_wrap[0] = $separator;
- }
- $separator = '';
- // Should we add an empty option to the top of the select?
- if (!is_array($this->_options['addEmptyOption']) && $this->_options['addEmptyOption'] ||
- is_array($this->_options['addEmptyOption']) && !empty($this->_options['addEmptyOption'][$sign])) {
-
- // Using '+' array operator to preserve the keys
- if (is_array($this->_options['emptyOptionText']) && !empty($this->_options['emptyOptionText'][$sign])) {
- $options = array($this->_options['emptyOptionValue'] => $this->_options['emptyOptionText'][$sign]) + $options;
- } else {
- $options = array($this->_options['emptyOptionValue'] => $this->_options['emptyOptionText']) + $options;
- }
- }
- $this->_elements[] = new HTML_QuickForm_select($sign, null, $options, $this->getAttributes());
- }
- }
- }
- $this->_wrap[1] = $separator . ($backslash? '\\': '');
- }
-
- // }}}
- // {{{ _createOptionList()
-
- /**
- * Creates an option list containing the numbers from the start number to the end, inclusive
- *
- * @param int The start number
- * @param int The end number
- * @param int Increment by this value
- * @access private
- * @return array An array of numeric options.
- */
- function _createOptionList($start, $end, $step = 1)
- {
- for ($i = $start, $options = array(); $start > $end? $i >= $end: $i <= $end; $i += $step) {
- $options[$i] = sprintf('%02d', $i);
- }
- return $options;
- }
-
- // }}}
- // {{{ setValue()
-
- function setValue($value)
- {
- $trimLeadingZeros = create_function('$a', '$b = ltrim($a, \'0\'); return strlen($b)? $b: \'0\';');
- if (empty($value)) {
- $value = array();
- } elseif (is_scalar($value)) {
- if (!is_numeric($value)) {
- $value = strtotime($value);
- }
- // might be a unix epoch, then we fill all possible values
- $arr = explode('-', date('w-j-n-Y-g-G-i-s-a-A-W', (int)$value));
- $value = array(
- 'D' => $arr[0],
- 'l' => $arr[0],
- 'd' => $arr[1],
- 'M' => $arr[2],
- 'm' => $arr[2],
- 'F' => $arr[2],
- 'Y' => $arr[3],
- 'y' => $arr[3],
- 'h' => $arr[4],
- 'g' => $arr[4],
- 'H' => $arr[5],
- 'i' => $trimLeadingZeros($arr[6]),
- 's' => $trimLeadingZeros($arr[7]),
- 'a' => $arr[8],
- 'A' => $arr[9],
- 'W' => $trimLeadingZeros($arr[10])
- );
- } else {
- $value = array_map($trimLeadingZeros, $value);
- }
- parent::setValue($value);
- }
-
- // }}}
- // {{{ toHtml()
-
- function toHtml()
- {
- include_once('HTML/QuickForm/Renderer/Default.php');
- $renderer = new HTML_QuickForm_Renderer_Default();
- $renderer->setElementTemplate('{element}');
- parent::accept($renderer);
- return $this->_wrap[0] . $renderer->toHtml() . $this->_wrap[1];
- }
-
- // }}}
- // {{{ accept()
-
- function accept(&$renderer, $required = false, $error = null)
- {
- $renderer->renderElement($this, $required, $error);
- }
-
- // }}}
- // {{{ onQuickFormEvent()
-
- function onQuickFormEvent($event, $arg, &$caller)
- {
- if ('updateValue' == $event) {
- // we need to call setValue(), 'cause the default/constant value
- // may be in fact a timestamp, not an array
- return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
- } else {
- return parent::onQuickFormEvent($event, $arg, $caller);
- }
- }
-
- // }}}
-}
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Class for a group of elements used to input dates (and times).
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Class for a group of form elements
+ */
+require_once 'HTML/QuickForm/group.php';
+/**
+ * Class for <select></select> elements
+ */
+require_once 'HTML/QuickForm/select.php';
+
+/**
+ * Class for a group of elements used to input dates (and times).
+ *
+ * Inspired by original 'date' element but reimplemented as a subclass
+ * of HTML_QuickForm_group
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.1
+ */
+class HTML_QuickForm_date extends HTML_QuickForm_group
+{
+ // {{{ properties
+
+ /**
+ * Various options to control the element's display.
+ *
+ * @access private
+ * @var array
+ */
+ var $_options = array(
+ 'language' => 'en',
+ 'format' => 'dMY',
+ 'minYear' => 2001,
+ 'maxYear' => 2010,
+ 'addEmptyOption' => false,
+ 'emptyOptionValue' => '',
+ 'emptyOptionText' => '&nbsp;',
+ 'optionIncrement' => array('i' => 1, 's' => 1)
+ );
+
+ /**
+ * These complement separators, they are appended to the resultant HTML
+ * @access private
+ * @var array
+ */
+ var $_wrap = array('', '');
+
+ /**
+ * Options in different languages
+ *
+ * Note to potential translators: to avoid encoding problems please send
+ * your translations with "weird" letters encoded as HTML Unicode entities
+ *
+ * @access private
+ * @var array
+ */
+ var $_locale = array(
+ 'en' => array (
+ 'weekdays_short'=> array ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'),
+ 'weekdays_long' => array ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'),
+ 'months_long' => array ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December')
+ ),
+ 'de' => array (
+ 'weekdays_short'=> array ('So', 'Mon', 'Di', 'Mi', 'Do', 'Fr', 'Sa'),
+ 'weekdays_long' => array ('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'),
+ 'months_short' => array ('Jan', 'Feb', 'M&#xe4;rz', 'April', 'Mai', 'Juni', 'Juli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dez'),
+ 'months_long' => array ('Januar', 'Februar', 'M&#xe4;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember')
+ ),
+ 'fr' => array (
+ 'weekdays_short'=> array ('Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'),
+ 'weekdays_long' => array ('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'),
+ 'months_short' => array ('Jan', 'F&#xe9;v', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Ao&#xfb;t', 'Sep', 'Oct', 'Nov', 'D&#xe9;c'),
+ 'months_long' => array ('Janvier', 'F&#xe9;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&#xfb;t', 'Septembre', 'Octobre', 'Novembre', 'D&#xe9;cembre')
+ ),
+ 'hu' => array (
+ 'weekdays_short'=> array ('V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'),
+ 'weekdays_long' => array ('vas&#xe1;rnap', 'h&#xe9;tf&#x151;', 'kedd', 'szerda', 'cs&#xfc;t&#xf6;rt&#xf6;k', 'p&#xe9;ntek', 'szombat'),
+ 'months_short' => array ('jan', 'feb', 'm&#xe1;rc', '&#xe1;pr', 'm&#xe1;j', 'j&#xfa;n', 'j&#xfa;l', 'aug', 'szept', 'okt', 'nov', 'dec'),
+ 'months_long' => array ('janu&#xe1;r', 'febru&#xe1;r', 'm&#xe1;rcius', '&#xe1;prilis', 'm&#xe1;jus', 'j&#xfa;nius', 'j&#xfa;lius', 'augusztus', 'szeptember', 'okt&#xf3;ber', 'november', 'december')
+ ),
+ 'pl' => array (
+ 'weekdays_short'=> array ('Nie', 'Pn', 'Wt', '&#x15a;r', 'Czw', 'Pt', 'Sob'),
+ 'weekdays_long' => array ('Niedziela', 'Poniedzia&#x142;ek', 'Wtorek', '&#x15a;roda', 'Czwartek', 'Pi&#x105;tek', 'Sobota'),
+ 'months_short' => array ('Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Pa&#x17a;', 'Lis', 'Gru'),
+ 'months_long' => array ('Stycze&#x144;', 'Luty', 'Marzec', 'Kwiecie&#x144;', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpie&#x144;', 'Wrzesie&#x144;', 'Pa&#x17a;dziernik', 'Listopad', 'Grudzie&#x144;')
+ ),
+ 'sl' => array (
+ 'weekdays_short'=> array ('Ned', 'Pon', 'Tor', 'Sre', 'Cet', 'Pet', 'Sob'),
+ 'weekdays_long' => array ('Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Cetrtek', 'Petek', 'Sobota'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'),
+ 'months_long' => array ('Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij', 'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December')
+ ),
+ 'ru' => array (
+ 'weekdays_short'=> array ('&#x412;&#x441;', '&#x41f;&#x43d;', '&#x412;&#x442;', '&#x421;&#x440;', '&#x427;&#x442;', '&#x41f;&#x442;', '&#x421;&#x431;'),
+ 'weekdays_long' => array ('&#x412;&#x43e;&#x441;&#x43a;&#x440;&#x435;&#x441;&#x435;&#x43d;&#x44c;&#x435;', '&#x41f;&#x43e;&#x43d;&#x435;&#x434;&#x435;&#x43b;&#x44c;&#x43d;&#x438;&#x43a;', '&#x412;&#x442;&#x43e;&#x440;&#x43d;&#x438;&#x43a;', '&#x421;&#x440;&#x435;&#x434;&#x430;', '&#x427;&#x435;&#x442;&#x432;&#x435;&#x440;&#x433;', '&#x41f;&#x44f;&#x442;&#x43d;&#x438;&#x446;&#x430;', '&#x421;&#x443;&#x431;&#x431;&#x43e;&#x442;&#x430;'),
+ 'months_short' => array ('&#x42f;&#x43d;&#x432;', '&#x424;&#x435;&#x432;', '&#x41c;&#x430;&#x440;', '&#x410;&#x43f;&#x440;', '&#x41c;&#x430;&#x439;', '&#x418;&#x44e;&#x43d;', '&#x418;&#x44e;&#x43b;', '&#x410;&#x432;&#x433;', '&#x421;&#x435;&#x43d;', '&#x41e;&#x43a;&#x442;', '&#x41d;&#x43e;&#x44f;', '&#x414;&#x435;&#x43a;'),
+ 'months_long' => array ('&#x42f;&#x43d;&#x432;&#x430;&#x440;&#x44c;', '&#x424;&#x435;&#x432;&#x440;&#x430;&#x43b;&#x44c;', '&#x41c;&#x430;&#x440;&#x442;', '&#x410;&#x43f;&#x440;&#x435;&#x43b;&#x44c;', '&#x41c;&#x430;&#x439;', '&#x418;&#x44e;&#x43d;&#x44c;', '&#x418;&#x44e;&#x43b;&#x44c;', '&#x410;&#x432;&#x433;&#x443;&#x441;&#x442;', '&#x421;&#x435;&#x43d;&#x442;&#x44f;&#x431;&#x440;&#x44c;', '&#x41e;&#x43a;&#x442;&#x44f;&#x431;&#x440;&#x44c;', '&#x41d;&#x43e;&#x44f;&#x431;&#x440;&#x44c;', '&#x414;&#x435;&#x43a;&#x430;&#x431;&#x440;&#x44c;')
+ ),
+ 'es' => array (
+ 'weekdays_short'=> array ('Dom', 'Lun', 'Mar', 'Mi&#xe9;', 'Jue', 'Vie', 'S&#xe1;b'),
+ 'weekdays_long' => array ('Domingo', 'Lunes', 'Martes', 'Mi&#xe9;rcoles', 'Jueves', 'Viernes', 'S&#xe1;bado'),
+ 'months_short' => array ('Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'),
+ 'months_long' => array ('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre')
+ ),
+ 'da' => array (
+ 'weekdays_short'=> array ('S&#xf8;n', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'L&#xf8;r'),
+ 'weekdays_long' => array ('S&#xf8;ndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'L&#xf8;rdag'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
+ 'months_long' => array ('Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December')
+ ),
+ 'is' => array (
+ 'weekdays_short'=> array ('Sun', 'M&#xe1;n', '&#xde;ri', 'Mi&#xf0;', 'Fim', 'F&#xf6;s', 'Lau'),
+ 'weekdays_long' => array ('Sunnudagur', 'M&#xe1;nudagur', '&#xde;ri&#xf0;judagur', 'Mi&#xf0;vikudagur', 'Fimmtudagur', 'F&#xf6;studagur', 'Laugardagur'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Ma&#xed;', 'J&#xfa;n', 'J&#xfa;l', '&#xc1;g&#xfa;', 'Sep', 'Okt', 'N&#xf3;v', 'Des'),
+ 'months_long' => array ('Jan&#xfa;ar', 'Febr&#xfa;ar', 'Mars', 'Apr&#xed;l', 'Ma&#xed;', 'J&#xfa;n&#xed;', 'J&#xfa;l&#xed;', '&#xc1;g&#xfa;st', 'September', 'Okt&#xf3;ber', 'N&#xf3;vember', 'Desember')
+ ),
+ 'it' => array (
+ 'weekdays_short'=> array ('Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'),
+ 'weekdays_long' => array ('Domenica', 'Luned&#xec;', 'Marted&#xec;', 'Mercoled&#xec;', 'Gioved&#xec;', 'Venerd&#xec;', 'Sabato'),
+ 'months_short' => array ('Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'),
+ 'months_long' => array ('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre')
+ ),
+ 'sk' => array (
+ 'weekdays_short'=> array ('Ned', 'Pon', 'Uto', 'Str', '&#x8a;tv', 'Pia', 'Sob'),
+ 'weekdays_long' => array ('Nede&#x17e;a', 'Pondelok', 'Utorok', 'Streda', '&#x8a;tvrtok', 'Piatok', 'Sobota'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'M&#xe1;j', 'J&#xfa;n', 'J&#xfa;l', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
+ 'months_long' => array ('Janu&#xe1;r', 'Febru&#xe1;r', 'Marec', 'Apr&#xed;l', 'M&#xe1;j', 'J&#xfa;n', 'J&#xfa;l', 'August', 'September', 'Okt&#xf3;ber', 'November', 'December')
+ ),
+ 'cs' => array (
+ 'weekdays_short'=> array ('Ne', 'Po', '&#xda;t', 'St', '&#x10c;t', 'P&#xe1;', 'So'),
+ 'weekdays_long' => array ('Ned&#x11b;le', 'Pond&#x11b;l&#xed;', '&#xda;ter&#xfd;', 'St&#x159;eda', '&#x10c;tvrtek', 'P&#xe1;tek', 'Sobota'),
+ 'months_short' => array ('Led', '&#xda;no', 'B&#x159;e', 'Dub', 'Kv&#x11b;', '&#x10c;en', '&#x10c;ec', 'Srp', 'Z&#xe1;&#x159;', '&#x158;&#xed;j', 'Lis', 'Pro'),
+ 'months_long' => array ('Leden', '&#xda;nor', 'B&#x159;ezen', 'Duben', 'Kv&#x11b;ten', '&#x10c;erven', '&#x10c;ervenec', 'Srpen', 'Z&#xe1;&#x159;&#xed;', '&#x158;&#xed;jen', 'Listopad', 'Prosinec')
+ ),
+ 'hy' => array (
+ 'weekdays_short'=> array ('&#x53f;&#x580;&#x56f;', '&#x535;&#x580;&#x56f;', '&#x535;&#x580;&#x584;', '&#x549;&#x580;&#x584;', '&#x540;&#x576;&#x563;', '&#x548;&#x582;&#x580;', '&#x547;&#x562;&#x569;'),
+ 'weekdays_long' => array ('&#x53f;&#x56b;&#x580;&#x561;&#x56f;&#x56b;', '&#x535;&#x580;&#x56f;&#x578;&#x582;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x535;&#x580;&#x565;&#x584;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x549;&#x578;&#x580;&#x565;&#x584;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x540;&#x56b;&#x576;&#x563;&#x577;&#x561;&#x562;&#x569;&#x56b;', '&#x548;&#x582;&#x580;&#x562;&#x561;&#x569;', '&#x547;&#x561;&#x562;&#x561;&#x569;'),
+ 'months_short' => array ('&#x540;&#x576;&#x57e;', '&#x553;&#x57f;&#x580;', '&#x544;&#x580;&#x57f;', '&#x531;&#x57a;&#x580;', '&#x544;&#x575;&#x57d;', '&#x540;&#x576;&#x57d;', '&#x540;&#x56c;&#x57d;', '&#x555;&#x563;&#x57d;', '&#x54d;&#x57a;&#x57f;', '&#x540;&#x56f;&#x57f;', '&#x546;&#x575;&#x574;', '&#x534;&#x56f;&#x57f;'),
+ 'months_long' => array ('&#x540;&#x578;&#x582;&#x576;&#x57e;&#x561;&#x580;', '&#x553;&#x565;&#x57f;&#x580;&#x57e;&#x561;&#x580;', '&#x544;&#x561;&#x580;&#x57f;', '&#x531;&#x57a;&#x580;&#x56b;&#x56c;', '&#x544;&#x561;&#x575;&#x56b;&#x57d;', '&#x540;&#x578;&#x582;&#x576;&#x56b;&#x57d;', '&#x540;&#x578;&#x582;&#x56c;&#x56b;&#x57d;', '&#x555;&#x563;&#x578;&#x57d;&#x57f;&#x578;&#x57d;', '&#x54d;&#x565;&#x57a;&#x57f;&#x565;&#x574;&#x562;&#x565;&#x580;', '&#x540;&#x578;&#x56f;&#x57f;&#x565;&#x574;&#x562;&#x565;&#x580;', '&#x546;&#x578;&#x575;&#x565;&#x574;&#x562;&#x565;&#x580;', '&#x534;&#x565;&#x56f;&#x57f;&#x565;&#x574;&#x562;&#x565;&#x580;')
+ ),
+ 'nl' => array (
+ 'weekdays_short'=> array ('Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'),
+ 'weekdays_long' => array ('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
+ 'months_long' => array ('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December')
+ ),
+ 'et' => array (
+ 'weekdays_short'=> array ('P', 'E', 'T', 'K', 'N', 'R', 'L'),
+ 'weekdays_long' => array ('P&#xfc;hap&#xe4;ev', 'Esmasp&#xe4;ev', 'Teisip&#xe4;ev', 'Kolmap&#xe4;ev', 'Neljap&#xe4;ev', 'Reede', 'Laup&#xe4;ev'),
+ 'months_short' => array ('Jaan', 'Veebr', 'M&#xe4;rts', 'Aprill', 'Mai', 'Juuni', 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'),
+ 'months_long' => array ('Jaanuar', 'Veebruar', 'M&#xe4;rts', 'Aprill', 'Mai', 'Juuni', 'Juuli', 'August', 'September', 'Oktoober', 'November', 'Detsember')
+ ),
+ 'tr' => array (
+ 'weekdays_short'=> array ('Paz', 'Pzt', 'Sal', '&#xc7;ar', 'Per', 'Cum', 'Cts'),
+ 'weekdays_long' => array ('Pazar', 'Pazartesi', 'Sal&#x131;', '&#xc7;ar&#x15f;amba', 'Per&#x15f;embe', 'Cuma', 'Cumartesi'),
+ 'months_short' => array ('Ock', '&#x15e;bt', 'Mrt', 'Nsn', 'Mys', 'Hzrn', 'Tmmz', 'A&#x11f;st', 'Eyl', 'Ekm', 'Ksm', 'Arlk'),
+ 'months_long' => array ('Ocak', '&#x15e;ubat', 'Mart', 'Nisan', 'May&#x131;s', 'Haziran', 'Temmuz', 'A&#x11f;ustos', 'Eyl&#xfc;l', 'Ekim', 'Kas&#x131;m', 'Aral&#x131;k')
+ ),
+ 'no' => array (
+ 'weekdays_short'=> array ('S&#xf8;n', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'L&#xf8;r'),
+ 'weekdays_long' => array ('S&#xf8;ndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'L&#xf8;rdag'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'),
+ 'months_long' => array ('Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember')
+ ),
+ 'eo' => array (
+ 'weekdays_short'=> array ('Dim', 'Lun', 'Mar', 'Mer', '&#x134;a&#x16D;', 'Ven', 'Sab'),
+ 'weekdays_long' => array ('Diman&#x109;o', 'Lundo', 'Mardo', 'Merkredo', '&#x134;a&#x16D;do', 'Vendredo', 'Sabato'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'A&#x16D;g', 'Sep', 'Okt', 'Nov', 'Dec'),
+ 'months_long' => array ('Januaro', 'Februaro', 'Marto', 'Aprilo', 'Majo', 'Junio', 'Julio', 'A&#x16D;gusto', 'Septembro', 'Oktobro', 'Novembro', 'Decembro')
+ ),
+ 'ua' => array (
+ 'weekdays_short'=> array('&#x41d;&#x434;&#x43b;', '&#x41f;&#x43d;&#x434;', '&#x412;&#x442;&#x440;', '&#x421;&#x440;&#x434;', '&#x427;&#x442;&#x432;', '&#x41f;&#x442;&#x43d;', '&#x421;&#x431;&#x442;'),
+ 'weekdays_long' => array('&#x41d;&#x435;&#x434;&#x456;&#x43b;&#x44f;', '&#x41f;&#x43e;&#x43d;&#x435;&#x434;&#x456;&#x43b;&#x43e;&#x43a;', '&#x412;&#x456;&#x432;&#x442;&#x43e;&#x440;&#x43e;&#x43a;', '&#x421;&#x435;&#x440;&#x435;&#x434;&#x430;', '&#x427;&#x435;&#x442;&#x432;&#x435;&#x440;', '&#x41f;\'&#x44f;&#x442;&#x43d;&#x438;&#x446;&#x44f;', '&#x421;&#x443;&#x431;&#x43e;&#x442;&#x430;'),
+ 'months_short' => array('&#x421;&#x456;&#x447;', '&#x41b;&#x44e;&#x442;', '&#x411;&#x435;&#x440;', '&#x41a;&#x432;&#x456;', '&#x422;&#x440;&#x430;', '&#x427;&#x435;&#x440;', '&#x41b;&#x438;&#x43f;', '&#x421;&#x435;&#x440;', '&#x412;&#x435;&#x440;', '&#x416;&#x43e;&#x432;', '&#x41b;&#x438;&#x441;', '&#x413;&#x440;&#x443;'),
+ 'months_long' => array('&#x421;&#x456;&#x447;&#x435;&#x43d;&#x44c;', '&#x41b;&#x44e;&#x442;&#x438;&#x439;', '&#x411;&#x435;&#x440;&#x435;&#x437;&#x435;&#x43d;&#x44c;', '&#x41a;&#x432;&#x456;&#x442;&#x435;&#x43d;&#x44c;', '&#x422;&#x440;&#x430;&#x432;&#x435;&#x43d;&#x44c;', '&#x427;&#x435;&#x440;&#x432;&#x435;&#x43d;&#x44c;', '&#x41b;&#x438;&#x43f;&#x435;&#x43d;&#x44c;', '&#x421;&#x435;&#x440;&#x43f;&#x435;&#x43d;&#x44c;', '&#x412;&#x435;&#x440;&#x435;&#x441;&#x435;&#x43d;&#x44c;', '&#x416;&#x43e;&#x432;&#x442;&#x435;&#x43d;&#x44c;', '&#x41b;&#x438;&#x441;&#x442;&#x43e;&#x43f;&#x430;&#x434;', '&#x413;&#x440;&#x443;&#x434;&#x435;&#x43d;&#x44c;')
+ ),
+ 'ro' => array (
+ 'weekdays_short'=> array ('Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam'),
+ 'weekdays_long' => array ('Duminica', 'Luni', 'Marti', 'Miercuri', 'Joi', 'Vineri', 'Sambata'),
+ 'months_short' => array ('Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'),
+ 'months_long' => array ('Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Iunie', 'Iulie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie')
+ ),
+ 'he' => array (
+ 'weekdays_short'=> array ('&#1512;&#1488;&#1513;&#1493;&#1503;', '&#1513;&#1504;&#1497;', '&#1513;&#1500;&#1497;&#1513;&#1497;', '&#1512;&#1489;&#1497;&#1506;&#1497;', '&#1495;&#1502;&#1497;&#1513;&#1497;', '&#1513;&#1497;&#1513;&#1497;', '&#1513;&#1489;&#1514;'),
+ 'weekdays_long' => array ('&#1497;&#1493;&#1501; &#1512;&#1488;&#1513;&#1493;&#1503;', '&#1497;&#1493;&#1501; &#1513;&#1504;&#1497;', '&#1497;&#1493;&#1501; &#1513;&#1500;&#1497;&#1513;&#1497;', '&#1497;&#1493;&#1501; &#1512;&#1489;&#1497;&#1506;&#1497;', '&#1497;&#1493;&#1501; &#1495;&#1502;&#1497;&#1513;&#1497;', '&#1497;&#1493;&#1501; &#1513;&#1497;&#1513;&#1497;', '&#1513;&#1489;&#1514;'),
+ 'months_short' => array ('&#1497;&#1504;&#1493;&#1488;&#1512;', '&#1508;&#1489;&#1512;&#1493;&#1488;&#1512;', '&#1502;&#1512;&#1509;', '&#1488;&#1508;&#1512;&#1497;&#1500;', '&#1502;&#1488;&#1497;', '&#1497;&#1493;&#1504;&#1497;', '&#1497;&#1493;&#1500;&#1497;', '&#1488;&#1493;&#1490;&#1493;&#1505;&#1496;', '&#1505;&#1508;&#1496;&#1502;&#1489;&#1512;', '&#1488;&#1493;&#1511;&#1496;&#1493;&#1489;&#1512;', '&#1504;&#1493;&#1489;&#1502;&#1489;&#1512;', '&#1491;&#1510;&#1502;&#1489;&#1512;'),
+ 'months_long' => array ('&#1497;&#1504;&#1493;&#1488;&#1512;', '&#1508;&#1489;&#1512;&#1493;&#1488;&#1512;', '&#1502;&#1512;&#1509;', '&#1488;&#1508;&#1512;&#1497;&#1500;', '&#1502;&#1488;&#1497;', '&#1497;&#1493;&#1504;&#1497;', '&#1497;&#1493;&#1500;&#1497;', '&#1488;&#1493;&#1490;&#1493;&#1505;&#1496;', '&#1505;&#1508;&#1496;&#1502;&#1489;&#1512;', '&#1488;&#1493;&#1511;&#1496;&#1493;&#1489;&#1512;', '&#1504;&#1493;&#1489;&#1502;&#1489;&#1512;', '&#1491;&#1510;&#1502;&#1489;&#1512;')
+ ),
+ 'sv' => array (
+ 'weekdays_short'=> array ('S&#xf6;n', 'M&#xe5;n', 'Tis', 'Ons', 'Tor', 'Fre', 'L&#xf6;r'),
+ 'weekdays_long' => array ('S&#xf6;ndag', 'M&#xe5;ndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'L&#xf6;rdag'),
+ 'months_short' => array ('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'),
+ 'months_long' => array ('Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December')
+ ),
+ 'pt' => array (
+ 'weekdays_short'=> array ('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'S&aacute;b'),
+ 'weekdays_long' => array ('Domingo', 'Segunda-feira', 'Ter&ccedil;a-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'S&aacute;bado'),
+ 'months_short' => array ('Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'),
+ 'months_long' => array ('Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro')
+ ),
+ 'tw' => array (
+ 'weekdays_short'=> array ('&#36913;&#26085;','&#36913;&#19968;', '&#36913;&#20108;','&#36913;&#19977;', '&#36913;&#22235;','&#36913;&#20116;', '&#36913;&#20845;'),
+ 'weekdays_long' => array ('&#26143;&#26399;&#26085;', '&#26143;&#26399;&#19968;', '&#26143;&#26399;&#20108;', '&#26143;&#26399;&#19977;', '&#26143;&#26399;&#22235;', '&#26143;&#26399;&#20116;', '&#26143;&#26399;&#20845;'),
+ 'months_short' => array ('&#19968;&#26376;', '&#20108;&#26376;', '&#19977;&#26376;', '&#22235;&#26376;', '&#20116;&#26376;', '&#20845;&#26376;', '&#19971;&#26376;', '&#20843;&#26376;', '&#20061;&#26376;', '&#21313;&#26376;', '&#21313;&#19968;&#26376;', '&#21313;&#20108;&#26376;'),
+ 'months_long' => array ('&#19968;&#26376;', '&#20108;&#26376;', '&#19977;&#26376;', '&#22235;&#26376;', '&#20116;&#26376;', '&#20845;&#26376;', '&#19971;&#26376;', '&#20843;&#26376;', '&#20061;&#26376;', '&#21313;&#26376;', '&#21313;&#19968;&#26376;', '&#21313;&#20108;&#26376;')
+ ),
+ 'pt-br' => array (
+ 'weekdays_short'=> array ('Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'S&aacute;b'),
+ 'weekdays_long' => array ('Domingo', 'Segunda', 'Ter&ccedil;a', 'Quarta', 'Quinta', 'Sexta', 'S&aacute;bado'),
+ 'months_short' => array ('Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'),
+ 'months_long' => array ('Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro')
+ )
+ );
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * The following keys may appear in $options array:
+ * - 'language': date language
+ * - 'format': Format of the date, based on PHP's date() function.
+ * The following characters are currently recognised in format string:
+ * <pre>
+ * D => Short names of days
+ * l => Long names of days
+ * d => Day numbers
+ * M => Short names of months
+ * F => Long names of months
+ * m => Month numbers
+ * Y => Four digit year
+ * y => Two digit year
+ * h => 12 hour format
+ * H => 23 hour format
+ * i => Minutes
+ * s => Seconds
+ * a => am/pm
+ * A => AM/PM
+ * </pre>
+ * - 'minYear': Minimum year in year select
+ * - 'maxYear': Maximum year in year select
+ * - 'addEmptyOption': Should an empty option be added to the top of
+ * each select box?
+ * - 'emptyOptionValue': The value passed by the empty option.
+ * - 'emptyOptionText': The text displayed for the empty option.
+ * - 'optionIncrement': Step to increase the option values by (works for 'i' and 's')
+ *
+ * @access public
+ * @param string Element's name
+ * @param mixed Label(s) for an element
+ * @param array Options to control the element's display
+ * @param mixed Either a typical HTML attribute string or an associative array
+ */
+ function HTML_QuickForm_date($elementName = null, $elementLabel = null, $options = array(), $attributes = null)
+ {
+ $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->_appendName = true;
+ $this->_type = 'date';
+ // set the options, do not bother setting bogus ones
+ if (is_array($options)) {
+ foreach ($options as $name => $value) {
+ if ('language' == $name) {
+ $this->_options['language'] = isset($this->_locale[$value])? $value: 'en';
+ } elseif (isset($this->_options[$name])) {
+ if (is_array($value) && is_array($this->_options[$name])) {
+ $this->_options[$name] = @array_merge($this->_options[$name], $value);
+ } else {
+ $this->_options[$name] = $value;
+ }
+ }
+ }
+ }
+ }
+
+ // }}}
+ // {{{ _createElements()
+
+ function _createElements()
+ {
+ $this->_separator = $this->_elements = array();
+ $separator = '';
+ $locale =& $this->_locale[$this->_options['language']];
+ $backslash = false;
+ for ($i = 0, $length = strlen($this->_options['format']); $i < $length; $i++) {
+ $sign = $this->_options['format']{$i};
+ if ($backslash) {
+ $backslash = false;
+ $separator .= $sign;
+ } else {
+ $loadSelect = true;
+ switch ($sign) {
+ case 'D':
+ // Sunday is 0 like with 'w' in date()
+ $options = $locale['weekdays_short'];
+ break;
+ case 'l':
+ $options = $locale['weekdays_long'];
+ break;
+ case 'd':
+ $options = $this->_createOptionList(1, 31);
+ break;
+ case 'M':
+ $options = $locale['months_short'];
+ array_unshift($options , '');
+ unset($options[0]);
+ break;
+ case 'm':
+ $options = $this->_createOptionList(1, 12);
+ break;
+ case 'F':
+ $options = $locale['months_long'];
+ array_unshift($options , '');
+ unset($options[0]);
+ break;
+ case 'Y':
+ $options = $this->_createOptionList(
+ $this->_options['minYear'],
+ $this->_options['maxYear'],
+ $this->_options['minYear'] > $this->_options['maxYear']? -1: 1
+ );
+ break;
+ case 'y':
+ $options = $this->_createOptionList(
+ $this->_options['minYear'],
+ $this->_options['maxYear'],
+ $this->_options['minYear'] > $this->_options['maxYear']? -1: 1
+ );
+ array_walk($options, create_function('&$v,$k','$v = substr($v,-2);'));
+ break;
+ case 'h':
+ $options = $this->_createOptionList(1, 12);
+ break;
+ case 'g':
+ $options = $this->_createOptionList(1, 12);
+ array_walk($options, create_function('&$v,$k', '$v = intval($v);'));
+ break;
+ case 'H':
+ $options = $this->_createOptionList(0, 23);
+ break;
+ case 'i':
+ $options = $this->_createOptionList(0, 59, $this->_options['optionIncrement']['i']);
+ break;
+ case 's':
+ $options = $this->_createOptionList(0, 59, $this->_options['optionIncrement']['s']);
+ break;
+ case 'a':
+ $options = array('am' => 'am', 'pm' => 'pm');
+ break;
+ case 'A':
+ $options = array('AM' => 'AM', 'PM' => 'PM');
+ break;
+ case 'W':
+ $options = $this->_createOptionList(1, 53);
+ break;
+ case '\\':
+ $backslash = true;
+ $loadSelect = false;
+ break;
+ default:
+ $separator .= (' ' == $sign? '&nbsp;': $sign);
+ $loadSelect = false;
+ }
+
+ if ($loadSelect) {
+ if (0 < count($this->_elements)) {
+ $this->_separator[] = $separator;
+ } else {
+ $this->_wrap[0] = $separator;
+ }
+ $separator = '';
+ // Should we add an empty option to the top of the select?
+ if (!is_array($this->_options['addEmptyOption']) && $this->_options['addEmptyOption'] ||
+ is_array($this->_options['addEmptyOption']) && !empty($this->_options['addEmptyOption'][$sign])) {
+
+ // Using '+' array operator to preserve the keys
+ if (is_array($this->_options['emptyOptionText']) && !empty($this->_options['emptyOptionText'][$sign])) {
+ $options = array($this->_options['emptyOptionValue'] => $this->_options['emptyOptionText'][$sign]) + $options;
+ } else {
+ $options = array($this->_options['emptyOptionValue'] => $this->_options['emptyOptionText']) + $options;
+ }
+ }
+ $this->_elements[] = new HTML_QuickForm_select($sign, null, $options, $this->getAttributes());
+ }
+ }
+ }
+ $this->_wrap[1] = $separator . ($backslash? '\\': '');
+ }
+
+ // }}}
+ // {{{ _createOptionList()
+
+ /**
+ * Creates an option list containing the numbers from the start number to the end, inclusive
+ *
+ * @param int The start number
+ * @param int The end number
+ * @param int Increment by this value
+ * @access private
+ * @return array An array of numeric options.
+ */
+ function _createOptionList($start, $end, $step = 1)
+ {
+ for ($i = $start, $options = array(); $start > $end? $i >= $end: $i <= $end; $i += $step) {
+ $options[$i] = sprintf('%02d', $i);
+ }
+ return $options;
+ }
+
+ // }}}
+ // {{{ setValue()
+
+ function setValue($value)
+ {
+ $trimLeadingZeros = create_function('$a', '$b = ltrim($a, \'0\'); return strlen($b)? $b: \'0\';');
+ if (empty($value)) {
+ $value = array();
+ } elseif (is_scalar($value)) {
+ if (!is_numeric($value)) {
+ $value = strtotime($value);
+ }
+ // might be a unix epoch, then we fill all possible values
+ $arr = explode('-', date('w-j-n-Y-g-G-i-s-a-A-W', (int)$value));
+ $value = array(
+ 'D' => $arr[0],
+ 'l' => $arr[0],
+ 'd' => $arr[1],
+ 'M' => $arr[2],
+ 'm' => $arr[2],
+ 'F' => $arr[2],
+ 'Y' => $arr[3],
+ 'y' => $arr[3],
+ 'h' => $arr[4],
+ 'g' => $arr[4],
+ 'H' => $arr[5],
+ 'i' => $trimLeadingZeros($arr[6]),
+ 's' => $trimLeadingZeros($arr[7]),
+ 'a' => $arr[8],
+ 'A' => $arr[9],
+ 'W' => $trimLeadingZeros($arr[10])
+ );
+ } else {
+ $value = array_map($trimLeadingZeros, $value);
+ }
+ parent::setValue($value);
+ }
+
+ // }}}
+ // {{{ toHtml()
+
+ function toHtml()
+ {
+ include_once('HTML/QuickForm/Renderer/Default.php');
+ $renderer = new HTML_QuickForm_Renderer_Default();
+ $renderer->setElementTemplate('{element}');
+ parent::accept($renderer);
+ return $this->_wrap[0] . $renderer->toHtml() . $this->_wrap[1];
+ }
+
+ // }}}
+ // {{{ accept()
+
+ function accept(&$renderer, $required = false, $error = null)
+ {
+ $renderer->renderElement($this, $required, $error);
+ }
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ if ('updateValue' == $event) {
+ // we need to call setValue(), 'cause the default/constant value
+ // may be in fact a timestamp, not an array
+ return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
+ } else {
+ return parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ }
+
+ // }}}
+}
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/element.php b/libs/HTML/QuickForm/element.php
index 2604d39d47..9fbe41ef1f 100755
--- a/libs/HTML/QuickForm/element.php
+++ b/libs/HTML/QuickForm/element.php
@@ -1,494 +1,494 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Base class for form elements
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for all HTML classes
- */
-require_once 'HTML/Common.php';
-
-/**
- * Base class for form elements
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 1.0
- * @abstract
- */
-class HTML_QuickForm_element extends HTML_Common
-{
- // {{{ properties
-
- /**
- * Label of the field
- * @var string
- * @since 1.3
- * @access private
- */
- var $_label = '';
-
- /**
- * Form element type
- * @var string
- * @since 1.0
- * @access private
- */
- var $_type = '';
-
- /**
- * Flag to tell if element is frozen
- * @var boolean
- * @since 1.0
- * @access private
- */
- var $_flagFrozen = false;
-
- /**
- * Does the element support persistant data when frozen
- * @var boolean
- * @since 1.3
- * @access private
- */
- var $_persistantFreeze = false;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Name of the element
- * @param mixed Label(s) for the element
- * @param mixed Associative array of tag attributes or HTML attributes name="value" pairs
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_element($elementName=null, $elementLabel=null, $attributes=null)
- {
- HTML_Common::HTML_Common($attributes);
- if (isset($elementName)) {
- $this->setName($elementName);
- }
- if (isset($elementLabel)) {
- $this->setLabel($elementLabel);
- }
- } //end constructor
-
- // }}}
- // {{{ apiVersion()
-
- /**
- * Returns the current API version
- *
- * @since 1.0
- * @access public
- * @return float
- */
- function apiVersion()
- {
- return 3.2;
- } // end func apiVersion
-
- // }}}
- // {{{ getType()
-
- /**
- * Returns element type
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getType()
- {
- return $this->_type;
- } // end func getType
-
- // }}}
- // {{{ setName()
-
- /**
- * Sets the input field name
- *
- * @param string $name Input field name attribute
- * @since 1.0
- * @access public
- * @return void
- */
- function setName($name)
- {
- // interface method
- } //end func setName
-
- // }}}
- // {{{ getName()
-
- /**
- * Returns the element name
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getName()
- {
- // interface method
- } //end func getName
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets the value of the form element
- *
- * @param string $value Default value of the form element
- * @since 1.0
- * @access public
- * @return void
- */
- function setValue($value)
- {
- // interface
- } // end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns the value of the form element
- *
- * @since 1.0
- * @access public
- * @return mixed
- */
- function getValue()
- {
- // interface
- return null;
- } // end func getValue
-
- // }}}
- // {{{ freeze()
-
- /**
- * Freeze the element so that only its value is returned
- *
- * @access public
- * @return void
- */
- function freeze()
- {
- $this->_flagFrozen = true;
- } //end func freeze
-
- // }}}
- // {{{ unfreeze()
-
- /**
- * Unfreezes the element so that it becomes editable
- *
- * @access public
- * @return void
- * @since 3.2.4
- */
- function unfreeze()
- {
- $this->_flagFrozen = false;
- }
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getFrozenHtml()
- {
- $value = $this->getValue();
- return ('' != $value? htmlspecialchars($value): '&nbsp;') .
- $this->_getPersistantData();
- } //end func getFrozenHtml
-
- // }}}
- // {{{ _getPersistantData()
-
- /**
- * Used by getFrozenHtml() to pass the element's value if _persistantFreeze is on
- *
- * @access private
- * @return string
- */
- function _getPersistantData()
- {
- if (!$this->_persistantFreeze) {
- return '';
- } else {
- $id = $this->getAttribute('id');
- return '<input' . $this->_getAttrString(array(
- 'type' => 'hidden',
- 'name' => $this->getName(),
- 'value' => $this->getValue()
- ) + (isset($id)? array('id' => $id): array())) . ' />';
- }
- }
-
- // }}}
- // {{{ isFrozen()
-
- /**
- * Returns whether or not the element is frozen
- *
- * @since 1.3
- * @access public
- * @return bool
- */
- function isFrozen()
- {
- return $this->_flagFrozen;
- } // end func isFrozen
-
- // }}}
- // {{{ setPersistantFreeze()
-
- /**
- * Sets wether an element value should be kept in an hidden field
- * when the element is frozen or not
- *
- * @param bool $persistant True if persistant value
- * @since 2.0
- * @access public
- * @return void
- */
- function setPersistantFreeze($persistant=false)
- {
- $this->_persistantFreeze = $persistant;
- } //end func setPersistantFreeze
-
- // }}}
- // {{{ setLabel()
-
- /**
- * Sets display text for the element
- *
- * @param string $label Display text for the element
- * @since 1.3
- * @access public
- * @return void
- */
- function setLabel($label)
- {
- $this->_label = $label;
- } //end func setLabel
-
- // }}}
- // {{{ getLabel()
-
- /**
- * Returns display text for the element
- *
- * @since 1.3
- * @access public
- * @return string
- */
- function getLabel()
- {
- return $this->_label;
- } //end func getLabel
-
- // }}}
- // {{{ _findValue()
-
- /**
- * Tries to find the element value from the values array
- *
- * @since 2.7
- * @access private
- * @return mixed
- */
- function _findValue(&$values)
- {
- if (empty($values)) {
- return null;
- }
- $elementName = $this->getName();
- if (isset($values[$elementName])) {
- return $values[$elementName];
- } elseif (strpos($elementName, '[')) {
- $myVar = "['" . str_replace(
- array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
- $elementName
- ) . "']";
- return eval("return (isset(\$values$myVar)) ? \$values$myVar : null;");
- } else {
- return null;
- }
- } //end func _findValue
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string $event Name of event
- * @param mixed $arg event arguments
- * @param object &$caller calling object
- * @since 1.0
- * @access public
- * @return void
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- switch ($event) {
- case 'createElement':
- $className = get_class($this);
- $this->$className($arg[0], $arg[1], $arg[2], $arg[3], $arg[4]);
- break;
- case 'addElement':
- $this->onQuickFormEvent('createElement', $arg, $caller);
- $this->onQuickFormEvent('updateValue', null, $caller);
- break;
- case 'updateValue':
- // constant values override both default and submitted ones
- // default values are overriden by submitted
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_submitValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_defaultValues);
- }
- }
- if (null !== $value) {
- $this->setValue($value);
- }
- break;
- case 'setGroupValue':
- $this->setValue($arg);
- }
- return true;
- } // end func onQuickFormEvent
-
- // }}}
- // {{{ accept()
-
- /**
- * Accepts a renderer
- *
- * @param HTML_QuickForm_Renderer renderer object
- * @param bool Whether an element is required
- * @param string An error message associated with an element
- * @access public
- * @return void
- */
- function accept(&$renderer, $required=false, $error=null)
- {
- $renderer->renderElement($this, $required, $error);
- } // end func accept
-
- // }}}
- // {{{ _generateId()
-
- /**
- * Automatically generates and assigns an 'id' attribute for the element.
- *
- * Currently used to ensure that labels work on radio buttons and
- * checkboxes. Per idea of Alexander Radivanovich.
- *
- * @access private
- * @return void
- */
- function _generateId()
- {
- static $idx = 1;
-
- if (!$this->getAttribute('id')) {
- $this->updateAttributes(array('id' => 'qf_' . substr(md5(microtime() . $idx++), 0, 6)));
- }
- } // end func _generateId
-
- // }}}
- // {{{ exportValue()
-
- /**
- * Returns a 'safe' element's value
- *
- * @param array array of submitted values to search
- * @param bool whether to return the value as associative array
- * @access public
- * @return mixed
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- $value = $this->_findValue($submitValues);
- if (null === $value) {
- $value = $this->getValue();
- }
- return $this->_prepareValue($value, $assoc);
- }
-
- // }}}
- // {{{ _prepareValue()
-
- /**
- * Used by exportValue() to prepare the value for returning
- *
- * @param mixed the value found in exportValue()
- * @param bool whether to return the value as associative array
- * @access private
- * @return mixed
- */
- function _prepareValue($value, $assoc)
- {
- if (null === $value) {
- return null;
- } elseif (!$assoc) {
- return $value;
- } else {
- $name = $this->getName();
- if (!strpos($name, '[')) {
- return array($name => $value);
- } else {
- $valueAry = array();
- $myIndex = "['" . str_replace(
- array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
- $name
- ) . "']";
- eval("\$valueAry$myIndex = \$value;");
- return $valueAry;
- }
- }
- }
-
- // }}}
-} // end class HTML_QuickForm_element
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Base class for form elements
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for all HTML classes
+ */
+require_once 'HTML/Common.php';
+
+/**
+ * Base class for form elements
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 1.0
+ * @abstract
+ */
+class HTML_QuickForm_element extends HTML_Common
+{
+ // {{{ properties
+
+ /**
+ * Label of the field
+ * @var string
+ * @since 1.3
+ * @access private
+ */
+ var $_label = '';
+
+ /**
+ * Form element type
+ * @var string
+ * @since 1.0
+ * @access private
+ */
+ var $_type = '';
+
+ /**
+ * Flag to tell if element is frozen
+ * @var boolean
+ * @since 1.0
+ * @access private
+ */
+ var $_flagFrozen = false;
+
+ /**
+ * Does the element support persistant data when frozen
+ * @var boolean
+ * @since 1.3
+ * @access private
+ */
+ var $_persistantFreeze = false;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Name of the element
+ * @param mixed Label(s) for the element
+ * @param mixed Associative array of tag attributes or HTML attributes name="value" pairs
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_element($elementName=null, $elementLabel=null, $attributes=null)
+ {
+ HTML_Common::HTML_Common($attributes);
+ if (isset($elementName)) {
+ $this->setName($elementName);
+ }
+ if (isset($elementLabel)) {
+ $this->setLabel($elementLabel);
+ }
+ } //end constructor
+
+ // }}}
+ // {{{ apiVersion()
+
+ /**
+ * Returns the current API version
+ *
+ * @since 1.0
+ * @access public
+ * @return float
+ */
+ function apiVersion()
+ {
+ return 3.2;
+ } // end func apiVersion
+
+ // }}}
+ // {{{ getType()
+
+ /**
+ * Returns element type
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getType()
+ {
+ return $this->_type;
+ } // end func getType
+
+ // }}}
+ // {{{ setName()
+
+ /**
+ * Sets the input field name
+ *
+ * @param string $name Input field name attribute
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setName($name)
+ {
+ // interface method
+ } //end func setName
+
+ // }}}
+ // {{{ getName()
+
+ /**
+ * Returns the element name
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getName()
+ {
+ // interface method
+ } //end func getName
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets the value of the form element
+ *
+ * @param string $value Default value of the form element
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setValue($value)
+ {
+ // interface
+ } // end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns the value of the form element
+ *
+ * @since 1.0
+ * @access public
+ * @return mixed
+ */
+ function getValue()
+ {
+ // interface
+ return null;
+ } // end func getValue
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Freeze the element so that only its value is returned
+ *
+ * @access public
+ * @return void
+ */
+ function freeze()
+ {
+ $this->_flagFrozen = true;
+ } //end func freeze
+
+ // }}}
+ // {{{ unfreeze()
+
+ /**
+ * Unfreezes the element so that it becomes editable
+ *
+ * @access public
+ * @return void
+ * @since 3.2.4
+ */
+ function unfreeze()
+ {
+ $this->_flagFrozen = false;
+ }
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getFrozenHtml()
+ {
+ $value = $this->getValue();
+ return ('' != $value? htmlspecialchars($value): '&nbsp;') .
+ $this->_getPersistantData();
+ } //end func getFrozenHtml
+
+ // }}}
+ // {{{ _getPersistantData()
+
+ /**
+ * Used by getFrozenHtml() to pass the element's value if _persistantFreeze is on
+ *
+ * @access private
+ * @return string
+ */
+ function _getPersistantData()
+ {
+ if (!$this->_persistantFreeze) {
+ return '';
+ } else {
+ $id = $this->getAttribute('id');
+ return '<input' . $this->_getAttrString(array(
+ 'type' => 'hidden',
+ 'name' => $this->getName(),
+ 'value' => $this->getValue()
+ ) + (isset($id)? array('id' => $id): array())) . ' />';
+ }
+ }
+
+ // }}}
+ // {{{ isFrozen()
+
+ /**
+ * Returns whether or not the element is frozen
+ *
+ * @since 1.3
+ * @access public
+ * @return bool
+ */
+ function isFrozen()
+ {
+ return $this->_flagFrozen;
+ } // end func isFrozen
+
+ // }}}
+ // {{{ setPersistantFreeze()
+
+ /**
+ * Sets wether an element value should be kept in an hidden field
+ * when the element is frozen or not
+ *
+ * @param bool $persistant True if persistant value
+ * @since 2.0
+ * @access public
+ * @return void
+ */
+ function setPersistantFreeze($persistant=false)
+ {
+ $this->_persistantFreeze = $persistant;
+ } //end func setPersistantFreeze
+
+ // }}}
+ // {{{ setLabel()
+
+ /**
+ * Sets display text for the element
+ *
+ * @param string $label Display text for the element
+ * @since 1.3
+ * @access public
+ * @return void
+ */
+ function setLabel($label)
+ {
+ $this->_label = $label;
+ } //end func setLabel
+
+ // }}}
+ // {{{ getLabel()
+
+ /**
+ * Returns display text for the element
+ *
+ * @since 1.3
+ * @access public
+ * @return string
+ */
+ function getLabel()
+ {
+ return $this->_label;
+ } //end func getLabel
+
+ // }}}
+ // {{{ _findValue()
+
+ /**
+ * Tries to find the element value from the values array
+ *
+ * @since 2.7
+ * @access private
+ * @return mixed
+ */
+ function _findValue(&$values)
+ {
+ if (empty($values)) {
+ return null;
+ }
+ $elementName = $this->getName();
+ if (isset($values[$elementName])) {
+ return $values[$elementName];
+ } elseif (strpos($elementName, '[')) {
+ $myVar = "['" . str_replace(
+ array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
+ $elementName
+ ) . "']";
+ return eval("return (isset(\$values$myVar)) ? \$values$myVar : null;");
+ } else {
+ return null;
+ }
+ } //end func _findValue
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string $event Name of event
+ * @param mixed $arg event arguments
+ * @param object &$caller calling object
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ switch ($event) {
+ case 'createElement':
+ $className = get_class($this);
+ $this->$className($arg[0], $arg[1], $arg[2], $arg[3], $arg[4]);
+ break;
+ case 'addElement':
+ $this->onQuickFormEvent('createElement', $arg, $caller);
+ $this->onQuickFormEvent('updateValue', null, $caller);
+ break;
+ case 'updateValue':
+ // constant values override both default and submitted ones
+ // default values are overriden by submitted
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_submitValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ }
+ if (null !== $value) {
+ $this->setValue($value);
+ }
+ break;
+ case 'setGroupValue':
+ $this->setValue($arg);
+ }
+ return true;
+ } // end func onQuickFormEvent
+
+ // }}}
+ // {{{ accept()
+
+ /**
+ * Accepts a renderer
+ *
+ * @param HTML_QuickForm_Renderer renderer object
+ * @param bool Whether an element is required
+ * @param string An error message associated with an element
+ * @access public
+ * @return void
+ */
+ function accept(&$renderer, $required=false, $error=null)
+ {
+ $renderer->renderElement($this, $required, $error);
+ } // end func accept
+
+ // }}}
+ // {{{ _generateId()
+
+ /**
+ * Automatically generates and assigns an 'id' attribute for the element.
+ *
+ * Currently used to ensure that labels work on radio buttons and
+ * checkboxes. Per idea of Alexander Radivanovich.
+ *
+ * @access private
+ * @return void
+ */
+ function _generateId()
+ {
+ static $idx = 1;
+
+ if (!$this->getAttribute('id')) {
+ $this->updateAttributes(array('id' => 'qf_' . substr(md5(microtime() . $idx++), 0, 6)));
+ }
+ } // end func _generateId
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * Returns a 'safe' element's value
+ *
+ * @param array array of submitted values to search
+ * @param bool whether to return the value as associative array
+ * @access public
+ * @return mixed
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ $value = $this->_findValue($submitValues);
+ if (null === $value) {
+ $value = $this->getValue();
+ }
+ return $this->_prepareValue($value, $assoc);
+ }
+
+ // }}}
+ // {{{ _prepareValue()
+
+ /**
+ * Used by exportValue() to prepare the value for returning
+ *
+ * @param mixed the value found in exportValue()
+ * @param bool whether to return the value as associative array
+ * @access private
+ * @return mixed
+ */
+ function _prepareValue($value, $assoc)
+ {
+ if (null === $value) {
+ return null;
+ } elseif (!$assoc) {
+ return $value;
+ } else {
+ $name = $this->getName();
+ if (!strpos($name, '[')) {
+ return array($name => $value);
+ } else {
+ $valueAry = array();
+ $myIndex = "['" . str_replace(
+ array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
+ $name
+ ) . "']";
+ eval("\$valueAry$myIndex = \$value;");
+ return $valueAry;
+ }
+ }
+ }
+
+ // }}}
+} // end class HTML_QuickForm_element
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/file.php b/libs/HTML/QuickForm/file.php
index de23a1ec0e..f3cbdfa7a8 100755
--- a/libs/HTML/QuickForm/file.php
+++ b/libs/HTML/QuickForm/file.php
@@ -1,358 +1,358 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a file upload field
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-// register file-related rules
-if (class_exists('HTML_QuickForm')) {
- HTML_QuickForm::registerRule('uploadedfile', 'callback', '_ruleIsUploadedFile', 'HTML_QuickForm_file');
- HTML_QuickForm::registerRule('maxfilesize', 'callback', '_ruleCheckMaxFileSize', 'HTML_QuickForm_file');
- HTML_QuickForm::registerRule('mimetype', 'callback', '_ruleCheckMimeType', 'HTML_QuickForm_file');
- HTML_QuickForm::registerRule('filename', 'callback', '_ruleCheckFileName', 'HTML_QuickForm_file');
-}
-
-/**
- * HTML class for a file upload field
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_file extends HTML_QuickForm_input
-{
- // {{{ properties
-
- /**
- * Uploaded file data, from $_FILES
- * @var array
- */
- var $_value = null;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Input field name attribute
- * @param string Input field label
- * @param mixed (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- */
- function HTML_QuickForm_file($elementName=null, $elementLabel=null, $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
- $this->setType('file');
- } //end constructor
-
- // }}}
- // {{{ setSize()
-
- /**
- * Sets size of file element
- *
- * @param int Size of file element
- * @since 1.0
- * @access public
- */
- function setSize($size)
- {
- $this->updateAttributes(array('size' => $size));
- } //end func setSize
-
- // }}}
- // {{{ getSize()
-
- /**
- * Returns size of file element
- *
- * @since 1.0
- * @access public
- * @return int
- */
- function getSize()
- {
- return $this->getAttribute('size');
- } //end func getSize
-
- // }}}
- // {{{ freeze()
-
- /**
- * Freeze the element so that only its value is returned
- *
- * @access public
- * @return bool
- */
- function freeze()
- {
- return false;
- } //end func freeze
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets value for file element.
- *
- * Actually this does nothing. The function is defined here to override
- * HTML_Quickform_input's behaviour of setting the 'value' attribute. As
- * no sane user-agent uses <input type="file">'s value for anything
- * (because of security implications) we implement file's value as a
- * read-only property with a special meaning.
- *
- * @param mixed Value for file element
- * @since 3.0
- * @access public
- */
- function setValue($value)
- {
- return null;
- } //end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns information about the uploaded file
- *
- * @since 3.0
- * @access public
- * @return array
- */
- function getValue()
- {
- return $this->_value;
- } // end func getValue
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string Name of event
- * @param mixed event arguments
- * @param object calling object
- * @since 1.0
- * @access public
- * @return bool
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- switch ($event) {
- case 'updateValue':
- if ($caller->getAttribute('method') == 'get') {
- return PEAR::raiseError('Cannot add a file upload field to a GET method form');
- }
- $this->_value = $this->_findValue();
- $caller->updateAttributes(array('enctype' => 'multipart/form-data'));
- $caller->setMaxFileSize();
- break;
- case 'addElement':
- $this->onQuickFormEvent('createElement', $arg, $caller);
- return $this->onQuickFormEvent('updateValue', null, $caller);
- break;
- case 'createElement':
- $className = get_class($this);
- $this->$className($arg[0], $arg[1], $arg[2]);
- break;
- }
- return true;
- } // end func onQuickFormEvent
-
- // }}}
- // {{{ moveUploadedFile()
-
- /**
- * Moves an uploaded file into the destination
- *
- * @param string Destination directory path
- * @param string New file name
- * @access public
- * @return bool Whether the file was moved successfully
- */
- function moveUploadedFile($dest, $fileName = '')
- {
- if ($dest != '' && substr($dest, -1) != '/') {
- $dest .= '/';
- }
- $fileName = ($fileName != '') ? $fileName : basename($this->_value['name']);
- return move_uploaded_file($this->_value['tmp_name'], $dest . $fileName);
- } // end func moveUploadedFile
-
- // }}}
- // {{{ isUploadedFile()
-
- /**
- * Checks if the element contains an uploaded file
- *
- * @access public
- * @return bool true if file has been uploaded, false otherwise
- */
- function isUploadedFile()
- {
- return $this->_ruleIsUploadedFile($this->_value);
- } // end func isUploadedFile
-
- // }}}
- // {{{ _ruleIsUploadedFile()
-
- /**
- * Checks if the given element contains an uploaded file
- *
- * @param array Uploaded file info (from $_FILES)
- * @access private
- * @return bool true if file has been uploaded, false otherwise
- */
- function _ruleIsUploadedFile($elementValue)
- {
- if ((isset($elementValue['error']) && $elementValue['error'] == 0) ||
- (!empty($elementValue['tmp_name']) && $elementValue['tmp_name'] != 'none')) {
- return is_uploaded_file($elementValue['tmp_name']);
- } else {
- return false;
- }
- } // end func _ruleIsUploadedFile
-
- // }}}
- // {{{ _ruleCheckMaxFileSize()
-
- /**
- * Checks that the file does not exceed the max file size
- *
- * @param array Uploaded file info (from $_FILES)
- * @param int Max file size
- * @access private
- * @return bool true if filesize is lower than maxsize, false otherwise
- */
- function _ruleCheckMaxFileSize($elementValue, $maxSize)
- {
- if (!empty($elementValue['error']) &&
- (UPLOAD_ERR_FORM_SIZE == $elementValue['error'] || UPLOAD_ERR_INI_SIZE == $elementValue['error'])) {
- return false;
- }
- if (!HTML_QuickForm_file::_ruleIsUploadedFile($elementValue)) {
- return true;
- }
- return ($maxSize >= @filesize($elementValue['tmp_name']));
- } // end func _ruleCheckMaxFileSize
-
- // }}}
- // {{{ _ruleCheckMimeType()
-
- /**
- * Checks if the given element contains an uploaded file of the right mime type
- *
- * @param array Uploaded file info (from $_FILES)
- * @param mixed Mime Type (can be an array of allowed types)
- * @access private
- * @return bool true if mimetype is correct, false otherwise
- */
- function _ruleCheckMimeType($elementValue, $mimeType)
- {
- if (!HTML_QuickForm_file::_ruleIsUploadedFile($elementValue)) {
- return true;
- }
- if (is_array($mimeType)) {
- return in_array($elementValue['type'], $mimeType);
- }
- return $elementValue['type'] == $mimeType;
- } // end func _ruleCheckMimeType
-
- // }}}
- // {{{ _ruleCheckFileName()
-
- /**
- * Checks if the given element contains an uploaded file of the filename regex
- *
- * @param array Uploaded file info (from $_FILES)
- * @param string Regular expression
- * @access private
- * @return bool true if name matches regex, false otherwise
- */
- function _ruleCheckFileName($elementValue, $regex)
- {
- if (!HTML_QuickForm_file::_ruleIsUploadedFile($elementValue)) {
- return true;
- }
- return preg_match($regex, $elementValue['name']);
- } // end func _ruleCheckFileName
-
- // }}}
- // {{{ _findValue()
-
- /**
- * Tries to find the element value from the values array
- *
- * Needs to be redefined here as $_FILES is populated differently from
- * other arrays when element name is of the form foo[bar]
- *
- * @access private
- * @return mixed
- */
- function _findValue()
- {
- if (empty($_FILES)) {
- return null;
- }
- $elementName = $this->getName();
- if (isset($_FILES[$elementName])) {
- return $_FILES[$elementName];
- } elseif (false !== ($pos = strpos($elementName, '['))) {
- $base = str_replace(
- array('\\', '\''), array('\\\\', '\\\''),
- substr($elementName, 0, $pos)
- );
- $idx = "['" . str_replace(
- array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
- substr($elementName, $pos + 1, -1)
- ) . "']";
- $props = array('name', 'type', 'size', 'tmp_name', 'error');
- $code = "if (!isset(\$_FILES['{$base}']['name']{$idx})) {\n" .
- " return null;\n" .
- "} else {\n" .
- " \$value = array();\n";
- foreach ($props as $prop) {
- $code .= " \$value['{$prop}'] = \$_FILES['{$base}']['{$prop}']{$idx};\n";
- }
- return eval($code . " return \$value;\n}\n");
- } else {
- return null;
- }
- }
-
- // }}}
-} // end class HTML_QuickForm_file
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a file upload field
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+// register file-related rules
+if (class_exists('HTML_QuickForm')) {
+ HTML_QuickForm::registerRule('uploadedfile', 'callback', '_ruleIsUploadedFile', 'HTML_QuickForm_file');
+ HTML_QuickForm::registerRule('maxfilesize', 'callback', '_ruleCheckMaxFileSize', 'HTML_QuickForm_file');
+ HTML_QuickForm::registerRule('mimetype', 'callback', '_ruleCheckMimeType', 'HTML_QuickForm_file');
+ HTML_QuickForm::registerRule('filename', 'callback', '_ruleCheckFileName', 'HTML_QuickForm_file');
+}
+
+/**
+ * HTML class for a file upload field
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_file extends HTML_QuickForm_input
+{
+ // {{{ properties
+
+ /**
+ * Uploaded file data, from $_FILES
+ * @var array
+ */
+ var $_value = null;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Input field name attribute
+ * @param string Input field label
+ * @param mixed (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ */
+ function HTML_QuickForm_file($elementName=null, $elementLabel=null, $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
+ $this->setType('file');
+ } //end constructor
+
+ // }}}
+ // {{{ setSize()
+
+ /**
+ * Sets size of file element
+ *
+ * @param int Size of file element
+ * @since 1.0
+ * @access public
+ */
+ function setSize($size)
+ {
+ $this->updateAttributes(array('size' => $size));
+ } //end func setSize
+
+ // }}}
+ // {{{ getSize()
+
+ /**
+ * Returns size of file element
+ *
+ * @since 1.0
+ * @access public
+ * @return int
+ */
+ function getSize()
+ {
+ return $this->getAttribute('size');
+ } //end func getSize
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Freeze the element so that only its value is returned
+ *
+ * @access public
+ * @return bool
+ */
+ function freeze()
+ {
+ return false;
+ } //end func freeze
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets value for file element.
+ *
+ * Actually this does nothing. The function is defined here to override
+ * HTML_Quickform_input's behaviour of setting the 'value' attribute. As
+ * no sane user-agent uses <input type="file">'s value for anything
+ * (because of security implications) we implement file's value as a
+ * read-only property with a special meaning.
+ *
+ * @param mixed Value for file element
+ * @since 3.0
+ * @access public
+ */
+ function setValue($value)
+ {
+ return null;
+ } //end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns information about the uploaded file
+ *
+ * @since 3.0
+ * @access public
+ * @return array
+ */
+ function getValue()
+ {
+ return $this->_value;
+ } // end func getValue
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string Name of event
+ * @param mixed event arguments
+ * @param object calling object
+ * @since 1.0
+ * @access public
+ * @return bool
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ switch ($event) {
+ case 'updateValue':
+ if ($caller->getAttribute('method') == 'get') {
+ return PEAR::raiseError('Cannot add a file upload field to a GET method form');
+ }
+ $this->_value = $this->_findValue();
+ $caller->updateAttributes(array('enctype' => 'multipart/form-data'));
+ $caller->setMaxFileSize();
+ break;
+ case 'addElement':
+ $this->onQuickFormEvent('createElement', $arg, $caller);
+ return $this->onQuickFormEvent('updateValue', null, $caller);
+ break;
+ case 'createElement':
+ $className = get_class($this);
+ $this->$className($arg[0], $arg[1], $arg[2]);
+ break;
+ }
+ return true;
+ } // end func onQuickFormEvent
+
+ // }}}
+ // {{{ moveUploadedFile()
+
+ /**
+ * Moves an uploaded file into the destination
+ *
+ * @param string Destination directory path
+ * @param string New file name
+ * @access public
+ * @return bool Whether the file was moved successfully
+ */
+ function moveUploadedFile($dest, $fileName = '')
+ {
+ if ($dest != '' && substr($dest, -1) != '/') {
+ $dest .= '/';
+ }
+ $fileName = ($fileName != '') ? $fileName : basename($this->_value['name']);
+ return move_uploaded_file($this->_value['tmp_name'], $dest . $fileName);
+ } // end func moveUploadedFile
+
+ // }}}
+ // {{{ isUploadedFile()
+
+ /**
+ * Checks if the element contains an uploaded file
+ *
+ * @access public
+ * @return bool true if file has been uploaded, false otherwise
+ */
+ function isUploadedFile()
+ {
+ return $this->_ruleIsUploadedFile($this->_value);
+ } // end func isUploadedFile
+
+ // }}}
+ // {{{ _ruleIsUploadedFile()
+
+ /**
+ * Checks if the given element contains an uploaded file
+ *
+ * @param array Uploaded file info (from $_FILES)
+ * @access private
+ * @return bool true if file has been uploaded, false otherwise
+ */
+ function _ruleIsUploadedFile($elementValue)
+ {
+ if ((isset($elementValue['error']) && $elementValue['error'] == 0) ||
+ (!empty($elementValue['tmp_name']) && $elementValue['tmp_name'] != 'none')) {
+ return is_uploaded_file($elementValue['tmp_name']);
+ } else {
+ return false;
+ }
+ } // end func _ruleIsUploadedFile
+
+ // }}}
+ // {{{ _ruleCheckMaxFileSize()
+
+ /**
+ * Checks that the file does not exceed the max file size
+ *
+ * @param array Uploaded file info (from $_FILES)
+ * @param int Max file size
+ * @access private
+ * @return bool true if filesize is lower than maxsize, false otherwise
+ */
+ function _ruleCheckMaxFileSize($elementValue, $maxSize)
+ {
+ if (!empty($elementValue['error']) &&
+ (UPLOAD_ERR_FORM_SIZE == $elementValue['error'] || UPLOAD_ERR_INI_SIZE == $elementValue['error'])) {
+ return false;
+ }
+ if (!HTML_QuickForm_file::_ruleIsUploadedFile($elementValue)) {
+ return true;
+ }
+ return ($maxSize >= @filesize($elementValue['tmp_name']));
+ } // end func _ruleCheckMaxFileSize
+
+ // }}}
+ // {{{ _ruleCheckMimeType()
+
+ /**
+ * Checks if the given element contains an uploaded file of the right mime type
+ *
+ * @param array Uploaded file info (from $_FILES)
+ * @param mixed Mime Type (can be an array of allowed types)
+ * @access private
+ * @return bool true if mimetype is correct, false otherwise
+ */
+ function _ruleCheckMimeType($elementValue, $mimeType)
+ {
+ if (!HTML_QuickForm_file::_ruleIsUploadedFile($elementValue)) {
+ return true;
+ }
+ if (is_array($mimeType)) {
+ return in_array($elementValue['type'], $mimeType);
+ }
+ return $elementValue['type'] == $mimeType;
+ } // end func _ruleCheckMimeType
+
+ // }}}
+ // {{{ _ruleCheckFileName()
+
+ /**
+ * Checks if the given element contains an uploaded file of the filename regex
+ *
+ * @param array Uploaded file info (from $_FILES)
+ * @param string Regular expression
+ * @access private
+ * @return bool true if name matches regex, false otherwise
+ */
+ function _ruleCheckFileName($elementValue, $regex)
+ {
+ if (!HTML_QuickForm_file::_ruleIsUploadedFile($elementValue)) {
+ return true;
+ }
+ return preg_match($regex, $elementValue['name']);
+ } // end func _ruleCheckFileName
+
+ // }}}
+ // {{{ _findValue()
+
+ /**
+ * Tries to find the element value from the values array
+ *
+ * Needs to be redefined here as $_FILES is populated differently from
+ * other arrays when element name is of the form foo[bar]
+ *
+ * @access private
+ * @return mixed
+ */
+ function _findValue()
+ {
+ if (empty($_FILES)) {
+ return null;
+ }
+ $elementName = $this->getName();
+ if (isset($_FILES[$elementName])) {
+ return $_FILES[$elementName];
+ } elseif (false !== ($pos = strpos($elementName, '['))) {
+ $base = str_replace(
+ array('\\', '\''), array('\\\\', '\\\''),
+ substr($elementName, 0, $pos)
+ );
+ $idx = "['" . str_replace(
+ array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),
+ substr($elementName, $pos + 1, -1)
+ ) . "']";
+ $props = array('name', 'type', 'size', 'tmp_name', 'error');
+ $code = "if (!isset(\$_FILES['{$base}']['name']{$idx})) {\n" .
+ " return null;\n" .
+ "} else {\n" .
+ " \$value = array();\n";
+ foreach ($props as $prop) {
+ $code .= " \$value['{$prop}'] = \$_FILES['{$base}']['{$prop}']{$idx};\n";
+ }
+ return eval($code . " return \$value;\n}\n");
+ } else {
+ return null;
+ }
+ }
+
+ // }}}
+} // end class HTML_QuickForm_file
+?>
diff --git a/libs/HTML/QuickForm/group.php b/libs/HTML/QuickForm/group.php
index 9c1cd9b476..f90641b7d9 100755
--- a/libs/HTML/QuickForm/group.php
+++ b/libs/HTML/QuickForm/group.php
@@ -1,588 +1,588 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a form element group
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for form elements
- */
-require_once 'HTML/QuickForm/element.php';
-
-/**
- * HTML class for a form element group
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_group extends HTML_QuickForm_element
-{
- // {{{ properties
-
- /**
- * Name of the element
- * @var string
- * @since 1.0
- * @access private
- */
- var $_name = '';
-
- /**
- * Array of grouped elements
- * @var array
- * @since 1.0
- * @access private
- */
- var $_elements = array();
-
- /**
- * String to separate elements
- * @var mixed
- * @since 2.5
- * @access private
- */
- var $_separator = null;
-
- /**
- * Required elements in this group
- * @var array
- * @since 2.5
- * @access private
- */
- var $_required = array();
-
- /**
- * Whether to change elements' names to $groupName[$elementName] or leave them as is
- * @var bool
- * @since 3.0
- * @access private
- */
- var $_appendName = true;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Group name
- * @param array $elementLabel (optional)Group label
- * @param array $elements (optional)Group elements
- * @param mixed $separator (optional)Use a string for one separator,
- * use an array to alternate the separators.
- * @param bool $appendName (optional)whether to change elements' names to
- * the form $groupName[$elementName] or leave
- * them as is.
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_group($elementName=null, $elementLabel=null, $elements=null, $separator=null, $appendName = true)
- {
- $this->HTML_QuickForm_element($elementName, $elementLabel);
- $this->_type = 'group';
- if (isset($elements) && is_array($elements)) {
- $this->setElements($elements);
- }
- if (isset($separator)) {
- $this->_separator = $separator;
- }
- if (isset($appendName)) {
- $this->_appendName = $appendName;
- }
- } //end constructor
-
- // }}}
- // {{{ setName()
-
- /**
- * Sets the group name
- *
- * @param string $name Group name
- * @since 1.0
- * @access public
- * @return void
- */
- function setName($name)
- {
- $this->_name = $name;
- } //end func setName
-
- // }}}
- // {{{ getName()
-
- /**
- * Returns the group name
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getName()
- {
- return $this->_name;
- } //end func getName
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets values for group's elements
- *
- * @param mixed Values for group's elements
- * @since 1.0
- * @access public
- * @return void
- */
- function setValue($value)
- {
- $this->_createElementsIfNotExist();
- foreach (array_keys($this->_elements) as $key) {
- if (!$this->_appendName) {
- $v = $this->_elements[$key]->_findValue($value);
- if (null !== $v) {
- $this->_elements[$key]->onQuickFormEvent('setGroupValue', $v, $this);
- }
-
- } else {
- $elementName = $this->_elements[$key]->getName();
- $index = strlen($elementName) ? $elementName : $key;
- if (is_array($value)) {
- if (isset($value[$index])) {
- $this->_elements[$key]->onQuickFormEvent('setGroupValue', $value[$index], $this);
- }
- } elseif (isset($value)) {
- $this->_elements[$key]->onQuickFormEvent('setGroupValue', $value, $this);
- }
- }
- }
- } //end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns the value of the group
- *
- * @since 1.0
- * @access public
- * @return mixed
- */
- function getValue()
- {
- $value = null;
- foreach (array_keys($this->_elements) as $key) {
- $element =& $this->_elements[$key];
- switch ($element->getType()) {
- case 'radio':
- $v = $element->getChecked()? $element->getValue(): null;
- break;
- case 'checkbox':
- $v = $element->getChecked()? true: null;
- break;
- default:
- $v = $element->getValue();
- }
- if (null !== $v) {
- $elementName = $element->getName();
- if (is_null($elementName)) {
- $value = $v;
- } else {
- if (!is_array($value)) {
- $value = is_null($value)? array(): array($value);
- }
- if ('' === $elementName) {
- $value[] = $v;
- } else {
- $value[$elementName] = $v;
- }
- }
- }
- }
- return $value;
- } // end func getValue
-
- // }}}
- // {{{ setElements()
-
- /**
- * Sets the grouped elements
- *
- * @param array $elements Array of elements
- * @since 1.1
- * @access public
- * @return void
- */
- function setElements($elements)
- {
- $this->_elements = array_values($elements);
- if ($this->_flagFrozen) {
- $this->freeze();
- }
- } // end func setElements
-
- // }}}
- // {{{ getElements()
-
- /**
- * Gets the grouped elements
- *
- * @since 2.4
- * @access public
- * @return array
- */
- function &getElements()
- {
- $this->_createElementsIfNotExist();
- return $this->_elements;
- } // end func getElements
-
- // }}}
- // {{{ getGroupType()
-
- /**
- * Gets the group type based on its elements
- * Will return 'mixed' if elements contained in the group
- * are of different types.
- *
- * @access public
- * @return string group elements type
- */
- function getGroupType()
- {
- $this->_createElementsIfNotExist();
- $prevType = '';
- foreach (array_keys($this->_elements) as $key) {
- $type = $this->_elements[$key]->getType();
- if ($type != $prevType && $prevType != '') {
- return 'mixed';
- }
- $prevType = $type;
- }
- return $type;
- } // end func getGroupType
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns Html for the group
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function toHtml()
- {
- include_once('HTML/QuickForm/Renderer/Default.php');
- $renderer = new HTML_QuickForm_Renderer_Default();
- $renderer->setElementTemplate('{element}');
- $this->accept($renderer);
- return $renderer->toHtml();
- } //end func toHtml
-
- // }}}
- // {{{ getElementName()
-
- /**
- * Returns the element name inside the group such as found in the html form
- *
- * @param mixed $index Element name or element index in the group
- * @since 3.0
- * @access public
- * @return mixed string with element name, false if not found
- */
- function getElementName($index)
- {
- $this->_createElementsIfNotExist();
- $elementName = false;
- if (is_int($index) && isset($this->_elements[$index])) {
- $elementName = $this->_elements[$index]->getName();
- if (isset($elementName) && $elementName == '') {
- $elementName = $index;
- }
- if ($this->_appendName) {
- if (is_null($elementName)) {
- $elementName = $this->getName();
- } else {
- $elementName = $this->getName().'['.$elementName.']';
- }
- }
-
- } elseif (is_string($index)) {
- foreach (array_keys($this->_elements) as $key) {
- $elementName = $this->_elements[$key]->getName();
- if ($index == $elementName) {
- if ($this->_appendName) {
- $elementName = $this->getName().'['.$elementName.']';
- }
- break;
- } elseif ($this->_appendName && $this->getName().'['.$elementName.']' == $index) {
- break;
- }
- }
- }
- return $elementName;
- } //end func getElementName
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags
- *
- * @since 1.3
- * @access public
- * @return string
- */
- function getFrozenHtml()
- {
- $flags = array();
- $this->_createElementsIfNotExist();
- foreach (array_keys($this->_elements) as $key) {
- if (false === ($flags[$key] = $this->_elements[$key]->isFrozen())) {
- $this->_elements[$key]->freeze();
- }
- }
- $html = $this->toHtml();
- foreach (array_keys($this->_elements) as $key) {
- if (!$flags[$key]) {
- $this->_elements[$key]->unfreeze();
- }
- }
- return $html;
- } //end func getFrozenHtml
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string $event Name of event
- * @param mixed $arg event arguments
- * @param object &$caller calling object
- * @since 1.0
- * @access public
- * @return void
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- switch ($event) {
- case 'updateValue':
- $this->_createElementsIfNotExist();
- foreach (array_keys($this->_elements) as $key) {
- if ($this->_appendName) {
- $elementName = $this->_elements[$key]->getName();
- if (is_null($elementName)) {
- $this->_elements[$key]->setName($this->getName());
- } elseif ('' === $elementName) {
- $this->_elements[$key]->setName($this->getName() . '[' . $key . ']');
- } else {
- $this->_elements[$key]->setName($this->getName() . '[' . $elementName . ']');
- }
- }
- $this->_elements[$key]->onQuickFormEvent('updateValue', $arg, $caller);
- if ($this->_appendName) {
- $this->_elements[$key]->setName($elementName);
- }
- }
- break;
-
- default:
- parent::onQuickFormEvent($event, $arg, $caller);
- }
- return true;
- } // end func onQuickFormEvent
-
- // }}}
- // {{{ accept()
-
- /**
- * Accepts a renderer
- *
- * @param HTML_QuickForm_Renderer renderer object
- * @param bool Whether a group is required
- * @param string An error message associated with a group
- * @access public
- * @return void
- */
- function accept(&$renderer, $required = false, $error = null)
- {
- $this->_createElementsIfNotExist();
- $renderer->startGroup($this, $required, $error);
- $name = $this->getName();
- foreach (array_keys($this->_elements) as $key) {
- $element =& $this->_elements[$key];
-
- if ($this->_appendName) {
- $elementName = $element->getName();
- if (isset($elementName)) {
- $element->setName($name . '['. (strlen($elementName)? $elementName: $key) .']');
- } else {
- $element->setName($name);
- }
- }
-
- $required = !$element->isFrozen() && in_array($element->getName(), $this->_required);
-
- $element->accept($renderer, $required);
-
- // restore the element's name
- if ($this->_appendName) {
- $element->setName($elementName);
- }
- }
- $renderer->finishGroup($this);
- } // end func accept
-
- // }}}
- // {{{ exportValue()
-
- /**
- * As usual, to get the group's value we access its elements and call
- * their exportValue() methods
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- $value = null;
- foreach (array_keys($this->_elements) as $key) {
- $elementName = $this->_elements[$key]->getName();
- if ($this->_appendName) {
- if (is_null($elementName)) {
- $this->_elements[$key]->setName($this->getName());
- } elseif ('' === $elementName) {
- $this->_elements[$key]->setName($this->getName() . '[' . $key . ']');
- } else {
- $this->_elements[$key]->setName($this->getName() . '[' . $elementName . ']');
- }
- }
- $v = $this->_elements[$key]->exportValue($submitValues, $assoc);
- if ($this->_appendName) {
- $this->_elements[$key]->setName($elementName);
- }
- if (null !== $v) {
- // Make $value an array, we will use it like one
- if (null === $value) {
- $value = array();
- }
- if ($assoc) {
- // just like HTML_QuickForm::exportValues()
- $value = HTML_QuickForm::arrayMerge($value, $v);
- } else {
- // just like getValue(), but should work OK every time here
- if (is_null($elementName)) {
- $value = $v;
- } elseif ('' === $elementName) {
- $value[] = $v;
- } else {
- $value[$elementName] = $v;
- }
- }
- }
- }
- // do not pass the value through _prepareValue, we took care of this already
- return $value;
- }
-
- // }}}
- // {{{ _createElements()
-
- /**
- * Creates the group's elements.
- *
- * This should be overriden by child classes that need to create their
- * elements. The method will be called automatically when needed, calling
- * it from the constructor is discouraged as the constructor is usually
- * called _twice_ on element creation, first time with _no_ parameters.
- *
- * @access private
- * @abstract
- */
- function _createElements()
- {
- // abstract
- }
-
- // }}}
- // {{{ _createElementsIfNotExist()
-
- /**
- * A wrapper around _createElements()
- *
- * This method calls _createElements() if the group's _elements array
- * is empty. It also performs some updates, e.g. freezes the created
- * elements if the group is already frozen.
- *
- * @access private
- */
- function _createElementsIfNotExist()
- {
- if (empty($this->_elements)) {
- $this->_createElements();
- if ($this->_flagFrozen) {
- $this->freeze();
- }
- }
- }
-
- // }}}
- // {{{ freeze()
-
- function freeze()
- {
- parent::freeze();
- foreach (array_keys($this->_elements) as $key) {
- $this->_elements[$key]->freeze();
- }
- }
-
- // }}}
- // {{{ unfreeze()
-
- function unfreeze()
- {
- parent::unfreeze();
- foreach (array_keys($this->_elements) as $key) {
- $this->_elements[$key]->unfreeze();
- }
- }
-
- // }}}
- // {{{ setPersistantFreeze()
-
- function setPersistantFreeze($persistant = false)
- {
- parent::setPersistantFreeze($persistant);
- foreach (array_keys($this->_elements) as $key) {
- $this->_elements[$key]->setPersistantFreeze($persistant);
- }
- }
-
- // }}}
-} //end class HTML_QuickForm_group
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a form element group
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for form elements
+ */
+require_once 'HTML/QuickForm/element.php';
+
+/**
+ * HTML class for a form element group
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_group extends HTML_QuickForm_element
+{
+ // {{{ properties
+
+ /**
+ * Name of the element
+ * @var string
+ * @since 1.0
+ * @access private
+ */
+ var $_name = '';
+
+ /**
+ * Array of grouped elements
+ * @var array
+ * @since 1.0
+ * @access private
+ */
+ var $_elements = array();
+
+ /**
+ * String to separate elements
+ * @var mixed
+ * @since 2.5
+ * @access private
+ */
+ var $_separator = null;
+
+ /**
+ * Required elements in this group
+ * @var array
+ * @since 2.5
+ * @access private
+ */
+ var $_required = array();
+
+ /**
+ * Whether to change elements' names to $groupName[$elementName] or leave them as is
+ * @var bool
+ * @since 3.0
+ * @access private
+ */
+ var $_appendName = true;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Group name
+ * @param array $elementLabel (optional)Group label
+ * @param array $elements (optional)Group elements
+ * @param mixed $separator (optional)Use a string for one separator,
+ * use an array to alternate the separators.
+ * @param bool $appendName (optional)whether to change elements' names to
+ * the form $groupName[$elementName] or leave
+ * them as is.
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_group($elementName=null, $elementLabel=null, $elements=null, $separator=null, $appendName = true)
+ {
+ $this->HTML_QuickForm_element($elementName, $elementLabel);
+ $this->_type = 'group';
+ if (isset($elements) && is_array($elements)) {
+ $this->setElements($elements);
+ }
+ if (isset($separator)) {
+ $this->_separator = $separator;
+ }
+ if (isset($appendName)) {
+ $this->_appendName = $appendName;
+ }
+ } //end constructor
+
+ // }}}
+ // {{{ setName()
+
+ /**
+ * Sets the group name
+ *
+ * @param string $name Group name
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setName($name)
+ {
+ $this->_name = $name;
+ } //end func setName
+
+ // }}}
+ // {{{ getName()
+
+ /**
+ * Returns the group name
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getName()
+ {
+ return $this->_name;
+ } //end func getName
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets values for group's elements
+ *
+ * @param mixed Values for group's elements
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setValue($value)
+ {
+ $this->_createElementsIfNotExist();
+ foreach (array_keys($this->_elements) as $key) {
+ if (!$this->_appendName) {
+ $v = $this->_elements[$key]->_findValue($value);
+ if (null !== $v) {
+ $this->_elements[$key]->onQuickFormEvent('setGroupValue', $v, $this);
+ }
+
+ } else {
+ $elementName = $this->_elements[$key]->getName();
+ $index = strlen($elementName) ? $elementName : $key;
+ if (is_array($value)) {
+ if (isset($value[$index])) {
+ $this->_elements[$key]->onQuickFormEvent('setGroupValue', $value[$index], $this);
+ }
+ } elseif (isset($value)) {
+ $this->_elements[$key]->onQuickFormEvent('setGroupValue', $value, $this);
+ }
+ }
+ }
+ } //end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns the value of the group
+ *
+ * @since 1.0
+ * @access public
+ * @return mixed
+ */
+ function getValue()
+ {
+ $value = null;
+ foreach (array_keys($this->_elements) as $key) {
+ $element =& $this->_elements[$key];
+ switch ($element->getType()) {
+ case 'radio':
+ $v = $element->getChecked()? $element->getValue(): null;
+ break;
+ case 'checkbox':
+ $v = $element->getChecked()? true: null;
+ break;
+ default:
+ $v = $element->getValue();
+ }
+ if (null !== $v) {
+ $elementName = $element->getName();
+ if (is_null($elementName)) {
+ $value = $v;
+ } else {
+ if (!is_array($value)) {
+ $value = is_null($value)? array(): array($value);
+ }
+ if ('' === $elementName) {
+ $value[] = $v;
+ } else {
+ $value[$elementName] = $v;
+ }
+ }
+ }
+ }
+ return $value;
+ } // end func getValue
+
+ // }}}
+ // {{{ setElements()
+
+ /**
+ * Sets the grouped elements
+ *
+ * @param array $elements Array of elements
+ * @since 1.1
+ * @access public
+ * @return void
+ */
+ function setElements($elements)
+ {
+ $this->_elements = array_values($elements);
+ if ($this->_flagFrozen) {
+ $this->freeze();
+ }
+ } // end func setElements
+
+ // }}}
+ // {{{ getElements()
+
+ /**
+ * Gets the grouped elements
+ *
+ * @since 2.4
+ * @access public
+ * @return array
+ */
+ function &getElements()
+ {
+ $this->_createElementsIfNotExist();
+ return $this->_elements;
+ } // end func getElements
+
+ // }}}
+ // {{{ getGroupType()
+
+ /**
+ * Gets the group type based on its elements
+ * Will return 'mixed' if elements contained in the group
+ * are of different types.
+ *
+ * @access public
+ * @return string group elements type
+ */
+ function getGroupType()
+ {
+ $this->_createElementsIfNotExist();
+ $prevType = '';
+ foreach (array_keys($this->_elements) as $key) {
+ $type = $this->_elements[$key]->getType();
+ if ($type != $prevType && $prevType != '') {
+ return 'mixed';
+ }
+ $prevType = $type;
+ }
+ return $type;
+ } // end func getGroupType
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns Html for the group
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ include_once('HTML/QuickForm/Renderer/Default.php');
+ $renderer = new HTML_QuickForm_Renderer_Default();
+ $renderer->setElementTemplate('{element}');
+ $this->accept($renderer);
+ return $renderer->toHtml();
+ } //end func toHtml
+
+ // }}}
+ // {{{ getElementName()
+
+ /**
+ * Returns the element name inside the group such as found in the html form
+ *
+ * @param mixed $index Element name or element index in the group
+ * @since 3.0
+ * @access public
+ * @return mixed string with element name, false if not found
+ */
+ function getElementName($index)
+ {
+ $this->_createElementsIfNotExist();
+ $elementName = false;
+ if (is_int($index) && isset($this->_elements[$index])) {
+ $elementName = $this->_elements[$index]->getName();
+ if (isset($elementName) && $elementName == '') {
+ $elementName = $index;
+ }
+ if ($this->_appendName) {
+ if (is_null($elementName)) {
+ $elementName = $this->getName();
+ } else {
+ $elementName = $this->getName().'['.$elementName.']';
+ }
+ }
+
+ } elseif (is_string($index)) {
+ foreach (array_keys($this->_elements) as $key) {
+ $elementName = $this->_elements[$key]->getName();
+ if ($index == $elementName) {
+ if ($this->_appendName) {
+ $elementName = $this->getName().'['.$elementName.']';
+ }
+ break;
+ } elseif ($this->_appendName && $this->getName().'['.$elementName.']' == $index) {
+ break;
+ }
+ }
+ }
+ return $elementName;
+ } //end func getElementName
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags
+ *
+ * @since 1.3
+ * @access public
+ * @return string
+ */
+ function getFrozenHtml()
+ {
+ $flags = array();
+ $this->_createElementsIfNotExist();
+ foreach (array_keys($this->_elements) as $key) {
+ if (false === ($flags[$key] = $this->_elements[$key]->isFrozen())) {
+ $this->_elements[$key]->freeze();
+ }
+ }
+ $html = $this->toHtml();
+ foreach (array_keys($this->_elements) as $key) {
+ if (!$flags[$key]) {
+ $this->_elements[$key]->unfreeze();
+ }
+ }
+ return $html;
+ } //end func getFrozenHtml
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string $event Name of event
+ * @param mixed $arg event arguments
+ * @param object &$caller calling object
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ switch ($event) {
+ case 'updateValue':
+ $this->_createElementsIfNotExist();
+ foreach (array_keys($this->_elements) as $key) {
+ if ($this->_appendName) {
+ $elementName = $this->_elements[$key]->getName();
+ if (is_null($elementName)) {
+ $this->_elements[$key]->setName($this->getName());
+ } elseif ('' === $elementName) {
+ $this->_elements[$key]->setName($this->getName() . '[' . $key . ']');
+ } else {
+ $this->_elements[$key]->setName($this->getName() . '[' . $elementName . ']');
+ }
+ }
+ $this->_elements[$key]->onQuickFormEvent('updateValue', $arg, $caller);
+ if ($this->_appendName) {
+ $this->_elements[$key]->setName($elementName);
+ }
+ }
+ break;
+
+ default:
+ parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ return true;
+ } // end func onQuickFormEvent
+
+ // }}}
+ // {{{ accept()
+
+ /**
+ * Accepts a renderer
+ *
+ * @param HTML_QuickForm_Renderer renderer object
+ * @param bool Whether a group is required
+ * @param string An error message associated with a group
+ * @access public
+ * @return void
+ */
+ function accept(&$renderer, $required = false, $error = null)
+ {
+ $this->_createElementsIfNotExist();
+ $renderer->startGroup($this, $required, $error);
+ $name = $this->getName();
+ foreach (array_keys($this->_elements) as $key) {
+ $element =& $this->_elements[$key];
+
+ if ($this->_appendName) {
+ $elementName = $element->getName();
+ if (isset($elementName)) {
+ $element->setName($name . '['. (strlen($elementName)? $elementName: $key) .']');
+ } else {
+ $element->setName($name);
+ }
+ }
+
+ $required = !$element->isFrozen() && in_array($element->getName(), $this->_required);
+
+ $element->accept($renderer, $required);
+
+ // restore the element's name
+ if ($this->_appendName) {
+ $element->setName($elementName);
+ }
+ }
+ $renderer->finishGroup($this);
+ } // end func accept
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * As usual, to get the group's value we access its elements and call
+ * their exportValue() methods
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ $value = null;
+ foreach (array_keys($this->_elements) as $key) {
+ $elementName = $this->_elements[$key]->getName();
+ if ($this->_appendName) {
+ if (is_null($elementName)) {
+ $this->_elements[$key]->setName($this->getName());
+ } elseif ('' === $elementName) {
+ $this->_elements[$key]->setName($this->getName() . '[' . $key . ']');
+ } else {
+ $this->_elements[$key]->setName($this->getName() . '[' . $elementName . ']');
+ }
+ }
+ $v = $this->_elements[$key]->exportValue($submitValues, $assoc);
+ if ($this->_appendName) {
+ $this->_elements[$key]->setName($elementName);
+ }
+ if (null !== $v) {
+ // Make $value an array, we will use it like one
+ if (null === $value) {
+ $value = array();
+ }
+ if ($assoc) {
+ // just like HTML_QuickForm::exportValues()
+ $value = HTML_QuickForm::arrayMerge($value, $v);
+ } else {
+ // just like getValue(), but should work OK every time here
+ if (is_null($elementName)) {
+ $value = $v;
+ } elseif ('' === $elementName) {
+ $value[] = $v;
+ } else {
+ $value[$elementName] = $v;
+ }
+ }
+ }
+ }
+ // do not pass the value through _prepareValue, we took care of this already
+ return $value;
+ }
+
+ // }}}
+ // {{{ _createElements()
+
+ /**
+ * Creates the group's elements.
+ *
+ * This should be overriden by child classes that need to create their
+ * elements. The method will be called automatically when needed, calling
+ * it from the constructor is discouraged as the constructor is usually
+ * called _twice_ on element creation, first time with _no_ parameters.
+ *
+ * @access private
+ * @abstract
+ */
+ function _createElements()
+ {
+ // abstract
+ }
+
+ // }}}
+ // {{{ _createElementsIfNotExist()
+
+ /**
+ * A wrapper around _createElements()
+ *
+ * This method calls _createElements() if the group's _elements array
+ * is empty. It also performs some updates, e.g. freezes the created
+ * elements if the group is already frozen.
+ *
+ * @access private
+ */
+ function _createElementsIfNotExist()
+ {
+ if (empty($this->_elements)) {
+ $this->_createElements();
+ if ($this->_flagFrozen) {
+ $this->freeze();
+ }
+ }
+ }
+
+ // }}}
+ // {{{ freeze()
+
+ function freeze()
+ {
+ parent::freeze();
+ foreach (array_keys($this->_elements) as $key) {
+ $this->_elements[$key]->freeze();
+ }
+ }
+
+ // }}}
+ // {{{ unfreeze()
+
+ function unfreeze()
+ {
+ parent::unfreeze();
+ foreach (array_keys($this->_elements) as $key) {
+ $this->_elements[$key]->unfreeze();
+ }
+ }
+
+ // }}}
+ // {{{ setPersistantFreeze()
+
+ function setPersistantFreeze($persistant = false)
+ {
+ parent::setPersistantFreeze($persistant);
+ foreach (array_keys($this->_elements) as $key) {
+ $this->_elements[$key]->setPersistantFreeze($persistant);
+ }
+ }
+
+ // }}}
+} //end class HTML_QuickForm_group
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/header.php b/libs/HTML/QuickForm/header.php
index 9cb0f364c6..dbbbcc07ea 100755
--- a/libs/HTML/QuickForm/header.php
+++ b/libs/HTML/QuickForm/header.php
@@ -1,74 +1,74 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * A pseudo-element used for adding headers to form
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * HTML class for static data
- */
-require_once 'HTML/QuickForm/static.php';
-
-/**
- * A pseudo-element used for adding headers to form
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.0
- */
-class HTML_QuickForm_header extends HTML_QuickForm_static
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName Header name
- * @param string $text Header text
- * @access public
- * @return void
- */
- function HTML_QuickForm_header($elementName = null, $text = null)
- {
- $this->HTML_QuickForm_static($elementName, null, $text);
- $this->_type = 'header';
- }
-
- // }}}
- // {{{ accept()
-
- /**
- * Accepts a renderer
- *
- * @param HTML_QuickForm_Renderer renderer object
- * @access public
- * @return void
- */
- function accept(&$renderer)
- {
- $renderer->renderHeader($this);
- } // end func accept
-
- // }}}
-
-} //end class HTML_QuickForm_header
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * A pseudo-element used for adding headers to form
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * HTML class for static data
+ */
+require_once 'HTML/QuickForm/static.php';
+
+/**
+ * A pseudo-element used for adding headers to form
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.0
+ */
+class HTML_QuickForm_header extends HTML_QuickForm_static
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName Header name
+ * @param string $text Header text
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_header($elementName = null, $text = null)
+ {
+ $this->HTML_QuickForm_static($elementName, null, $text);
+ $this->_type = 'header';
+ }
+
+ // }}}
+ // {{{ accept()
+
+ /**
+ * Accepts a renderer
+ *
+ * @param HTML_QuickForm_Renderer renderer object
+ * @access public
+ * @return void
+ */
+ function accept(&$renderer)
+ {
+ $renderer->renderHeader($this);
+ } // end func accept
+
+ // }}}
+
+} //end class HTML_QuickForm_header
+?>
diff --git a/libs/HTML/QuickForm/hidden.php b/libs/HTML/QuickForm/hidden.php
index b0fb3d9669..b3f5737f0c 100755
--- a/libs/HTML/QuickForm/hidden.php
+++ b/libs/HTML/QuickForm/hidden.php
@@ -1,94 +1,94 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a hidden type element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for a hidden type element
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_hidden extends HTML_QuickForm_input
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $value (optional)Input field value
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_hidden($elementName=null, $value='', $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
- $this->setType('hidden');
- $this->setValue($value);
- } //end constructor
-
- // }}}
- // {{{ freeze()
-
- /**
- * Freeze the element so that only its value is returned
- *
- * @access public
- * @return void
- */
- function freeze()
- {
- return false;
- } //end func freeze
-
- // }}}
- // {{{ accept()
-
- /**
- * Accepts a renderer
- *
- * @param HTML_QuickForm_Renderer renderer object
- * @access public
- * @return void
- */
- function accept(&$renderer)
- {
- $renderer->renderHidden($this);
- } // end func accept
-
- // }}}
-
-} //end class HTML_QuickForm_hidden
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a hidden type element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for a hidden type element
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_hidden extends HTML_QuickForm_input
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $value (optional)Input field value
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_hidden($elementName=null, $value='', $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
+ $this->setType('hidden');
+ $this->setValue($value);
+ } //end constructor
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Freeze the element so that only its value is returned
+ *
+ * @access public
+ * @return void
+ */
+ function freeze()
+ {
+ return false;
+ } //end func freeze
+
+ // }}}
+ // {{{ accept()
+
+ /**
+ * Accepts a renderer
+ *
+ * @param HTML_QuickForm_Renderer renderer object
+ * @access public
+ * @return void
+ */
+ function accept(&$renderer)
+ {
+ $renderer->renderHidden($this);
+ } // end func accept
+
+ // }}}
+
+} //end class HTML_QuickForm_hidden
+?>
diff --git a/libs/HTML/QuickForm/hiddenselect.php b/libs/HTML/QuickForm/hiddenselect.php
index d3ed8dc954..8f411ed9d4 100755
--- a/libs/HTML/QuickForm/hiddenselect.php
+++ b/libs/HTML/QuickForm/hiddenselect.php
@@ -1,118 +1,118 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Hidden select pseudo-element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Isaac Shepard <ishepard@bsiweb.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Class for <select></select> elements
- */
-require_once 'HTML/QuickForm/select.php';
-
-/**
- * Hidden select pseudo-element
- *
- * This class takes the same arguments as a select element, but instead
- * of creating a select ring it creates hidden elements for all values
- * already selected with setDefault or setConstant. This is useful if
- * you have a select ring that you don't want visible, but you need all
- * selected values to be passed.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Isaac Shepard <ishepard@bsiweb.com>
- * @version Release: 3.2.9
- * @since 2.1
- */
-class HTML_QuickForm_hiddenselect extends HTML_QuickForm_select
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Select name attribute
- * @param mixed Label(s) for the select (not used)
- * @param mixed Data to be used to populate options
- * @param mixed Either a typical HTML attribute string or an associative array (not used)
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_hiddenselect($elementName=null, $elementLabel=null, $options=null, $attributes=null)
- {
- HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- $this->_type = 'hiddenselect';
- if (isset($options)) {
- $this->load($options);
- }
- } //end constructor
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the SELECT in HTML
- *
- * @since 1.0
- * @access public
- * @return string
- * @throws
- */
- function toHtml()
- {
- if (empty($this->_values)) {
- return '';
- }
-
- $tabs = $this->_getTabs();
- $name = $this->getPrivateName();
- $strHtml = '';
-
- foreach ($this->_values as $key => $val) {
- for ($i = 0, $optCount = count($this->_options); $i < $optCount; $i++) {
- if ($val == $this->_options[$i]['attr']['value']) {
- $strHtml .= $tabs . '<input' . $this->_getAttrString(array(
- 'type' => 'hidden',
- 'name' => $name,
- 'value' => $val
- )) . " />\n" ;
- }
- }
- }
-
- return $strHtml;
- } //end func toHtml
-
- // }}}
- // {{{ accept()
-
- /**
- * This is essentially a hidden element and should be rendered as one
- */
- function accept(&$renderer)
- {
- $renderer->renderHidden($this);
- }
-
- // }}}
-} //end class HTML_QuickForm_hiddenselect
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Hidden select pseudo-element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Isaac Shepard <ishepard@bsiweb.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Class for <select></select> elements
+ */
+require_once 'HTML/QuickForm/select.php';
+
+/**
+ * Hidden select pseudo-element
+ *
+ * This class takes the same arguments as a select element, but instead
+ * of creating a select ring it creates hidden elements for all values
+ * already selected with setDefault or setConstant. This is useful if
+ * you have a select ring that you don't want visible, but you need all
+ * selected values to be passed.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Isaac Shepard <ishepard@bsiweb.com>
+ * @version Release: 3.2.9
+ * @since 2.1
+ */
+class HTML_QuickForm_hiddenselect extends HTML_QuickForm_select
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Select name attribute
+ * @param mixed Label(s) for the select (not used)
+ * @param mixed Data to be used to populate options
+ * @param mixed Either a typical HTML attribute string or an associative array (not used)
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_hiddenselect($elementName=null, $elementLabel=null, $options=null, $attributes=null)
+ {
+ HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->_type = 'hiddenselect';
+ if (isset($options)) {
+ $this->load($options);
+ }
+ } //end constructor
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the SELECT in HTML
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ * @throws
+ */
+ function toHtml()
+ {
+ if (empty($this->_values)) {
+ return '';
+ }
+
+ $tabs = $this->_getTabs();
+ $name = $this->getPrivateName();
+ $strHtml = '';
+
+ foreach ($this->_values as $key => $val) {
+ for ($i = 0, $optCount = count($this->_options); $i < $optCount; $i++) {
+ if ($val == $this->_options[$i]['attr']['value']) {
+ $strHtml .= $tabs . '<input' . $this->_getAttrString(array(
+ 'type' => 'hidden',
+ 'name' => $name,
+ 'value' => $val
+ )) . " />\n" ;
+ }
+ }
+ }
+
+ return $strHtml;
+ } //end func toHtml
+
+ // }}}
+ // {{{ accept()
+
+ /**
+ * This is essentially a hidden element and should be rendered as one
+ */
+ function accept(&$renderer)
+ {
+ $renderer->renderHidden($this);
+ }
+
+ // }}}
+} //end class HTML_QuickForm_hiddenselect
+?>
diff --git a/libs/HTML/QuickForm/hierselect.php b/libs/HTML/QuickForm/hierselect.php
index 0879aa9a72..89a9500806 100755
--- a/libs/HTML/QuickForm/hierselect.php
+++ b/libs/HTML/QuickForm/hierselect.php
@@ -1,593 +1,593 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Hierarchical select element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Herim Vasquez <vasquezh@iro.umontreal.ca>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Class for a group of form elements
- */
-require_once 'HTML/QuickForm/group.php';
-/**
- * Class for <select></select> elements
- */
-require_once 'HTML/QuickForm/select.php';
-
-/**
- * Hierarchical select element
- *
- * Class to dynamically create two or more HTML Select elements
- * The first select changes the content of the second select and so on.
- * This element is considered as a group. Selects will be named
- * groupName[0], groupName[1], groupName[2]...
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Herim Vasquez <vasquezh@iro.umontreal.ca>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.1
- */
-class HTML_QuickForm_hierselect extends HTML_QuickForm_group
-{
- // {{{ properties
-
- /**
- * Options for all the select elements
- *
- * @see setOptions()
- * @var array
- * @access private
- */
- var $_options = array();
-
- /**
- * Number of select elements on this group
- *
- * @var int
- * @access private
- */
- var $_nbElements = 0;
-
- /**
- * The javascript used to set and change the options
- *
- * @var string
- * @access private
- */
- var $_js = '';
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $elementLabel (optional)Input field label in form
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array. Date format is passed along the attributes.
- * @param mixed $separator (optional)Use a string for one separator,
- * use an array to alternate the separators.
- * @access public
- * @return void
- */
- function HTML_QuickForm_hierselect($elementName=null, $elementLabel=null, $attributes=null, $separator=null)
- {
- $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- if (isset($separator)) {
- $this->_separator = $separator;
- }
- $this->_type = 'hierselect';
- $this->_appendName = true;
- } //end constructor
-
- // }}}
- // {{{ setOptions()
-
- /**
- * Initialize the array structure containing the options for each select element.
- * Call the functions that actually do the magic.
- *
- * Format is a bit more complex than for a simple select as we need to know
- * which options are related to the ones in the previous select:
- *
- * Ex:
- * <code>
- * // first select
- * $select1[0] = 'Pop';
- * $select1[1] = 'Classical';
- * $select1[2] = 'Funeral doom';
- *
- * // second select
- * $select2[0][0] = 'Red Hot Chil Peppers';
- * $select2[0][1] = 'The Pixies';
- * $select2[1][0] = 'Wagner';
- * $select2[1][1] = 'Strauss';
- * $select2[2][0] = 'Pantheist';
- * $select2[2][1] = 'Skepticism';
- *
- * // If only need two selects
- * // - and using the deprecated functions
- * $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');
- * $sel->setMainOptions($select1);
- * $sel->setSecOptions($select2);
- *
- * // - and using the new setOptions function
- * $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');
- * $sel->setOptions(array($select1, $select2));
- *
- * // If you have a third select with prices for the cds
- * $select3[0][0][0] = '15.00$';
- * $select3[0][0][1] = '17.00$';
- * // etc
- *
- * // You can now use
- * $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');
- * $sel->setOptions(array($select1, $select2, $select3));
- * </code>
- *
- * @param array $options Array of options defining each element
- * @access public
- * @return void
- */
- function setOptions($options)
- {
- $this->_options = $options;
-
- if (empty($this->_elements)) {
- $this->_nbElements = count($this->_options);
- $this->_createElements();
- } else {
- // setDefaults has probably been called before this function
- // check if all elements have been created
- $totalNbElements = count($this->_options);
- for ($i = $this->_nbElements; $i < $totalNbElements; $i ++) {
- $this->_elements[] = new HTML_QuickForm_select($i, null, array(), $this->getAttributes());
- $this->_nbElements++;
- }
- }
-
- $this->_setOptions();
- } // end func setMainOptions
-
- // }}}
- // {{{ setMainOptions()
-
- /**
- * Sets the options for the first select element. Deprecated. setOptions() should be used.
- *
- * @param array $array Options for the first select element
- *
- * @access public
- * @deprecated Deprecated since release 3.2.2
- * @return void
- */
- function setMainOptions($array)
- {
- $this->_options[0] = $array;
-
- if (empty($this->_elements)) {
- $this->_nbElements = 2;
- $this->_createElements();
- }
- } // end func setMainOptions
-
- // }}}
- // {{{ setSecOptions()
-
- /**
- * Sets the options for the second select element. Deprecated. setOptions() should be used.
- * The main _options array is initialized and the _setOptions function is called.
- *
- * @param array $array Options for the second select element
- *
- * @access public
- * @deprecated Deprecated since release 3.2.2
- * @return void
- */
- function setSecOptions($array)
- {
- $this->_options[1] = $array;
-
- if (empty($this->_elements)) {
- $this->_nbElements = 2;
- $this->_createElements();
- } else {
- // setDefaults has probably been called before this function
- // check if all elements have been created
- $totalNbElements = 2;
- for ($i = $this->_nbElements; $i < $totalNbElements; $i ++) {
- $this->_elements[] = new HTML_QuickForm_select($i, null, array(), $this->getAttributes());
- $this->_nbElements++;
- }
- }
-
- $this->_setOptions();
- } // end func setSecOptions
-
- // }}}
- // {{{ _setOptions()
-
- /**
- * Sets the options for each select element
- *
- * @access private
- * @return void
- */
- function _setOptions()
- {
- $toLoad = '';
- foreach (array_keys($this->_elements) AS $key) {
- $array = eval("return isset(\$this->_options[{$key}]{$toLoad})? \$this->_options[{$key}]{$toLoad}: null;");
- if (is_array($array)) {
- $select =& $this->_elements[$key];
- $select->_options = array();
- $select->loadArray($array);
-
- $value = is_array($v = $select->getValue()) ? $v[0] : key($array);
- $toLoad .= '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $value) . '\']';
- }
- }
- } // end func _setOptions
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets values for group's elements
- *
- * @param array $value An array of 2 or more values, for the first,
- * the second, the third etc. select
- *
- * @access public
- * @return void
- */
- function setValue($value)
- {
- // fix for bug #6766. Hope this doesn't break anything more
- // after bug #7961. Forgot that _nbElements was used in
- // _createElements() called in several places...
- $this->_nbElements = max($this->_nbElements, count($value));
- parent::setValue($value);
- $this->_setOptions();
- } // end func setValue
-
- // }}}
- // {{{ _createElements()
-
- /**
- * Creates all the elements for the group
- *
- * @access private
- * @return void
- */
- function _createElements()
- {
- for ($i = 0; $i < $this->_nbElements; $i++) {
- $this->_elements[] = new HTML_QuickForm_select($i, null, array(), $this->getAttributes());
- }
- } // end func _createElements
-
- // }}}
- // {{{ toHtml()
-
- function toHtml()
- {
- $this->_js = '';
- if (!$this->_flagFrozen) {
- // set the onchange attribute for each element except last
- $keys = array_keys($this->_elements);
- $onChange = array();
- for ($i = 0; $i < count($keys) - 1; $i++) {
- $select =& $this->_elements[$keys[$i]];
- $onChange[$i] = $select->getAttribute('onchange');
- $select->updateAttributes(
- array('onchange' => '_hs_swapOptions(this.form, \'' . $this->_escapeString($this->getName()) . '\', ' . $keys[$i] . ');' . $onChange[$i])
- );
- }
-
- // create the js function to call
- if (!defined('HTML_QUICKFORM_HIERSELECT_EXISTS')) {
- $this->_js .= <<<JAVASCRIPT
-function _hs_findOptions(ary, keys)
-{
- var key = keys.shift();
- if (!key in ary) {
- return {};
- } else if (0 == keys.length) {
- return ary[key];
- } else {
- return _hs_findOptions(ary[key], keys);
- }
-}
-
-function _hs_findSelect(form, groupName, selectIndex)
-{
- if (groupName+'['+ selectIndex +']' in form) {
- return form[groupName+'['+ selectIndex +']'];
- } else {
- return form[groupName+'['+ selectIndex +'][]'];
- }
-}
-
-function _hs_unescapeEntities(str)
-{
- var div = document.createElement('div');
- div.innerHTML = str;
- return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
-}
-
-function _hs_replaceOptions(ctl, optionList)
-{
- var j = 0;
- ctl.options.length = 0;
- for (i in optionList) {
- var optionText = (-1 == String(optionList[i]).indexOf('&'))? optionList[i]: _hs_unescapeEntities(optionList[i]);
- ctl.options[j++] = new Option(optionText, i, false, false);
- }
-}
-
-function _hs_setValue(ctl, value)
-{
- var testValue = {};
- if (value instanceof Array) {
- for (var i = 0; i < value.length; i++) {
- testValue[value[i]] = true;
- }
- } else {
- testValue[value] = true;
- }
- for (var i = 0; i < ctl.options.length; i++) {
- if (ctl.options[i].value in testValue) {
- ctl.options[i].selected = true;
- }
- }
-}
-
-function _hs_swapOptions(form, groupName, selectIndex)
-{
- var hsValue = [];
- for (var i = 0; i <= selectIndex; i++) {
- hsValue[i] = _hs_findSelect(form, groupName, i).value;
- }
-
- _hs_replaceOptions(_hs_findSelect(form, groupName, selectIndex + 1),
- _hs_findOptions(_hs_options[groupName][selectIndex], hsValue));
- if (selectIndex + 1 < _hs_options[groupName].length) {
- _hs_swapOptions(form, groupName, selectIndex + 1);
- }
-}
-
-function _hs_onReset(form, groupNames)
-{
- for (var i = 0; i < groupNames.length; i++) {
- try {
- for (var j = 0; j <= _hs_options[groupNames[i]].length; j++) {
- _hs_setValue(_hs_findSelect(form, groupNames[i], j), _hs_defaults[groupNames[i]][j]);
- if (j < _hs_options[groupNames[i]].length) {
- _hs_replaceOptions(_hs_findSelect(form, groupNames[i], j + 1),
- _hs_findOptions(_hs_options[groupNames[i]][j], _hs_defaults[groupNames[i]].slice(0, j + 1)));
- }
- }
- } catch (e) {
- if (!(e instanceof TypeError)) {
- throw e;
- }
- }
- }
-}
-
-function _hs_setupOnReset(form, groupNames)
-{
- setTimeout(function() { _hs_onReset(form, groupNames); }, 25);
-}
-
-function _hs_onReload()
-{
- var ctl;
- for (var i = 0; i < document.forms.length; i++) {
- for (var j in _hs_defaults) {
- if (ctl = _hs_findSelect(document.forms[i], j, 0)) {
- for (var k = 0; k < _hs_defaults[j].length; k++) {
- _hs_setValue(_hs_findSelect(document.forms[i], j, k), _hs_defaults[j][k]);
- }
- }
- }
- }
-
- if (_hs_prevOnload) {
- _hs_prevOnload();
- }
-}
-
-var _hs_prevOnload = null;
-if (window.onload) {
- _hs_prevOnload = window.onload;
-}
-window.onload = _hs_onReload;
-
-var _hs_options = {};
-var _hs_defaults = {};
-
-JAVASCRIPT;
- define('HTML_QUICKFORM_HIERSELECT_EXISTS', true);
- }
- // option lists
- $jsParts = array();
- for ($i = 1; $i < $this->_nbElements; $i++) {
- $jsParts[] = $this->_convertArrayToJavascript($this->_options[$i]);
- }
- $this->_js .= "\n_hs_options['" . $this->_escapeString($this->getName()) . "'] = [\n" .
- implode(",\n", $jsParts) .
- "\n];\n";
- // default value; if we don't actually have any values yet just use
- // the first option (for single selects) or empty array (for multiple)
- $values = array();
- foreach (array_keys($this->_elements) as $key) {
- if (is_array($v = $this->_elements[$key]->getValue())) {
- $values[] = count($v) > 1? $v: $v[0];
- } else {
- // XXX: accessing the supposedly private _options array
- $values[] = $this->_elements[$key]->getMultiple() || empty($this->_elements[$key]->_options[0])?
- array():
- $this->_elements[$key]->_options[0]['attr']['value'];
- }
- }
- $this->_js .= "_hs_defaults['" . $this->_escapeString($this->getName()) . "'] = " .
- $this->_convertArrayToJavascript($values, false) . ";\n";
- }
- include_once('HTML/QuickForm/Renderer/Default.php');
- $renderer = new HTML_QuickForm_Renderer_Default();
- $renderer->setElementTemplate('{element}');
- parent::accept($renderer);
-
- if (!empty($onChange)) {
- $keys = array_keys($this->_elements);
- for ($i = 0; $i < count($keys) - 1; $i++) {
- $this->_elements[$keys[$i]]->updateAttributes(array('onchange' => $onChange[$i]));
- }
- }
- return (empty($this->_js)? '': "<script type=\"text/javascript\">\n//<![CDATA[\n" . $this->_js . "//]]>\n</script>") .
- $renderer->toHtml();
- } // end func toHtml
-
- // }}}
- // {{{ accept()
-
- function accept(&$renderer, $required = false, $error = null)
- {
- $renderer->renderElement($this, $required, $error);
- } // end func accept
-
- // }}}
- // {{{ onQuickFormEvent()
-
- function onQuickFormEvent($event, $arg, &$caller)
- {
- if ('updateValue' == $event) {
- // we need to call setValue() so that the secondary option
- // matches the main option
- return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
- } else {
- $ret = parent::onQuickFormEvent($event, $arg, $caller);
- // add onreset handler to form to properly reset hierselect (see bug #2970)
- if ('addElement' == $event) {
- $onReset = $caller->getAttribute('onreset');
- if (strlen($onReset)) {
- if (strpos($onReset, '_hs_setupOnReset')) {
- $caller->updateAttributes(array('onreset' => str_replace('_hs_setupOnReset(this, [', "_hs_setupOnReset(this, ['" . $this->_escapeString($this->getName()) . "', ", $onReset)));
- } else {
- $caller->updateAttributes(array('onreset' => "var temp = function() { {$onReset} } ; if (!temp()) { return false; } ; if (typeof _hs_setupOnReset != 'undefined') { return _hs_setupOnReset(this, ['" . $this->_escapeString($this->getName()) . "']); } "));
- }
- } else {
- $caller->updateAttributes(array('onreset' => "if (typeof _hs_setupOnReset != 'undefined') { return _hs_setupOnReset(this, ['" . $this->_escapeString($this->getName()) . "']); } "));
- }
- }
- return $ret;
- }
- } // end func onQuickFormEvent
-
- // }}}
- // {{{ _convertArrayToJavascript()
-
- /**
- * Converts PHP array to its Javascript analog
- *
- * @access private
- * @param array PHP array to convert
- * @param bool Generate Javascript object literal (default, works like PHP's associative array) or array literal
- * @return string Javascript representation of the value
- */
- function _convertArrayToJavascript($array, $assoc = true)
- {
- if (!is_array($array)) {
- return $this->_convertScalarToJavascript($array);
- } else {
- $items = array();
- foreach ($array as $key => $val) {
- $item = $assoc? "'" . $this->_escapeString($key) . "': ": '';
- if (is_array($val)) {
- $item .= $this->_convertArrayToJavascript($val, $assoc);
- } else {
- $item .= $this->_convertScalarToJavascript($val);
- }
- $items[] = $item;
- }
- }
- $js = implode(', ', $items);
- return $assoc? '{ ' . $js . ' }': '[' . $js . ']';
- }
-
- // }}}
- // {{{ _convertScalarToJavascript()
-
- /**
- * Converts PHP's scalar value to its Javascript analog
- *
- * @access private
- * @param mixed PHP value to convert
- * @return string Javascript representation of the value
- */
- function _convertScalarToJavascript($val)
- {
- if (is_bool($val)) {
- return $val ? 'true' : 'false';
- } elseif (is_int($val) || is_double($val)) {
- return $val;
- } elseif (is_string($val)) {
- return "'" . $this->_escapeString($val) . "'";
- } elseif (is_null($val)) {
- return 'null';
- } else {
- // don't bother
- return '{}';
- }
- }
-
- // }}}
- // {{{ _escapeString()
-
- /**
- * Quotes the string so that it can be used in Javascript string constants
- *
- * @access private
- * @param string
- * @return string
- */
- function _escapeString($str)
- {
- return strtr($str,array(
- "\r" => '\r',
- "\n" => '\n',
- "\t" => '\t',
- "'" => "\\'",
- '"' => '\"',
- '\\' => '\\\\'
- ));
- }
-
- // }}}
-} // end class HTML_QuickForm_hierselect
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Hierarchical select element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Herim Vasquez <vasquezh@iro.umontreal.ca>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Class for a group of form elements
+ */
+require_once 'HTML/QuickForm/group.php';
+/**
+ * Class for <select></select> elements
+ */
+require_once 'HTML/QuickForm/select.php';
+
+/**
+ * Hierarchical select element
+ *
+ * Class to dynamically create two or more HTML Select elements
+ * The first select changes the content of the second select and so on.
+ * This element is considered as a group. Selects will be named
+ * groupName[0], groupName[1], groupName[2]...
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Herim Vasquez <vasquezh@iro.umontreal.ca>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.1
+ */
+class HTML_QuickForm_hierselect extends HTML_QuickForm_group
+{
+ // {{{ properties
+
+ /**
+ * Options for all the select elements
+ *
+ * @see setOptions()
+ * @var array
+ * @access private
+ */
+ var $_options = array();
+
+ /**
+ * Number of select elements on this group
+ *
+ * @var int
+ * @access private
+ */
+ var $_nbElements = 0;
+
+ /**
+ * The javascript used to set and change the options
+ *
+ * @var string
+ * @access private
+ */
+ var $_js = '';
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $elementLabel (optional)Input field label in form
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array. Date format is passed along the attributes.
+ * @param mixed $separator (optional)Use a string for one separator,
+ * use an array to alternate the separators.
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_hierselect($elementName=null, $elementLabel=null, $attributes=null, $separator=null)
+ {
+ $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ if (isset($separator)) {
+ $this->_separator = $separator;
+ }
+ $this->_type = 'hierselect';
+ $this->_appendName = true;
+ } //end constructor
+
+ // }}}
+ // {{{ setOptions()
+
+ /**
+ * Initialize the array structure containing the options for each select element.
+ * Call the functions that actually do the magic.
+ *
+ * Format is a bit more complex than for a simple select as we need to know
+ * which options are related to the ones in the previous select:
+ *
+ * Ex:
+ * <code>
+ * // first select
+ * $select1[0] = 'Pop';
+ * $select1[1] = 'Classical';
+ * $select1[2] = 'Funeral doom';
+ *
+ * // second select
+ * $select2[0][0] = 'Red Hot Chil Peppers';
+ * $select2[0][1] = 'The Pixies';
+ * $select2[1][0] = 'Wagner';
+ * $select2[1][1] = 'Strauss';
+ * $select2[2][0] = 'Pantheist';
+ * $select2[2][1] = 'Skepticism';
+ *
+ * // If only need two selects
+ * // - and using the deprecated functions
+ * $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');
+ * $sel->setMainOptions($select1);
+ * $sel->setSecOptions($select2);
+ *
+ * // - and using the new setOptions function
+ * $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');
+ * $sel->setOptions(array($select1, $select2));
+ *
+ * // If you have a third select with prices for the cds
+ * $select3[0][0][0] = '15.00$';
+ * $select3[0][0][1] = '17.00$';
+ * // etc
+ *
+ * // You can now use
+ * $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:');
+ * $sel->setOptions(array($select1, $select2, $select3));
+ * </code>
+ *
+ * @param array $options Array of options defining each element
+ * @access public
+ * @return void
+ */
+ function setOptions($options)
+ {
+ $this->_options = $options;
+
+ if (empty($this->_elements)) {
+ $this->_nbElements = count($this->_options);
+ $this->_createElements();
+ } else {
+ // setDefaults has probably been called before this function
+ // check if all elements have been created
+ $totalNbElements = count($this->_options);
+ for ($i = $this->_nbElements; $i < $totalNbElements; $i ++) {
+ $this->_elements[] = new HTML_QuickForm_select($i, null, array(), $this->getAttributes());
+ $this->_nbElements++;
+ }
+ }
+
+ $this->_setOptions();
+ } // end func setMainOptions
+
+ // }}}
+ // {{{ setMainOptions()
+
+ /**
+ * Sets the options for the first select element. Deprecated. setOptions() should be used.
+ *
+ * @param array $array Options for the first select element
+ *
+ * @access public
+ * @deprecated Deprecated since release 3.2.2
+ * @return void
+ */
+ function setMainOptions($array)
+ {
+ $this->_options[0] = $array;
+
+ if (empty($this->_elements)) {
+ $this->_nbElements = 2;
+ $this->_createElements();
+ }
+ } // end func setMainOptions
+
+ // }}}
+ // {{{ setSecOptions()
+
+ /**
+ * Sets the options for the second select element. Deprecated. setOptions() should be used.
+ * The main _options array is initialized and the _setOptions function is called.
+ *
+ * @param array $array Options for the second select element
+ *
+ * @access public
+ * @deprecated Deprecated since release 3.2.2
+ * @return void
+ */
+ function setSecOptions($array)
+ {
+ $this->_options[1] = $array;
+
+ if (empty($this->_elements)) {
+ $this->_nbElements = 2;
+ $this->_createElements();
+ } else {
+ // setDefaults has probably been called before this function
+ // check if all elements have been created
+ $totalNbElements = 2;
+ for ($i = $this->_nbElements; $i < $totalNbElements; $i ++) {
+ $this->_elements[] = new HTML_QuickForm_select($i, null, array(), $this->getAttributes());
+ $this->_nbElements++;
+ }
+ }
+
+ $this->_setOptions();
+ } // end func setSecOptions
+
+ // }}}
+ // {{{ _setOptions()
+
+ /**
+ * Sets the options for each select element
+ *
+ * @access private
+ * @return void
+ */
+ function _setOptions()
+ {
+ $toLoad = '';
+ foreach (array_keys($this->_elements) AS $key) {
+ $array = eval("return isset(\$this->_options[{$key}]{$toLoad})? \$this->_options[{$key}]{$toLoad}: null;");
+ if (is_array($array)) {
+ $select =& $this->_elements[$key];
+ $select->_options = array();
+ $select->loadArray($array);
+
+ $value = is_array($v = $select->getValue()) ? $v[0] : key($array);
+ $toLoad .= '[\'' . str_replace(array('\\', '\''), array('\\\\', '\\\''), $value) . '\']';
+ }
+ }
+ } // end func _setOptions
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets values for group's elements
+ *
+ * @param array $value An array of 2 or more values, for the first,
+ * the second, the third etc. select
+ *
+ * @access public
+ * @return void
+ */
+ function setValue($value)
+ {
+ // fix for bug #6766. Hope this doesn't break anything more
+ // after bug #7961. Forgot that _nbElements was used in
+ // _createElements() called in several places...
+ $this->_nbElements = max($this->_nbElements, count($value));
+ parent::setValue($value);
+ $this->_setOptions();
+ } // end func setValue
+
+ // }}}
+ // {{{ _createElements()
+
+ /**
+ * Creates all the elements for the group
+ *
+ * @access private
+ * @return void
+ */
+ function _createElements()
+ {
+ for ($i = 0; $i < $this->_nbElements; $i++) {
+ $this->_elements[] = new HTML_QuickForm_select($i, null, array(), $this->getAttributes());
+ }
+ } // end func _createElements
+
+ // }}}
+ // {{{ toHtml()
+
+ function toHtml()
+ {
+ $this->_js = '';
+ if (!$this->_flagFrozen) {
+ // set the onchange attribute for each element except last
+ $keys = array_keys($this->_elements);
+ $onChange = array();
+ for ($i = 0; $i < count($keys) - 1; $i++) {
+ $select =& $this->_elements[$keys[$i]];
+ $onChange[$i] = $select->getAttribute('onchange');
+ $select->updateAttributes(
+ array('onchange' => '_hs_swapOptions(this.form, \'' . $this->_escapeString($this->getName()) . '\', ' . $keys[$i] . ');' . $onChange[$i])
+ );
+ }
+
+ // create the js function to call
+ if (!defined('HTML_QUICKFORM_HIERSELECT_EXISTS')) {
+ $this->_js .= <<<JAVASCRIPT
+function _hs_findOptions(ary, keys)
+{
+ var key = keys.shift();
+ if (!key in ary) {
+ return {};
+ } else if (0 == keys.length) {
+ return ary[key];
+ } else {
+ return _hs_findOptions(ary[key], keys);
+ }
+}
+
+function _hs_findSelect(form, groupName, selectIndex)
+{
+ if (groupName+'['+ selectIndex +']' in form) {
+ return form[groupName+'['+ selectIndex +']'];
+ } else {
+ return form[groupName+'['+ selectIndex +'][]'];
+ }
+}
+
+function _hs_unescapeEntities(str)
+{
+ var div = document.createElement('div');
+ div.innerHTML = str;
+ return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
+}
+
+function _hs_replaceOptions(ctl, optionList)
+{
+ var j = 0;
+ ctl.options.length = 0;
+ for (i in optionList) {
+ var optionText = (-1 == String(optionList[i]).indexOf('&'))? optionList[i]: _hs_unescapeEntities(optionList[i]);
+ ctl.options[j++] = new Option(optionText, i, false, false);
+ }
+}
+
+function _hs_setValue(ctl, value)
+{
+ var testValue = {};
+ if (value instanceof Array) {
+ for (var i = 0; i < value.length; i++) {
+ testValue[value[i]] = true;
+ }
+ } else {
+ testValue[value] = true;
+ }
+ for (var i = 0; i < ctl.options.length; i++) {
+ if (ctl.options[i].value in testValue) {
+ ctl.options[i].selected = true;
+ }
+ }
+}
+
+function _hs_swapOptions(form, groupName, selectIndex)
+{
+ var hsValue = [];
+ for (var i = 0; i <= selectIndex; i++) {
+ hsValue[i] = _hs_findSelect(form, groupName, i).value;
+ }
+
+ _hs_replaceOptions(_hs_findSelect(form, groupName, selectIndex + 1),
+ _hs_findOptions(_hs_options[groupName][selectIndex], hsValue));
+ if (selectIndex + 1 < _hs_options[groupName].length) {
+ _hs_swapOptions(form, groupName, selectIndex + 1);
+ }
+}
+
+function _hs_onReset(form, groupNames)
+{
+ for (var i = 0; i < groupNames.length; i++) {
+ try {
+ for (var j = 0; j <= _hs_options[groupNames[i]].length; j++) {
+ _hs_setValue(_hs_findSelect(form, groupNames[i], j), _hs_defaults[groupNames[i]][j]);
+ if (j < _hs_options[groupNames[i]].length) {
+ _hs_replaceOptions(_hs_findSelect(form, groupNames[i], j + 1),
+ _hs_findOptions(_hs_options[groupNames[i]][j], _hs_defaults[groupNames[i]].slice(0, j + 1)));
+ }
+ }
+ } catch (e) {
+ if (!(e instanceof TypeError)) {
+ throw e;
+ }
+ }
+ }
+}
+
+function _hs_setupOnReset(form, groupNames)
+{
+ setTimeout(function() { _hs_onReset(form, groupNames); }, 25);
+}
+
+function _hs_onReload()
+{
+ var ctl;
+ for (var i = 0; i < document.forms.length; i++) {
+ for (var j in _hs_defaults) {
+ if (ctl = _hs_findSelect(document.forms[i], j, 0)) {
+ for (var k = 0; k < _hs_defaults[j].length; k++) {
+ _hs_setValue(_hs_findSelect(document.forms[i], j, k), _hs_defaults[j][k]);
+ }
+ }
+ }
+ }
+
+ if (_hs_prevOnload) {
+ _hs_prevOnload();
+ }
+}
+
+var _hs_prevOnload = null;
+if (window.onload) {
+ _hs_prevOnload = window.onload;
+}
+window.onload = _hs_onReload;
+
+var _hs_options = {};
+var _hs_defaults = {};
+
+JAVASCRIPT;
+ define('HTML_QUICKFORM_HIERSELECT_EXISTS', true);
+ }
+ // option lists
+ $jsParts = array();
+ for ($i = 1; $i < $this->_nbElements; $i++) {
+ $jsParts[] = $this->_convertArrayToJavascript($this->_options[$i]);
+ }
+ $this->_js .= "\n_hs_options['" . $this->_escapeString($this->getName()) . "'] = [\n" .
+ implode(",\n", $jsParts) .
+ "\n];\n";
+ // default value; if we don't actually have any values yet just use
+ // the first option (for single selects) or empty array (for multiple)
+ $values = array();
+ foreach (array_keys($this->_elements) as $key) {
+ if (is_array($v = $this->_elements[$key]->getValue())) {
+ $values[] = count($v) > 1? $v: $v[0];
+ } else {
+ // XXX: accessing the supposedly private _options array
+ $values[] = $this->_elements[$key]->getMultiple() || empty($this->_elements[$key]->_options[0])?
+ array():
+ $this->_elements[$key]->_options[0]['attr']['value'];
+ }
+ }
+ $this->_js .= "_hs_defaults['" . $this->_escapeString($this->getName()) . "'] = " .
+ $this->_convertArrayToJavascript($values, false) . ";\n";
+ }
+ include_once('HTML/QuickForm/Renderer/Default.php');
+ $renderer = new HTML_QuickForm_Renderer_Default();
+ $renderer->setElementTemplate('{element}');
+ parent::accept($renderer);
+
+ if (!empty($onChange)) {
+ $keys = array_keys($this->_elements);
+ for ($i = 0; $i < count($keys) - 1; $i++) {
+ $this->_elements[$keys[$i]]->updateAttributes(array('onchange' => $onChange[$i]));
+ }
+ }
+ return (empty($this->_js)? '': "<script type=\"text/javascript\">\n//<![CDATA[\n" . $this->_js . "//]]>\n</script>") .
+ $renderer->toHtml();
+ } // end func toHtml
+
+ // }}}
+ // {{{ accept()
+
+ function accept(&$renderer, $required = false, $error = null)
+ {
+ $renderer->renderElement($this, $required, $error);
+ } // end func accept
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ if ('updateValue' == $event) {
+ // we need to call setValue() so that the secondary option
+ // matches the main option
+ return HTML_QuickForm_element::onQuickFormEvent($event, $arg, $caller);
+ } else {
+ $ret = parent::onQuickFormEvent($event, $arg, $caller);
+ // add onreset handler to form to properly reset hierselect (see bug #2970)
+ if ('addElement' == $event) {
+ $onReset = $caller->getAttribute('onreset');
+ if (strlen($onReset)) {
+ if (strpos($onReset, '_hs_setupOnReset')) {
+ $caller->updateAttributes(array('onreset' => str_replace('_hs_setupOnReset(this, [', "_hs_setupOnReset(this, ['" . $this->_escapeString($this->getName()) . "', ", $onReset)));
+ } else {
+ $caller->updateAttributes(array('onreset' => "var temp = function() { {$onReset} } ; if (!temp()) { return false; } ; if (typeof _hs_setupOnReset != 'undefined') { return _hs_setupOnReset(this, ['" . $this->_escapeString($this->getName()) . "']); } "));
+ }
+ } else {
+ $caller->updateAttributes(array('onreset' => "if (typeof _hs_setupOnReset != 'undefined') { return _hs_setupOnReset(this, ['" . $this->_escapeString($this->getName()) . "']); } "));
+ }
+ }
+ return $ret;
+ }
+ } // end func onQuickFormEvent
+
+ // }}}
+ // {{{ _convertArrayToJavascript()
+
+ /**
+ * Converts PHP array to its Javascript analog
+ *
+ * @access private
+ * @param array PHP array to convert
+ * @param bool Generate Javascript object literal (default, works like PHP's associative array) or array literal
+ * @return string Javascript representation of the value
+ */
+ function _convertArrayToJavascript($array, $assoc = true)
+ {
+ if (!is_array($array)) {
+ return $this->_convertScalarToJavascript($array);
+ } else {
+ $items = array();
+ foreach ($array as $key => $val) {
+ $item = $assoc? "'" . $this->_escapeString($key) . "': ": '';
+ if (is_array($val)) {
+ $item .= $this->_convertArrayToJavascript($val, $assoc);
+ } else {
+ $item .= $this->_convertScalarToJavascript($val);
+ }
+ $items[] = $item;
+ }
+ }
+ $js = implode(', ', $items);
+ return $assoc? '{ ' . $js . ' }': '[' . $js . ']';
+ }
+
+ // }}}
+ // {{{ _convertScalarToJavascript()
+
+ /**
+ * Converts PHP's scalar value to its Javascript analog
+ *
+ * @access private
+ * @param mixed PHP value to convert
+ * @return string Javascript representation of the value
+ */
+ function _convertScalarToJavascript($val)
+ {
+ if (is_bool($val)) {
+ return $val ? 'true' : 'false';
+ } elseif (is_int($val) || is_double($val)) {
+ return $val;
+ } elseif (is_string($val)) {
+ return "'" . $this->_escapeString($val) . "'";
+ } elseif (is_null($val)) {
+ return 'null';
+ } else {
+ // don't bother
+ return '{}';
+ }
+ }
+
+ // }}}
+ // {{{ _escapeString()
+
+ /**
+ * Quotes the string so that it can be used in Javascript string constants
+ *
+ * @access private
+ * @param string
+ * @return string
+ */
+ function _escapeString($str)
+ {
+ return strtr($str,array(
+ "\r" => '\r',
+ "\n" => '\n',
+ "\t" => '\t',
+ "'" => "\\'",
+ '"' => '\"',
+ '\\' => '\\\\'
+ ));
+ }
+
+ // }}}
+} // end class HTML_QuickForm_hierselect
?> \ No newline at end of file
diff --git a/libs/HTML/QuickForm/html.php b/libs/HTML/QuickForm/html.php
index 32894d1682..359c4bfbb5 100755
--- a/libs/HTML/QuickForm/html.php
+++ b/libs/HTML/QuickForm/html.php
@@ -1,77 +1,77 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * A pseudo-element used for adding raw HTML to form
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * HTML class for static data
- */
-require_once 'HTML/QuickForm/static.php';
-
-/**
- * A pseudo-element used for adding raw HTML to form
- *
- * Intended for use with the default renderer only, template-based
- * ones may (and probably will) completely ignore this
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.0
- * @deprecated Please use the templates rather than add raw HTML via this element
- */
-class HTML_QuickForm_html extends HTML_QuickForm_static
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $text raw HTML to add
- * @access public
- * @return void
- */
- function HTML_QuickForm_html($text = null)
- {
- $this->HTML_QuickForm_static(null, null, $text);
- $this->_type = 'html';
- }
-
- // }}}
- // {{{ accept()
-
- /**
- * Accepts a renderer
- *
- * @param HTML_QuickForm_Renderer renderer object (only works with Default renderer!)
- * @access public
- * @return void
- */
- function accept(&$renderer)
- {
- $renderer->renderHtml($this);
- } // end func accept
-
- // }}}
-
-} //end class HTML_QuickForm_html
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * A pseudo-element used for adding raw HTML to form
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * HTML class for static data
+ */
+require_once 'HTML/QuickForm/static.php';
+
+/**
+ * A pseudo-element used for adding raw HTML to form
+ *
+ * Intended for use with the default renderer only, template-based
+ * ones may (and probably will) completely ignore this
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.0
+ * @deprecated Please use the templates rather than add raw HTML via this element
+ */
+class HTML_QuickForm_html extends HTML_QuickForm_static
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $text raw HTML to add
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_html($text = null)
+ {
+ $this->HTML_QuickForm_static(null, null, $text);
+ $this->_type = 'html';
+ }
+
+ // }}}
+ // {{{ accept()
+
+ /**
+ * Accepts a renderer
+ *
+ * @param HTML_QuickForm_Renderer renderer object (only works with Default renderer!)
+ * @access public
+ * @return void
+ */
+ function accept(&$renderer)
+ {
+ $renderer->renderHtml($this);
+ } // end func accept
+
+ // }}}
+
+} //end class HTML_QuickForm_html
+?>
diff --git a/libs/HTML/QuickForm/image.php b/libs/HTML/QuickForm/image.php
index 513f3beacd..5ee9547fdb 100755
--- a/libs/HTML/QuickForm/image.php
+++ b/libs/HTML/QuickForm/image.php
@@ -1,127 +1,127 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for an <input type="image" /> element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for an <input type="image" /> element
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_image extends HTML_QuickForm_input
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Element name attribute
- * @param string $src (optional)Image source
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_image($elementName=null, $src='', $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
- $this->setType('image');
- $this->setSource($src);
- } // end class constructor
-
- // }}}
- // {{{ setSource()
-
- /**
- * Sets source for image element
- *
- * @param string $src source for image element
- * @since 1.0
- * @access public
- * @return void
- */
- function setSource($src)
- {
- $this->updateAttributes(array('src' => $src));
- } // end func setSource
-
- // }}}
- // {{{ setBorder()
-
- /**
- * Sets border size for image element
- *
- * @param string $border border for image element
- * @since 1.0
- * @access public
- * @return void
- */
- function setBorder($border)
- {
- $this->updateAttributes(array('border' => $border));
- } // end func setBorder
-
- // }}}
- // {{{ setAlign()
-
- /**
- * Sets alignment for image element
- *
- * @param string $align alignment for image element
- * @since 1.0
- * @access public
- * @return void
- */
- function setAlign($align)
- {
- $this->updateAttributes(array('align' => $align));
- } // end func setAlign
-
- // }}}
- // {{{ freeze()
-
- /**
- * Freeze the element so that only its value is returned
- *
- * @access public
- * @return void
- */
- function freeze()
- {
- return false;
- } //end func freeze
-
- // }}}
-
-} // end class HTML_QuickForm_image
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for an <input type="image" /> element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for an <input type="image" /> element
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_image extends HTML_QuickForm_input
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Element name attribute
+ * @param string $src (optional)Image source
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_image($elementName=null, $src='', $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
+ $this->setType('image');
+ $this->setSource($src);
+ } // end class constructor
+
+ // }}}
+ // {{{ setSource()
+
+ /**
+ * Sets source for image element
+ *
+ * @param string $src source for image element
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setSource($src)
+ {
+ $this->updateAttributes(array('src' => $src));
+ } // end func setSource
+
+ // }}}
+ // {{{ setBorder()
+
+ /**
+ * Sets border size for image element
+ *
+ * @param string $border border for image element
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setBorder($border)
+ {
+ $this->updateAttributes(array('border' => $border));
+ } // end func setBorder
+
+ // }}}
+ // {{{ setAlign()
+
+ /**
+ * Sets alignment for image element
+ *
+ * @param string $align alignment for image element
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setAlign($align)
+ {
+ $this->updateAttributes(array('align' => $align));
+ } // end func setAlign
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Freeze the element so that only its value is returned
+ *
+ * @access public
+ * @return void
+ */
+ function freeze()
+ {
+ return false;
+ } //end func freeze
+
+ // }}}
+
+} // end class HTML_QuickForm_image
+?>
diff --git a/libs/HTML/QuickForm/input.php b/libs/HTML/QuickForm/input.php
index 8166864a87..d4b7f1fdab 100755
--- a/libs/HTML/QuickForm/input.php
+++ b/libs/HTML/QuickForm/input.php
@@ -1,209 +1,209 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Base class for <input /> form elements
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for form elements
- */
-require_once 'HTML/QuickForm/element.php';
-
-/**
- * Base class for <input /> form elements
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- * @abstract
- */
-class HTML_QuickForm_input extends HTML_QuickForm_element
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Input field name attribute
- * @param mixed Label(s) for the input field
- * @param mixed Either a typical HTML attribute string or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_input($elementName=null, $elementLabel=null, $attributes=null)
- {
- $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- } //end constructor
-
- // }}}
- // {{{ setType()
-
- /**
- * Sets the element type
- *
- * @param string $type Element type
- * @since 1.0
- * @access public
- * @return void
- */
- function setType($type)
- {
- $this->_type = $type;
- $this->updateAttributes(array('type'=>$type));
- } // end func setType
-
- // }}}
- // {{{ setName()
-
- /**
- * Sets the input field name
- *
- * @param string $name Input field name attribute
- * @since 1.0
- * @access public
- * @return void
- */
- function setName($name)
- {
- $this->updateAttributes(array('name'=>$name));
- } //end func setName
-
- // }}}
- // {{{ getName()
-
- /**
- * Returns the element name
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getName()
- {
- return $this->getAttribute('name');
- } //end func getName
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets the value of the form element
- *
- * @param string $value Default value of the form element
- * @since 1.0
- * @access public
- * @return void
- */
- function setValue($value)
- {
- $this->updateAttributes(array('value'=>$value));
- } // end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns the value of the form element
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getValue()
- {
- return $this->getAttribute('value');
- } // end func getValue
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the input field in HTML
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function toHtml()
- {
- if ($this->_flagFrozen) {
- return $this->getFrozenHtml();
- } else {
- return $this->_getTabs() . '<input' . $this->_getAttrString($this->_attributes) . ' />';
- }
- } //end func toHtml
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string $event Name of event
- * @param mixed $arg event arguments
- * @param object &$caller calling object
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- // do not use submit values for button-type elements
- $type = $this->getType();
- if (('updateValue' != $event) ||
- ('submit' != $type && 'reset' != $type && 'image' != $type && 'button' != $type)) {
- parent::onQuickFormEvent($event, $arg, $caller);
- } else {
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_defaultValues);
- }
- if (null !== $value) {
- $this->setValue($value);
- }
- }
- return true;
- } // end func onQuickFormEvent
-
- // }}}
- // {{{ exportValue()
-
- /**
- * We don't need values from button-type elements (except submit) and files
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- $type = $this->getType();
- if ('reset' == $type || 'image' == $type || 'button' == $type || 'file' == $type) {
- return null;
- } else {
- return parent::exportValue($submitValues, $assoc);
- }
- }
-
- // }}}
-} // end class HTML_QuickForm_element
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Base class for <input /> form elements
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for form elements
+ */
+require_once 'HTML/QuickForm/element.php';
+
+/**
+ * Base class for <input /> form elements
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ * @abstract
+ */
+class HTML_QuickForm_input extends HTML_QuickForm_element
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Input field name attribute
+ * @param mixed Label(s) for the input field
+ * @param mixed Either a typical HTML attribute string or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_input($elementName=null, $elementLabel=null, $attributes=null)
+ {
+ $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ } //end constructor
+
+ // }}}
+ // {{{ setType()
+
+ /**
+ * Sets the element type
+ *
+ * @param string $type Element type
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setType($type)
+ {
+ $this->_type = $type;
+ $this->updateAttributes(array('type'=>$type));
+ } // end func setType
+
+ // }}}
+ // {{{ setName()
+
+ /**
+ * Sets the input field name
+ *
+ * @param string $name Input field name attribute
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setName($name)
+ {
+ $this->updateAttributes(array('name'=>$name));
+ } //end func setName
+
+ // }}}
+ // {{{ getName()
+
+ /**
+ * Returns the element name
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getName()
+ {
+ return $this->getAttribute('name');
+ } //end func getName
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets the value of the form element
+ *
+ * @param string $value Default value of the form element
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setValue($value)
+ {
+ $this->updateAttributes(array('value'=>$value));
+ } // end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns the value of the form element
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getValue()
+ {
+ return $this->getAttribute('value');
+ } // end func getValue
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the input field in HTML
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ if ($this->_flagFrozen) {
+ return $this->getFrozenHtml();
+ } else {
+ return $this->_getTabs() . '<input' . $this->_getAttrString($this->_attributes) . ' />';
+ }
+ } //end func toHtml
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string $event Name of event
+ * @param mixed $arg event arguments
+ * @param object &$caller calling object
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ // do not use submit values for button-type elements
+ $type = $this->getType();
+ if (('updateValue' != $event) ||
+ ('submit' != $type && 'reset' != $type && 'image' != $type && 'button' != $type)) {
+ parent::onQuickFormEvent($event, $arg, $caller);
+ } else {
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ if (null !== $value) {
+ $this->setValue($value);
+ }
+ }
+ return true;
+ } // end func onQuickFormEvent
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * We don't need values from button-type elements (except submit) and files
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ $type = $this->getType();
+ if ('reset' == $type || 'image' == $type || 'button' == $type || 'file' == $type) {
+ return null;
+ } else {
+ return parent::exportValue($submitValues, $assoc);
+ }
+ }
+
+ // }}}
+} // end class HTML_QuickForm_element
+?>
diff --git a/libs/HTML/QuickForm/link.php b/libs/HTML/QuickForm/link.php
index 17e0276d74..db88be2229 100755
--- a/libs/HTML/QuickForm/link.php
+++ b/libs/HTML/QuickForm/link.php
@@ -1,200 +1,200 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a link type field
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * HTML class for static data
- */
-require_once 'HTML/QuickForm/static.php';
-
-/**
- * HTML class for a link type field
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 2.0
- */
-class HTML_QuickForm_link extends HTML_QuickForm_static
-{
- // {{{ properties
-
- /**
- * Link display text
- * @var string
- * @since 1.0
- * @access private
- */
- var $_text = "";
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementLabel (optional)Link label
- * @param string $href (optional)Link href
- * @param string $text (optional)Link display text
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function HTML_QuickForm_link($elementName=null, $elementLabel=null, $href=null, $text=null, $attributes=null)
- {
- HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = false;
- $this->_type = 'link';
- $this->setHref($href);
- $this->_text = $text;
- } //end constructor
-
- // }}}
- // {{{ setName()
-
- /**
- * Sets the input field name
- *
- * @param string $name Input field name attribute
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function setName($name)
- {
- $this->updateAttributes(array('name'=>$name));
- } //end func setName
-
- // }}}
- // {{{ getName()
-
- /**
- * Returns the element name
- *
- * @since 1.0
- * @access public
- * @return string
- * @throws
- */
- function getName()
- {
- return $this->getAttribute('name');
- } //end func getName
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets value for textarea element
- *
- * @param string $value Value for password element
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function setValue($value)
- {
- return;
- } //end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns the value of the form element
- *
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function getValue()
- {
- return;
- } // end func getValue
-
-
- // }}}
- // {{{ setHref()
-
- /**
- * Sets the links href
- *
- * @param string $href
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function setHref($href)
- {
- $this->updateAttributes(array('href'=>$href));
- } // end func setHref
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the textarea element in HTML
- *
- * @since 1.0
- * @access public
- * @return string
- * @throws
- */
- function toHtml()
- {
- $tabs = $this->_getTabs();
- $html = "$tabs<a".$this->_getAttrString($this->_attributes).">";
- $html .= $this->_text;
- $html .= "</a>";
- return $html;
- } //end func toHtml
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags (in this case, value is changed to a mask)
- *
- * @since 1.0
- * @access public
- * @return string
- * @throws
- */
- function getFrozenHtml()
- {
- return;
- } //end func getFrozenHtml
-
- // }}}
-
-} //end class HTML_QuickForm_textarea
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a link type field
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * HTML class for static data
+ */
+require_once 'HTML/QuickForm/static.php';
+
+/**
+ * HTML class for a link type field
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 2.0
+ */
+class HTML_QuickForm_link extends HTML_QuickForm_static
+{
+ // {{{ properties
+
+ /**
+ * Link display text
+ * @var string
+ * @since 1.0
+ * @access private
+ */
+ var $_text = "";
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementLabel (optional)Link label
+ * @param string $href (optional)Link href
+ * @param string $text (optional)Link display text
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function HTML_QuickForm_link($elementName=null, $elementLabel=null, $href=null, $text=null, $attributes=null)
+ {
+ HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = false;
+ $this->_type = 'link';
+ $this->setHref($href);
+ $this->_text = $text;
+ } //end constructor
+
+ // }}}
+ // {{{ setName()
+
+ /**
+ * Sets the input field name
+ *
+ * @param string $name Input field name attribute
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function setName($name)
+ {
+ $this->updateAttributes(array('name'=>$name));
+ } //end func setName
+
+ // }}}
+ // {{{ getName()
+
+ /**
+ * Returns the element name
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ * @throws
+ */
+ function getName()
+ {
+ return $this->getAttribute('name');
+ } //end func getName
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets value for textarea element
+ *
+ * @param string $value Value for password element
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function setValue($value)
+ {
+ return;
+ } //end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns the value of the form element
+ *
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function getValue()
+ {
+ return;
+ } // end func getValue
+
+
+ // }}}
+ // {{{ setHref()
+
+ /**
+ * Sets the links href
+ *
+ * @param string $href
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function setHref($href)
+ {
+ $this->updateAttributes(array('href'=>$href));
+ } // end func setHref
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the textarea element in HTML
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ * @throws
+ */
+ function toHtml()
+ {
+ $tabs = $this->_getTabs();
+ $html = "$tabs<a".$this->_getAttrString($this->_attributes).">";
+ $html .= $this->_text;
+ $html .= "</a>";
+ return $html;
+ } //end func toHtml
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags (in this case, value is changed to a mask)
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ * @throws
+ */
+ function getFrozenHtml()
+ {
+ return;
+ } //end func getFrozenHtml
+
+ // }}}
+
+} //end class HTML_QuickForm_textarea
+?>
diff --git a/libs/HTML/QuickForm/password.php b/libs/HTML/QuickForm/password.php
index 2f606b358c..1ce247926a 100755
--- a/libs/HTML/QuickForm/password.php
+++ b/libs/HTML/QuickForm/password.php
@@ -1,115 +1,115 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a password type field
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for a password type field
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_password extends HTML_QuickForm_input
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $elementLabel (optional)Input field label
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function HTML_QuickForm_password($elementName=null, $elementLabel=null, $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
- $this->setType('password');
- } //end constructor
-
- // }}}
- // {{{ setSize()
-
- /**
- * Sets size of password element
- *
- * @param string $size Size of password field
- * @since 1.0
- * @access public
- * @return void
- */
- function setSize($size)
- {
- $this->updateAttributes(array('size'=>$size));
- } //end func setSize
-
- // }}}
- // {{{ setMaxlength()
-
- /**
- * Sets maxlength of password element
- *
- * @param string $maxlength Maximum length of password field
- * @since 1.0
- * @access public
- * @return void
- */
- function setMaxlength($maxlength)
- {
- $this->updateAttributes(array('maxlength'=>$maxlength));
- } //end func setMaxlength
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags (in this case, value is changed to a mask)
- *
- * @since 1.0
- * @access public
- * @return string
- * @throws
- */
- function getFrozenHtml()
- {
- $value = $this->getValue();
- return ('' != $value? '**********': '&nbsp;') .
- $this->_getPersistantData();
- } //end func getFrozenHtml
-
- // }}}
-
-} //end class HTML_QuickForm_password
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a password type field
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for a password type field
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_password extends HTML_QuickForm_input
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $elementLabel (optional)Input field label
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function HTML_QuickForm_password($elementName=null, $elementLabel=null, $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
+ $this->setType('password');
+ } //end constructor
+
+ // }}}
+ // {{{ setSize()
+
+ /**
+ * Sets size of password element
+ *
+ * @param string $size Size of password field
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setSize($size)
+ {
+ $this->updateAttributes(array('size'=>$size));
+ } //end func setSize
+
+ // }}}
+ // {{{ setMaxlength()
+
+ /**
+ * Sets maxlength of password element
+ *
+ * @param string $maxlength Maximum length of password field
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setMaxlength($maxlength)
+ {
+ $this->updateAttributes(array('maxlength'=>$maxlength));
+ } //end func setMaxlength
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags (in this case, value is changed to a mask)
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ * @throws
+ */
+ function getFrozenHtml()
+ {
+ $value = $this->getValue();
+ return ('' != $value? '**********': '&nbsp;') .
+ $this->_getPersistantData();
+ } //end func getFrozenHtml
+
+ // }}}
+
+} //end class HTML_QuickForm_password
+?>
diff --git a/libs/HTML/QuickForm/radio.php b/libs/HTML/QuickForm/radio.php
index 702a255af8..969ba88c51 100755
--- a/libs/HTML/QuickForm/radio.php
+++ b/libs/HTML/QuickForm/radio.php
@@ -1,251 +1,251 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a radio type element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for a radio type element
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_radio extends HTML_QuickForm_input
-{
- // {{{ properties
-
- /**
- * Radio display text
- * @var string
- * @since 1.1
- * @access private
- */
- var $_text = '';
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Input field name attribute
- * @param mixed Label(s) for a field
- * @param string Text to display near the radio
- * @param string Input field value
- * @param mixed Either a typical HTML attribute string or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_radio($elementName=null, $elementLabel=null, $text=null, $value=null, $attributes=null)
- {
- $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- if (isset($value)) {
- $this->setValue($value);
- }
- $this->_persistantFreeze = true;
- $this->setType('radio');
- $this->_text = $text;
- $this->_generateId();
- } //end constructor
-
- // }}}
- // {{{ setChecked()
-
- /**
- * Sets whether radio button is checked
- *
- * @param bool $checked Whether the field is checked or not
- * @since 1.0
- * @access public
- * @return void
- */
- function setChecked($checked)
- {
- if (!$checked) {
- $this->removeAttribute('checked');
- } else {
- $this->updateAttributes(array('checked'=>'checked'));
- }
- } //end func setChecked
-
- // }}}
- // {{{ getChecked()
-
- /**
- * Returns whether radio button is checked
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getChecked()
- {
- return $this->getAttribute('checked');
- } //end func getChecked
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the radio element in HTML
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function toHtml()
- {
- if (0 == strlen($this->_text)) {
- $label = '';
- } elseif ($this->_flagFrozen) {
- $label = $this->_text;
- } else {
- $label = '<label for="' . $this->getAttribute('id') . '">' . $this->_text . '</label>';
- }
- return HTML_QuickForm_input::toHtml() . $label;
- } //end func toHtml
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getFrozenHtml()
- {
- if ($this->getChecked()) {
- return '<tt>(x)</tt>' .
- $this->_getPersistantData();
- } else {
- return '<tt>( )</tt>';
- }
- } //end func getFrozenHtml
-
- // }}}
- // {{{ setText()
-
- /**
- * Sets the radio text
- *
- * @param string $text Text to display near the radio button
- * @since 1.1
- * @access public
- * @return void
- */
- function setText($text)
- {
- $this->_text = $text;
- } //end func setText
-
- // }}}
- // {{{ getText()
-
- /**
- * Returns the radio text
- *
- * @since 1.1
- * @access public
- * @return string
- */
- function getText()
- {
- return $this->_text;
- } //end func getText
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string $event Name of event
- * @param mixed $arg event arguments
- * @param object &$caller calling object
- * @since 1.0
- * @access public
- * @return void
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- switch ($event) {
- case 'updateValue':
- // constant values override both default and submitted ones
- // default values are overriden by submitted
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_submitValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_defaultValues);
- }
- }
- if (!is_null($value) && $value == $this->getValue()) {
- $this->setChecked(true);
- } else {
- $this->setChecked(false);
- }
- break;
- case 'setGroupValue':
- if ($arg == $this->getValue()) {
- $this->setChecked(true);
- } else {
- $this->setChecked(false);
- }
- break;
- default:
- parent::onQuickFormEvent($event, $arg, $caller);
- }
- return true;
- } // end func onQuickFormLoad
-
- // }}}
- // {{{ exportValue()
-
- /**
- * Returns the value attribute if the radio is checked, null if it is not
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- $value = $this->_findValue($submitValues);
- if (null === $value) {
- $value = $this->getChecked()? $this->getValue(): null;
- } elseif ($value != $this->getValue()) {
- $value = null;
- }
- return $this->_prepareValue($value, $assoc);
- }
-
- // }}}
-} //end class HTML_QuickForm_radio
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a radio type element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for a radio type element
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_radio extends HTML_QuickForm_input
+{
+ // {{{ properties
+
+ /**
+ * Radio display text
+ * @var string
+ * @since 1.1
+ * @access private
+ */
+ var $_text = '';
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Input field name attribute
+ * @param mixed Label(s) for a field
+ * @param string Text to display near the radio
+ * @param string Input field value
+ * @param mixed Either a typical HTML attribute string or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_radio($elementName=null, $elementLabel=null, $text=null, $value=null, $attributes=null)
+ {
+ $this->HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ if (isset($value)) {
+ $this->setValue($value);
+ }
+ $this->_persistantFreeze = true;
+ $this->setType('radio');
+ $this->_text = $text;
+ $this->_generateId();
+ } //end constructor
+
+ // }}}
+ // {{{ setChecked()
+
+ /**
+ * Sets whether radio button is checked
+ *
+ * @param bool $checked Whether the field is checked or not
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setChecked($checked)
+ {
+ if (!$checked) {
+ $this->removeAttribute('checked');
+ } else {
+ $this->updateAttributes(array('checked'=>'checked'));
+ }
+ } //end func setChecked
+
+ // }}}
+ // {{{ getChecked()
+
+ /**
+ * Returns whether radio button is checked
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getChecked()
+ {
+ return $this->getAttribute('checked');
+ } //end func getChecked
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the radio element in HTML
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ if (0 == strlen($this->_text)) {
+ $label = '';
+ } elseif ($this->_flagFrozen) {
+ $label = $this->_text;
+ } else {
+ $label = '<label for="' . $this->getAttribute('id') . '">' . $this->_text . '</label>';
+ }
+ return HTML_QuickForm_input::toHtml() . $label;
+ } //end func toHtml
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getFrozenHtml()
+ {
+ if ($this->getChecked()) {
+ return '<tt>(x)</tt>' .
+ $this->_getPersistantData();
+ } else {
+ return '<tt>( )</tt>';
+ }
+ } //end func getFrozenHtml
+
+ // }}}
+ // {{{ setText()
+
+ /**
+ * Sets the radio text
+ *
+ * @param string $text Text to display near the radio button
+ * @since 1.1
+ * @access public
+ * @return void
+ */
+ function setText($text)
+ {
+ $this->_text = $text;
+ } //end func setText
+
+ // }}}
+ // {{{ getText()
+
+ /**
+ * Returns the radio text
+ *
+ * @since 1.1
+ * @access public
+ * @return string
+ */
+ function getText()
+ {
+ return $this->_text;
+ } //end func getText
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string $event Name of event
+ * @param mixed $arg event arguments
+ * @param object &$caller calling object
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ switch ($event) {
+ case 'updateValue':
+ // constant values override both default and submitted ones
+ // default values are overriden by submitted
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_submitValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ }
+ if (!is_null($value) && $value == $this->getValue()) {
+ $this->setChecked(true);
+ } else {
+ $this->setChecked(false);
+ }
+ break;
+ case 'setGroupValue':
+ if ($arg == $this->getValue()) {
+ $this->setChecked(true);
+ } else {
+ $this->setChecked(false);
+ }
+ break;
+ default:
+ parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ return true;
+ } // end func onQuickFormLoad
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * Returns the value attribute if the radio is checked, null if it is not
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ $value = $this->_findValue($submitValues);
+ if (null === $value) {
+ $value = $this->getChecked()? $this->getValue(): null;
+ } elseif ($value != $this->getValue()) {
+ $value = null;
+ }
+ return $this->_prepareValue($value, $assoc);
+ }
+
+ // }}}
+} //end class HTML_QuickForm_radio
+?>
diff --git a/libs/HTML/QuickForm/reset.php b/libs/HTML/QuickForm/reset.php
index 7146fd858b..1f61b14afe 100755
--- a/libs/HTML/QuickForm/reset.php
+++ b/libs/HTML/QuickForm/reset.php
@@ -1,79 +1,79 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a reset type element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for a reset type element
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_reset extends HTML_QuickForm_input
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $value (optional)Input field value
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_reset($elementName=null, $value=null, $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
- $this->setValue($value);
- $this->setType('reset');
- } //end constructor
-
- // }}}
- // {{{ freeze()
-
- /**
- * Freeze the element so that only its value is returned
- *
- * @access public
- * @return void
- */
- function freeze()
- {
- return false;
- } //end func freeze
-
- // }}}
-
-} //end class HTML_QuickForm_reset
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a reset type element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for a reset type element
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_reset extends HTML_QuickForm_input
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $value (optional)Input field value
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_reset($elementName=null, $value=null, $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
+ $this->setValue($value);
+ $this->setType('reset');
+ } //end constructor
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Freeze the element so that only its value is returned
+ *
+ * @access public
+ * @return void
+ */
+ function freeze()
+ {
+ return false;
+ } //end func freeze
+
+ // }}}
+
+} //end class HTML_QuickForm_reset
+?>
diff --git a/libs/HTML/QuickForm/select.php b/libs/HTML/QuickForm/select.php
index ed97672a21..1178a042d9 100755
--- a/libs/HTML/QuickForm/select.php
+++ b/libs/HTML/QuickForm/select.php
@@ -1,614 +1,614 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Class to dynamically create an HTML SELECT
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for form elements
- */
-require_once 'HTML/QuickForm/element.php';
-
-/**
- * Class to dynamically create an HTML SELECT
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_select extends HTML_QuickForm_element {
-
- // {{{ properties
-
- /**
- * Contains the select options
- *
- * @var array
- * @since 1.0
- * @access private
- */
- var $_options = array();
-
- /**
- * Default values of the SELECT
- *
- * @var string
- * @since 1.0
- * @access private
- */
- var $_values = null;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Select name attribute
- * @param mixed Label(s) for the select
- * @param mixed Data to be used to populate options
- * @param mixed Either a typical HTML attribute string or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_select($elementName=null, $elementLabel=null, $options=null, $attributes=null)
- {
- HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- $this->_type = 'select';
- if (isset($options)) {
- $this->load($options);
- }
- } //end constructor
-
- // }}}
- // {{{ apiVersion()
-
- /**
- * Returns the current API version
- *
- * @since 1.0
- * @access public
- * @return double
- */
- function apiVersion()
- {
- return 2.3;
- } //end func apiVersion
-
- // }}}
- // {{{ setSelected()
-
- /**
- * Sets the default values of the select box
- *
- * @param mixed $values Array or comma delimited string of selected values
- * @since 1.0
- * @access public
- * @return void
- */
- function setSelected($values)
- {
- if (is_string($values) && $this->getMultiple()) {
- $values = split("[ ]?,[ ]?", $values);
- }
- if (is_array($values)) {
- $this->_values = array_values($values);
- } else {
- $this->_values = array($values);
- }
- } //end func setSelected
-
- // }}}
- // {{{ getSelected()
-
- /**
- * Returns an array of the selected values
- *
- * @since 1.0
- * @access public
- * @return array of selected values
- */
- function getSelected()
- {
- return $this->_values;
- } // end func getSelected
-
- // }}}
- // {{{ setName()
-
- /**
- * Sets the input field name
- *
- * @param string $name Input field name attribute
- * @since 1.0
- * @access public
- * @return void
- */
- function setName($name)
- {
- $this->updateAttributes(array('name' => $name));
- } //end func setName
-
- // }}}
- // {{{ getName()
-
- /**
- * Returns the element name
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getName()
- {
- return $this->getAttribute('name');
- } //end func getName
-
- // }}}
- // {{{ getPrivateName()
-
- /**
- * Returns the element name (possibly with brackets appended)
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getPrivateName()
- {
- if ($this->getAttribute('multiple')) {
- return $this->getName() . '[]';
- } else {
- return $this->getName();
- }
- } //end func getPrivateName
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets the value of the form element
- *
- * @param mixed $values Array or comma delimited string of selected values
- * @since 1.0
- * @access public
- * @return void
- */
- function setValue($value)
- {
- $this->setSelected($value);
- } // end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns an array of the selected values
- *
- * @since 1.0
- * @access public
- * @return array of selected values
- */
- function getValue()
- {
- return $this->_values;
- } // end func getValue
-
- // }}}
- // {{{ setSize()
-
- /**
- * Sets the select field size, only applies to 'multiple' selects
- *
- * @param int $size Size of select field
- * @since 1.0
- * @access public
- * @return void
- */
- function setSize($size)
- {
- $this->updateAttributes(array('size' => $size));
- } //end func setSize
-
- // }}}
- // {{{ getSize()
-
- /**
- * Returns the select field size
- *
- * @since 1.0
- * @access public
- * @return int
- */
- function getSize()
- {
- return $this->getAttribute('size');
- } //end func getSize
-
- // }}}
- // {{{ setMultiple()
-
- /**
- * Sets the select mutiple attribute
- *
- * @param bool $multiple Whether the select supports multi-selections
- * @since 1.2
- * @access public
- * @return void
- */
- function setMultiple($multiple)
- {
- if ($multiple) {
- $this->updateAttributes(array('multiple' => 'multiple'));
- } else {
- $this->removeAttribute('multiple');
- }
- } //end func setMultiple
-
- // }}}
- // {{{ getMultiple()
-
- /**
- * Returns the select mutiple attribute
- *
- * @since 1.2
- * @access public
- * @return bool true if multiple select, false otherwise
- */
- function getMultiple()
- {
- return (bool)$this->getAttribute('multiple');
- } //end func getMultiple
-
- // }}}
- // {{{ addOption()
-
- /**
- * Adds a new OPTION to the SELECT
- *
- * @param string $text Display text for the OPTION
- * @param string $value Value for the OPTION
- * @param mixed $attributes Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function addOption($text, $value, $attributes=null)
- {
- if (null === $attributes) {
- $attributes = array('value' => (string)$value);
- } else {
- $attributes = $this->_parseAttributes($attributes);
- if (isset($attributes['selected'])) {
- // the 'selected' attribute will be set in toHtml()
- $this->_removeAttr('selected', $attributes);
- if (is_null($this->_values)) {
- $this->_values = array($value);
- } elseif (!in_array($value, $this->_values)) {
- $this->_values[] = $value;
- }
- }
- $this->_updateAttrArray($attributes, array('value' => (string)$value));
- }
- $this->_options[] = array('text' => $text, 'attr' => $attributes);
- } // end func addOption
-
- // }}}
- // {{{ loadArray()
-
- /**
- * Loads the options from an associative array
- *
- * @param array $arr Associative array of options
- * @param mixed $values (optional) Array or comma delimited string of selected values
- * @since 1.0
- * @access public
- * @return PEAR_Error on error or true
- * @throws PEAR_Error
- */
- function loadArray($arr, $values=null)
- {
- if (!is_array($arr)) {
- return PEAR::raiseError('Argument 1 of HTML_Select::loadArray is not a valid array');
- }
- if (isset($values)) {
- $this->setSelected($values);
- }
- foreach ($arr as $key => $val) {
- // Warning: new API since release 2.3
- $this->addOption($val, $key);
- }
- return true;
- } // end func loadArray
-
- // }}}
- // {{{ loadDbResult()
-
- /**
- * Loads the options from DB_result object
- *
- * If no column names are specified the first two columns of the result are
- * used as the text and value columns respectively
- * @param object $result DB_result object
- * @param string $textCol (optional) Name of column to display as the OPTION text
- * @param string $valueCol (optional) Name of column to use as the OPTION value
- * @param mixed $values (optional) Array or comma delimited string of selected values
- * @since 1.0
- * @access public
- * @return PEAR_Error on error or true
- * @throws PEAR_Error
- */
- function loadDbResult(&$result, $textCol=null, $valueCol=null, $values=null)
- {
- if (!is_object($result) || !is_a($result, 'db_result')) {
- return PEAR::raiseError('Argument 1 of HTML_Select::loadDbResult is not a valid DB_result');
- }
- if (isset($values)) {
- $this->setValue($values);
- }
- $fetchMode = ($textCol && $valueCol) ? DB_FETCHMODE_ASSOC : DB_FETCHMODE_ORDERED;
- while (is_array($row = $result->fetchRow($fetchMode)) ) {
- if ($fetchMode == DB_FETCHMODE_ASSOC) {
- $this->addOption($row[$textCol], $row[$valueCol]);
- } else {
- $this->addOption($row[0], $row[1]);
- }
- }
- return true;
- } // end func loadDbResult
-
- // }}}
- // {{{ loadQuery()
-
- /**
- * Queries a database and loads the options from the results
- *
- * @param mixed $conn Either an existing DB connection or a valid dsn
- * @param string $sql SQL query string
- * @param string $textCol (optional) Name of column to display as the OPTION text
- * @param string $valueCol (optional) Name of column to use as the OPTION value
- * @param mixed $values (optional) Array or comma delimited string of selected values
- * @since 1.1
- * @access public
- * @return void
- * @throws PEAR_Error
- */
- function loadQuery(&$conn, $sql, $textCol=null, $valueCol=null, $values=null)
- {
- if (is_string($conn)) {
- require_once('DB.php');
- $dbConn = &DB::connect($conn, true);
- if (DB::isError($dbConn)) {
- return $dbConn;
- }
- } elseif (is_subclass_of($conn, "db_common")) {
- $dbConn = &$conn;
- } else {
- return PEAR::raiseError('Argument 1 of HTML_Select::loadQuery is not a valid type');
- }
- $result = $dbConn->query($sql);
- if (DB::isError($result)) {
- return $result;
- }
- $this->loadDbResult($result, $textCol, $valueCol, $values);
- $result->free();
- if (is_string($conn)) {
- $dbConn->disconnect();
- }
- return true;
- } // end func loadQuery
-
- // }}}
- // {{{ load()
-
- /**
- * Loads options from different types of data sources
- *
- * This method is a simulated overloaded method. The arguments, other than the
- * first are optional and only mean something depending on the type of the first argument.
- * If the first argument is an array then all arguments are passed in order to loadArray.
- * If the first argument is a db_result then all arguments are passed in order to loadDbResult.
- * If the first argument is a string or a DB connection then all arguments are
- * passed in order to loadQuery.
- * @param mixed $options Options source currently supports assoc array or DB_result
- * @param mixed $param1 (optional) See function detail
- * @param mixed $param2 (optional) See function detail
- * @param mixed $param3 (optional) See function detail
- * @param mixed $param4 (optional) See function detail
- * @since 1.1
- * @access public
- * @return PEAR_Error on error or true
- * @throws PEAR_Error
- */
- function load(&$options, $param1=null, $param2=null, $param3=null, $param4=null)
- {
- switch (true) {
- case is_array($options):
- return $this->loadArray($options, $param1);
- break;
- case (is_a($options, 'db_result')):
- return $this->loadDbResult($options, $param1, $param2, $param3);
- break;
- case (is_string($options) && !empty($options) || is_subclass_of($options, "db_common")):
- return $this->loadQuery($options, $param1, $param2, $param3, $param4);
- break;
- }
- } // end func load
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the SELECT in HTML
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function toHtml()
- {
- if ($this->_flagFrozen) {
- return $this->getFrozenHtml();
- } else {
- $tabs = $this->_getTabs();
- $strHtml = '';
-
- if ($this->getComment() != '') {
- $strHtml .= $tabs . '<!-- ' . $this->getComment() . " //-->\n";
- }
-
- if (!$this->getMultiple()) {
- $attrString = $this->_getAttrString($this->_attributes);
- } else {
- $myName = $this->getName();
- $this->setName($myName . '[]');
- $attrString = $this->_getAttrString($this->_attributes);
- $this->setName($myName);
- }
- $strHtml .= $tabs . '<select' . $attrString . ">\n";
-
- $strValues = is_array($this->_values)? array_map('strval', $this->_values): array();
- foreach ($this->_options as $option) {
- if (!empty($strValues) && in_array($option['attr']['value'], $strValues, true)) {
- $option['attr']['selected'] = 'selected';
- }
- $strHtml .= $tabs . "\t<option" . $this->_getAttrString($option['attr']) . '>' .
- $option['text'] . "</option>\n";
- }
-
- return $strHtml . $tabs . '</select>';
- }
- } //end func toHtml
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getFrozenHtml()
- {
- $value = array();
- if (is_array($this->_values)) {
- foreach ($this->_values as $key => $val) {
- for ($i = 0, $optCount = count($this->_options); $i < $optCount; $i++) {
- if (0 == strcmp($val, $this->_options[$i]['attr']['value'])) {
- $value[$key] = $this->_options[$i]['text'];
- break;
- }
- }
- }
- }
- $html = empty($value)? '&nbsp;': join('<br />', $value);
- if ($this->_persistantFreeze) {
- $name = $this->getPrivateName();
- // Only use id attribute if doing single hidden input
- if (1 == count($value)) {
- $id = $this->getAttribute('id');
- $idAttr = isset($id)? array('id' => $id): array();
- } else {
- $idAttr = array();
- }
- foreach ($value as $key => $item) {
- $html .= '<input' . $this->_getAttrString(array(
- 'type' => 'hidden',
- 'name' => $name,
- 'value' => $this->_values[$key]
- ) + $idAttr) . ' />';
- }
- }
- return $html;
- } //end func getFrozenHtml
-
- // }}}
- // {{{ exportValue()
-
- /**
- * We check the options and return only the values that _could_ have been
- * selected. We also return a scalar value if select is not "multiple"
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- $value = $this->_findValue($submitValues);
- if (is_null($value)) {
- $value = $this->getValue();
- } elseif(!is_array($value)) {
- $value = array($value);
- }
- if (is_array($value) && !empty($this->_options)) {
- $cleanValue = null;
- foreach ($value as $v) {
- for ($i = 0, $optCount = count($this->_options); $i < $optCount; $i++) {
- if (0 == strcmp($v, $this->_options[$i]['attr']['value'])) {
- $cleanValue[] = $v;
- break;
- }
- }
- }
- } else {
- $cleanValue = $value;
- }
- if (is_array($cleanValue) && !$this->getMultiple()) {
- return $this->_prepareValue($cleanValue[0], $assoc);
- } else {
- return $this->_prepareValue($cleanValue, $assoc);
- }
- }
-
- // }}}
- // {{{ onQuickFormEvent()
-
- function onQuickFormEvent($event, $arg, &$caller)
- {
- if ('updateValue' == $event) {
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_submitValues);
- // Fix for bug #4465 & #5269
- // XXX: should we push this to element::onQuickFormEvent()?
- if (null === $value && (!$caller->isSubmitted() || !$this->getMultiple())) {
- $value = $this->_findValue($caller->_defaultValues);
- }
- }
- if (null !== $value) {
- $this->setValue($value);
- }
- return true;
- } else {
- return parent::onQuickFormEvent($event, $arg, $caller);
- }
- }
-
- // }}}
-} //end class HTML_QuickForm_select
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Class to dynamically create an HTML SELECT
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for form elements
+ */
+require_once 'HTML/QuickForm/element.php';
+
+/**
+ * Class to dynamically create an HTML SELECT
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_select extends HTML_QuickForm_element {
+
+ // {{{ properties
+
+ /**
+ * Contains the select options
+ *
+ * @var array
+ * @since 1.0
+ * @access private
+ */
+ var $_options = array();
+
+ /**
+ * Default values of the SELECT
+ *
+ * @var string
+ * @since 1.0
+ * @access private
+ */
+ var $_values = null;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Select name attribute
+ * @param mixed Label(s) for the select
+ * @param mixed Data to be used to populate options
+ * @param mixed Either a typical HTML attribute string or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_select($elementName=null, $elementLabel=null, $options=null, $attributes=null)
+ {
+ HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->_type = 'select';
+ if (isset($options)) {
+ $this->load($options);
+ }
+ } //end constructor
+
+ // }}}
+ // {{{ apiVersion()
+
+ /**
+ * Returns the current API version
+ *
+ * @since 1.0
+ * @access public
+ * @return double
+ */
+ function apiVersion()
+ {
+ return 2.3;
+ } //end func apiVersion
+
+ // }}}
+ // {{{ setSelected()
+
+ /**
+ * Sets the default values of the select box
+ *
+ * @param mixed $values Array or comma delimited string of selected values
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setSelected($values)
+ {
+ if (is_string($values) && $this->getMultiple()) {
+ $values = split("[ ]?,[ ]?", $values);
+ }
+ if (is_array($values)) {
+ $this->_values = array_values($values);
+ } else {
+ $this->_values = array($values);
+ }
+ } //end func setSelected
+
+ // }}}
+ // {{{ getSelected()
+
+ /**
+ * Returns an array of the selected values
+ *
+ * @since 1.0
+ * @access public
+ * @return array of selected values
+ */
+ function getSelected()
+ {
+ return $this->_values;
+ } // end func getSelected
+
+ // }}}
+ // {{{ setName()
+
+ /**
+ * Sets the input field name
+ *
+ * @param string $name Input field name attribute
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setName($name)
+ {
+ $this->updateAttributes(array('name' => $name));
+ } //end func setName
+
+ // }}}
+ // {{{ getName()
+
+ /**
+ * Returns the element name
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getName()
+ {
+ return $this->getAttribute('name');
+ } //end func getName
+
+ // }}}
+ // {{{ getPrivateName()
+
+ /**
+ * Returns the element name (possibly with brackets appended)
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getPrivateName()
+ {
+ if ($this->getAttribute('multiple')) {
+ return $this->getName() . '[]';
+ } else {
+ return $this->getName();
+ }
+ } //end func getPrivateName
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets the value of the form element
+ *
+ * @param mixed $values Array or comma delimited string of selected values
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setValue($value)
+ {
+ $this->setSelected($value);
+ } // end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns an array of the selected values
+ *
+ * @since 1.0
+ * @access public
+ * @return array of selected values
+ */
+ function getValue()
+ {
+ return $this->_values;
+ } // end func getValue
+
+ // }}}
+ // {{{ setSize()
+
+ /**
+ * Sets the select field size, only applies to 'multiple' selects
+ *
+ * @param int $size Size of select field
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setSize($size)
+ {
+ $this->updateAttributes(array('size' => $size));
+ } //end func setSize
+
+ // }}}
+ // {{{ getSize()
+
+ /**
+ * Returns the select field size
+ *
+ * @since 1.0
+ * @access public
+ * @return int
+ */
+ function getSize()
+ {
+ return $this->getAttribute('size');
+ } //end func getSize
+
+ // }}}
+ // {{{ setMultiple()
+
+ /**
+ * Sets the select mutiple attribute
+ *
+ * @param bool $multiple Whether the select supports multi-selections
+ * @since 1.2
+ * @access public
+ * @return void
+ */
+ function setMultiple($multiple)
+ {
+ if ($multiple) {
+ $this->updateAttributes(array('multiple' => 'multiple'));
+ } else {
+ $this->removeAttribute('multiple');
+ }
+ } //end func setMultiple
+
+ // }}}
+ // {{{ getMultiple()
+
+ /**
+ * Returns the select mutiple attribute
+ *
+ * @since 1.2
+ * @access public
+ * @return bool true if multiple select, false otherwise
+ */
+ function getMultiple()
+ {
+ return (bool)$this->getAttribute('multiple');
+ } //end func getMultiple
+
+ // }}}
+ // {{{ addOption()
+
+ /**
+ * Adds a new OPTION to the SELECT
+ *
+ * @param string $text Display text for the OPTION
+ * @param string $value Value for the OPTION
+ * @param mixed $attributes Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function addOption($text, $value, $attributes=null)
+ {
+ if (null === $attributes) {
+ $attributes = array('value' => (string)$value);
+ } else {
+ $attributes = $this->_parseAttributes($attributes);
+ if (isset($attributes['selected'])) {
+ // the 'selected' attribute will be set in toHtml()
+ $this->_removeAttr('selected', $attributes);
+ if (is_null($this->_values)) {
+ $this->_values = array($value);
+ } elseif (!in_array($value, $this->_values)) {
+ $this->_values[] = $value;
+ }
+ }
+ $this->_updateAttrArray($attributes, array('value' => (string)$value));
+ }
+ $this->_options[] = array('text' => $text, 'attr' => $attributes);
+ } // end func addOption
+
+ // }}}
+ // {{{ loadArray()
+
+ /**
+ * Loads the options from an associative array
+ *
+ * @param array $arr Associative array of options
+ * @param mixed $values (optional) Array or comma delimited string of selected values
+ * @since 1.0
+ * @access public
+ * @return PEAR_Error on error or true
+ * @throws PEAR_Error
+ */
+ function loadArray($arr, $values=null)
+ {
+ if (!is_array($arr)) {
+ return PEAR::raiseError('Argument 1 of HTML_Select::loadArray is not a valid array');
+ }
+ if (isset($values)) {
+ $this->setSelected($values);
+ }
+ foreach ($arr as $key => $val) {
+ // Warning: new API since release 2.3
+ $this->addOption($val, $key);
+ }
+ return true;
+ } // end func loadArray
+
+ // }}}
+ // {{{ loadDbResult()
+
+ /**
+ * Loads the options from DB_result object
+ *
+ * If no column names are specified the first two columns of the result are
+ * used as the text and value columns respectively
+ * @param object $result DB_result object
+ * @param string $textCol (optional) Name of column to display as the OPTION text
+ * @param string $valueCol (optional) Name of column to use as the OPTION value
+ * @param mixed $values (optional) Array or comma delimited string of selected values
+ * @since 1.0
+ * @access public
+ * @return PEAR_Error on error or true
+ * @throws PEAR_Error
+ */
+ function loadDbResult(&$result, $textCol=null, $valueCol=null, $values=null)
+ {
+ if (!is_object($result) || !is_a($result, 'db_result')) {
+ return PEAR::raiseError('Argument 1 of HTML_Select::loadDbResult is not a valid DB_result');
+ }
+ if (isset($values)) {
+ $this->setValue($values);
+ }
+ $fetchMode = ($textCol && $valueCol) ? DB_FETCHMODE_ASSOC : DB_FETCHMODE_ORDERED;
+ while (is_array($row = $result->fetchRow($fetchMode)) ) {
+ if ($fetchMode == DB_FETCHMODE_ASSOC) {
+ $this->addOption($row[$textCol], $row[$valueCol]);
+ } else {
+ $this->addOption($row[0], $row[1]);
+ }
+ }
+ return true;
+ } // end func loadDbResult
+
+ // }}}
+ // {{{ loadQuery()
+
+ /**
+ * Queries a database and loads the options from the results
+ *
+ * @param mixed $conn Either an existing DB connection or a valid dsn
+ * @param string $sql SQL query string
+ * @param string $textCol (optional) Name of column to display as the OPTION text
+ * @param string $valueCol (optional) Name of column to use as the OPTION value
+ * @param mixed $values (optional) Array or comma delimited string of selected values
+ * @since 1.1
+ * @access public
+ * @return void
+ * @throws PEAR_Error
+ */
+ function loadQuery(&$conn, $sql, $textCol=null, $valueCol=null, $values=null)
+ {
+ if (is_string($conn)) {
+ require_once('DB.php');
+ $dbConn = &DB::connect($conn, true);
+ if (DB::isError($dbConn)) {
+ return $dbConn;
+ }
+ } elseif (is_subclass_of($conn, "db_common")) {
+ $dbConn = &$conn;
+ } else {
+ return PEAR::raiseError('Argument 1 of HTML_Select::loadQuery is not a valid type');
+ }
+ $result = $dbConn->query($sql);
+ if (DB::isError($result)) {
+ return $result;
+ }
+ $this->loadDbResult($result, $textCol, $valueCol, $values);
+ $result->free();
+ if (is_string($conn)) {
+ $dbConn->disconnect();
+ }
+ return true;
+ } // end func loadQuery
+
+ // }}}
+ // {{{ load()
+
+ /**
+ * Loads options from different types of data sources
+ *
+ * This method is a simulated overloaded method. The arguments, other than the
+ * first are optional and only mean something depending on the type of the first argument.
+ * If the first argument is an array then all arguments are passed in order to loadArray.
+ * If the first argument is a db_result then all arguments are passed in order to loadDbResult.
+ * If the first argument is a string or a DB connection then all arguments are
+ * passed in order to loadQuery.
+ * @param mixed $options Options source currently supports assoc array or DB_result
+ * @param mixed $param1 (optional) See function detail
+ * @param mixed $param2 (optional) See function detail
+ * @param mixed $param3 (optional) See function detail
+ * @param mixed $param4 (optional) See function detail
+ * @since 1.1
+ * @access public
+ * @return PEAR_Error on error or true
+ * @throws PEAR_Error
+ */
+ function load(&$options, $param1=null, $param2=null, $param3=null, $param4=null)
+ {
+ switch (true) {
+ case is_array($options):
+ return $this->loadArray($options, $param1);
+ break;
+ case (is_a($options, 'db_result')):
+ return $this->loadDbResult($options, $param1, $param2, $param3);
+ break;
+ case (is_string($options) && !empty($options) || is_subclass_of($options, "db_common")):
+ return $this->loadQuery($options, $param1, $param2, $param3, $param4);
+ break;
+ }
+ } // end func load
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the SELECT in HTML
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ if ($this->_flagFrozen) {
+ return $this->getFrozenHtml();
+ } else {
+ $tabs = $this->_getTabs();
+ $strHtml = '';
+
+ if ($this->getComment() != '') {
+ $strHtml .= $tabs . '<!-- ' . $this->getComment() . " //-->\n";
+ }
+
+ if (!$this->getMultiple()) {
+ $attrString = $this->_getAttrString($this->_attributes);
+ } else {
+ $myName = $this->getName();
+ $this->setName($myName . '[]');
+ $attrString = $this->_getAttrString($this->_attributes);
+ $this->setName($myName);
+ }
+ $strHtml .= $tabs . '<select' . $attrString . ">\n";
+
+ $strValues = is_array($this->_values)? array_map('strval', $this->_values): array();
+ foreach ($this->_options as $option) {
+ if (!empty($strValues) && in_array($option['attr']['value'], $strValues, true)) {
+ $option['attr']['selected'] = 'selected';
+ }
+ $strHtml .= $tabs . "\t<option" . $this->_getAttrString($option['attr']) . '>' .
+ $option['text'] . "</option>\n";
+ }
+
+ return $strHtml . $tabs . '</select>';
+ }
+ } //end func toHtml
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getFrozenHtml()
+ {
+ $value = array();
+ if (is_array($this->_values)) {
+ foreach ($this->_values as $key => $val) {
+ for ($i = 0, $optCount = count($this->_options); $i < $optCount; $i++) {
+ if (0 == strcmp($val, $this->_options[$i]['attr']['value'])) {
+ $value[$key] = $this->_options[$i]['text'];
+ break;
+ }
+ }
+ }
+ }
+ $html = empty($value)? '&nbsp;': join('<br />', $value);
+ if ($this->_persistantFreeze) {
+ $name = $this->getPrivateName();
+ // Only use id attribute if doing single hidden input
+ if (1 == count($value)) {
+ $id = $this->getAttribute('id');
+ $idAttr = isset($id)? array('id' => $id): array();
+ } else {
+ $idAttr = array();
+ }
+ foreach ($value as $key => $item) {
+ $html .= '<input' . $this->_getAttrString(array(
+ 'type' => 'hidden',
+ 'name' => $name,
+ 'value' => $this->_values[$key]
+ ) + $idAttr) . ' />';
+ }
+ }
+ return $html;
+ } //end func getFrozenHtml
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * We check the options and return only the values that _could_ have been
+ * selected. We also return a scalar value if select is not "multiple"
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ $value = $this->_findValue($submitValues);
+ if (is_null($value)) {
+ $value = $this->getValue();
+ } elseif(!is_array($value)) {
+ $value = array($value);
+ }
+ if (is_array($value) && !empty($this->_options)) {
+ $cleanValue = null;
+ foreach ($value as $v) {
+ for ($i = 0, $optCount = count($this->_options); $i < $optCount; $i++) {
+ if (0 == strcmp($v, $this->_options[$i]['attr']['value'])) {
+ $cleanValue[] = $v;
+ break;
+ }
+ }
+ }
+ } else {
+ $cleanValue = $value;
+ }
+ if (is_array($cleanValue) && !$this->getMultiple()) {
+ return $this->_prepareValue($cleanValue[0], $assoc);
+ } else {
+ return $this->_prepareValue($cleanValue, $assoc);
+ }
+ }
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ if ('updateValue' == $event) {
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_submitValues);
+ // Fix for bug #4465 & #5269
+ // XXX: should we push this to element::onQuickFormEvent()?
+ if (null === $value && (!$caller->isSubmitted() || !$this->getMultiple())) {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ }
+ if (null !== $value) {
+ $this->setValue($value);
+ }
+ return true;
+ } else {
+ return parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ }
+
+ // }}}
+} //end class HTML_QuickForm_select
+?>
diff --git a/libs/HTML/QuickForm/static.php b/libs/HTML/QuickForm/static.php
index cbe6c964a9..20f45b8e72 100755
--- a/libs/HTML/QuickForm/static.php
+++ b/libs/HTML/QuickForm/static.php
@@ -1,201 +1,201 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for static data
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Wojciech Gdela <eltehaem@poczta.onet.pl>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for form elements
- */
-require_once 'HTML/QuickForm/element.php';
-
-/**
- * HTML class for static data
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Wojciech Gdela <eltehaem@poczta.onet.pl>
- * @version Release: 3.2.9
- * @since 2.7
- */
-class HTML_QuickForm_static extends HTML_QuickForm_element {
-
- // {{{ properties
-
- /**
- * Display text
- * @var string
- * @access private
- */
- var $_text = null;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementLabel (optional)Label
- * @param string $text (optional)Display text
- * @access public
- * @return void
- */
- function HTML_QuickForm_static($elementName=null, $elementLabel=null, $text=null)
- {
- HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel);
- $this->_persistantFreeze = false;
- $this->_type = 'static';
- $this->_text = $text;
- } //end constructor
-
- // }}}
- // {{{ setName()
-
- /**
- * Sets the element name
- *
- * @param string $name Element name
- * @access public
- * @return void
- */
- function setName($name)
- {
- $this->updateAttributes(array('name'=>$name));
- } //end func setName
-
- // }}}
- // {{{ getName()
-
- /**
- * Returns the element name
- *
- * @access public
- * @return string
- */
- function getName()
- {
- return $this->getAttribute('name');
- } //end func getName
-
- // }}}
- // {{{ setText()
-
- /**
- * Sets the text
- *
- * @param string $text
- * @access public
- * @return void
- */
- function setText($text)
- {
- $this->_text = $text;
- } // end func setText
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets the text (uses the standard setValue call to emulate a form element.
- *
- * @param string $text
- * @access public
- * @return void
- */
- function setValue($text)
- {
- $this->setText($text);
- } // end func setValue
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the static text element in HTML
- *
- * @access public
- * @return string
- */
- function toHtml()
- {
- return $this->_getTabs() . $this->_text;
- } //end func toHtml
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags
- *
- * @access public
- * @return string
- */
- function getFrozenHtml()
- {
- return $this->toHtml();
- } //end func getFrozenHtml
-
- // }}}
- // {{{ onQuickFormEvent()
-
- /**
- * Called by HTML_QuickForm whenever form event is made on this element
- *
- * @param string $event Name of event
- * @param mixed $arg event arguments
- * @param object &$caller calling object
- * @since 1.0
- * @access public
- * @return void
- * @throws
- */
- function onQuickFormEvent($event, $arg, &$caller)
- {
- switch ($event) {
- case 'updateValue':
- // do NOT use submitted values for static elements
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_defaultValues);
- }
- if (null !== $value) {
- $this->setValue($value);
- }
- break;
- default:
- parent::onQuickFormEvent($event, $arg, $caller);
- }
- return true;
- } // end func onQuickFormEvent
-
- // }}}
- // {{{ exportValue()
-
- /**
- * We override this here because we don't want any values from static elements
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- return null;
- }
-
- // }}}
-} //end class HTML_QuickForm_static
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for static data
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Wojciech Gdela <eltehaem@poczta.onet.pl>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for form elements
+ */
+require_once 'HTML/QuickForm/element.php';
+
+/**
+ * HTML class for static data
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Wojciech Gdela <eltehaem@poczta.onet.pl>
+ * @version Release: 3.2.9
+ * @since 2.7
+ */
+class HTML_QuickForm_static extends HTML_QuickForm_element {
+
+ // {{{ properties
+
+ /**
+ * Display text
+ * @var string
+ * @access private
+ */
+ var $_text = null;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementLabel (optional)Label
+ * @param string $text (optional)Display text
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_static($elementName=null, $elementLabel=null, $text=null)
+ {
+ HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel);
+ $this->_persistantFreeze = false;
+ $this->_type = 'static';
+ $this->_text = $text;
+ } //end constructor
+
+ // }}}
+ // {{{ setName()
+
+ /**
+ * Sets the element name
+ *
+ * @param string $name Element name
+ * @access public
+ * @return void
+ */
+ function setName($name)
+ {
+ $this->updateAttributes(array('name'=>$name));
+ } //end func setName
+
+ // }}}
+ // {{{ getName()
+
+ /**
+ * Returns the element name
+ *
+ * @access public
+ * @return string
+ */
+ function getName()
+ {
+ return $this->getAttribute('name');
+ } //end func getName
+
+ // }}}
+ // {{{ setText()
+
+ /**
+ * Sets the text
+ *
+ * @param string $text
+ * @access public
+ * @return void
+ */
+ function setText($text)
+ {
+ $this->_text = $text;
+ } // end func setText
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets the text (uses the standard setValue call to emulate a form element.
+ *
+ * @param string $text
+ * @access public
+ * @return void
+ */
+ function setValue($text)
+ {
+ $this->setText($text);
+ } // end func setValue
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the static text element in HTML
+ *
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ return $this->_getTabs() . $this->_text;
+ } //end func toHtml
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags
+ *
+ * @access public
+ * @return string
+ */
+ function getFrozenHtml()
+ {
+ return $this->toHtml();
+ } //end func getFrozenHtml
+
+ // }}}
+ // {{{ onQuickFormEvent()
+
+ /**
+ * Called by HTML_QuickForm whenever form event is made on this element
+ *
+ * @param string $event Name of event
+ * @param mixed $arg event arguments
+ * @param object &$caller calling object
+ * @since 1.0
+ * @access public
+ * @return void
+ * @throws
+ */
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ switch ($event) {
+ case 'updateValue':
+ // do NOT use submitted values for static elements
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ if (null !== $value) {
+ $this->setValue($value);
+ }
+ break;
+ default:
+ parent::onQuickFormEvent($event, $arg, $caller);
+ }
+ return true;
+ } // end func onQuickFormEvent
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * We override this here because we don't want any values from static elements
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ return null;
+ }
+
+ // }}}
+} //end class HTML_QuickForm_static
+?>
diff --git a/libs/HTML/QuickForm/submit.php b/libs/HTML/QuickForm/submit.php
index 97bddede83..caa692dd16 100755
--- a/libs/HTML/QuickForm/submit.php
+++ b/libs/HTML/QuickForm/submit.php
@@ -1,89 +1,89 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a submit type element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for a submit type element
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_submit extends HTML_QuickForm_input
-{
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Input field name attribute
- * @param string Input field value
- * @param mixed Either a typical HTML attribute string or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_submit($elementName=null, $value=null, $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
- $this->setValue($value);
- $this->setType('submit');
- } //end constructor
-
- // }}}
- // {{{ freeze()
-
- /**
- * Freeze the element so that only its value is returned
- *
- * @access public
- * @return void
- */
- function freeze()
- {
- return false;
- } //end func freeze
-
- // }}}
- // {{{ exportValue()
-
- /**
- * Only return the value if it is found within $submitValues (i.e. if
- * this particular submit button was clicked)
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- return $this->_prepareValue($this->_findValue($submitValues), $assoc);
- }
-
- // }}}
-} //end class HTML_QuickForm_submit
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a submit type element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for a submit type element
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_submit extends HTML_QuickForm_input
+{
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Input field name attribute
+ * @param string Input field value
+ * @param mixed Either a typical HTML attribute string or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_submit($elementName=null, $value=null, $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, null, $attributes);
+ $this->setValue($value);
+ $this->setType('submit');
+ } //end constructor
+
+ // }}}
+ // {{{ freeze()
+
+ /**
+ * Freeze the element so that only its value is returned
+ *
+ * @access public
+ * @return void
+ */
+ function freeze()
+ {
+ return false;
+ } //end func freeze
+
+ // }}}
+ // {{{ exportValue()
+
+ /**
+ * Only return the value if it is found within $submitValues (i.e. if
+ * this particular submit button was clicked)
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ return $this->_prepareValue($this->_findValue($submitValues), $assoc);
+ }
+
+ // }}}
+} //end class HTML_QuickForm_submit
+?>
diff --git a/libs/HTML/QuickForm/text.php b/libs/HTML/QuickForm/text.php
index afb38d07de..0696122b99 100755
--- a/libs/HTML/QuickForm/text.php
+++ b/libs/HTML/QuickForm/text.php
@@ -1,98 +1,98 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a text field
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for <input /> form elements
- */
-require_once 'HTML/QuickForm/input.php';
-
-/**
- * HTML class for a text field
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_text extends HTML_QuickForm_input
-{
-
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string $elementName (optional)Input field name attribute
- * @param string $elementLabel (optional)Input field label
- * @param mixed $attributes (optional)Either a typical HTML attribute string
- * or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_text($elementName=null, $elementLabel=null, $attributes=null)
- {
- HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- $this->setType('text');
- } //end constructor
-
- // }}}
- // {{{ setSize()
-
- /**
- * Sets size of text field
- *
- * @param string $size Size of text field
- * @since 1.3
- * @access public
- * @return void
- */
- function setSize($size)
- {
- $this->updateAttributes(array('size'=>$size));
- } //end func setSize
-
- // }}}
- // {{{ setMaxlength()
-
- /**
- * Sets maxlength of text field
- *
- * @param string $maxlength Maximum length of text field
- * @since 1.3
- * @access public
- * @return void
- */
- function setMaxlength($maxlength)
- {
- $this->updateAttributes(array('maxlength'=>$maxlength));
- } //end func setMaxlength
-
- // }}}
-
-} //end class HTML_QuickForm_text
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a text field
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for <input /> form elements
+ */
+require_once 'HTML/QuickForm/input.php';
+
+/**
+ * HTML class for a text field
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_text extends HTML_QuickForm_input
+{
+
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string $elementName (optional)Input field name attribute
+ * @param string $elementLabel (optional)Input field label
+ * @param mixed $attributes (optional)Either a typical HTML attribute string
+ * or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_text($elementName=null, $elementLabel=null, $attributes=null)
+ {
+ HTML_QuickForm_input::HTML_QuickForm_input($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->setType('text');
+ } //end constructor
+
+ // }}}
+ // {{{ setSize()
+
+ /**
+ * Sets size of text field
+ *
+ * @param string $size Size of text field
+ * @since 1.3
+ * @access public
+ * @return void
+ */
+ function setSize($size)
+ {
+ $this->updateAttributes(array('size'=>$size));
+ } //end func setSize
+
+ // }}}
+ // {{{ setMaxlength()
+
+ /**
+ * Sets maxlength of text field
+ *
+ * @param string $maxlength Maximum length of text field
+ * @since 1.3
+ * @access public
+ * @return void
+ */
+ function setMaxlength($maxlength)
+ {
+ $this->updateAttributes(array('maxlength'=>$maxlength));
+ } //end func setMaxlength
+
+ // }}}
+
+} //end class HTML_QuickForm_text
+?>
diff --git a/libs/HTML/QuickForm/textarea.php b/libs/HTML/QuickForm/textarea.php
index 5e3de74c6f..b499a9418a 100755
--- a/libs/HTML/QuickForm/textarea.php
+++ b/libs/HTML/QuickForm/textarea.php
@@ -1,229 +1,229 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * HTML class for a textarea type field
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for form elements
- */
-require_once 'HTML/QuickForm/element.php';
-
-/**
- * HTML class for a textarea type field
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Adam Daniel <adaniel1@eesus.jnj.com>
- * @author Bertrand Mansion <bmansion@mamasam.com>
- * @version Release: 3.2.9
- * @since 1.0
- */
-class HTML_QuickForm_textarea extends HTML_QuickForm_element
-{
- // {{{ properties
-
- /**
- * Field value
- * @var string
- * @since 1.0
- * @access private
- */
- var $_value = null;
-
- // }}}
- // {{{ constructor
-
- /**
- * Class constructor
- *
- * @param string Input field name attribute
- * @param mixed Label(s) for a field
- * @param mixed Either a typical HTML attribute string or an associative array
- * @since 1.0
- * @access public
- * @return void
- */
- function HTML_QuickForm_textarea($elementName=null, $elementLabel=null, $attributes=null)
- {
- HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
- $this->_persistantFreeze = true;
- $this->_type = 'textarea';
- } //end constructor
-
- // }}}
- // {{{ setName()
-
- /**
- * Sets the input field name
- *
- * @param string $name Input field name attribute
- * @since 1.0
- * @access public
- * @return void
- */
- function setName($name)
- {
- $this->updateAttributes(array('name'=>$name));
- } //end func setName
-
- // }}}
- // {{{ getName()
-
- /**
- * Returns the element name
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getName()
- {
- return $this->getAttribute('name');
- } //end func getName
-
- // }}}
- // {{{ setValue()
-
- /**
- * Sets value for textarea element
- *
- * @param string $value Value for textarea element
- * @since 1.0
- * @access public
- * @return void
- */
- function setValue($value)
- {
- $this->_value = $value;
- } //end func setValue
-
- // }}}
- // {{{ getValue()
-
- /**
- * Returns the value of the form element
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getValue()
- {
- return $this->_value;
- } // end func getValue
-
- // }}}
- // {{{ setWrap()
-
- /**
- * Sets wrap type for textarea element
- *
- * @param string $wrap Wrap type
- * @since 1.0
- * @access public
- * @return void
- */
- function setWrap($wrap)
- {
- $this->updateAttributes(array('wrap' => $wrap));
- } //end func setWrap
-
- // }}}
- // {{{ setRows()
-
- /**
- * Sets height in rows for textarea element
- *
- * @param string $rows Height expressed in rows
- * @since 1.0
- * @access public
- * @return void
- */
- function setRows($rows)
- {
- $this->updateAttributes(array('rows' => $rows));
- } //end func setRows
-
- // }}}
- // {{{ setCols()
-
- /**
- * Sets width in cols for textarea element
- *
- * @param string $cols Width expressed in cols
- * @since 1.0
- * @access public
- * @return void
- */
- function setCols($cols)
- {
- $this->updateAttributes(array('cols' => $cols));
- } //end func setCols
-
- // }}}
- // {{{ toHtml()
-
- /**
- * Returns the textarea element in HTML
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function toHtml()
- {
- if ($this->_flagFrozen) {
- return $this->getFrozenHtml();
- } else {
- return $this->_getTabs() .
- '<textarea' . $this->_getAttrString($this->_attributes) . '>' .
- // because we wrap the form later we don't want the text indented
- preg_replace("/(\r\n|\n|\r)/", '&#010;', htmlspecialchars($this->_value)) .
- '</textarea>';
- }
- } //end func toHtml
-
- // }}}
- // {{{ getFrozenHtml()
-
- /**
- * Returns the value of field without HTML tags (in this case, value is changed to a mask)
- *
- * @since 1.0
- * @access public
- * @return string
- */
- function getFrozenHtml()
- {
- $value = htmlspecialchars($this->getValue());
- if ($this->getAttribute('wrap') == 'off') {
- $html = $this->_getTabs() . '<pre>' . $value."</pre>\n";
- } else {
- $html = nl2br($value)."\n";
- }
- return $html . $this->_getPersistantData();
- } //end func getFrozenHtml
-
- // }}}
-
-} //end class HTML_QuickForm_textarea
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * HTML class for a textarea type field
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for form elements
+ */
+require_once 'HTML/QuickForm/element.php';
+
+/**
+ * HTML class for a textarea type field
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Adam Daniel <adaniel1@eesus.jnj.com>
+ * @author Bertrand Mansion <bmansion@mamasam.com>
+ * @version Release: 3.2.9
+ * @since 1.0
+ */
+class HTML_QuickForm_textarea extends HTML_QuickForm_element
+{
+ // {{{ properties
+
+ /**
+ * Field value
+ * @var string
+ * @since 1.0
+ * @access private
+ */
+ var $_value = null;
+
+ // }}}
+ // {{{ constructor
+
+ /**
+ * Class constructor
+ *
+ * @param string Input field name attribute
+ * @param mixed Label(s) for a field
+ * @param mixed Either a typical HTML attribute string or an associative array
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function HTML_QuickForm_textarea($elementName=null, $elementLabel=null, $attributes=null)
+ {
+ HTML_QuickForm_element::HTML_QuickForm_element($elementName, $elementLabel, $attributes);
+ $this->_persistantFreeze = true;
+ $this->_type = 'textarea';
+ } //end constructor
+
+ // }}}
+ // {{{ setName()
+
+ /**
+ * Sets the input field name
+ *
+ * @param string $name Input field name attribute
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setName($name)
+ {
+ $this->updateAttributes(array('name'=>$name));
+ } //end func setName
+
+ // }}}
+ // {{{ getName()
+
+ /**
+ * Returns the element name
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getName()
+ {
+ return $this->getAttribute('name');
+ } //end func getName
+
+ // }}}
+ // {{{ setValue()
+
+ /**
+ * Sets value for textarea element
+ *
+ * @param string $value Value for textarea element
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setValue($value)
+ {
+ $this->_value = $value;
+ } //end func setValue
+
+ // }}}
+ // {{{ getValue()
+
+ /**
+ * Returns the value of the form element
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getValue()
+ {
+ return $this->_value;
+ } // end func getValue
+
+ // }}}
+ // {{{ setWrap()
+
+ /**
+ * Sets wrap type for textarea element
+ *
+ * @param string $wrap Wrap type
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setWrap($wrap)
+ {
+ $this->updateAttributes(array('wrap' => $wrap));
+ } //end func setWrap
+
+ // }}}
+ // {{{ setRows()
+
+ /**
+ * Sets height in rows for textarea element
+ *
+ * @param string $rows Height expressed in rows
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setRows($rows)
+ {
+ $this->updateAttributes(array('rows' => $rows));
+ } //end func setRows
+
+ // }}}
+ // {{{ setCols()
+
+ /**
+ * Sets width in cols for textarea element
+ *
+ * @param string $cols Width expressed in cols
+ * @since 1.0
+ * @access public
+ * @return void
+ */
+ function setCols($cols)
+ {
+ $this->updateAttributes(array('cols' => $cols));
+ } //end func setCols
+
+ // }}}
+ // {{{ toHtml()
+
+ /**
+ * Returns the textarea element in HTML
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function toHtml()
+ {
+ if ($this->_flagFrozen) {
+ return $this->getFrozenHtml();
+ } else {
+ return $this->_getTabs() .
+ '<textarea' . $this->_getAttrString($this->_attributes) . '>' .
+ // because we wrap the form later we don't want the text indented
+ preg_replace("/(\r\n|\n|\r)/", '&#010;', htmlspecialchars($this->_value)) .
+ '</textarea>';
+ }
+ } //end func toHtml
+
+ // }}}
+ // {{{ getFrozenHtml()
+
+ /**
+ * Returns the value of field without HTML tags (in this case, value is changed to a mask)
+ *
+ * @since 1.0
+ * @access public
+ * @return string
+ */
+ function getFrozenHtml()
+ {
+ $value = htmlspecialchars($this->getValue());
+ if ($this->getAttribute('wrap') == 'off') {
+ $html = $this->_getTabs() . '<pre>' . $value."</pre>\n";
+ } else {
+ $html = nl2br($value)."\n";
+ }
+ return $html . $this->_getPersistantData();
+ } //end func getFrozenHtml
+
+ // }}}
+
+} //end class HTML_QuickForm_textarea
+?>
diff --git a/libs/HTML/QuickForm/xbutton.php b/libs/HTML/QuickForm/xbutton.php
index aaa339c85f..b0769ad136 100755
--- a/libs/HTML/QuickForm/xbutton.php
+++ b/libs/HTML/QuickForm/xbutton.php
@@ -1,153 +1,153 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Class for HTML 4.0 <button> element
- *
- * PHP versions 4 and 5
- *
- * LICENSE: This source file is subject to version 3.01 of the PHP license
- * that is available through the world-wide-web at the following URI:
- * http://www.php.net/license/3_01.txt If you did not receive a copy of
- * the PHP License and are unable to obtain it through the web, please
- * send a note to license@php.net so we can mail you a copy immediately.
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @copyright 2001-2007 The PHP Group
- * @license http://www.php.net/license/3_01.txt PHP License 3.01
- * @version CVS: $Id$
- * @link http://pear.php.net/package/HTML_QuickForm
- */
-
-/**
- * Base class for form elements
- */
-require_once 'HTML/QuickForm/element.php';
-
-/**
- * Class for HTML 4.0 <button> element
- *
- * @category HTML
- * @package HTML_QuickForm
- * @author Alexey Borzov <avb@php.net>
- * @version Release: 3.2.9
- * @since 3.2.3
- */
-class HTML_QuickForm_xbutton extends HTML_QuickForm_element
-{
- /**
- * Contents of the <button> tag
- * @var string
- * @access private
- */
- var $_content;
-
- /**
- * Class constructor
- *
- * @param string Button name
- * @param string Button content (HTML to add between <button></button> tags)
- * @param mixed Either a typical HTML attribute string or an associative array
- * @access public
- */
- function HTML_QuickForm_xbutton($elementName = null, $elementContent = null, $attributes = null)
- {
- $this->HTML_QuickForm_element($elementName, null, $attributes);
- $this->setContent($elementContent);
- $this->setPersistantFreeze(false);
- $this->_type = 'xbutton';
- }
-
-
- function toHtml()
- {
- return '<button' . $this->getAttributes(true) . '>' . $this->_content . '</button>';
- }
-
-
- function getFrozenHtml()
- {
- return $this->toHtml();
- }
-
-
- function freeze()
- {
- return false;
- }
-
-
- function setName($name)
- {
- $this->updateAttributes(array(
- 'name' => $name
- ));
- }
-
-
- function getName()
- {
- return $this->getAttribute('name');
- }
-
-
- function setValue($value)
- {
- $this->updateAttributes(array(
- 'value' => $value
- ));
- }
-
-
- function getValue()
- {
- return $this->getAttribute('value');
- }
-
-
- /**
- * Sets the contents of the button element
- *
- * @param string Button content (HTML to add between <button></button> tags)
- */
- function setContent($content)
- {
- $this->_content = $content;
- }
-
-
- function onQuickFormEvent($event, $arg, &$caller)
- {
- if ('updateValue' != $event) {
- return parent::onQuickFormEvent($event, $arg, $caller);
- } else {
- $value = $this->_findValue($caller->_constantValues);
- if (null === $value) {
- $value = $this->_findValue($caller->_defaultValues);
- }
- if (null !== $value) {
- $this->setValue($value);
- }
- }
- return true;
- }
-
-
- /**
- * Returns a 'safe' element's value
- *
- * The value is only returned if the button's type is "submit" and if this
- * particlular button was clicked
- */
- function exportValue(&$submitValues, $assoc = false)
- {
- if ('submit' == $this->getAttribute('type')) {
- return $this->_prepareValue($this->_findValue($submitValues), $assoc);
- } else {
- return null;
- }
- }
-}
-?>
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+
+/**
+ * Class for HTML 4.0 <button> element
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @copyright 2001-2007 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id$
+ * @link http://pear.php.net/package/HTML_QuickForm
+ */
+
+/**
+ * Base class for form elements
+ */
+require_once 'HTML/QuickForm/element.php';
+
+/**
+ * Class for HTML 4.0 <button> element
+ *
+ * @category HTML
+ * @package HTML_QuickForm
+ * @author Alexey Borzov <avb@php.net>
+ * @version Release: 3.2.9
+ * @since 3.2.3
+ */
+class HTML_QuickForm_xbutton extends HTML_QuickForm_element
+{
+ /**
+ * Contents of the <button> tag
+ * @var string
+ * @access private
+ */
+ var $_content;
+
+ /**
+ * Class constructor
+ *
+ * @param string Button name
+ * @param string Button content (HTML to add between <button></button> tags)
+ * @param mixed Either a typical HTML attribute string or an associative array
+ * @access public
+ */
+ function HTML_QuickForm_xbutton($elementName = null, $elementContent = null, $attributes = null)
+ {
+ $this->HTML_QuickForm_element($elementName, null, $attributes);
+ $this->setContent($elementContent);
+ $this->setPersistantFreeze(false);
+ $this->_type = 'xbutton';
+ }
+
+
+ function toHtml()
+ {
+ return '<button' . $this->getAttributes(true) . '>' . $this->_content . '</button>';
+ }
+
+
+ function getFrozenHtml()
+ {
+ return $this->toHtml();
+ }
+
+
+ function freeze()
+ {
+ return false;
+ }
+
+
+ function setName($name)
+ {
+ $this->updateAttributes(array(
+ 'name' => $name
+ ));
+ }
+
+
+ function getName()
+ {
+ return $this->getAttribute('name');
+ }
+
+
+ function setValue($value)
+ {
+ $this->updateAttributes(array(
+ 'value' => $value
+ ));
+ }
+
+
+ function getValue()
+ {
+ return $this->getAttribute('value');
+ }
+
+
+ /**
+ * Sets the contents of the button element
+ *
+ * @param string Button content (HTML to add between <button></button> tags)
+ */
+ function setContent($content)
+ {
+ $this->_content = $content;
+ }
+
+
+ function onQuickFormEvent($event, $arg, &$caller)
+ {
+ if ('updateValue' != $event) {
+ return parent::onQuickFormEvent($event, $arg, $caller);
+ } else {
+ $value = $this->_findValue($caller->_constantValues);
+ if (null === $value) {
+ $value = $this->_findValue($caller->_defaultValues);
+ }
+ if (null !== $value) {
+ $this->setValue($value);
+ }
+ }
+ return true;
+ }
+
+
+ /**
+ * Returns a 'safe' element's value
+ *
+ * The value is only returned if the button's type is "submit" and if this
+ * particlular button was clicked
+ */
+ function exportValue(&$submitValues, $assoc = false)
+ {
+ if ('submit' == $this->getAttribute('type')) {
+ return $this->_prepareValue($this->_findValue($submitValues), $assoc);
+ } else {
+ return null;
+ }
+ }
+}
+?>
diff --git a/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.js b/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.js
index a31d85844c..9b61f7153f 100755
--- a/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.js
+++ b/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.js
@@ -1,640 +1,640 @@
-// +-----------------------------------------------------------------------+
-// | Copyright (c) 2002, Richard Heyes, Harald Radi |
-// | All rights reserved. |
-// | |
-// | Redistribution and use in source and binary forms, with or without |
-// | modification, are permitted provided that the following conditions |
-// | are met: |
-// | |
-// | o Redistributions of source code must retain the above copyright |
-// | notice, this list of conditions and the following disclaimer. |
-// | o Redistributions in binary form must reproduce the above copyright |
-// | notice, this list of conditions and the following disclaimer in the |
-// | documentation and/or other materials provided with the distribution.|
-// | o The names of the authors may not be used to endorse or promote |
-// | products derived from this software without specific prior written |
-// | permission. |
-// | |
-// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// | |
-// +-----------------------------------------------------------------------+
-// | Author: Richard Heyes <richard@phpguru.org> |
-// | Harald Radi <harald.radi@nme.at> |
-// +-----------------------------------------------------------------------+
-//
-// $Id$
-
-
-/**
-* TreeMenu class
-*/
- function TreeMenu(iconpath, myname, linkTarget, defaultClass, usePersistence, noTopLevelImages)
- {
- // Properties
- this.iconpath = iconpath;
- this.myname = myname;
- this.linkTarget = linkTarget;
- this.defaultClass = defaultClass;
- this.usePersistence = usePersistence;
- this.noTopLevelImages = noTopLevelImages;
- this.n = new Array();
-
- this.nodeRefs = new Array();
- this.branches = new Array();
- this.branchStatus = new Array();
- this.layerRelations = new Array();
- this.childParents = new Array();
- this.cookieStatuses = new Array();
-
- this.preloadImages();
- }
-
-/**
-* Adds a node to the tree
-*/
- TreeMenu.prototype.addItem = function (newNode)
- {
- newIndex = this.n.length;
- this.n[newIndex] = newNode;
-
- return this.n[newIndex];
- }
-
-/**
-* Preload images hack for Mozilla
-*/
- TreeMenu.prototype.preloadImages = function ()
- {
- var plustop = new Image; plustop.src = this.iconpath + '/plustop.gif';
- var plusbottom = new Image; plusbottom.src = this.iconpath + '/plusbottom.gif';
- var plus = new Image; plus.src = this.iconpath + '/plus.gif';
-
- var minustop = new Image; minustop.src = this.iconpath + '/minustop.gif';
- var minusbottom = new Image; minusbottom.src = this.iconpath + '/minusbottom.gif';
- var minus = new Image; minus.src = this.iconpath + '/minus.gif';
-
- var branchtop = new Image; branchtop.src = this.iconpath + '/branchtop.gif';
- var branchbottom = new Image; branchbottom.src = this.iconpath + '/branchbottom.gif';
- var branch = new Image; branch.src = this.iconpath + '/branch.gif';
-
- var linebottom = new Image; linebottom.src = this.iconpath + '/linebottom.gif';
- var line = new Image; line.src = this.iconpath + '/line.gif';
- }
-
-/**
-* Main function that draws the menu and assigns it
-* to the layer (or document.write()s it)
-*/
- TreeMenu.prototype.drawMenu = function ()// OPTIONAL ARGS: nodes = [], level = [], prepend = '', expanded = false, visbility = 'inline', parentLayerID = null
- {
- /**
- * Necessary variables
- */
- var output = '';
- var modifier = '';
- var layerID = '';
- var parentLayerID = '';
-
- /**
- * Parse any optional arguments
- */
- var nodes = arguments[0] ? arguments[0] : this.n
- var level = arguments[1] ? arguments[1] : [];
- var prepend = arguments[2] ? arguments[2] : '';
- var expanded = arguments[3] ? arguments[3] : false;
- var visibility = arguments[4] ? arguments[4] : 'inline';
- var parentLayerID = arguments[5] ? arguments[5] : null;
-
- var currentlevel = level.length;
-
- for (var i=0; i<nodes.length; i++) {
-
- level[currentlevel] = i+1;
- layerID = this.myname + '_' + 'node_' + this.implode('_', level);
-
- /**
- * Store this object in the nodeRefs array
- */
- this.nodeRefs[layerID] = nodes[i];
-
- /**
- * Store the child/parent relationship
- */
- this.childParents[layerID] = parentLayerID;
-
- /**
- * Gif modifier
- */
- if (i == 0 && parentLayerID == null) {
- modifier = nodes.length > 1 ? "top" : 'single';
- } else if(i == (nodes.length-1)) {
- modifier = "bottom";
- } else {
- modifier = "";
- }
-
- /**
- * Single root branch is always expanded
- */
- if (!this.doesMenu() || (parentLayerID == null && (nodes.length == 1 || this.noTopLevelImages))) {
- expanded = true;
-
- } else if (nodes[i].expanded) {
- expanded = true;
-
- } else {
- expanded = false;
- }
-
- /**
- * Make sure visibility is correct based on parent status
- */
- visibility = this.checkParentVisibility(layerID) ? visibility : 'none';
-
- /**
- * Setup branch status and build an indexed array
- * of branch layer ids
- */
- if (nodes[i].n.length > 0) {
- this.branchStatus[layerID] = expanded;
- this.branches[this.branches.length] = layerID;
- }
-
- /**
- * Setup toggle relationship
- */
- if (!this.layerRelations[parentLayerID]) {
- this.layerRelations[parentLayerID] = new Array();
- }
- this.layerRelations[parentLayerID][this.layerRelations[parentLayerID].length] = layerID;
-
- /**
- * Branch images
- */
- var gifname = nodes[i].n.length && this.doesMenu() && nodes[i].isDynamic ? (expanded ? 'minus' : 'plus') : 'branch';
- var iconimg = nodes[i].icon ? this.stringFormat('<img src="{0}/{1}" width="20" height="20" align="top">', this.iconpath, nodes[i].icon) : '';
-
- /**
- * Add event handlers
- */
- var eventHandlers = "";
- for (j in nodes[i].events) {
- eventHandlers += this.stringFormat('{0}="{1}" ', j, nodes[i].events[j]);
- }
-
- /**
- * Build the html to write to the document
- * IMPORTANT:
- * document.write()ing the string: '<div style="display:...' will screw up nn4.x
- */
- var layerTag = this.doesMenu() ? this.stringFormat('<div id="{0}" style="display: {1}" class="{2}">', layerID, visibility, (nodes[i].cssClass ? nodes[i].cssClass : this.defaultClass)) : this.stringFormat('<div class="{0}">', '');
- var onMDown = this.doesMenu() && nodes[i].n.length && nodes[i].isDynamic ? this.stringFormat('onmousedown="{0}.toggleBranch(\'{1}\', true)" style="cursor: pointer; cursor: hand"', this.myname, layerID) : '';
- var imgTag = this.stringFormat('<img src="{0}/{1}{2}.gif" width="20" height="20" align="top" border="0" name="img_{3}" {4}>', this.iconpath, gifname, modifier, layerID, onMDown);
- var linkStart = nodes[i].link ? this.stringFormat('<a href="{0}" target="{1}">', nodes[i].link, this.linkTarget) : '';
- var linkEnd = nodes[i].link ? '</a>' : '';
-
- output = this.stringFormat('{0}<nobr>{1}{2}{3}{4}<span {5}>{6}</span>{7}</nobr><br></div>',
- layerTag,
- prepend,
- parentLayerID == null && (nodes.length == 1 || this.noTopLevelImages) ? '' : imgTag,
- iconimg,
- linkStart,
- eventHandlers,
- nodes[i].title,
- linkEnd);
-
- /**
- * Write out the HTML. Uses document.write for speed over layers and
- * innerHTML. This however means no dynamic adding/removing nodes on
- * the client side. This could be conditional I guess if dynamic
- * adding/removing is required.
- */
- document.write(output + "\r\n");
-
- /**
- * Traverse sub nodes ?
- */
- if (nodes[i].n.length) {
- /**
- * Determine what to prepend. If there is only one root
- * node then the prepend to pass to children is nothing.
- * Otherwise it depends on where we are in the tree.
- */
- if (parentLayerID == null && (nodes.length == 1 || this.noTopLevelImages)) {
- var newPrepend = '';
-
- } else if (i < (nodes.length - 1)) {
- var newPrepend = prepend + this.stringFormat('<img src="{0}/line.gif" width="20" height="20" align="top">', this.iconpath);
-
- } else {
- var newPrepend = prepend + this.stringFormat('<img src="{0}/linebottom.gif" width="20" height="20" align="top">', this.iconpath);
- }
-
- this.drawMenu(nodes[i].n,
- level,
- newPrepend,
- nodes[i].expanded,
- expanded ? 'inline' : 'none',
- layerID);
- }
- }
- }
-
-/**
-* Toggles a branches visible status. Called from resetBranches()
-* and also when a +/- graphic is clicked.
-*/
- TreeMenu.prototype.toggleBranch = function (layerID, updateStatus) // OPTIONAL ARGS: fireEvents = true
- {
- var currentDisplay = this.getLayer(layerID).style.display;
- var newDisplay = (this.branchStatus[layerID] && currentDisplay == 'inline') ? 'none' : 'inline';
- var fireEvents = arguments[2] != null ? arguments[2] : true;
-
- for (var i=0; i<this.layerRelations[layerID].length; i++) {
-
- if (this.branchStatus[this.layerRelations[layerID][i]]) {
- this.toggleBranch(this.layerRelations[layerID][i], false);
- }
-
- this.getLayer(this.layerRelations[layerID][i]).style.display = newDisplay;
- }
-
- if (updateStatus) {
- this.branchStatus[layerID] = !this.branchStatus[layerID];
-
- /**
- * Persistence
- */
- if (this.doesPersistence() && !arguments[2] && this.usePersistence) {
- this.setExpandedStatusForCookie(layerID, this.branchStatus[layerID]);
- }
-
- /**
- * Fire custom events
- */
- if (fireEvents) {
- nodeObject = this.nodeRefs[layerID];
-
- if (nodeObject.ontoggle != null) {
- eval(nodeObject.ontoggle);
- }
-
- if (newDisplay == 'none' && nodeObject.oncollapse != null) {
- eval(nodeObject.oncollapse);
- } else if (newDisplay == 'inline' && nodeObject.onexpand != null){
- eval(nodeObject.onexpand);
- }
- }
-
- // Swap image
- this.swapImage(layerID);
- }
- }
-
-/**
-* Swaps the plus/minus branch images
-*/
- TreeMenu.prototype.swapImage = function (layerID)
- {
- imgSrc = document.images['img_' + layerID].src;
-
- re = /^(.*)(plus|minus)(bottom|top|single)?.gif$/
- if (matches = imgSrc.match(re)) {
-
- document.images['img_' + layerID].src = this.stringFormat('{0}{1}{2}{3}',
- matches[1],
- matches[2] == 'plus' ? 'minus' : 'plus',
- matches[3] ? matches[3] : '',
- '.gif');
- }
- }
-
-/**
-* Can the browser handle the dynamic menu?
-*/
- TreeMenu.prototype.doesMenu = function ()
- {
- return (is_ie4up || is_nav6up || is_gecko);
- }
-
-/**
-* Can the browser handle save the branch status
-*/
- TreeMenu.prototype.doesPersistence = function ()
- {
- return (is_ie4up || is_gecko || is_nav6up);
- }
-
-/**
-* Returns the appropriate layer accessor
-*/
- TreeMenu.prototype.getLayer = function (layerID)
- {
- if (is_ie4) {
- return document.all(layerID);
-
- } else if (document.getElementById(layerID)) {
- return document.getElementById(layerID);
-
- } else if (document.all(layerID)) {
- return document.all(layerID);
- }
- }
-
-/**
-* Save the status of the layer
-*/
- TreeMenu.prototype.setExpandedStatusForCookie = function (layerID, expanded)
- {
- this.cookieStatuses[layerID] = expanded;
- this.saveCookie();
- }
-
-/**
-* Load the status of the layer
-*/
- TreeMenu.prototype.getExpandedStatusFromCookie = function (layerID)
- {
- if (this.cookieStatuses[layerID]) {
- return this.cookieStatuses[layerID];
- }
-
- return false;
- }
-
-/**
-* Saves the cookie that holds which branches are expanded.
-* Only saves the details of the branches which are expanded.
-*/
- TreeMenu.prototype.saveCookie = function ()
- {
- var cookieString = new Array();
-
- for (var i in this.cookieStatuses) {
- if (this.cookieStatuses[i] == true) {
- cookieString[cookieString.length] = i;
- }
- }
-
- document.cookie = 'TreeMenuBranchStatus=' + cookieString.join(':');
- }
-
-/**
-* Reads cookie parses it for status info and
-* stores that info in the class member.
-*/
- TreeMenu.prototype.loadCookie = function ()
- {
- var cookie = document.cookie.split('; ');
-
- for (var i=0; i < cookie.length; i++) {
- var crumb = cookie[i].split('=');
- if ('TreeMenuBranchStatus' == crumb[0] && crumb[1]) {
- var expandedBranches = crumb[1].split(':');
- for (var j=0; j<expandedBranches.length; j++) {
- this.cookieStatuses[expandedBranches[j]] = true;
- }
- }
- }
- }
-
-/**
-* Reset branch status
-*/
- TreeMenu.prototype.resetBranches = function ()
- {
- if (!this.doesPersistence()) {
- return false;
- }
-
- this.loadCookie();
-
- for (var i=0; i<this.branches.length; i++) {
- var status = this.getExpandedStatusFromCookie(this.branches[i]);
- // Only update if it's supposed to be expanded and it's not already
- if (status == true && this.branchStatus[this.branches[i]] != true) {
- if (this.checkParentVisibility(this.branches[i])) {
- this.toggleBranch(this.branches[i], true, false);
- } else {
- this.branchStatus[this.branches[i]] = true;
- this.swapImage(this.branches[i]);
- }
- }
- }
- }
-
-/**
-* Checks whether a branch should be open
-* or not based on its parents' status
-*/
- TreeMenu.prototype.checkParentVisibility = function (layerID)
- {
- if (this.in_array(this.childParents[layerID], this.branches)
- && this.branchStatus[this.childParents[layerID]]
- && this.checkParentVisibility(this.childParents[layerID]) ) {
-
- return true;
-
- } else if (this.childParents[layerID] == null) {
- return true;
- }
-
- return false;
- }
-
-/**
-* New C# style string formatter
-*/
- TreeMenu.prototype.stringFormat = function (strInput)
- {
- var idx = 0;
-
- for (var i=1; i<arguments.length; i++) {
- while ((idx = strInput.indexOf('{' + (i - 1) + '}', idx)) != -1) {
- strInput = strInput.substring(0, idx) + arguments[i] + strInput.substr(idx + 3);
- }
- }
-
- return strInput;
- }
-
-/**
-* Also much adored, the PHP implode() function
-*/
- TreeMenu.prototype.implode = function (seperator, input)
- {
- var output = '';
-
- for (var i=0; i<input.length; i++) {
- if (i == 0) {
- output += input[i];
- } else {
- output += seperator + input[i];
- }
- }
-
- return output;
- }
-
-/**
-* Aah, all the old favourites are coming out...
-*/
- TreeMenu.prototype.in_array = function (item, arr)
- {
- for (var i=0; i<arr.length; i++) {
- if (arr[i] == item) {
- return true;
- }
- }
-
- return false;
- }
-
-/**
-* TreeNode Class
-*/
- function TreeNode(title, icon, link, expanded, isDynamic, cssClass)
- {
- this.title = title;
- this.icon = icon;
- this.link = link;
- this.expanded = expanded;
- this.isDynamic = isDynamic;
- this.cssClass = cssClass;
- this.n = new Array();
- this.events = new Array();
- this.handlers = null;
- this.oncollapse = null;
- this.onexpand = null;
- this.ontoggle = null;
- }
-
-/**
-* Adds a node to an already existing node
-*/
- TreeNode.prototype.addItem = function (newNode)
- {
- newIndex = this.n.length;
- this.n[newIndex] = newNode;
-
- return this.n[newIndex];
- }
-
-/**
-* Sets an event for this particular node
-*/
- TreeNode.prototype.setEvent = function (eventName, eventHandler)
- {
- switch (eventName.toLowerCase()) {
- case 'onexpand':
- this.onexpand = eventHandler;
- break;
-
- case 'oncollapse':
- this.oncollapse = eventHandler;
- break;
-
- case 'ontoggle':
- this.ontoggle = eventHandler;
- break;
-
- default:
- this.events[eventName] = eventHandler;
- }
- }
-
-/**
-* That's the end of the tree classes. What follows is
-* the browser detection code.
-*/
-
-
-//<!--
-// Ultimate client-side JavaScript client sniff. Version 3.03
-// (C) Netscape Communications 1999-2001. Permission granted to reuse and distribute.
-// Revised 17 May 99 to add is_nav5up and is_ie5up (see below).
-// Revised 20 Dec 00 to add is_gecko and change is_nav5up to is_nav6up
-// also added support for IE5.5 Opera4&5 HotJava3 AOLTV
-// Revised 22 Feb 01 to correct Javascript Detection for IE 5.x, Opera 4,
-// correct Opera 5 detection
-// add support for winME and win2k
-// synch with browser-type-oo.js
-// Revised 26 Mar 01 to correct Opera detection
-// Revised 02 Oct 01 to add IE6 detection
-
-// Everything you always wanted to know about your JavaScript client
-// but were afraid to ask. Creates "is_" variables indicating:
-// (1) browser vendor:
-// is_nav, is_ie, is_opera, is_hotjava, is_webtv, is_TVNavigator, is_AOLTV
-// (2) browser version number:
-// is_major (integer indicating major version number: 2, 3, 4 ...)
-// is_minor (float indicating full version number: 2.02, 3.01, 4.04 ...)
-// (3) browser vendor AND major version number
-// is_nav2, is_nav3, is_nav4, is_nav4up, is_nav6, is_nav6up, is_gecko, is_ie3,
-// is_ie4, is_ie4up, is_ie5, is_ie5up, is_ie5_5, is_ie5_5up, is_ie6, is_ie6up, is_hotjava3, is_hotjava3up,
-// is_opera2, is_opera3, is_opera4, is_opera5, is_opera5up
-// (4) JavaScript version number:
-// is_js (float indicating full JavaScript version number: 1, 1.1, 1.2 ...)
-// (5) OS platform and version:
-// is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98, is_winme, is_win2k
-// is_os2
-// is_mac, is_mac68k, is_macppc
-// is_unix
-// is_sun, is_sun4, is_sun5, is_suni86
-// is_irix, is_irix5, is_irix6
-// is_hpux, is_hpux9, is_hpux10
-// is_aix, is_aix1, is_aix2, is_aix3, is_aix4
-// is_linux, is_sco, is_unixware, is_mpras, is_reliant
-// is_dec, is_sinix, is_freebsd, is_bsd
-// is_vms
-//
-// See http://www.it97.de/JavaScript/JS_tutorial/bstat/navobj.html and
-// http://www.it97.de/JavaScript/JS_tutorial/bstat/Browseraol.html
-// for detailed lists of userAgent strings.
-//
-// Note: you don't want your Nav4 or IE4 code to "turn off" or
-// stop working when new versions of browsers are released, so
-// in conditional code forks, use is_ie5up ("IE 5.0 or greater")
-// is_opera5up ("Opera 5.0 or greater") instead of is_ie5 or is_opera5
-// to check version in code which you want to work on future
-// versions.
-
-/**
-* Severly curtailed all this as only certain elements
-* are required by TreeMenu, specifically:
-* o is_ie4up
-* o is_nav6up
-* o is_gecko
-*/
-
- // convert all characters to lowercase to simplify testing
- var agt=navigator.userAgent.toLowerCase();
-
- // *** BROWSER VERSION ***
- // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
- var is_major = parseInt(navigator.appVersion);
- var is_minor = parseFloat(navigator.appVersion);
-
- // Note: Opera and WebTV spoof Navigator. We do strict client detection.
- // If you want to allow spoofing, take out the tests for opera and webtv.
- var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
- && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
- && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
- var is_nav6up = (is_nav && (is_major >= 5));
- var is_gecko = (agt.indexOf('gecko') != -1);
-
-
- var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
- var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
- var is_ie4up = (is_ie && (is_major >= 4));
-//--> end hide JavaScript
+// +-----------------------------------------------------------------------+
+// | Copyright (c) 2002, Richard Heyes, Harald Radi |
+// | All rights reserved. |
+// | |
+// | Redistribution and use in source and binary forms, with or without |
+// | modification, are permitted provided that the following conditions |
+// | are met: |
+// | |
+// | o Redistributions of source code must retain the above copyright |
+// | notice, this list of conditions and the following disclaimer. |
+// | o Redistributions in binary form must reproduce the above copyright |
+// | notice, this list of conditions and the following disclaimer in the |
+// | documentation and/or other materials provided with the distribution.|
+// | o The names of the authors may not be used to endorse or promote |
+// | products derived from this software without specific prior written |
+// | permission. |
+// | |
+// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
+// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
+// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
+// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
+// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
+// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+// | |
+// +-----------------------------------------------------------------------+
+// | Author: Richard Heyes <richard@phpguru.org> |
+// | Harald Radi <harald.radi@nme.at> |
+// +-----------------------------------------------------------------------+
+//
+// $Id$
+
+
+/**
+* TreeMenu class
+*/
+ function TreeMenu(iconpath, myname, linkTarget, defaultClass, usePersistence, noTopLevelImages)
+ {
+ // Properties
+ this.iconpath = iconpath;
+ this.myname = myname;
+ this.linkTarget = linkTarget;
+ this.defaultClass = defaultClass;
+ this.usePersistence = usePersistence;
+ this.noTopLevelImages = noTopLevelImages;
+ this.n = new Array();
+
+ this.nodeRefs = new Array();
+ this.branches = new Array();
+ this.branchStatus = new Array();
+ this.layerRelations = new Array();
+ this.childParents = new Array();
+ this.cookieStatuses = new Array();
+
+ this.preloadImages();
+ }
+
+/**
+* Adds a node to the tree
+*/
+ TreeMenu.prototype.addItem = function (newNode)
+ {
+ newIndex = this.n.length;
+ this.n[newIndex] = newNode;
+
+ return this.n[newIndex];
+ }
+
+/**
+* Preload images hack for Mozilla
+*/
+ TreeMenu.prototype.preloadImages = function ()
+ {
+ var plustop = new Image; plustop.src = this.iconpath + '/plustop.gif';
+ var plusbottom = new Image; plusbottom.src = this.iconpath + '/plusbottom.gif';
+ var plus = new Image; plus.src = this.iconpath + '/plus.gif';
+
+ var minustop = new Image; minustop.src = this.iconpath + '/minustop.gif';
+ var minusbottom = new Image; minusbottom.src = this.iconpath + '/minusbottom.gif';
+ var minus = new Image; minus.src = this.iconpath + '/minus.gif';
+
+ var branchtop = new Image; branchtop.src = this.iconpath + '/branchtop.gif';
+ var branchbottom = new Image; branchbottom.src = this.iconpath + '/branchbottom.gif';
+ var branch = new Image; branch.src = this.iconpath + '/branch.gif';
+
+ var linebottom = new Image; linebottom.src = this.iconpath + '/linebottom.gif';
+ var line = new Image; line.src = this.iconpath + '/line.gif';
+ }
+
+/**
+* Main function that draws the menu and assigns it
+* to the layer (or document.write()s it)
+*/
+ TreeMenu.prototype.drawMenu = function ()// OPTIONAL ARGS: nodes = [], level = [], prepend = '', expanded = false, visbility = 'inline', parentLayerID = null
+ {
+ /**
+ * Necessary variables
+ */
+ var output = '';
+ var modifier = '';
+ var layerID = '';
+ var parentLayerID = '';
+
+ /**
+ * Parse any optional arguments
+ */
+ var nodes = arguments[0] ? arguments[0] : this.n
+ var level = arguments[1] ? arguments[1] : [];
+ var prepend = arguments[2] ? arguments[2] : '';
+ var expanded = arguments[3] ? arguments[3] : false;
+ var visibility = arguments[4] ? arguments[4] : 'inline';
+ var parentLayerID = arguments[5] ? arguments[5] : null;
+
+ var currentlevel = level.length;
+
+ for (var i=0; i<nodes.length; i++) {
+
+ level[currentlevel] = i+1;
+ layerID = this.myname + '_' + 'node_' + this.implode('_', level);
+
+ /**
+ * Store this object in the nodeRefs array
+ */
+ this.nodeRefs[layerID] = nodes[i];
+
+ /**
+ * Store the child/parent relationship
+ */
+ this.childParents[layerID] = parentLayerID;
+
+ /**
+ * Gif modifier
+ */
+ if (i == 0 && parentLayerID == null) {
+ modifier = nodes.length > 1 ? "top" : 'single';
+ } else if(i == (nodes.length-1)) {
+ modifier = "bottom";
+ } else {
+ modifier = "";
+ }
+
+ /**
+ * Single root branch is always expanded
+ */
+ if (!this.doesMenu() || (parentLayerID == null && (nodes.length == 1 || this.noTopLevelImages))) {
+ expanded = true;
+
+ } else if (nodes[i].expanded) {
+ expanded = true;
+
+ } else {
+ expanded = false;
+ }
+
+ /**
+ * Make sure visibility is correct based on parent status
+ */
+ visibility = this.checkParentVisibility(layerID) ? visibility : 'none';
+
+ /**
+ * Setup branch status and build an indexed array
+ * of branch layer ids
+ */
+ if (nodes[i].n.length > 0) {
+ this.branchStatus[layerID] = expanded;
+ this.branches[this.branches.length] = layerID;
+ }
+
+ /**
+ * Setup toggle relationship
+ */
+ if (!this.layerRelations[parentLayerID]) {
+ this.layerRelations[parentLayerID] = new Array();
+ }
+ this.layerRelations[parentLayerID][this.layerRelations[parentLayerID].length] = layerID;
+
+ /**
+ * Branch images
+ */
+ var gifname = nodes[i].n.length && this.doesMenu() && nodes[i].isDynamic ? (expanded ? 'minus' : 'plus') : 'branch';
+ var iconimg = nodes[i].icon ? this.stringFormat('<img src="{0}/{1}" width="20" height="20" align="top">', this.iconpath, nodes[i].icon) : '';
+
+ /**
+ * Add event handlers
+ */
+ var eventHandlers = "";
+ for (j in nodes[i].events) {
+ eventHandlers += this.stringFormat('{0}="{1}" ', j, nodes[i].events[j]);
+ }
+
+ /**
+ * Build the html to write to the document
+ * IMPORTANT:
+ * document.write()ing the string: '<div style="display:...' will screw up nn4.x
+ */
+ var layerTag = this.doesMenu() ? this.stringFormat('<div id="{0}" style="display: {1}" class="{2}">', layerID, visibility, (nodes[i].cssClass ? nodes[i].cssClass : this.defaultClass)) : this.stringFormat('<div class="{0}">', '');
+ var onMDown = this.doesMenu() && nodes[i].n.length && nodes[i].isDynamic ? this.stringFormat('onmousedown="{0}.toggleBranch(\'{1}\', true)" style="cursor: pointer; cursor: hand"', this.myname, layerID) : '';
+ var imgTag = this.stringFormat('<img src="{0}/{1}{2}.gif" width="20" height="20" align="top" border="0" name="img_{3}" {4}>', this.iconpath, gifname, modifier, layerID, onMDown);
+ var linkStart = nodes[i].link ? this.stringFormat('<a href="{0}" target="{1}">', nodes[i].link, this.linkTarget) : '';
+ var linkEnd = nodes[i].link ? '</a>' : '';
+
+ output = this.stringFormat('{0}<nobr>{1}{2}{3}{4}<span {5}>{6}</span>{7}</nobr><br></div>',
+ layerTag,
+ prepend,
+ parentLayerID == null && (nodes.length == 1 || this.noTopLevelImages) ? '' : imgTag,
+ iconimg,
+ linkStart,
+ eventHandlers,
+ nodes[i].title,
+ linkEnd);
+
+ /**
+ * Write out the HTML. Uses document.write for speed over layers and
+ * innerHTML. This however means no dynamic adding/removing nodes on
+ * the client side. This could be conditional I guess if dynamic
+ * adding/removing is required.
+ */
+ document.write(output + "\r\n");
+
+ /**
+ * Traverse sub nodes ?
+ */
+ if (nodes[i].n.length) {
+ /**
+ * Determine what to prepend. If there is only one root
+ * node then the prepend to pass to children is nothing.
+ * Otherwise it depends on where we are in the tree.
+ */
+ if (parentLayerID == null && (nodes.length == 1 || this.noTopLevelImages)) {
+ var newPrepend = '';
+
+ } else if (i < (nodes.length - 1)) {
+ var newPrepend = prepend + this.stringFormat('<img src="{0}/line.gif" width="20" height="20" align="top">', this.iconpath);
+
+ } else {
+ var newPrepend = prepend + this.stringFormat('<img src="{0}/linebottom.gif" width="20" height="20" align="top">', this.iconpath);
+ }
+
+ this.drawMenu(nodes[i].n,
+ level,
+ newPrepend,
+ nodes[i].expanded,
+ expanded ? 'inline' : 'none',
+ layerID);
+ }
+ }
+ }
+
+/**
+* Toggles a branches visible status. Called from resetBranches()
+* and also when a +/- graphic is clicked.
+*/
+ TreeMenu.prototype.toggleBranch = function (layerID, updateStatus) // OPTIONAL ARGS: fireEvents = true
+ {
+ var currentDisplay = this.getLayer(layerID).style.display;
+ var newDisplay = (this.branchStatus[layerID] && currentDisplay == 'inline') ? 'none' : 'inline';
+ var fireEvents = arguments[2] != null ? arguments[2] : true;
+
+ for (var i=0; i<this.layerRelations[layerID].length; i++) {
+
+ if (this.branchStatus[this.layerRelations[layerID][i]]) {
+ this.toggleBranch(this.layerRelations[layerID][i], false);
+ }
+
+ this.getLayer(this.layerRelations[layerID][i]).style.display = newDisplay;
+ }
+
+ if (updateStatus) {
+ this.branchStatus[layerID] = !this.branchStatus[layerID];
+
+ /**
+ * Persistence
+ */
+ if (this.doesPersistence() && !arguments[2] && this.usePersistence) {
+ this.setExpandedStatusForCookie(layerID, this.branchStatus[layerID]);
+ }
+
+ /**
+ * Fire custom events
+ */
+ if (fireEvents) {
+ nodeObject = this.nodeRefs[layerID];
+
+ if (nodeObject.ontoggle != null) {
+ eval(nodeObject.ontoggle);
+ }
+
+ if (newDisplay == 'none' && nodeObject.oncollapse != null) {
+ eval(nodeObject.oncollapse);
+ } else if (newDisplay == 'inline' && nodeObject.onexpand != null){
+ eval(nodeObject.onexpand);
+ }
+ }
+
+ // Swap image
+ this.swapImage(layerID);
+ }
+ }
+
+/**
+* Swaps the plus/minus branch images
+*/
+ TreeMenu.prototype.swapImage = function (layerID)
+ {
+ imgSrc = document.images['img_' + layerID].src;
+
+ re = /^(.*)(plus|minus)(bottom|top|single)?.gif$/
+ if (matches = imgSrc.match(re)) {
+
+ document.images['img_' + layerID].src = this.stringFormat('{0}{1}{2}{3}',
+ matches[1],
+ matches[2] == 'plus' ? 'minus' : 'plus',
+ matches[3] ? matches[3] : '',
+ '.gif');
+ }
+ }
+
+/**
+* Can the browser handle the dynamic menu?
+*/
+ TreeMenu.prototype.doesMenu = function ()
+ {
+ return (is_ie4up || is_nav6up || is_gecko);
+ }
+
+/**
+* Can the browser handle save the branch status
+*/
+ TreeMenu.prototype.doesPersistence = function ()
+ {
+ return (is_ie4up || is_gecko || is_nav6up);
+ }
+
+/**
+* Returns the appropriate layer accessor
+*/
+ TreeMenu.prototype.getLayer = function (layerID)
+ {
+ if (is_ie4) {
+ return document.all(layerID);
+
+ } else if (document.getElementById(layerID)) {
+ return document.getElementById(layerID);
+
+ } else if (document.all(layerID)) {
+ return document.all(layerID);
+ }
+ }
+
+/**
+* Save the status of the layer
+*/
+ TreeMenu.prototype.setExpandedStatusForCookie = function (layerID, expanded)
+ {
+ this.cookieStatuses[layerID] = expanded;
+ this.saveCookie();
+ }
+
+/**
+* Load the status of the layer
+*/
+ TreeMenu.prototype.getExpandedStatusFromCookie = function (layerID)
+ {
+ if (this.cookieStatuses[layerID]) {
+ return this.cookieStatuses[layerID];
+ }
+
+ return false;
+ }
+
+/**
+* Saves the cookie that holds which branches are expanded.
+* Only saves the details of the branches which are expanded.
+*/
+ TreeMenu.prototype.saveCookie = function ()
+ {
+ var cookieString = new Array();
+
+ for (var i in this.cookieStatuses) {
+ if (this.cookieStatuses[i] == true) {
+ cookieString[cookieString.length] = i;
+ }
+ }
+
+ document.cookie = 'TreeMenuBranchStatus=' + cookieString.join(':');
+ }
+
+/**
+* Reads cookie parses it for status info and
+* stores that info in the class member.
+*/
+ TreeMenu.prototype.loadCookie = function ()
+ {
+ var cookie = document.cookie.split('; ');
+
+ for (var i=0; i < cookie.length; i++) {
+ var crumb = cookie[i].split('=');
+ if ('TreeMenuBranchStatus' == crumb[0] && crumb[1]) {
+ var expandedBranches = crumb[1].split(':');
+ for (var j=0; j<expandedBranches.length; j++) {
+ this.cookieStatuses[expandedBranches[j]] = true;
+ }
+ }
+ }
+ }
+
+/**
+* Reset branch status
+*/
+ TreeMenu.prototype.resetBranches = function ()
+ {
+ if (!this.doesPersistence()) {
+ return false;
+ }
+
+ this.loadCookie();
+
+ for (var i=0; i<this.branches.length; i++) {
+ var status = this.getExpandedStatusFromCookie(this.branches[i]);
+ // Only update if it's supposed to be expanded and it's not already
+ if (status == true && this.branchStatus[this.branches[i]] != true) {
+ if (this.checkParentVisibility(this.branches[i])) {
+ this.toggleBranch(this.branches[i], true, false);
+ } else {
+ this.branchStatus[this.branches[i]] = true;
+ this.swapImage(this.branches[i]);
+ }
+ }
+ }
+ }
+
+/**
+* Checks whether a branch should be open
+* or not based on its parents' status
+*/
+ TreeMenu.prototype.checkParentVisibility = function (layerID)
+ {
+ if (this.in_array(this.childParents[layerID], this.branches)
+ && this.branchStatus[this.childParents[layerID]]
+ && this.checkParentVisibility(this.childParents[layerID]) ) {
+
+ return true;
+
+ } else if (this.childParents[layerID] == null) {
+ return true;
+ }
+
+ return false;
+ }
+
+/**
+* New C# style string formatter
+*/
+ TreeMenu.prototype.stringFormat = function (strInput)
+ {
+ var idx = 0;
+
+ for (var i=1; i<arguments.length; i++) {
+ while ((idx = strInput.indexOf('{' + (i - 1) + '}', idx)) != -1) {
+ strInput = strInput.substring(0, idx) + arguments[i] + strInput.substr(idx + 3);
+ }
+ }
+
+ return strInput;
+ }
+
+/**
+* Also much adored, the PHP implode() function
+*/
+ TreeMenu.prototype.implode = function (seperator, input)
+ {
+ var output = '';
+
+ for (var i=0; i<input.length; i++) {
+ if (i == 0) {
+ output += input[i];
+ } else {
+ output += seperator + input[i];
+ }
+ }
+
+ return output;
+ }
+
+/**
+* Aah, all the old favourites are coming out...
+*/
+ TreeMenu.prototype.in_array = function (item, arr)
+ {
+ for (var i=0; i<arr.length; i++) {
+ if (arr[i] == item) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+/**
+* TreeNode Class
+*/
+ function TreeNode(title, icon, link, expanded, isDynamic, cssClass)
+ {
+ this.title = title;
+ this.icon = icon;
+ this.link = link;
+ this.expanded = expanded;
+ this.isDynamic = isDynamic;
+ this.cssClass = cssClass;
+ this.n = new Array();
+ this.events = new Array();
+ this.handlers = null;
+ this.oncollapse = null;
+ this.onexpand = null;
+ this.ontoggle = null;
+ }
+
+/**
+* Adds a node to an already existing node
+*/
+ TreeNode.prototype.addItem = function (newNode)
+ {
+ newIndex = this.n.length;
+ this.n[newIndex] = newNode;
+
+ return this.n[newIndex];
+ }
+
+/**
+* Sets an event for this particular node
+*/
+ TreeNode.prototype.setEvent = function (eventName, eventHandler)
+ {
+ switch (eventName.toLowerCase()) {
+ case 'onexpand':
+ this.onexpand = eventHandler;
+ break;
+
+ case 'oncollapse':
+ this.oncollapse = eventHandler;
+ break;
+
+ case 'ontoggle':
+ this.ontoggle = eventHandler;
+ break;
+
+ default:
+ this.events[eventName] = eventHandler;
+ }
+ }
+
+/**
+* That's the end of the tree classes. What follows is
+* the browser detection code.
+*/
+
+
+//<!--
+// Ultimate client-side JavaScript client sniff. Version 3.03
+// (C) Netscape Communications 1999-2001. Permission granted to reuse and distribute.
+// Revised 17 May 99 to add is_nav5up and is_ie5up (see below).
+// Revised 20 Dec 00 to add is_gecko and change is_nav5up to is_nav6up
+// also added support for IE5.5 Opera4&5 HotJava3 AOLTV
+// Revised 22 Feb 01 to correct Javascript Detection for IE 5.x, Opera 4,
+// correct Opera 5 detection
+// add support for winME and win2k
+// synch with browser-type-oo.js
+// Revised 26 Mar 01 to correct Opera detection
+// Revised 02 Oct 01 to add IE6 detection
+
+// Everything you always wanted to know about your JavaScript client
+// but were afraid to ask. Creates "is_" variables indicating:
+// (1) browser vendor:
+// is_nav, is_ie, is_opera, is_hotjava, is_webtv, is_TVNavigator, is_AOLTV
+// (2) browser version number:
+// is_major (integer indicating major version number: 2, 3, 4 ...)
+// is_minor (float indicating full version number: 2.02, 3.01, 4.04 ...)
+// (3) browser vendor AND major version number
+// is_nav2, is_nav3, is_nav4, is_nav4up, is_nav6, is_nav6up, is_gecko, is_ie3,
+// is_ie4, is_ie4up, is_ie5, is_ie5up, is_ie5_5, is_ie5_5up, is_ie6, is_ie6up, is_hotjava3, is_hotjava3up,
+// is_opera2, is_opera3, is_opera4, is_opera5, is_opera5up
+// (4) JavaScript version number:
+// is_js (float indicating full JavaScript version number: 1, 1.1, 1.2 ...)
+// (5) OS platform and version:
+// is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98, is_winme, is_win2k
+// is_os2
+// is_mac, is_mac68k, is_macppc
+// is_unix
+// is_sun, is_sun4, is_sun5, is_suni86
+// is_irix, is_irix5, is_irix6
+// is_hpux, is_hpux9, is_hpux10
+// is_aix, is_aix1, is_aix2, is_aix3, is_aix4
+// is_linux, is_sco, is_unixware, is_mpras, is_reliant
+// is_dec, is_sinix, is_freebsd, is_bsd
+// is_vms
+//
+// See http://www.it97.de/JavaScript/JS_tutorial/bstat/navobj.html and
+// http://www.it97.de/JavaScript/JS_tutorial/bstat/Browseraol.html
+// for detailed lists of userAgent strings.
+//
+// Note: you don't want your Nav4 or IE4 code to "turn off" or
+// stop working when new versions of browsers are released, so
+// in conditional code forks, use is_ie5up ("IE 5.0 or greater")
+// is_opera5up ("Opera 5.0 or greater") instead of is_ie5 or is_opera5
+// to check version in code which you want to work on future
+// versions.
+
+/**
+* Severly curtailed all this as only certain elements
+* are required by TreeMenu, specifically:
+* o is_ie4up
+* o is_nav6up
+* o is_gecko
+*/
+
+ // convert all characters to lowercase to simplify testing
+ var agt=navigator.userAgent.toLowerCase();
+
+ // *** BROWSER VERSION ***
+ // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
+ var is_major = parseInt(navigator.appVersion);
+ var is_minor = parseFloat(navigator.appVersion);
+
+ // Note: Opera and WebTV spoof Navigator. We do strict client detection.
+ // If you want to allow spoofing, take out the tests for opera and webtv.
+ var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
+ && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
+ && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
+ var is_nav6up = (is_nav && (is_major >= 5));
+ var is_gecko = (agt.indexOf('gecko') != -1);
+
+
+ var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
+ var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
+ var is_ie4up = (is_ie && (is_major >= 4));
+//--> end hide JavaScript
diff --git a/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.php b/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.php
index 391fef6538..2127d09bb8 100755
--- a/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.php
+++ b/libs/PhpDocumentor-1.3.2/HTML_TreeMenu-1.1.2/TreeMenu.php
@@ -1,597 +1,597 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | Copyright (c) 2002, Richard Heyes, Harald Radi |
-// | All rights reserved. |
-// | |
-// | Redistribution and use in source and binary forms, with or without |
-// | modification, are permitted provided that the following conditions |
-// | are met: |
-// | |
-// | o Redistributions of source code must retain the above copyright |
-// | notice, this list of conditions and the following disclaimer. |
-// | o Redistributions in binary form must reproduce the above copyright |
-// | notice, this list of conditions and the following disclaimer in the |
-// | documentation and/or other materials provided with the distribution.|
-// | o The names of the authors may not be used to endorse or promote |
-// | products derived from this software without specific prior written |
-// | permission. |
-// | |
-// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// | |
-// +-----------------------------------------------------------------------+
-// | Author: Richard Heyes <richard@phpguru.org> |
-// | Harald Radi <harald.radi@nme.at> |
-// +-----------------------------------------------------------------------+
-//
-// $Id$
-
-/**
-* @package HTML_TreeMenu
-*/
-/**
-* HTML_TreeMenu Class
-*
-* A simple couple of PHP classes and some not so simple
-* Jabbascript which produces a tree menu. In IE this menu
-* is dynamic, with branches being collapsable. In IE5+ the
-* status of the collapsed/open branches persists across page
-* refreshes.In any other browser the tree is static. Code is
-* based on work of Harald Radi.
-*
-* Usage.
-*
-* After installing the package, copy the example php script to
-* your servers document root. Also place the TreeMenu.js and the
-* images folder in the same place. Running the script should
-* then produce the tree.
-*
-* Thanks go to Chip Chapin (http://www.chipchapin.com) for many
-* excellent ideas and improvements.
-*
-* @author Richard Heyes <richard@php.net>
-* @author Harald Radi <harald.radi@nme.at>
-* @access public
-* @package HTML_TreeMenu
-*/
-
-class HTML_TreeMenu
-{
- /**
- * Indexed array of subnodes
- * @var array
- */
- var $items;
-
- /**
- * Constructor
- *
- * @access public
- */
- function HTML_TreeMenu()
- {
- // Not much to do here :(
- }
-
- /**
- * This function adds an item to the the tree.
- *
- * @access public
- * @param object $node The node to add. This object should be
- * a HTML_TreeNode object.
- * @return object Returns a reference to the new node inside
- * the tree.
- */
- function &addItem(&$node)
- {
- $this->items[] = &$node;
- return $this->items[count($this->items) - 1];
- }
-} // HTML_TreeMenu
-
-
-/**
-* HTML_TreeNode class
-*
-* This class is supplementary to the above and provides a way to
-* add nodes to the tree. A node can have other nodes added to it.
-*
-* @author Richard Heyes <richard@php.net>
-* @author Harald Radi <harald.radi@nme.at>
-* @access public
-* @package HTML_TreeMenu
-*/
-class HTML_TreeNode
-{
- /**
- * The text for this node.
- * @var string
- */
- var $text;
-
- /**
- * The link for this node.
- * @var string
- */
- var $link;
-
- /**
- * The icon for this node.
- * @var string
- */
- var $icon;
-
- /**
- * The css class for this node
- * @var string
- */
- var $cssClass;
-
- /**
- * Indexed array of subnodes
- * @var array
- */
- var $items;
-
- /**
- * Whether this node is expanded or not
- * @var bool
- */
- var $expanded;
-
- /**
- * Whether this node is dynamic or not
- * @var bool
- */
- var $isDynamic;
-
- /**
- * Should this node be made visible?
- * @var bool
- */
- var $ensureVisible;
-
- /**
- * The parent node. Null if top level
- * @var object
- */
- var $parent;
-
- /**
- * Javascript event handlers;
- * @var array
- */
- var $events;
-
- /**
- * Constructor
- *
- * @access public
- * @param array $options An array of options which you can pass to change
- * the way this node looks/acts. This can consist of:
- * o text The title of the node, defaults to blank
- * o link The link for the node, defaults to blank
- * o icon The icon for the node, defaults to blank
- * o class The CSS class for this node, defaults to blank
- * o expanded The default expanded status of this node, defaults to false
- * This doesn't affect non dynamic presentation types
- * o isDynamic If this node is dynamic or not. Only affects
- * certain presentation types.
- * o ensureVisible If true this node will be made visible despite the expanded
- * settings, and client side persistence. Will not affect
- * some presentation styles, such as Listbox. Default is false
- * @param array $events An array of javascript events and the corresponding event handlers.
- * Additionally to the standard javascript events you can specify handlers
- * for the 'onexpand', 'oncollapse' and 'ontoggle' events which will be fired
- * whenever a node is collapsed and/or expanded.
- */
- function HTML_TreeNode($options = array(), $events = array())
- {
- $this->text = '';
- $this->link = '';
- $this->icon = '';
- $this->cssClass = '';
- $this->expanded = false;
- $this->isDynamic = true;
- $this->ensureVisible = false;
-
- $this->parent = null;
- $this->events = $events;
-
- foreach ($options as $option => $value) {
- $this->$option = $value;
- }
- }
-
- /**
- * Allows setting of various parameters after the initial
- * constructor call. Possible options you can set are:
- * o text
- * o link
- * o icon
- * o cssClass
- * o expanded
- * o isDynamic
- * o ensureVisible
- * ie The same options as in the constructor
- *
- * @access public
- * @param string $option Option to set
- * @param string $value Value to set the option to
- */
- function setOption($option, $value)
- {
- $this->$option = $value;
- }
-
- /**
- * Adds a new subnode to this node.
- *
- * @access public
- * @param object $node The new node
- */
- function &addItem(&$node)
- {
- $node->parent = &$this;
- $this->items[] = &$node;
-
- /**
- * If the subnode has ensureVisible set it needs
- * to be handled, and all parents set accordingly.
- */
- if ($node->ensureVisible) {
- $this->_ensureVisible();
- }
-
- return $this->items[count($this->items) - 1];
- }
-
- /**
- * Private function to handle ensureVisible stuff
- *
- * @access private
- */
- function _ensureVisible()
- {
- $this->ensureVisible = true;
- $this->expanded = true;
-
- if (!is_null($this->parent)) {
- $this->parent->_ensureVisible();
- }
- }
-} // HTML_TreeNode
-
-
-/**
-* HTML_TreeMenu_Presentation class
-*
-* Base class for other presentation classes to
-* inherit from.
-* @package HTML_TreeMenu
-*/
-class HTML_TreeMenu_Presentation
-{
- /**
- * The TreeMenu structure
- * @var object
- */
- var $menu;
-
- /**
- * Base constructor simply sets the menu object
- *
- * @param object $structure The menu structure
- */
- function HTML_TreeMenu_Presentation(&$structure)
- {
- $this->menu = &$structure;
- }
-
- /**
- * Prints the HTML generated by the toHTML() method.
- * toHTML() must therefore be defined by the derived
- * class.
- *
- * @access public
- * @param array Options to set. Any options taken by
- * the presentation class can be specified
- * here.
- */
- function printMenu($options = array())
- {
- foreach ($options as $option => $value) {
- $this->$option = $value;
- }
-
- echo $this->toHTML();
- }
-}
-
-/**
-* HTML_TreeMenu_DHTML class
-*
-* This class is a presentation class for the tree structure
-* created using the TreeMenu/TreeNode. It presents the
-* traditional tree, static for browsers that can't handle
-* the DHTML.
-* @package HTML_TreeMenu
-*/
-class HTML_TreeMenu_DHTML extends HTML_TreeMenu_Presentation
-{
- /**
- * Dynamic status of the treemenu. If true (default) this has no effect. If
- * false it will override all dynamic status vars and set the menu to be
- * fully expanded an non-dynamic.
- */
- var $isDynamic;
-
- /**
- * Path to the images
- * @var string
- */
- var $images;
-
- /**
- * Target for the links generated
- * @var string
- */
- var $linkTarget;
-
- /**
- * Whether to use clientside persistence or not
- * @var bool
- */
- var $userPersistence;
-
- /**
- * The default CSS class for the nodes
- */
- var $defaultClass;
-
- /**
- * Whether to skip first level branch images
- * @var bool
- */
- var $noTopLevelImages;
-
- /**
- * Constructor, takes the tree structure as
- * an argument and an array of options which
- * can consist of:
- * o images - The path to the images folder. Defaults to "images"
- * o linkTarget - The target for the link. Defaults to "_self"
- * o defaultClass - The default CSS class to apply to a node. Default is none.
- * o usePersistence - Whether to use clientside persistence. This persistence
- * is achieved using cookies. Default is true.
- * o noTopLevelImages - Whether to skip displaying the first level of images if
- * there is multiple top level branches.
- *
- * And also a boolean for whether the entire tree is dynamic or not.
- * This overrides any perNode dynamic settings.
- *
- * @param object $structure The menu structure
- * @param array $options Array of options
- * @param bool $isDynamic Whether the tree is dynamic or not
- */
- function HTML_TreeMenu_DHTML(&$structure, $options = array(), $isDynamic = true)
- {
- $this->menu = &$structure;
- $this->isDynamic = $isDynamic;
-
- // Defaults
- $this->images = 'images';
- $this->linkTarget = '_self';
- $this->defaultClass = '';
- $this->usePersistence = true;
- $this->noTopLevelImages = false;
-
- foreach ($options as $option => $value) {
- $this->$option = $value;
- }
- }
-
- /**
- * Returns the HTML for the menu. This method can be
- * used instead of printMenu() to use the menu system
- * with a template system.
- *
- * @access public
- * @return string The HTML for the menu
- */
- function toHTML()
- {
- static $count = 0;
- $menuObj = 'objTreeMenu_' . ++$count;
-
- $html = "\n";
- $html .= '<script language="javascript" type="text/javascript">' . "\n\t";
- $html .= sprintf('%s = new TreeMenu("%s", "%s", "%s", "%s", %s, %s);',
- $menuObj,
- $this->images,
- $menuObj,
- $this->linkTarget,
- $this->defaultClass,
- $this->usePersistence ? 'true' : 'false',
- $this->noTopLevelImages ? 'true' : 'false');
-
- $html .= "\n";
-
- /**
- * Loop through subnodes
- */
- if (isset($this->menu->items)) {
- for ($i=0; $i<count($this->menu->items); $i++) {
- $html .= $this->_nodeToHTML($this->menu->items[$i], $menuObj);
- }
- }
-
- $html .= sprintf("\n\t%s.drawMenu();", $menuObj);
- if ($this->usePersistence && $this->isDynamic) {
- $html .= sprintf("\n\t%s.resetBranches();", $menuObj);
- }
- $html .= "\n</script>";
-
- return $html;
- }
-
- /**
- * Prints a node of the menu
- *
- * @access private
- */
- function _nodeToHTML($nodeObj, $prefix, $return = 'newNode')
- {
- $expanded = $this->isDynamic ? ($nodeObj->expanded ? 'true' : 'false') : 'true';
- $isDynamic = $this->isDynamic ? ($nodeObj->isDynamic ? 'true' : 'false') : 'false';
- $html = sprintf("\t %s = %s.addItem(new TreeNode('%s', %s, %s, %s, %s, '%s'));\n",
- $return,
- $prefix,
- $nodeObj->text,
- !empty($nodeObj->icon) ? "'" . $nodeObj->icon . "'" : 'null',
- !empty($nodeObj->link) ? "'" . addslashes($nodeObj->link) . "'" : 'null',
- $expanded,
- $isDynamic,
- $nodeObj->cssClass);
-
- foreach ($nodeObj->events as $event => $handler) {
- $html .= sprintf("\t %s.setEvent('%s', '%s');\n",
- $return,
- $event,
- str_replace(array("\r", "\n", "'"), array('\r', '\n', "\'"), $handler));
- }
-
- /**
- * Loop through subnodes
- */
- if (!empty($nodeObj->items)) {
- for ($i=0; $i<count($nodeObj->items); $i++) {
- $html .= $this->_nodeToHTML($nodeObj->items[$i], $return, $return . '_' . ($i + 1));
- }
- }
-
- return $html;
- }
-}
-
-
-/**
-* HTML_TreeMenu_Listbox class
-*
-* This class presents the menu as a listbox
-* @package HTML_TreeMenu
-*/
-class HTML_TreeMenu_Listbox extends HTML_TreeMenu_Presentation
-{
- /**
- * The text that is displayed in the first option
- * @var string
- */
- var $promoText;
-
- /**
- * The character used for indentation
- * @var string
- */
- var $indentChar;
-
- /**
- * How many of the indent chars to use
- * per indentation level
- * @var integer
- */
- var $indentNum;
-
- /**
- * Target for the links generated
- * @var string
- */
- var $linkTarget;
-
- /**
- * Constructor
- *
- * @param object $structure The menu structure
- * @param array $options Options whic affect the display of the listbox.
- * These can consist of:
- * o promoText The text that appears at the the top of the listbox
- * Defaults to "Select..."
- * o indentChar The character to use for indenting the nodes
- * Defaults to "&nbsp;"
- * o indentNum How many of the indentChars to use per indentation level
- * Defaults to 2
- * o linkTarget Target for the links. Defaults to "_self"
- * o submitText Text for the submit button. Defaults to "Go"
- */
- function HTML_TreeMenu_Listbox($structure, $options = array())
- {
- $this->menu = $structure;
- $this->promoText = 'Select...';
- $this->indentChar = '&nbsp;';
- $this->indentNum = 2;
- $this->linkTarget = '_self';
- $this->submitText = 'Go';
-
- foreach ($options as $option => $value) {
- $this->$option = $value;
- }
- }
-
- /**
- * Returns the HTML generated
- */
- function toHTML()
- {
- static $count = 0;
- $nodeHTML = '';
-
- /**
- * Loop through subnodes
- */
- if (isset($this->menu->items)) {
- for ($i=0; $i<count($this->menu->items); $i++) {
- $nodeHTML .= $this->_nodeToHTML($this->menu->items[$i]);
- }
- }
-
- return sprintf('<form target="%s" action="" onsubmit="var link = this.%s.options[this.%s.selectedIndex].value; if (link) {this.action = link; return true} else return false"><select name="%s"><option value="">%s</option>%s</select> <input type="submit" value="%s" /></form>',
- $this->linkTarget,
- 'HTML_TreeMenu_Listbox_' . ++$count,
- 'HTML_TreeMenu_Listbox_' . $count,
- 'HTML_TreeMenu_Listbox_' . $count,
- $this->promoText,
- $nodeHTML,
- $this->submitText);
- }
-
- /**
- * Returns HTML for a single node
- *
- * @access private
- */
- function _nodeToHTML($node, $prefix = '')
- {
- $html = sprintf('<option value="%s">%s%s</option>', $node->link, $prefix, $node->text);
-
- /**
- * Loop through subnodes
- */
- if (isset($node->items)) {
- for ($i=0; $i<count($node->items); $i++) {
- $html .= $this->_nodeToHTML($node->items[$i], $prefix . str_repeat($this->indentChar, $this->indentNum));
- }
- }
-
- return $html;
- }
-}
-?>
+<?php
+// +-----------------------------------------------------------------------+
+// | Copyright (c) 2002, Richard Heyes, Harald Radi |
+// | All rights reserved. |
+// | |
+// | Redistribution and use in source and binary forms, with or without |
+// | modification, are permitted provided that the following conditions |
+// | are met: |
+// | |
+// | o Redistributions of source code must retain the above copyright |
+// | notice, this list of conditions and the following disclaimer. |
+// | o Redistributions in binary form must reproduce the above copyright |
+// | notice, this list of conditions and the following disclaimer in the |
+// | documentation and/or other materials provided with the distribution.|
+// | o The names of the authors may not be used to endorse or promote |
+// | products derived from this software without specific prior written |
+// | permission. |
+// | |
+// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
+// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
+// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
+// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
+// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
+// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
+// | |
+// +-----------------------------------------------------------------------+
+// | Author: Richard Heyes <richard@phpguru.org> |
+// | Harald Radi <harald.radi@nme.at> |
+// +-----------------------------------------------------------------------+
+//
+// $Id$
+
+/**
+* @package HTML_TreeMenu
+*/
+/**
+* HTML_TreeMenu Class
+*
+* A simple couple of PHP classes and some not so simple
+* Jabbascript which produces a tree menu. In IE this menu
+* is dynamic, with branches being collapsable. In IE5+ the
+* status of the collapsed/open branches persists across page
+* refreshes.In any other browser the tree is static. Code is
+* based on work of Harald Radi.
+*
+* Usage.
+*
+* After installing the package, copy the example php script to
+* your servers document root. Also place the TreeMenu.js and the
+* images folder in the same place. Running the script should
+* then produce the tree.
+*
+* Thanks go to Chip Chapin (http://www.chipchapin.com) for many
+* excellent ideas and improvements.
+*
+* @author Richard Heyes <richard@php.net>
+* @author Harald Radi <harald.radi@nme.at>
+* @access public
+* @package HTML_TreeMenu
+*/
+
+class HTML_TreeMenu
+{
+ /**
+ * Indexed array of subnodes
+ * @var array
+ */
+ var $items;
+
+ /**
+ * Constructor
+ *
+ * @access public
+ */
+ function HTML_TreeMenu()
+ {
+ // Not much to do here :(
+ }
+
+ /**
+ * This function adds an item to the the tree.
+ *
+ * @access public
+ * @param object $node The node to add. This object should be
+ * a HTML_TreeNode object.
+ * @return object Returns a reference to the new node inside
+ * the tree.
+ */
+ function &addItem(&$node)
+ {
+ $this->items[] = &$node;
+ return $this->items[count($this->items) - 1];
+ }
+} // HTML_TreeMenu
+
+
+/**
+* HTML_TreeNode class
+*
+* This class is supplementary to the above and provides a way to
+* add nodes to the tree. A node can have other nodes added to it.
+*
+* @author Richard Heyes <richard@php.net>
+* @author Harald Radi <harald.radi@nme.at>
+* @access public
+* @package HTML_TreeMenu
+*/
+class HTML_TreeNode
+{
+ /**
+ * The text for this node.
+ * @var string
+ */
+ var $text;
+
+ /**
+ * The link for this node.
+ * @var string
+ */
+ var $link;
+
+ /**
+ * The icon for this node.
+ * @var string
+ */
+ var $icon;
+
+ /**
+ * The css class for this node
+ * @var string
+ */
+ var $cssClass;
+
+ /**
+ * Indexed array of subnodes
+ * @var array
+ */
+ var $items;
+
+ /**
+ * Whether this node is expanded or not
+ * @var bool
+ */
+ var $expanded;
+
+ /**
+ * Whether this node is dynamic or not
+ * @var bool
+ */
+ var $isDynamic;
+
+ /**
+ * Should this node be made visible?
+ * @var bool
+ */
+ var $ensureVisible;
+
+ /**
+ * The parent node. Null if top level
+ * @var object
+ */
+ var $parent;
+
+ /**
+ * Javascript event handlers;
+ * @var array
+ */
+ var $events;
+
+ /**
+ * Constructor
+ *
+ * @access public
+ * @param array $options An array of options which you can pass to change
+ * the way this node looks/acts. This can consist of:
+ * o text The title of the node, defaults to blank
+ * o link The link for the node, defaults to blank
+ * o icon The icon for the node, defaults to blank
+ * o class The CSS class for this node, defaults to blank
+ * o expanded The default expanded status of this node, defaults to false
+ * This doesn't affect non dynamic presentation types
+ * o isDynamic If this node is dynamic or not. Only affects
+ * certain presentation types.
+ * o ensureVisible If true this node will be made visible despite the expanded
+ * settings, and client side persistence. Will not affect
+ * some presentation styles, such as Listbox. Default is false
+ * @param array $events An array of javascript events and the corresponding event handlers.
+ * Additionally to the standard javascript events you can specify handlers
+ * for the 'onexpand', 'oncollapse' and 'ontoggle' events which will be fired
+ * whenever a node is collapsed and/or expanded.
+ */
+ function HTML_TreeNode($options = array(), $events = array())
+ {
+ $this->text = '';
+ $this->link = '';
+ $this->icon = '';
+ $this->cssClass = '';
+ $this->expanded = false;
+ $this->isDynamic = true;
+ $this->ensureVisible = false;
+
+ $this->parent = null;
+ $this->events = $events;
+
+ foreach ($options as $option => $value) {
+ $this->$option = $value;
+ }
+ }
+
+ /**
+ * Allows setting of various parameters after the initial
+ * constructor call. Possible options you can set are:
+ * o text
+ * o link
+ * o icon
+ * o cssClass
+ * o expanded
+ * o isDynamic
+ * o ensureVisible
+ * ie The same options as in the constructor
+ *
+ * @access public
+ * @param string $option Option to set
+ * @param string $value Value to set the option to
+ */
+ function setOption($option, $value)
+ {
+ $this->$option = $value;
+ }
+
+ /**
+ * Adds a new subnode to this node.
+ *
+ * @access public
+ * @param object $node The new node
+ */
+ function &addItem(&$node)
+ {
+ $node->parent = &$this;
+ $this->items[] = &$node;
+
+ /**
+ * If the subnode has ensureVisible set it needs
+ * to be handled, and all parents set accordingly.
+ */
+ if ($node->ensureVisible) {
+ $this->_ensureVisible();
+ }
+
+ return $this->items[count($this->items) - 1];
+ }
+
+ /**
+ * Private function to handle ensureVisible stuff
+ *
+ * @access private
+ */
+ function _ensureVisible()
+ {
+ $this->ensureVisible = true;
+ $this->expanded = true;
+
+ if (!is_null($this->parent)) {
+ $this->parent->_ensureVisible();
+ }
+ }
+} // HTML_TreeNode
+
+
+/**
+* HTML_TreeMenu_Presentation class
+*
+* Base class for other presentation classes to
+* inherit from.
+* @package HTML_TreeMenu
+*/
+class HTML_TreeMenu_Presentation
+{
+ /**
+ * The TreeMenu structure
+ * @var object
+ */
+ var $menu;
+
+ /**
+ * Base constructor simply sets the menu object
+ *
+ * @param object $structure The menu structure
+ */
+ function HTML_TreeMenu_Presentation(&$structure)
+ {
+ $this->menu = &$structure;
+ }
+
+ /**
+ * Prints the HTML generated by the toHTML() method.
+ * toHTML() must therefore be defined by the derived
+ * class.
+ *
+ * @access public
+ * @param array Options to set. Any options taken by
+ * the presentation class can be specified
+ * here.
+ */
+ function printMenu($options = array())
+ {
+ foreach ($options as $option => $value) {
+ $this->$option = $value;
+ }
+
+ echo $this->toHTML();
+ }
+}
+
+/**
+* HTML_TreeMenu_DHTML class
+*
+* This class is a presentation class for the tree structure
+* created using the TreeMenu/TreeNode. It presents the
+* traditional tree, static for browsers that can't handle
+* the DHTML.
+* @package HTML_TreeMenu
+*/
+class HTML_TreeMenu_DHTML extends HTML_TreeMenu_Presentation
+{
+ /**
+ * Dynamic status of the treemenu. If true (default) this has no effect. If
+ * false it will override all dynamic status vars and set the menu to be
+ * fully expanded an non-dynamic.
+ */
+ var $isDynamic;
+
+ /**
+ * Path to the images
+ * @var string
+ */
+ var $images;
+
+ /**
+ * Target for the links generated
+ * @var string
+ */
+ var $linkTarget;
+
+ /**
+ * Whether to use clientside persistence or not
+ * @var bool
+ */
+ var $userPersistence;
+
+ /**
+ * The default CSS class for the nodes
+ */
+ var $defaultClass;
+
+ /**
+ * Whether to skip first level branch images
+ * @var bool
+ */
+ var $noTopLevelImages;
+
+ /**
+ * Constructor, takes the tree structure as
+ * an argument and an array of options which
+ * can consist of:
+ * o images - The path to the images folder. Defaults to "images"
+ * o linkTarget - The target for the link. Defaults to "_self"
+ * o defaultClass - The default CSS class to apply to a node. Default is none.
+ * o usePersistence - Whether to use clientside persistence. This persistence
+ * is achieved using cookies. Default is true.
+ * o noTopLevelImages - Whether to skip displaying the first level of images if
+ * there is multiple top level branches.
+ *
+ * And also a boolean for whether the entire tree is dynamic or not.
+ * This overrides any perNode dynamic settings.
+ *
+ * @param object $structure The menu structure
+ * @param array $options Array of options
+ * @param bool $isDynamic Whether the tree is dynamic or not
+ */
+ function HTML_TreeMenu_DHTML(&$structure, $options = array(), $isDynamic = true)
+ {
+ $this->menu = &$structure;
+ $this->isDynamic = $isDynamic;
+
+ // Defaults
+ $this->images = 'images';
+ $this->linkTarget = '_self';
+ $this->defaultClass = '';
+ $this->usePersistence = true;
+ $this->noTopLevelImages = false;
+
+ foreach ($options as $option => $value) {
+ $this->$option = $value;
+ }
+ }
+
+ /**
+ * Returns the HTML for the menu. This method can be
+ * used instead of printMenu() to use the menu system
+ * with a template system.
+ *
+ * @access public
+ * @return string The HTML for the menu
+ */
+ function toHTML()
+ {
+ static $count = 0;
+ $menuObj = 'objTreeMenu_' . ++$count;
+
+ $html = "\n";
+ $html .= '<script language="javascript" type="text/javascript">' . "\n\t";
+ $html .= sprintf('%s = new TreeMenu("%s", "%s", "%s", "%s", %s, %s);',
+ $menuObj,
+ $this->images,
+ $menuObj,
+ $this->linkTarget,
+ $this->defaultClass,
+ $this->usePersistence ? 'true' : 'false',
+ $this->noTopLevelImages ? 'true' : 'false');
+
+ $html .= "\n";
+
+ /**
+ * Loop through subnodes
+ */
+ if (isset($this->menu->items)) {
+ for ($i=0; $i<count($this->menu->items); $i++) {
+ $html .= $this->_nodeToHTML($this->menu->items[$i], $menuObj);
+ }
+ }
+
+ $html .= sprintf("\n\t%s.drawMenu();", $menuObj);
+ if ($this->usePersistence && $this->isDynamic) {
+ $html .= sprintf("\n\t%s.resetBranches();", $menuObj);
+ }
+ $html .= "\n</script>";
+
+ return $html;
+ }
+
+ /**
+ * Prints a node of the menu
+ *
+ * @access private
+ */
+ function _nodeToHTML($nodeObj, $prefix, $return = 'newNode')
+ {
+ $expanded = $this->isDynamic ? ($nodeObj->expanded ? 'true' : 'false') : 'true';
+ $isDynamic = $this->isDynamic ? ($nodeObj->isDynamic ? 'true' : 'false') : 'false';
+ $html = sprintf("\t %s = %s.addItem(new TreeNode('%s', %s, %s, %s, %s, '%s'));\n",
+ $return,
+ $prefix,
+ $nodeObj->text,
+ !empty($nodeObj->icon) ? "'" . $nodeObj->icon . "'" : 'null',
+ !empty($nodeObj->link) ? "'" . addslashes($nodeObj->link) . "'" : 'null',
+ $expanded,
+ $isDynamic,
+ $nodeObj->cssClass);
+
+ foreach ($nodeObj->events as $event => $handler) {
+ $html .= sprintf("\t %s.setEvent('%s', '%s');\n",
+ $return,
+ $event,
+ str_replace(array("\r", "\n", "'"), array('\r', '\n', "\'"), $handler));
+ }
+
+ /**
+ * Loop through subnodes
+ */
+ if (!empty($nodeObj->items)) {
+ for ($i=0; $i<count($nodeObj->items); $i++) {
+ $html .= $this->_nodeToHTML($nodeObj->items[$i], $return, $return . '_' . ($i + 1));
+ }
+ }
+
+ return $html;
+ }
+}
+
+
+/**
+* HTML_TreeMenu_Listbox class
+*
+* This class presents the menu as a listbox
+* @package HTML_TreeMenu
+*/
+class HTML_TreeMenu_Listbox extends HTML_TreeMenu_Presentation
+{
+ /**
+ * The text that is displayed in the first option
+ * @var string
+ */
+ var $promoText;
+
+ /**
+ * The character used for indentation
+ * @var string
+ */
+ var $indentChar;
+
+ /**
+ * How many of the indent chars to use
+ * per indentation level
+ * @var integer
+ */
+ var $indentNum;
+
+ /**
+ * Target for the links generated
+ * @var string
+ */
+ var $linkTarget;
+
+ /**
+ * Constructor
+ *
+ * @param object $structure The menu structure
+ * @param array $options Options whic affect the display of the listbox.
+ * These can consist of:
+ * o promoText The text that appears at the the top of the listbox
+ * Defaults to "Select..."
+ * o indentChar The character to use for indenting the nodes
+ * Defaults to "&nbsp;"
+ * o indentNum How many of the indentChars to use per indentation level
+ * Defaults to 2
+ * o linkTarget Target for the links. Defaults to "_self"
+ * o submitText Text for the submit button. Defaults to "Go"
+ */
+ function HTML_TreeMenu_Listbox($structure, $options = array())
+ {
+ $this->menu = $structure;
+ $this->promoText = 'Select...';
+ $this->indentChar = '&nbsp;';
+ $this->indentNum = 2;
+ $this->linkTarget = '_self';
+ $this->submitText = 'Go';
+
+ foreach ($options as $option => $value) {
+ $this->$option = $value;
+ }
+ }
+
+ /**
+ * Returns the HTML generated
+ */
+ function toHTML()
+ {
+ static $count = 0;
+ $nodeHTML = '';
+
+ /**
+ * Loop through subnodes
+ */
+ if (isset($this->menu->items)) {
+ for ($i=0; $i<count($this->menu->items); $i++) {
+ $nodeHTML .= $this->_nodeToHTML($this->menu->items[$i]);
+ }
+ }
+
+ return sprintf('<form target="%s" action="" onsubmit="var link = this.%s.options[this.%s.selectedIndex].value; if (link) {this.action = link; return true} else return false"><select name="%s"><option value="">%s</option>%s</select> <input type="submit" value="%s" /></form>',
+ $this->linkTarget,
+ 'HTML_TreeMenu_Listbox_' . ++$count,
+ 'HTML_TreeMenu_Listbox_' . $count,
+ 'HTML_TreeMenu_Listbox_' . $count,
+ $this->promoText,
+ $nodeHTML,
+ $this->submitText);
+ }
+
+ /**
+ * Returns HTML for a single node
+ *
+ * @access private
+ */
+ function _nodeToHTML($node, $prefix = '')
+ {
+ $html = sprintf('<option value="%s">%s%s</option>', $node->link, $prefix, $node->text);
+
+ /**
+ * Loop through subnodes
+ */
+ if (isset($node->items)) {
+ for ($i=0; $i<count($node->items); $i++) {
+ $html .= $this->_nodeToHTML($node->items[$i], $prefix . str_repeat($this->indentChar, $this->indentNum));
+ }
+ }
+
+ return $html;
+ }
+}
+?>
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/actions.php b/libs/PhpDocumentor-1.3.2/docbuilder/actions.php
index 5152695714..d69e30d80f 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/actions.php
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/actions.php
@@ -1,100 +1,100 @@
-<?php
-/**
- * phpDocumentor :: docBuilder Web Interface
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @author Andrew Eddie
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2003-2006 Andrew Eddie, Greg Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- */
-$path = dirname(__FILE__);
-if ('@WEB-DIR@' != '@'.'WEB-DIR@')
-{
- include_once( "@WEB-DIR@/PhpDocumentor/docbuilder/includes/utilities.php" );
-} else {
- include_once( "$path/includes/utilities.php" );
-}
-
-$filename = '';
-if (isset($_GET) && isset($_GET['fileName'])) {
- $filename = $_GET['fileName'];
-}
-$filename = realpath($filename);
-$pd = DIRECTORY_SEPARATOR;
-$test = ($pd == '/') ? '/' : 'C:\\';
-if (empty($filename) || ($filename == $test)) {
- $filename = ($pd == '/') ? '/' : 'C:\\';
- $node = false;
- getDir($filename,$node);
-}
-
-?>
-<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
- <title>docBuilder - phpDocumentor web interface</title>
- <meta name="Generator" content="EditPlus">
- <meta name="Author" content="Andrew Eddie">
- <meta name="Description" content="Blank page">
- <style type="text/css">
- body, td, th, select, input {
- font-family: verdana,san-serif;
- font-size: 8pt;
- }
- .button {
- border: solid 1px #000000;
- }
- .text {
- border: solid 1px #000000;
- }
- </style>
- <script type="text/javascript" language="Javascript">
- function setFile( name ) {
- document.actionFrm.fileName.value = name;
- }
- </script>
-</head>
-<body text="#000000" bgcolor="#0099cc">
-<table cellspacing="0" cellpadding="2" border="0" width="100%">
-<form name="actionFrm">
-<tr>
- <td>Working Directory</td>
- <td>
- <input type="text" name="fileName" value="<?php print $filename;?>" size="60" class="text" />
- </td>
- <td>
- <input type="button" name="" value="..." title="change directory" class="button" onclick="window.open('file_dialog.php?filename='+document.actionFrm.fileName.value,'file_dialog','height=300px,width=600px,resizable=yes,scrollbars=yes');" />
- </td>
- <td align="right" width="100%">
- <input type="button" value="create" title="create documentation" class="button" onclick="parent.DataFrame.document.dataForm.target = 'OutputFrame'; parent.DataFrame.document.dataForm.submit();" /><br />
- <input type="button" value="create (new window)" title="create docs (new window)" class="button" onclick="parent.DataFrame.document.dataForm.target = 'newFrame';parent.DataFrame.document.dataForm.submit();" />
- </td>
- <td>&nbsp;</td>
-</tr>
-</form>
-
-</body>
-</html>
+<?php
+/**
+ * phpDocumentor :: docBuilder Web Interface
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @author Andrew Eddie
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2003-2006 Andrew Eddie, Greg Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ */
+$path = dirname(__FILE__);
+if ('@WEB-DIR@' != '@'.'WEB-DIR@')
+{
+ include_once( "@WEB-DIR@/PhpDocumentor/docbuilder/includes/utilities.php" );
+} else {
+ include_once( "$path/includes/utilities.php" );
+}
+
+$filename = '';
+if (isset($_GET) && isset($_GET['fileName'])) {
+ $filename = $_GET['fileName'];
+}
+$filename = realpath($filename);
+$pd = DIRECTORY_SEPARATOR;
+$test = ($pd == '/') ? '/' : 'C:\\';
+if (empty($filename) || ($filename == $test)) {
+ $filename = ($pd == '/') ? '/' : 'C:\\';
+ $node = false;
+ getDir($filename,$node);
+}
+
+?>
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <title>docBuilder - phpDocumentor web interface</title>
+ <meta name="Generator" content="EditPlus">
+ <meta name="Author" content="Andrew Eddie">
+ <meta name="Description" content="Blank page">
+ <style type="text/css">
+ body, td, th, select, input {
+ font-family: verdana,san-serif;
+ font-size: 8pt;
+ }
+ .button {
+ border: solid 1px #000000;
+ }
+ .text {
+ border: solid 1px #000000;
+ }
+ </style>
+ <script type="text/javascript" language="Javascript">
+ function setFile( name ) {
+ document.actionFrm.fileName.value = name;
+ }
+ </script>
+</head>
+<body text="#000000" bgcolor="#0099cc">
+<table cellspacing="0" cellpadding="2" border="0" width="100%">
+<form name="actionFrm">
+<tr>
+ <td>Working Directory</td>
+ <td>
+ <input type="text" name="fileName" value="<?php print $filename;?>" size="60" class="text" />
+ </td>
+ <td>
+ <input type="button" name="" value="..." title="change directory" class="button" onclick="window.open('file_dialog.php?filename='+document.actionFrm.fileName.value,'file_dialog','height=300px,width=600px,resizable=yes,scrollbars=yes');" />
+ </td>
+ <td align="right" width="100%">
+ <input type="button" value="create" title="create documentation" class="button" onclick="parent.DataFrame.document.dataForm.target = 'OutputFrame'; parent.DataFrame.document.dataForm.submit();" /><br />
+ <input type="button" value="create (new window)" title="create docs (new window)" class="button" onclick="parent.DataFrame.document.dataForm.target = 'newFrame';parent.DataFrame.document.dataForm.submit();" />
+ </td>
+ <td>&nbsp;</td>
+</tr>
+</form>
+
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/blank.html b/libs/PhpDocumentor-1.3.2/docbuilder/blank.html
index 7eea276e96..4f04005543 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/blank.html
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/blank.html
@@ -5,11 +5,11 @@
<meta name="Generator" content="EditPlus">
<meta name="Author" content="Andrew Eddie">
<meta name="Description" content="Blank page">
-<style type="text/css">
-body,td,th {
- font-family: monospace;
- font-size: 10pt;
-}
+<style type="text/css">
+body,td,th {
+ font-family: monospace;
+ font-size: 10pt;
+}
</style>
</head>
<body text="#000000" bgcolor="#e0e0e0">
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/builder.php b/libs/PhpDocumentor-1.3.2/docbuilder/builder.php
index 9cc2f90a0b..f4200f0984 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/builder.php
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/builder.php
@@ -1,128 +1,128 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<?php
-/**
- * phpDocumentor :: docBuilder Web Interface
- *
- * Advanced Web Interface to phpDocumentor
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @author Andrew Eddie
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2003-2006 Andrew Eddie, Greg Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @see phpdoc.php
- */
-
-if (!function_exists('version_compare'))
-{
- print "phpDocumentor requires PHP version 4.1.0 or greater to function";
- exit;
-}
-
-
-if ('@DATA-DIR@' != '@'.'DATA-DIR@') {
- // set up include path so we can find all files, no matter what
- $root_dir = 'PhpDocumentor';
- /**
- * common file information
- */
- include_once("$root_dir/phpDocumentor/common.inc.php");
- $GLOBALS['_phpDocumentor_install_dir'] = 'PhpDocumentor';
- // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
- $ini = phpDocumentor_parse_ini_file('@DATA-DIR@/PhpDocumentor/phpDocumentor.ini', true);
- if (isset($ini['_phpDocumentor_options']['userdir']))
- {
- $configdir = $ini['_phpDocumentor_options']['userdir'];
- } else {
- $configdir = '@DATA-DIR@/user';
- }
-} else {
- // set up include path so we can find all files, no matter what
- $GLOBALS['_phpDocumentor_install_dir'] = dirname(dirname(realpath(__FILE__)));
- $root_dir = dirname(dirname(__FILE__));
- /**
- * common file information
- */
- include_once("$root_dir/phpDocumentor/common.inc.php");
- // add my directory to the include path, and make it first, should fix any errors
- if (substr(PHP_OS, 0, 3) == 'WIN')
- {
- ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
- } else {
- ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
- }
- // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
- $ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
- if (isset($ini['_phpDocumentor_options']['userdir']))
- {
- $configdir = $ini['_phpDocumentor_options']['userdir'];
- } else {
- $configdir = $_phpDocumentor_install_dir . '/user';
- }
-}
-
-
-
-// allow the user to change this at runtime
-if (!empty($_REQUEST['altuserdir'])) $configdir = $_REQUEST['altuserdir'];
-?>
-<html>
-<head>
- <title>
- output: docbuilder - phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?> doc generation information
- </title>
- <style type="text/css">
- body, td, th {
- font-family: verdana,sans-serif;
- font-size: 8pt;
- }
- </style>
-
-</head>
-<body bgcolor="#e0e0e0" text="#000000" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
-
-<?php
-// Find out if we are submitting and if we are, send it
-// This code originally by Joshua Eichorn on phpdoc.php
-//
-if (isset($_GET['dataform']) && empty($_REQUEST['altuserdir'])) {
- foreach ($_GET as $k=>$v) {
- if (strpos( $k, 'setting_' ) === 0) {
- $_GET['setting'][substr( $k, 8 )] = $v;
- }
- }
-
- echo "<strong>Parsing Files ...</strong>";
- flush();
- echo "<pre>\n";
- /** phpdoc.inc */
- include("$root_dir/phpDocumentor/phpdoc.inc");
- echo "</pre>\n";
- echo "<h1>Operation Completed!!</h1>";
-} else {
- echo "whoops!";
-}
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<?php
+/**
+ * phpDocumentor :: docBuilder Web Interface
+ *
+ * Advanced Web Interface to phpDocumentor
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @author Andrew Eddie
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2003-2006 Andrew Eddie, Greg Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @see phpdoc.php
+ */
+
+if (!function_exists('version_compare'))
+{
+ print "phpDocumentor requires PHP version 4.1.0 or greater to function";
+ exit;
+}
+
+
+if ('@DATA-DIR@' != '@'.'DATA-DIR@') {
+ // set up include path so we can find all files, no matter what
+ $root_dir = 'PhpDocumentor';
+ /**
+ * common file information
+ */
+ include_once("$root_dir/phpDocumentor/common.inc.php");
+ $GLOBALS['_phpDocumentor_install_dir'] = 'PhpDocumentor';
+ // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+ $ini = phpDocumentor_parse_ini_file('@DATA-DIR@/PhpDocumentor/phpDocumentor.ini', true);
+ if (isset($ini['_phpDocumentor_options']['userdir']))
+ {
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+ } else {
+ $configdir = '@DATA-DIR@/user';
+ }
+} else {
+ // set up include path so we can find all files, no matter what
+ $GLOBALS['_phpDocumentor_install_dir'] = dirname(dirname(realpath(__FILE__)));
+ $root_dir = dirname(dirname(__FILE__));
+ /**
+ * common file information
+ */
+ include_once("$root_dir/phpDocumentor/common.inc.php");
+ // add my directory to the include path, and make it first, should fix any errors
+ if (substr(PHP_OS, 0, 3) == 'WIN')
+ {
+ ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
+ } else {
+ ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
+ }
+ // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+ $ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
+ if (isset($ini['_phpDocumentor_options']['userdir']))
+ {
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+ } else {
+ $configdir = $_phpDocumentor_install_dir . '/user';
+ }
+}
+
+
+
+// allow the user to change this at runtime
+if (!empty($_REQUEST['altuserdir'])) $configdir = $_REQUEST['altuserdir'];
+?>
+<html>
+<head>
+ <title>
+ output: docbuilder - phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?> doc generation information
+ </title>
+ <style type="text/css">
+ body, td, th {
+ font-family: verdana,sans-serif;
+ font-size: 8pt;
+ }
+ </style>
+
+</head>
+<body bgcolor="#e0e0e0" text="#000000" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
+
+<?php
+// Find out if we are submitting and if we are, send it
+// This code originally by Joshua Eichorn on phpdoc.php
+//
+if (isset($_GET['dataform']) && empty($_REQUEST['altuserdir'])) {
+ foreach ($_GET as $k=>$v) {
+ if (strpos( $k, 'setting_' ) === 0) {
+ $_GET['setting'][substr( $k, 8 )] = $v;
+ }
+ }
+
+ echo "<strong>Parsing Files ...</strong>";
+ flush();
+ echo "<pre>\n";
+ /** phpdoc.inc */
+ include("$root_dir/phpDocumentor/phpdoc.inc");
+ echo "</pre>\n";
+ echo "<h1>Operation Completed!!</h1>";
+} else {
+ echo "whoops!";
+}
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/config.php b/libs/PhpDocumentor-1.3.2/docbuilder/config.php
index ade07679bd..aa8a0e1148 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/config.php
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/config.php
@@ -1,644 +1,644 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<?php
-/**
- * phpDocumentor :: docBuilder Web Interface
- *
- * Advanced Web Interface to phpDocumentor
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @author Andrew Eddie
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2003-2006 Andrew Eddie, Greg Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @see phpdoc.php
- */
-
-if (!function_exists( 'version_compare' )) {
- print "phpDocumentor requires PHP version 4.1.0 or greater to function";
- exit;
-}
-
-if ('@DATA-DIR@' != '@'.'DATA-DIR@')
-{
- $root_dir = 'PhpDocumentor';
- $path = '@WEB-DIR@/PhpDocumentor/docbuilder/images/';
-
- /**
- * common file information
- */
- include_once("PhpDocumentor/phpDocumentor/common.inc.php");
- include_once("@WEB-DIR@/PhpDocumentor/docbuilder/includes/utilities.php" );
-
- // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
- $ini = phpDocumentor_parse_ini_file('@DATA-DIR@/PhpDocumentor/phpDocumentor.ini', true);
- if (isset($ini['_phpDocumentor_options']['userdir'])) {
- $configdir = $ini['_phpDocumentor_options']['userdir'];
- } else {
- $configdir = '@DATA-DIR@/PhpDocumentor/user';
- }
-} else {
- $root_dir = dirname(dirname(__FILE__));
- $path = 'images/';
-
- // set up include path so we can find all files, no matter what
- $GLOBALS['_phpDocumentor_install_dir'] = dirname(dirname( realpath( __FILE__ ) ));
- // add my directory to the include path, and make it first, should fix any errors
- if (substr(PHP_OS, 0, 3) == 'WIN') {
- ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
- } else {
- ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
- }
-
- /**
- * common file information
- */
- include_once("$root_dir/phpDocumentor/common.inc.php");
- include_once("$root_dir/docbuilder/includes/utilities.php" );
-
- // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
- $ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
- if (isset($ini['_phpDocumentor_options']['userdir'])) {
- $configdir = $ini['_phpDocumentor_options']['userdir'];
- } else {
- $configdir = $_phpDocumentor_install_dir . '/user';
- }
-}
-
-// allow the user to change this at runtime
-if (!empty( $_REQUEST['altuserdir'] )) {
- $configdir = $_REQUEST['altuserdir'];
-}
-
-// assign the available converters
-$converters = array(
- "HTML:frames:default" => 'HTML:frames:default',
- "HTML:frames:earthli" => 'HTML:frames:earthli',
- "HTML:frames:l0l33t" => 'HTML:frames:l0l33t',
- "HTML:frames:phpdoc.de" => 'HTML:frames:phpdoc.de',
- "HTML:frames:phphtmllib" => 'HTML:frames:phphtmllib',
- "HTML:frames:phpedit" => 'HTML:frames:phpedit',
- "HTML:frames:DOM/default" => 'HTML:frames:DOM/default',
- "HTML:frames:DOM/earthli" => 'HTML:frames:DOM/earthli',
- "HTML:frames:DOM/l0l33t" => 'HTML:frames:DOM/l0l33t',
- "HTML:frames:DOM/phpdoc.de" => 'HTML:frames:DOM/phpdoc.de',
- "HTML:frames:DOM/phphtmllib" => 'HTML:frames:DOM/phphtmllib',
- "HTML:Smarty:default" => 'HTML:Smarty:default',
- "HTML:Smarty:HandS" => 'HTML:Smarty:HandS',
- "HTML:Smarty:PHP" => 'HTML:Smarty:PHP',
- "PDF:default:default" => 'PDF:default:default',
- "CHM:default:default" => 'CHM:default:default',
- "XML:DocBook/peardoc2:default" => 'XML:DocBook/peardoc2:default'
-);
-
-// compile a list of available screen shots
-$convScreenShots = array();
-
-if ($dir = opendir($path)) {
- while (($file = readdir( $dir )) !== false) {
- if ($file != '.' && $file != '..') {
- if (!is_dir( $path . $file )) {
- if (strpos( $file, 'ss_' ) === 0) {
- $key = substr( $file, 3 );
- $key = str_replace( '_', ':', $key );
- $key = str_replace( '-', '/', $key );
- $key = str_replace( '.png', '', $key );
- $convScreenShots[$key] = $file;
- }
- }
- }
- }
-}
-
-?>
-<html>
-<head>
- <title>
- Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
- </title>
- <style type="text/css">
- body, td, th {
- font-family: verdana,sans-serif;
- font-size: 9pt;
- }
- .text {
- font-family: verdana,sans-serif;
- font-size: 9pt;
- border: solid 1px #000000;
- }
- .small {
- font-size: 7pt;
- }
- </style>
-
- <script src="includes/tabpane.js" language="JavaScript" type="text/javascript"></script>
- <link id="webfx-tab-style-sheet" type="text/css" rel="stylesheet" href="includes/tab.webfx.css" />
-
-<script type="text/javascript" language="Javascript">
-/**
- Creates some global variables
-*/
-function initializate() {
-//
-//The "platform independent" newLine
-//
-//Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
- if (navigator.appVersion.lastIndexOf('Win') != -1) {
- $pathdelim="\\";
- $newLine="\r\n";
- } else {
- $newLine="\n";
- $pathdelim="/";
- }
-}
-
-/**Adds the contents of the help box as a directory
-*/
-function addDirectory($object) {
- //$a = document.helpForm.fileName.value;
- $a = parent.ActionFrame.document.actionFrm.fileName.value;
- $a = myReplace( $a, '\\\\', '\\' );
- if ($a[$a.length - 1] == $pathdelim) {
- $a = $a.substring(0, $a.length - 1);
- }
- if ($a.lastIndexOf('.') > 0) {
- $a = $a.substring(0,$a.lastIndexOf($pathdelim));
- }
- $object.value = prepareString($object.value)+$a;
-}
-/**Adds the contents of the converter box to the converters list
-*/
-function addConverter($object) {
- $object.value = prepareString($object.value)+document.dataForm.ConverterSetting.value;
-}
-/**Replaces the converters list with the contents of the converter box
-*/
-function replaceConverter($object) {
- $object.value = document.dataForm.ConverterSetting.value;
-}
-/**Adds the contents of the help box as a file to the given control
-*/
-function addFile($object) {
- //$a = document.helpForm.fileName.value;
- $a = parent.ActionFrame.document.actionFrm.fileName.value;
- $a = myReplace($a,'\\\\','\\');
- $object.value = prepareString($object.value)+$a;
-}
-/**Takes a given string and leaves it ready to add a new string
- That is, puts the comma and the new line if needed
-*/
-function prepareString($myString) {
- //First verify that a comma is not at the end
- if($myString.lastIndexOf(",") >= $myString.length-2) {
- //We have a comma at the end
- return $myString;
- }
- if($myString.length > 0) {
- $myString+=","+$newLine;
- }
- return $myString;
-}
-/**Do the validation needed before sending the from and return a truth value indicating if the form can be sent
-*/
- function validate() {
- //Take out all newLines and change them by nothing
- //This could be done by using javascript function's replacebut that was implemented only until Navigator 4.0 and so it is better to use more backward compatible functions like substr
- document.dataForm.elements[0].value= stripNewLines(document.dataForm.elements[0].value);
- document.dataForm.elements[1].value= stripNewLines(document.dataForm.elements[1].value);
- document.dataForm.elements[2].value= stripNewLines(document.dataForm.elements[2].value);
- document.dataForm.elements[3].value= stripNewLines(document.dataForm.elements[3].value);
- document.dataForm.elements[4].value= stripNewLines(document.dataForm.elements[4].value);
- document.dataForm.elements[5].value= stripNewLines(document.dataForm.elements[5].value);
- document.dataForm.elements[6].value= stripNewLines(document.dataForm.elements[6].value);
- document.dataForm.elements[7].value= stripNewLines(document.dataForm.elements[7].value);
- //By returning true we are allowing the form to be submitted
- return true;
- }
-/**Takes a string and removes all the ocurrences of new lines
-Could have been implemented a lot easier with replace but it's not very backwards compatible
-*/
-function stripNewLines( $myString ) {
- return myReplace($myString,$newLine,'');
-}
-
-function myReplace($string,$text,$by) {
- // Replaces text with by in string
- var $strLength = $string.length, $txtLength = $text.length;
- if (($strLength == 0) || ($txtLength == 0)) {
- return $string;
- }
- var $i = $string.indexOf($text);
- if ((!$i) && ($text != $string.substring(0,$txtLength))) {
- return $string;
- }
- if ($i == -1) {
- return $string;
- }
- var $newstr = $string.substring(0,$i) + $by;
- if ($i+$txtLength < $strLength) {
- $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
- }
- return $newstr;
-}
-
-var screenShots = new Array();
-<?php
- $temp = array();
- foreach ($converters as $k=>$v) {
- if (array_key_exists( $k, $convScreenShots )) {
- echo "\nscreenShots['$k'] = '{$convScreenShots[$k]}'";
- } else {
- echo "\nscreenShots['$k'] = ''";
- }
- }
-?>
-
-
-/** Swaps the converted screen shot image
-*/
- function swapImage( key ) {
- document.screenshot.src = 'images/' + screenShots[key];
- }
-
-</script>
-
-</head>
-
-<body bgcolor="#ffffff" onload="javascript:initializate()" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
-
-<!-- onsubmit="return validate()" -->
-
-<form name="dataForm" action="builder.php" method="get" target="OutputFrame">
-
-<div class="tab-pane" id="tabPane1">
-<script type="text/javascript">
- var tp1 = new WebFXTabPane( document.getElementById( "tabPane1" ));
-</script>
- <div class="tab-page" id="tab_intro">
- <h2 class="tab">Introduction</h2>
- Welcome to <b>docBuilder</b>.
- <p>This is the new web-interface for running, in our opinion, the best in-code documentation compiler there is: <b>phpDocumentor</b>.</p>
- <p>What's new in this release? Heaps of things, but here are the headlines:</p>
- <ul>
- <li>Much greater support for PEAR on both windows and linux</li>
- <li>CHM, PDF and XML:DocBook/peardoc2 converters are all stable!</li>
- <li>New tokenizer-based parser is literally twice as fast as the old parser (requires PHP 4.3.0+)</li>
- <li>New external user-level manual parsing and generation allows cross-linking between API docs and DocBook-format tutorials/manuals!</li>
- <li>Color syntax source highlighting and cross-referencing with documentation of source code in HTML, CHM and PDF with customizable templating</li>
- <li>New Configuration files simplify repetitive and complex documentation tasks</li>
- <li>Brand new extensive manual - which can be generated directly from the source using makedocs.ini!</li>
- <li>Many improvements to in-code API documentation including new tags, and better handling of in-code html tags</li>
- <li>New XML:DocBook/peardoc converter makes generating PEAR manual formats easy for PEAR developers along with the --pear command-line switch</li>
- <li>Many new HTML templates, all of them beautiful thanks to Marco von Ballmoos</li>
- <li>A brand new web interface thanks to Andrew Eddie!</li>
- </ul>
- </div>
-
- <div class="tab-page" id="tab_config">
- <h2 class="tab">Config</h2>
- <table cellspacing="0" cellpadding="3" border="0">
- <tr>
- <td colspan="2"><b>Use a pre-created config file for form values.</b></td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>change config directory:</b>
- </td>
- <td width="100%">
- <input size="20" type="text" name="altuserdir" value="" /><input type="SUBMIT" value="Change" name="submitButton" onclick="document.dataForm.target='DataFrame'; document.dataForm.action = 'config.php';document.dataForm.submit();">
- <?php
- if (!empty($_REQUEST['altuserdir'])) {
- print '<br><i>changed to <b>"'.$_REQUEST['altuserdir'].'"</b></i>';
- }
- ?>
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>Choose a config:</b>
- </td>
- <td>
-
- <select name="setting_useconfig">
- <option value="" <?php if (empty($_REQUEST['altuserdir'])) print 'selected'; ?>>don't use config file</option>
- <?php
- $dirs = array();
- $dirs = phpDocumentor_ConfigFileList($configdir);
- $path = '';
- $sel = ' selected';
- if (!empty($_REQUEST['altuserdir'])) $path = $configdir . PATH_DELIMITER;
- else $sel = '';
- foreach($dirs as $configfile)
- {
- print '<option value="'.$path.$configfile.'"'.$sel.'>'.$configfile.".ini</option>\n";
- $sel = '';
- }
- ?>
- </select>
- <input type="SUBMIT" value="Go" name="submitButton">
- </td>
- </tr>
- <tr>
- <td colspan="2">
- Normally, phpDocumentor uses the form values from this form to set up parsing. In version 1.2, phpDocumentor allows you to "save" form values in configuration files so that you can replicate common complicated documentation tasks with only one time. Just choose a config file below or create a new one and refresh this page to choose it.
- </td>
- </tr>
- </table>
- </div>
-
- <div class="tab-page" id="tab_files">
- <h2 class="tab">Files</h2>
- <table cellspacing="0" cellpadding="3" border="0">
- <tr>
- <td align="right" valign="top" nowrap="nowrap">
- <b>Files<br />to parse</b>
- <br />
- <a href="javascript:addFile(document.dataForm.setting_filename)" title="Add the file in the help box">
-<?php
- echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
-?></a>
- </td>
- <td valign="top">
- <textarea rows="5" cols="60" name="setting_filename" class="text"></textarea>
- </td>
- <td valign="top" class="small">
- This is a group of comma-separated names of php files or tutorials that will be processed by phpDocumentor.
- </td>
- </tr>
- <tr>
- <td align="right" valign="top" nowrap="nowrap">
- <b>Directory<br />to parse</b>
- <br />
- <a href="javascript:addFile(document.dataForm.setting_directory)" title="Add the file in the help box">
-<?php
- echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
-?></a>
- </td>
- <td valign="top">
- <textarea rows="5" cols="60" name="setting_directory" class="text" title=""></textarea>
- </td>
- <td valign="top" class="small">
- This is a group of comma-separated directories where php files or tutorials are found that will be processed by phpDocumentor. phpDocumentor automatically parses subdirectories
- </td>
- </tr>
- <tr>
- <td align="right" valign="top" nowrap="nowrap">
- <b>Files<br />to ignore</b>
- <br />
- <a href="javascript:addFile(document.dataForm.setting_ignore)" title="Add the file in the help box">
-<?php
- echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
-?></a>
- </td>
- <td valign="top">
- <textarea rows="5" cols="60" class="text" name="setting_ignore"></textarea>
- </td>
- <td valign="top" class="small">
- A list of files (full path or filename), and patterns to ignore. Patterns may use wildcards * and ?. To ignore all subdirectories named "test" for example, using "test/" To ignore all files and directories with test in their name use "*test*"
- </td>
- </tr>
- <tr>
- <td align="right" valign="top" nowrap="nowrap">
- <b>Packages<br />to parse</b>
- </td>
- <td valign="top">
- <textarea rows="4" cols="60" class="text" name="setting_packageoutput"></textarea>
- </td>
- <td valign="top" class="small">
- The parameter packages is a group of comma separated names of abstract packages that will be processed by phpDocumentor. All package names must be separated by commas.
- </td>
- </tr>
- </table>
- </div>
-
-
- <div class="tab-page" id="tab_output">
- <h2 class="tab">Output</h2>
- <table cellspacing="0" cellpadding="3" border="0">
- <tr>
- <td align="right" valign="top" nowrap="nowrap">
- <b>Target</b>
- <br />
- <a href="javascript:addFile(document.dataForm.setting_target)" title="Add the file in the help box">
-<?php
- echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
-?></a>
- </td>
- <td valign="top">
- <input type="text" name="setting_target" size="60" class="text" />
- </td>
- <td valign="top" class="small">
- Target is the directory where the output produced by phpDocumentor will reside.
- </td>
- </tr>
- <tr>
- <td align="right" valign="top" nowrap="nowrap">
- <b>Output<br />Format</b>
- </td>
- <td valign="top">
- <textarea cols="60" rows="3" name="setting_output" class="text">HTML:Smarty:default</textarea>
- <br />
- Output type:Converter name:template name
- <br />
-<?php
- echo htmlArraySelect( $converters, 'ConverterSetting', 'size="1" class="text" onchange="swapImage(this.options[this.options.selectedIndex].value);"', 'HTML:Smarty:default' );
-?>
- <br />
- <a href="javascript:addConverter(document.dataForm.setting_output)">
- Add the converter in the help box
- </a>
- <br />
- <br />
- <img name="screenshot" src="images/ss_HTML_Smarty_default.png" width="200" height="200" border="2" alt="Screen Shot">
- </td>
- <td valign="top" class="small">
- Outputformat may be HTML, XML, PDF, or CHM (case-sensitive) in version 1.2.
- <br />There is only one Converter for both CHM and PDF:<br /><i>default</i>.
- <br />There are 2 HTML Converters:<br /><i>frames</i> or <i>Smarty</i>.
- <br /><b>frames templates</b> may be any of:
- <br />
- <i>default, earthli, l0l33t, phpdoc.de, phphtmllib, phpedit, DOM/default, DOM/earthli, DOM/l0l33t, DOM/phphtmllib, or DOM/phpdoc.de</i>.
- <br />
- <b>Smarty templates</b> may be any of:
- <br />
- <i>default, HandS, or PHP</i>
- <br />
- <strong>XML:DocBook/peardoc2:default</strong> is the only choice for XML in 1.2.2
- </td>
- </tr>
- </table>
- </div>
-
- <div class="tab-page" id="tab_options">
- <h2 class="tab">Options</h2>
- <table cellspacing="0" cellpadding="3" border="0">
- <tr>
- <td align="right" nowrap="nowrap">
- <b>Generated Documentation Title</b>
- </td>
- <td>
- <input type="text" name="setting_title" size="40" value="Generated Documentation" class="text">
- </td>
- <td class="small">
- Choose a title for the generated documentation
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>Default Package Name</b>
- </td>
- <td>
- <input type="TEXT" name="setting_defaultpackagename" size="40" value="default" class="text" />
- </td>
- <td class="small">
- Choose a name for the default package
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>Default Category Name</b>
- </td>
- <td>
- <input type="TEXT" name="setting_defaultcategoryname" size="40" value="default" class="text" />
- </td>
- <td class="small">
- Choose a name for the default category. This is only used by the peardoc2 converter
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>Custom Tags</b>
- </td>
- <td>
- <input type="text" name="setting_customtags" size="40" class="text" />
- </td>
- <td class="small">
- Custom Tags is a comma-separated list of tags you want phpDocumentor to include as valid tags in this parse. An example would be 'value, size' to allow @value and @size tags.
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>Parse @access private and @internal/{@internal}}</b>
- </td>
- <td nowrap="nowrap">
- <input type="checkbox" name="setting_parseprivate" value="on" />
- </td>
- <td class="small">
- The parameter Parse @access private tells phpDocumentor whether to parse elements with an '@access private' tag in their docblock. In addition, it will turn on parsing of @internal tags and inline {@internal}} sections
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>Generate Highlighted Source Code</b>
- </td>
- <td nowrap="nowrap">
- <input type="checkbox" name="setting_sourcecode" value="on" />
- </td>
- <td class="small">
- The parameter Generate Highlighted Source Code tells phpDocumentor whether to generate highlighted XRef source code similar to PHP-XRef output.
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>JavaDoc-compliant<br />Description parsing.</b>
- </td>
- <td>
- <input type="checkbox" name="setting_javadocdesc" value="on" />
- </td>
- <td class="small">
- Normally, phpDocumentor uses several rules to determine the short description. This switch asks phpDocumentor to simply search for the first period (.) and use it to delineate the short description. In addition, the short description will not be separated from the long description.
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <b>PEAR package repository parsing</b>
- </td>
- <td>
- <input type="checkbox" name="setting_pear" value="on" />
- </td>
- <td class="small">
- PEAR package repositories have specific requirements:
- <ol>
- <li>Every package is in a directory with the same name.</li>
- <li>All private data members and methods begin with an underscore (function _privfunction()).</li>
- <li>_Classname() is a destructor</li>
- </ol>
- This option recognizes these facts and uses them to make assumptions about packaging and access levels. Note that with PHP 5, the destructor option will be obsolete.
- </td>
- </tr>
- </table>
- </div>
-
- <div class="tab-page" id="tab_credits">
- <h2 class="tab">Credits</h2>
- phpDocumentor written by Joshua Eichorn
- <br />Web Interface originally written by Juan Pablo Morales, enhanced by Greg Beaver and super-charged by Andrew Eddie
- <p>
- Joshua Eichorn <a href="mailto:jeichorn@phpdoc.org">jeichorn@phpdoc.org</a>
- <br>Juan Pablo Morales <a href=
- "mailto:ju-moral@uniandes.edu.co">ju-moral@uniandes.edu.co</a>
- <br>Gregory Beaver <a href=
- "mailto:cellog@users.sourceforge.net">cellog@users.sourceforge.net</a>
- <br>Andrew Eddie <a href=
- "mailto:eddieajau@users.sourceforge.net">eddieajau@users.sourceforge.net</a>
- </p>
- <p>
- If you have any problems with phpDocumentor, please visit the website: <a href='http://phpdocu.sourceforge.net'>phpdocu.sourceforge.net</a> and submit a bug
- </p>
- <!-- Created: Tue Jun 26 18:52:40 MEST 2001 -->
- <!-- hhmts start -->
- <pre>
- Last modified: $Date: 2006/04/30 22:18:13 $
- Revision: $Revision: 1.4 $
- </pre>
- </div>
- <div class="tab-page" id="tab_links">
- <h2 class="tab">Links</h2>
- <ul>
- <li><a target="_top" href="http://www.phpdoc.org/manual.php">phpDocumentor manual</a> - Learn how to use phpDocumentor to document your PHP source code</li>
- <li><a target="_top" href="http://phpdocu.sourceforge.net/">phpDocumentor homepage</a> on SourceForge</li>
- <li><a target="_top" href="http://freshmeat.net/projects/phpdocu">Freshmeat record</a> - subscribe here</li>
- </ul>
- </div>
-</div>
-<input type="hidden" name="interface" value="web">
-<input type="hidden" name="dataform" value="true">
-
-</form>
-
-<script type="text/javascript">
-
- tp1.addTabPage( document.getElementById( "tab_intro" ) );
- tp1.addTabPage( document.getElementById( "tab_config" ) );
- tp1.addTabPage( document.getElementById( "tab_files" ) );
- tp1.addTabPage( document.getElementById( "tab_output" ) );
- tp1.addTabPage( document.getElementById( "tab_options" ) );
- tp1.addTabPage( document.getElementById( "tab_credits" ) );
- tp1.addTabPage( document.getElementById( "tab_links" ) );
- setupAllTabs();
-</script>
-
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<?php
+/**
+ * phpDocumentor :: docBuilder Web Interface
+ *
+ * Advanced Web Interface to phpDocumentor
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @author Andrew Eddie
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2003-2006 Andrew Eddie, Greg Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @see phpdoc.php
+ */
+
+if (!function_exists( 'version_compare' )) {
+ print "phpDocumentor requires PHP version 4.1.0 or greater to function";
+ exit;
+}
+
+if ('@DATA-DIR@' != '@'.'DATA-DIR@')
+{
+ $root_dir = 'PhpDocumentor';
+ $path = '@WEB-DIR@/PhpDocumentor/docbuilder/images/';
+
+ /**
+ * common file information
+ */
+ include_once("PhpDocumentor/phpDocumentor/common.inc.php");
+ include_once("@WEB-DIR@/PhpDocumentor/docbuilder/includes/utilities.php" );
+
+ // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+ $ini = phpDocumentor_parse_ini_file('@DATA-DIR@/PhpDocumentor/phpDocumentor.ini', true);
+ if (isset($ini['_phpDocumentor_options']['userdir'])) {
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+ } else {
+ $configdir = '@DATA-DIR@/PhpDocumentor/user';
+ }
+} else {
+ $root_dir = dirname(dirname(__FILE__));
+ $path = 'images/';
+
+ // set up include path so we can find all files, no matter what
+ $GLOBALS['_phpDocumentor_install_dir'] = dirname(dirname( realpath( __FILE__ ) ));
+ // add my directory to the include path, and make it first, should fix any errors
+ if (substr(PHP_OS, 0, 3) == 'WIN') {
+ ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
+ } else {
+ ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
+ }
+
+ /**
+ * common file information
+ */
+ include_once("$root_dir/phpDocumentor/common.inc.php");
+ include_once("$root_dir/docbuilder/includes/utilities.php" );
+
+ // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+ $ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
+ if (isset($ini['_phpDocumentor_options']['userdir'])) {
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+ } else {
+ $configdir = $_phpDocumentor_install_dir . '/user';
+ }
+}
+
+// allow the user to change this at runtime
+if (!empty( $_REQUEST['altuserdir'] )) {
+ $configdir = $_REQUEST['altuserdir'];
+}
+
+// assign the available converters
+$converters = array(
+ "HTML:frames:default" => 'HTML:frames:default',
+ "HTML:frames:earthli" => 'HTML:frames:earthli',
+ "HTML:frames:l0l33t" => 'HTML:frames:l0l33t',
+ "HTML:frames:phpdoc.de" => 'HTML:frames:phpdoc.de',
+ "HTML:frames:phphtmllib" => 'HTML:frames:phphtmllib',
+ "HTML:frames:phpedit" => 'HTML:frames:phpedit',
+ "HTML:frames:DOM/default" => 'HTML:frames:DOM/default',
+ "HTML:frames:DOM/earthli" => 'HTML:frames:DOM/earthli',
+ "HTML:frames:DOM/l0l33t" => 'HTML:frames:DOM/l0l33t',
+ "HTML:frames:DOM/phpdoc.de" => 'HTML:frames:DOM/phpdoc.de',
+ "HTML:frames:DOM/phphtmllib" => 'HTML:frames:DOM/phphtmllib',
+ "HTML:Smarty:default" => 'HTML:Smarty:default',
+ "HTML:Smarty:HandS" => 'HTML:Smarty:HandS',
+ "HTML:Smarty:PHP" => 'HTML:Smarty:PHP',
+ "PDF:default:default" => 'PDF:default:default',
+ "CHM:default:default" => 'CHM:default:default',
+ "XML:DocBook/peardoc2:default" => 'XML:DocBook/peardoc2:default'
+);
+
+// compile a list of available screen shots
+$convScreenShots = array();
+
+if ($dir = opendir($path)) {
+ while (($file = readdir( $dir )) !== false) {
+ if ($file != '.' && $file != '..') {
+ if (!is_dir( $path . $file )) {
+ if (strpos( $file, 'ss_' ) === 0) {
+ $key = substr( $file, 3 );
+ $key = str_replace( '_', ':', $key );
+ $key = str_replace( '-', '/', $key );
+ $key = str_replace( '.png', '', $key );
+ $convScreenShots[$key] = $file;
+ }
+ }
+ }
+ }
+}
+
+?>
+<html>
+<head>
+ <title>
+ Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
+ </title>
+ <style type="text/css">
+ body, td, th {
+ font-family: verdana,sans-serif;
+ font-size: 9pt;
+ }
+ .text {
+ font-family: verdana,sans-serif;
+ font-size: 9pt;
+ border: solid 1px #000000;
+ }
+ .small {
+ font-size: 7pt;
+ }
+ </style>
+
+ <script src="includes/tabpane.js" language="JavaScript" type="text/javascript"></script>
+ <link id="webfx-tab-style-sheet" type="text/css" rel="stylesheet" href="includes/tab.webfx.css" />
+
+<script type="text/javascript" language="Javascript">
+/**
+ Creates some global variables
+*/
+function initializate() {
+//
+//The "platform independent" newLine
+//
+//Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
+ if (navigator.appVersion.lastIndexOf('Win') != -1) {
+ $pathdelim="\\";
+ $newLine="\r\n";
+ } else {
+ $newLine="\n";
+ $pathdelim="/";
+ }
+}
+
+/**Adds the contents of the help box as a directory
+*/
+function addDirectory($object) {
+ //$a = document.helpForm.fileName.value;
+ $a = parent.ActionFrame.document.actionFrm.fileName.value;
+ $a = myReplace( $a, '\\\\', '\\' );
+ if ($a[$a.length - 1] == $pathdelim) {
+ $a = $a.substring(0, $a.length - 1);
+ }
+ if ($a.lastIndexOf('.') > 0) {
+ $a = $a.substring(0,$a.lastIndexOf($pathdelim));
+ }
+ $object.value = prepareString($object.value)+$a;
+}
+/**Adds the contents of the converter box to the converters list
+*/
+function addConverter($object) {
+ $object.value = prepareString($object.value)+document.dataForm.ConverterSetting.value;
+}
+/**Replaces the converters list with the contents of the converter box
+*/
+function replaceConverter($object) {
+ $object.value = document.dataForm.ConverterSetting.value;
+}
+/**Adds the contents of the help box as a file to the given control
+*/
+function addFile($object) {
+ //$a = document.helpForm.fileName.value;
+ $a = parent.ActionFrame.document.actionFrm.fileName.value;
+ $a = myReplace($a,'\\\\','\\');
+ $object.value = prepareString($object.value)+$a;
+}
+/**Takes a given string and leaves it ready to add a new string
+ That is, puts the comma and the new line if needed
+*/
+function prepareString($myString) {
+ //First verify that a comma is not at the end
+ if($myString.lastIndexOf(",") >= $myString.length-2) {
+ //We have a comma at the end
+ return $myString;
+ }
+ if($myString.length > 0) {
+ $myString+=","+$newLine;
+ }
+ return $myString;
+}
+/**Do the validation needed before sending the from and return a truth value indicating if the form can be sent
+*/
+ function validate() {
+ //Take out all newLines and change them by nothing
+ //This could be done by using javascript function's replacebut that was implemented only until Navigator 4.0 and so it is better to use more backward compatible functions like substr
+ document.dataForm.elements[0].value= stripNewLines(document.dataForm.elements[0].value);
+ document.dataForm.elements[1].value= stripNewLines(document.dataForm.elements[1].value);
+ document.dataForm.elements[2].value= stripNewLines(document.dataForm.elements[2].value);
+ document.dataForm.elements[3].value= stripNewLines(document.dataForm.elements[3].value);
+ document.dataForm.elements[4].value= stripNewLines(document.dataForm.elements[4].value);
+ document.dataForm.elements[5].value= stripNewLines(document.dataForm.elements[5].value);
+ document.dataForm.elements[6].value= stripNewLines(document.dataForm.elements[6].value);
+ document.dataForm.elements[7].value= stripNewLines(document.dataForm.elements[7].value);
+ //By returning true we are allowing the form to be submitted
+ return true;
+ }
+/**Takes a string and removes all the ocurrences of new lines
+Could have been implemented a lot easier with replace but it's not very backwards compatible
+*/
+function stripNewLines( $myString ) {
+ return myReplace($myString,$newLine,'');
+}
+
+function myReplace($string,$text,$by) {
+ // Replaces text with by in string
+ var $strLength = $string.length, $txtLength = $text.length;
+ if (($strLength == 0) || ($txtLength == 0)) {
+ return $string;
+ }
+ var $i = $string.indexOf($text);
+ if ((!$i) && ($text != $string.substring(0,$txtLength))) {
+ return $string;
+ }
+ if ($i == -1) {
+ return $string;
+ }
+ var $newstr = $string.substring(0,$i) + $by;
+ if ($i+$txtLength < $strLength) {
+ $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
+ }
+ return $newstr;
+}
+
+var screenShots = new Array();
+<?php
+ $temp = array();
+ foreach ($converters as $k=>$v) {
+ if (array_key_exists( $k, $convScreenShots )) {
+ echo "\nscreenShots['$k'] = '{$convScreenShots[$k]}'";
+ } else {
+ echo "\nscreenShots['$k'] = ''";
+ }
+ }
+?>
+
+
+/** Swaps the converted screen shot image
+*/
+ function swapImage( key ) {
+ document.screenshot.src = 'images/' + screenShots[key];
+ }
+
+</script>
+
+</head>
+
+<body bgcolor="#ffffff" onload="javascript:initializate()" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
+
+<!-- onsubmit="return validate()" -->
+
+<form name="dataForm" action="builder.php" method="get" target="OutputFrame">
+
+<div class="tab-pane" id="tabPane1">
+<script type="text/javascript">
+ var tp1 = new WebFXTabPane( document.getElementById( "tabPane1" ));
+</script>
+ <div class="tab-page" id="tab_intro">
+ <h2 class="tab">Introduction</h2>
+ Welcome to <b>docBuilder</b>.
+ <p>This is the new web-interface for running, in our opinion, the best in-code documentation compiler there is: <b>phpDocumentor</b>.</p>
+ <p>What's new in this release? Heaps of things, but here are the headlines:</p>
+ <ul>
+ <li>Much greater support for PEAR on both windows and linux</li>
+ <li>CHM, PDF and XML:DocBook/peardoc2 converters are all stable!</li>
+ <li>New tokenizer-based parser is literally twice as fast as the old parser (requires PHP 4.3.0+)</li>
+ <li>New external user-level manual parsing and generation allows cross-linking between API docs and DocBook-format tutorials/manuals!</li>
+ <li>Color syntax source highlighting and cross-referencing with documentation of source code in HTML, CHM and PDF with customizable templating</li>
+ <li>New Configuration files simplify repetitive and complex documentation tasks</li>
+ <li>Brand new extensive manual - which can be generated directly from the source using makedocs.ini!</li>
+ <li>Many improvements to in-code API documentation including new tags, and better handling of in-code html tags</li>
+ <li>New XML:DocBook/peardoc converter makes generating PEAR manual formats easy for PEAR developers along with the --pear command-line switch</li>
+ <li>Many new HTML templates, all of them beautiful thanks to Marco von Ballmoos</li>
+ <li>A brand new web interface thanks to Andrew Eddie!</li>
+ </ul>
+ </div>
+
+ <div class="tab-page" id="tab_config">
+ <h2 class="tab">Config</h2>
+ <table cellspacing="0" cellpadding="3" border="0">
+ <tr>
+ <td colspan="2"><b>Use a pre-created config file for form values.</b></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>change config directory:</b>
+ </td>
+ <td width="100%">
+ <input size="20" type="text" name="altuserdir" value="" /><input type="SUBMIT" value="Change" name="submitButton" onclick="document.dataForm.target='DataFrame'; document.dataForm.action = 'config.php';document.dataForm.submit();">
+ <?php
+ if (!empty($_REQUEST['altuserdir'])) {
+ print '<br><i>changed to <b>"'.$_REQUEST['altuserdir'].'"</b></i>';
+ }
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>Choose a config:</b>
+ </td>
+ <td>
+
+ <select name="setting_useconfig">
+ <option value="" <?php if (empty($_REQUEST['altuserdir'])) print 'selected'; ?>>don't use config file</option>
+ <?php
+ $dirs = array();
+ $dirs = phpDocumentor_ConfigFileList($configdir);
+ $path = '';
+ $sel = ' selected';
+ if (!empty($_REQUEST['altuserdir'])) $path = $configdir . PATH_DELIMITER;
+ else $sel = '';
+ foreach($dirs as $configfile)
+ {
+ print '<option value="'.$path.$configfile.'"'.$sel.'>'.$configfile.".ini</option>\n";
+ $sel = '';
+ }
+ ?>
+ </select>
+ <input type="SUBMIT" value="Go" name="submitButton">
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ Normally, phpDocumentor uses the form values from this form to set up parsing. In version 1.2, phpDocumentor allows you to "save" form values in configuration files so that you can replicate common complicated documentation tasks with only one time. Just choose a config file below or create a new one and refresh this page to choose it.
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="tab-page" id="tab_files">
+ <h2 class="tab">Files</h2>
+ <table cellspacing="0" cellpadding="3" border="0">
+ <tr>
+ <td align="right" valign="top" nowrap="nowrap">
+ <b>Files<br />to parse</b>
+ <br />
+ <a href="javascript:addFile(document.dataForm.setting_filename)" title="Add the file in the help box">
+<?php
+ echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
+?></a>
+ </td>
+ <td valign="top">
+ <textarea rows="5" cols="60" name="setting_filename" class="text"></textarea>
+ </td>
+ <td valign="top" class="small">
+ This is a group of comma-separated names of php files or tutorials that will be processed by phpDocumentor.
+ </td>
+ </tr>
+ <tr>
+ <td align="right" valign="top" nowrap="nowrap">
+ <b>Directory<br />to parse</b>
+ <br />
+ <a href="javascript:addFile(document.dataForm.setting_directory)" title="Add the file in the help box">
+<?php
+ echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
+?></a>
+ </td>
+ <td valign="top">
+ <textarea rows="5" cols="60" name="setting_directory" class="text" title=""></textarea>
+ </td>
+ <td valign="top" class="small">
+ This is a group of comma-separated directories where php files or tutorials are found that will be processed by phpDocumentor. phpDocumentor automatically parses subdirectories
+ </td>
+ </tr>
+ <tr>
+ <td align="right" valign="top" nowrap="nowrap">
+ <b>Files<br />to ignore</b>
+ <br />
+ <a href="javascript:addFile(document.dataForm.setting_ignore)" title="Add the file in the help box">
+<?php
+ echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
+?></a>
+ </td>
+ <td valign="top">
+ <textarea rows="5" cols="60" class="text" name="setting_ignore"></textarea>
+ </td>
+ <td valign="top" class="small">
+ A list of files (full path or filename), and patterns to ignore. Patterns may use wildcards * and ?. To ignore all subdirectories named "test" for example, using "test/" To ignore all files and directories with test in their name use "*test*"
+ </td>
+ </tr>
+ <tr>
+ <td align="right" valign="top" nowrap="nowrap">
+ <b>Packages<br />to parse</b>
+ </td>
+ <td valign="top">
+ <textarea rows="4" cols="60" class="text" name="setting_packageoutput"></textarea>
+ </td>
+ <td valign="top" class="small">
+ The parameter packages is a group of comma separated names of abstract packages that will be processed by phpDocumentor. All package names must be separated by commas.
+ </td>
+ </tr>
+ </table>
+ </div>
+
+
+ <div class="tab-page" id="tab_output">
+ <h2 class="tab">Output</h2>
+ <table cellspacing="0" cellpadding="3" border="0">
+ <tr>
+ <td align="right" valign="top" nowrap="nowrap">
+ <b>Target</b>
+ <br />
+ <a href="javascript:addFile(document.dataForm.setting_target)" title="Add the file in the help box">
+<?php
+ echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
+?></a>
+ </td>
+ <td valign="top">
+ <input type="text" name="setting_target" size="60" class="text" />
+ </td>
+ <td valign="top" class="small">
+ Target is the directory where the output produced by phpDocumentor will reside.
+ </td>
+ </tr>
+ <tr>
+ <td align="right" valign="top" nowrap="nowrap">
+ <b>Output<br />Format</b>
+ </td>
+ <td valign="top">
+ <textarea cols="60" rows="3" name="setting_output" class="text">HTML:Smarty:default</textarea>
+ <br />
+ Output type:Converter name:template name
+ <br />
+<?php
+ echo htmlArraySelect( $converters, 'ConverterSetting', 'size="1" class="text" onchange="swapImage(this.options[this.options.selectedIndex].value);"', 'HTML:Smarty:default' );
+?>
+ <br />
+ <a href="javascript:addConverter(document.dataForm.setting_output)">
+ Add the converter in the help box
+ </a>
+ <br />
+ <br />
+ <img name="screenshot" src="images/ss_HTML_Smarty_default.png" width="200" height="200" border="2" alt="Screen Shot">
+ </td>
+ <td valign="top" class="small">
+ Outputformat may be HTML, XML, PDF, or CHM (case-sensitive) in version 1.2.
+ <br />There is only one Converter for both CHM and PDF:<br /><i>default</i>.
+ <br />There are 2 HTML Converters:<br /><i>frames</i> or <i>Smarty</i>.
+ <br /><b>frames templates</b> may be any of:
+ <br />
+ <i>default, earthli, l0l33t, phpdoc.de, phphtmllib, phpedit, DOM/default, DOM/earthli, DOM/l0l33t, DOM/phphtmllib, or DOM/phpdoc.de</i>.
+ <br />
+ <b>Smarty templates</b> may be any of:
+ <br />
+ <i>default, HandS, or PHP</i>
+ <br />
+ <strong>XML:DocBook/peardoc2:default</strong> is the only choice for XML in 1.2.2
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="tab-page" id="tab_options">
+ <h2 class="tab">Options</h2>
+ <table cellspacing="0" cellpadding="3" border="0">
+ <tr>
+ <td align="right" nowrap="nowrap">
+ <b>Generated Documentation Title</b>
+ </td>
+ <td>
+ <input type="text" name="setting_title" size="40" value="Generated Documentation" class="text">
+ </td>
+ <td class="small">
+ Choose a title for the generated documentation
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>Default Package Name</b>
+ </td>
+ <td>
+ <input type="TEXT" name="setting_defaultpackagename" size="40" value="default" class="text" />
+ </td>
+ <td class="small">
+ Choose a name for the default package
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>Default Category Name</b>
+ </td>
+ <td>
+ <input type="TEXT" name="setting_defaultcategoryname" size="40" value="default" class="text" />
+ </td>
+ <td class="small">
+ Choose a name for the default category. This is only used by the peardoc2 converter
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>Custom Tags</b>
+ </td>
+ <td>
+ <input type="text" name="setting_customtags" size="40" class="text" />
+ </td>
+ <td class="small">
+ Custom Tags is a comma-separated list of tags you want phpDocumentor to include as valid tags in this parse. An example would be 'value, size' to allow @value and @size tags.
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>Parse @access private and @internal/{@internal}}</b>
+ </td>
+ <td nowrap="nowrap">
+ <input type="checkbox" name="setting_parseprivate" value="on" />
+ </td>
+ <td class="small">
+ The parameter Parse @access private tells phpDocumentor whether to parse elements with an '@access private' tag in their docblock. In addition, it will turn on parsing of @internal tags and inline {@internal}} sections
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>Generate Highlighted Source Code</b>
+ </td>
+ <td nowrap="nowrap">
+ <input type="checkbox" name="setting_sourcecode" value="on" />
+ </td>
+ <td class="small">
+ The parameter Generate Highlighted Source Code tells phpDocumentor whether to generate highlighted XRef source code similar to PHP-XRef output.
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>JavaDoc-compliant<br />Description parsing.</b>
+ </td>
+ <td>
+ <input type="checkbox" name="setting_javadocdesc" value="on" />
+ </td>
+ <td class="small">
+ Normally, phpDocumentor uses several rules to determine the short description. This switch asks phpDocumentor to simply search for the first period (.) and use it to delineate the short description. In addition, the short description will not be separated from the long description.
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">
+ <b>PEAR package repository parsing</b>
+ </td>
+ <td>
+ <input type="checkbox" name="setting_pear" value="on" />
+ </td>
+ <td class="small">
+ PEAR package repositories have specific requirements:
+ <ol>
+ <li>Every package is in a directory with the same name.</li>
+ <li>All private data members and methods begin with an underscore (function _privfunction()).</li>
+ <li>_Classname() is a destructor</li>
+ </ol>
+ This option recognizes these facts and uses them to make assumptions about packaging and access levels. Note that with PHP 5, the destructor option will be obsolete.
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="tab-page" id="tab_credits">
+ <h2 class="tab">Credits</h2>
+ phpDocumentor written by Joshua Eichorn
+ <br />Web Interface originally written by Juan Pablo Morales, enhanced by Greg Beaver and super-charged by Andrew Eddie
+ <p>
+ Joshua Eichorn <a href="mailto:jeichorn@phpdoc.org">jeichorn@phpdoc.org</a>
+ <br>Juan Pablo Morales <a href=
+ "mailto:ju-moral@uniandes.edu.co">ju-moral@uniandes.edu.co</a>
+ <br>Gregory Beaver <a href=
+ "mailto:cellog@users.sourceforge.net">cellog@users.sourceforge.net</a>
+ <br>Andrew Eddie <a href=
+ "mailto:eddieajau@users.sourceforge.net">eddieajau@users.sourceforge.net</a>
+ </p>
+ <p>
+ If you have any problems with phpDocumentor, please visit the website: <a href='http://phpdocu.sourceforge.net'>phpdocu.sourceforge.net</a> and submit a bug
+ </p>
+ <!-- Created: Tue Jun 26 18:52:40 MEST 2001 -->
+ <!-- hhmts start -->
+ <pre>
+ Last modified: $Date: 2006/04/30 22:18:13 $
+ Revision: $Revision: 1.4 $
+ </pre>
+ </div>
+ <div class="tab-page" id="tab_links">
+ <h2 class="tab">Links</h2>
+ <ul>
+ <li><a target="_top" href="http://www.phpdoc.org/manual.php">phpDocumentor manual</a> - Learn how to use phpDocumentor to document your PHP source code</li>
+ <li><a target="_top" href="http://phpdocu.sourceforge.net/">phpDocumentor homepage</a> on SourceForge</li>
+ <li><a target="_top" href="http://freshmeat.net/projects/phpdocu">Freshmeat record</a> - subscribe here</li>
+ </ul>
+ </div>
+</div>
+<input type="hidden" name="interface" value="web">
+<input type="hidden" name="dataform" value="true">
+
+</form>
+
+<script type="text/javascript">
+
+ tp1.addTabPage( document.getElementById( "tab_intro" ) );
+ tp1.addTabPage( document.getElementById( "tab_config" ) );
+ tp1.addTabPage( document.getElementById( "tab_files" ) );
+ tp1.addTabPage( document.getElementById( "tab_output" ) );
+ tp1.addTabPage( document.getElementById( "tab_options" ) );
+ tp1.addTabPage( document.getElementById( "tab_credits" ) );
+ tp1.addTabPage( document.getElementById( "tab_links" ) );
+ setupAllTabs();
+</script>
+
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/file_dialog.php b/libs/PhpDocumentor-1.3.2/docbuilder/file_dialog.php
index 6fc80c5e20..b9160ade50 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/file_dialog.php
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/file_dialog.php
@@ -1,293 +1,293 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<?php
-/**
- * phpDocumentor :: docBuilder Web Interface
- *
- * Advanced Web Interface to phpDocumentor
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @author Andrew Eddie
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2003-2006 Andrew Eddie, Greg Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @see phpdoc.php
- */
-if (!function_exists( 'version_compare' )) {
- print "phpDocumentor requires PHP version 4.1.0 or greater to function";
- exit;
-}
-
-if ('@WEB-DIR@' != '@'.'WEB-DIR@')
-{
- /**
- * common file information
- */
- require_once 'PhpDocumentor/phpDocumentor/common.inc.php';
- require_once 'PhpDocumentor/HTML_TreeMenu-1.1.2/TreeMenu.php';
- require_once( '@WEB-DIR@' . PATH_DELIMITER . 'PhpDocumentor/docbuilder/includes/utilities.php' );
-
- define(PHPDOC_WEBROOT_DIR, 'PhpDocumentor');
-
- // set up include path so we can find all files, no matter what
- $GLOBALS['_phpDocumentor_install_dir'] = PHPDOC_WEBROOT_DIR;
-
- // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
- $ini = phpDocumentor_parse_ini_file('@DATA-DIR@' . PATH_DELIMITER . 'PhpDocumentor/phpDocumentor.ini', true);
- if (isset($ini['_phpDocumentor_options']['userdir'])) {
- $configdir = $ini['_phpDocumentor_options']['userdir'];
- } else {
- $configdir = '@DATA-DIR@' . PATH_DELIMITER . 'PhpDocumentor/user';
- }
-} else {
-
- define(PHPDOC_WEBROOT_DIR, dirname(dirname(__FILE__)));
- /**
- * common file information
- */
- include_once(PHPDOC_WEBROOT_DIR . "/phpDocumentor/common.inc.php");
- include_once(PHPDOC_WEBROOT_DIR . "/HTML_TreeMenu-1.1.2/TreeMenu.php");
- include_once(PHPDOC_WEBROOT_DIR . "/docbuilder/includes/utilities.php" );
-
- // set up include path so we can find all files, no matter what
- $GLOBALS['_phpDocumentor_install_dir'] = dirname(dirname( realpath( __FILE__ ) ));
- // add my directory to the include path, and make it first, should fix any errors
- if (substr(PHP_OS, 0, 3) == 'WIN') {
- ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
- } else {
- ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
- }
-
- // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
- $ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
- if (isset($ini['_phpDocumentor_options']['userdir'])) {
- $configdir = $ini['_phpDocumentor_options']['userdir'];
- } else {
- $configdir = $_phpDocumentor_install_dir . '/user';
- }
-}
-
-// allow the user to change this at runtime
-if (!empty( $_REQUEST['altuserdir'] )) {
- $configdir = $_REQUEST['altuserdir'];
-}
-?>
-<html>
-<head>
- <title>
- File browser
- </title>
- <style type="text/css">
- body, td, th, select, input {
- font-family: verdana,sans-serif;
- font-size: 9pt;
- }
- .text {
- font-family: verdana,sans-serif;
- font-size: 9pt;
- border: solid 1px #000000;
- }
- .button {
- border: solid 1px #000000;
- }
- .small {
- font-size: 7pt;
- }
- </style>
-
- <script src="../HTML_TreeMenu-1.1.2/TreeMenu.js" language="JavaScript" type="text/javascript"></script>
-
-<?php
- set_time_limit(0); // six minute timeout
- ini_set("memory_limit","256M");
-
- /**
- * Directory Node
- * @package HTML_TreeMenu
- */
- class DirNode extends HTML_TreeNode
- {
- /**
- * full path to this node
- * @var string
- */
- var $path;
-
- function DirNode($text = false, $link = false, $icon = false, $path, $events = array())
- {
- $this->path = $path;
- $options = array();
- if ($text) $options['text'] = $text;
- if ($link) $options['link'] = $link;
- if ($icon) $options['icon'] = $icon;
- HTML_TreeNode::HTML_TreeNode($options,$events);
- }
- }
-
-
- $menu = new HTML_TreeMenu();
- $filename = '';
- if (isset($_GET) && isset($_GET['fileName'])) {
- $filename = $_GET['fileName'];
- }
- $filename = realpath($filename);
- $pd = (substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/';
- $test = ($pd == '/') ? '/' : 'C:\\';
- if (empty($filename) || ($filename == $test)) {
- $filename = ($pd == '/') ? '/' : 'C:\\';
- $node = false;
- getDir($filename,$node);
- } else {
- flush();
-// if ($pd != '/') $pd = $pd.$pd;
- $anode = false;
- switchDirTree($filename,$anode);
-// recurseDir($filename,$anode);
- $node = new HTML_TreeNode(array('text' => "Click to view ".addslashes($filename),'link' => "",'icon' => 'branchtop.gif'));
- $node->addItem($anode);
- };
- $menu->addItem($node);
- if ('@WEB-DIR@' != '@'.'WEB-DIR@')
- {
- $DHTMLmenu = &new HTML_TreeMenu_DHTML($menu,
- array('images' => '../HTML_TreeMenu-1.1.2/images'));
- } else {
- $DHTMLmenu = &new HTML_TreeMenu_DHTML($menu,
- array('images' => str_replace('/docbuilder/file_dialog.php','',$_SERVER['PHP_SELF']) .
- '/HTML_TreeMenu-1.1.2/images'));
- }
-?>
-<script type="text/javascript" language="Javascript">
-/**
- Creates some global variables
-*/
-function initializate() {
-//
-//The "platform independent" newLine
-//
-//Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
- if (navigator.appVersion.lastIndexOf( 'Win' ) != -1) {
- $pathdelim="\\";
- $newLine="\r\n";
- } else {
- $newLine="\n";
- $pathdelim="/";
- }
- /* for($a=0;$a<document.dataForm.elements.length;$a++) {
- alert("The name is '"+document.dataForm.elements[$a].name+"' "+$a);
- }
- */
-}
-/** Sets the contents of the help box, and submits the form
-*/
-function setHelp( $str ) {
- document.helpForm.fileName.value = $str;
- document.helpForm.submit();
-}
-
-/** Sets the contents of the help box only
-*/
-function setHelpVal( $str ) {
- document.helpForm.fileName.value = $str;
-}
-/**Takes a given string and leaves it ready to add a new string
- That is, puts the comma and the new line if needed
-*/
-function prepareString($myString) {
- //First verify that a comma is not at the end
- if($myString.lastIndexOf(",") >= $myString.length-2) {
- //We have a comma at the end
- return $myString;
- }
- if($myString.length > 0) {
- $myString+=","+$newLine;
- }
- return $myString;
-}
-
-
- function myReplace($string,$text,$by) {
- // Replaces text with by in string
- var $strLength = $string.length, $txtLength = $text.length;
- if (($strLength == 0) || ($txtLength == 0)) return $string;
-
- var $i = $string.indexOf($text);
- if ((!$i) && ($text != $string.substring(0,$txtLength))) return $string;
- if ($i == -1) return $string;
-
- var $newstr = $string.substring(0,$i) + $by;
-
- if ($i+$txtLength < $strLength)
- $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
-
- return $newstr;
- }
-</script>
-
-</head>
-
-<body bgcolor="#ffffff" onload="javascript:initializate()">
-<strong>Directory Browser</strong>
-
-<table cellpadding="1" cellspacing="1" border="0" width="100%">
-
-<form name="helpForm" action="<?php print $_SERVER['PHP_SELF']; ?>" method="get" enctype="multipart/form-data">
-<tr>
- <td colspan="2" width="100%">
- Use this to find directories and files which can be used below:
- </td>
-</tr>
-<tr>
- <td align="right">
- <a href="javascript:document.helpForm.submit();" title="browse tree">
-<?php
- echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
-?>
- </a>
- </td>
- <td>
- <input size="60" type="text" name="fileName" value="<?php print $filename;?>" class="text" />
- </td>
-</tr>
-<tr>
- <td>
- <input type="submit" name="helpdata" value="close" class="button" onclick="window.close();" />
- </td>
- <td align="right">
- <input type="submit" name="helpdata" value="accept" class="button" onclick="opener.setFile(document.helpForm.fileName.value);window.close();" />
- </td>
-</tr>
-<tr>
- <td colspan="2">
- <div id='menuLayer'></div>
- <?php $DHTMLmenu->printMenu(); ?>
- </td>
-</tr>
-</form>
-
-</table>
-
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<?php
+/**
+ * phpDocumentor :: docBuilder Web Interface
+ *
+ * Advanced Web Interface to phpDocumentor
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @author Andrew Eddie
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2003-2006 Andrew Eddie, Greg Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @see phpdoc.php
+ */
+if (!function_exists( 'version_compare' )) {
+ print "phpDocumentor requires PHP version 4.1.0 or greater to function";
+ exit;
+}
+
+if ('@WEB-DIR@' != '@'.'WEB-DIR@')
+{
+ /**
+ * common file information
+ */
+ require_once 'PhpDocumentor/phpDocumentor/common.inc.php';
+ require_once 'PhpDocumentor/HTML_TreeMenu-1.1.2/TreeMenu.php';
+ require_once( '@WEB-DIR@' . PATH_DELIMITER . 'PhpDocumentor/docbuilder/includes/utilities.php' );
+
+ define(PHPDOC_WEBROOT_DIR, 'PhpDocumentor');
+
+ // set up include path so we can find all files, no matter what
+ $GLOBALS['_phpDocumentor_install_dir'] = PHPDOC_WEBROOT_DIR;
+
+ // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+ $ini = phpDocumentor_parse_ini_file('@DATA-DIR@' . PATH_DELIMITER . 'PhpDocumentor/phpDocumentor.ini', true);
+ if (isset($ini['_phpDocumentor_options']['userdir'])) {
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+ } else {
+ $configdir = '@DATA-DIR@' . PATH_DELIMITER . 'PhpDocumentor/user';
+ }
+} else {
+
+ define(PHPDOC_WEBROOT_DIR, dirname(dirname(__FILE__)));
+ /**
+ * common file information
+ */
+ include_once(PHPDOC_WEBROOT_DIR . "/phpDocumentor/common.inc.php");
+ include_once(PHPDOC_WEBROOT_DIR . "/HTML_TreeMenu-1.1.2/TreeMenu.php");
+ include_once(PHPDOC_WEBROOT_DIR . "/docbuilder/includes/utilities.php" );
+
+ // set up include path so we can find all files, no matter what
+ $GLOBALS['_phpDocumentor_install_dir'] = dirname(dirname( realpath( __FILE__ ) ));
+ // add my directory to the include path, and make it first, should fix any errors
+ if (substr(PHP_OS, 0, 3) == 'WIN') {
+ ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
+ } else {
+ ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
+ }
+
+ // find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+ $ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
+ if (isset($ini['_phpDocumentor_options']['userdir'])) {
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+ } else {
+ $configdir = $_phpDocumentor_install_dir . '/user';
+ }
+}
+
+// allow the user to change this at runtime
+if (!empty( $_REQUEST['altuserdir'] )) {
+ $configdir = $_REQUEST['altuserdir'];
+}
+?>
+<html>
+<head>
+ <title>
+ File browser
+ </title>
+ <style type="text/css">
+ body, td, th, select, input {
+ font-family: verdana,sans-serif;
+ font-size: 9pt;
+ }
+ .text {
+ font-family: verdana,sans-serif;
+ font-size: 9pt;
+ border: solid 1px #000000;
+ }
+ .button {
+ border: solid 1px #000000;
+ }
+ .small {
+ font-size: 7pt;
+ }
+ </style>
+
+ <script src="../HTML_TreeMenu-1.1.2/TreeMenu.js" language="JavaScript" type="text/javascript"></script>
+
+<?php
+ set_time_limit(0); // six minute timeout
+ ini_set("memory_limit","256M");
+
+ /**
+ * Directory Node
+ * @package HTML_TreeMenu
+ */
+ class DirNode extends HTML_TreeNode
+ {
+ /**
+ * full path to this node
+ * @var string
+ */
+ var $path;
+
+ function DirNode($text = false, $link = false, $icon = false, $path, $events = array())
+ {
+ $this->path = $path;
+ $options = array();
+ if ($text) $options['text'] = $text;
+ if ($link) $options['link'] = $link;
+ if ($icon) $options['icon'] = $icon;
+ HTML_TreeNode::HTML_TreeNode($options,$events);
+ }
+ }
+
+
+ $menu = new HTML_TreeMenu();
+ $filename = '';
+ if (isset($_GET) && isset($_GET['fileName'])) {
+ $filename = $_GET['fileName'];
+ }
+ $filename = realpath($filename);
+ $pd = (substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/';
+ $test = ($pd == '/') ? '/' : 'C:\\';
+ if (empty($filename) || ($filename == $test)) {
+ $filename = ($pd == '/') ? '/' : 'C:\\';
+ $node = false;
+ getDir($filename,$node);
+ } else {
+ flush();
+// if ($pd != '/') $pd = $pd.$pd;
+ $anode = false;
+ switchDirTree($filename,$anode);
+// recurseDir($filename,$anode);
+ $node = new HTML_TreeNode(array('text' => "Click to view ".addslashes($filename),'link' => "",'icon' => 'branchtop.gif'));
+ $node->addItem($anode);
+ };
+ $menu->addItem($node);
+ if ('@WEB-DIR@' != '@'.'WEB-DIR@')
+ {
+ $DHTMLmenu = &new HTML_TreeMenu_DHTML($menu,
+ array('images' => '../HTML_TreeMenu-1.1.2/images'));
+ } else {
+ $DHTMLmenu = &new HTML_TreeMenu_DHTML($menu,
+ array('images' => str_replace('/docbuilder/file_dialog.php','',$_SERVER['PHP_SELF']) .
+ '/HTML_TreeMenu-1.1.2/images'));
+ }
+?>
+<script type="text/javascript" language="Javascript">
+/**
+ Creates some global variables
+*/
+function initializate() {
+//
+//The "platform independent" newLine
+//
+//Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
+ if (navigator.appVersion.lastIndexOf( 'Win' ) != -1) {
+ $pathdelim="\\";
+ $newLine="\r\n";
+ } else {
+ $newLine="\n";
+ $pathdelim="/";
+ }
+ /* for($a=0;$a<document.dataForm.elements.length;$a++) {
+ alert("The name is '"+document.dataForm.elements[$a].name+"' "+$a);
+ }
+ */
+}
+/** Sets the contents of the help box, and submits the form
+*/
+function setHelp( $str ) {
+ document.helpForm.fileName.value = $str;
+ document.helpForm.submit();
+}
+
+/** Sets the contents of the help box only
+*/
+function setHelpVal( $str ) {
+ document.helpForm.fileName.value = $str;
+}
+/**Takes a given string and leaves it ready to add a new string
+ That is, puts the comma and the new line if needed
+*/
+function prepareString($myString) {
+ //First verify that a comma is not at the end
+ if($myString.lastIndexOf(",") >= $myString.length-2) {
+ //We have a comma at the end
+ return $myString;
+ }
+ if($myString.length > 0) {
+ $myString+=","+$newLine;
+ }
+ return $myString;
+}
+
+
+ function myReplace($string,$text,$by) {
+ // Replaces text with by in string
+ var $strLength = $string.length, $txtLength = $text.length;
+ if (($strLength == 0) || ($txtLength == 0)) return $string;
+
+ var $i = $string.indexOf($text);
+ if ((!$i) && ($text != $string.substring(0,$txtLength))) return $string;
+ if ($i == -1) return $string;
+
+ var $newstr = $string.substring(0,$i) + $by;
+
+ if ($i+$txtLength < $strLength)
+ $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
+
+ return $newstr;
+ }
+</script>
+
+</head>
+
+<body bgcolor="#ffffff" onload="javascript:initializate()">
+<strong>Directory Browser</strong>
+
+<table cellpadding="1" cellspacing="1" border="0" width="100%">
+
+<form name="helpForm" action="<?php print $_SERVER['PHP_SELF']; ?>" method="get" enctype="multipart/form-data">
+<tr>
+ <td colspan="2" width="100%">
+ Use this to find directories and files which can be used below:
+ </td>
+</tr>
+<tr>
+ <td align="right">
+ <a href="javascript:document.helpForm.submit();" title="browse tree">
+<?php
+ echo showImage( 'images/rc-gui-install-24.png', '24', '24' );
+?>
+ </a>
+ </td>
+ <td>
+ <input size="60" type="text" name="fileName" value="<?php print $filename;?>" class="text" />
+ </td>
+</tr>
+<tr>
+ <td>
+ <input type="submit" name="helpdata" value="close" class="button" onclick="window.close();" />
+ </td>
+ <td align="right">
+ <input type="submit" name="helpdata" value="accept" class="button" onclick="opener.setFile(document.helpForm.fileName.value);window.close();" />
+ </td>
+</tr>
+<tr>
+ <td colspan="2">
+ <div id='menuLayer'></div>
+ <?php $DHTMLmenu->printMenu(); ?>
+ </td>
+</tr>
+</form>
+
+</table>
+
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/includes/tab.webfx.css b/libs/PhpDocumentor-1.3.2/docbuilder/includes/tab.webfx.css
index 0e014715a6..38c1e8baa3 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/includes/tab.webfx.css
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/includes/tab.webfx.css
@@ -1,9 +1,9 @@
-/*
-
-bright: rgb(234,242,255);
-normal: rgb(120,172,255);
-dark: rgb(0,66,174);
-
+/*
+
+bright: rgb(234,242,255);
+normal: rgb(120,172,255);
+dark: rgb(0,66,174);
+
*/
.dynamic-tab-pane-control.tab-pane {
position: relative;
@@ -63,9 +63,9 @@ dark: rgb(0,66,174);
border: 1px solid rgb(120, 172, 255);
background: White;
z-index: 2;
- /*
- position: relative;
- top: -2px;
+ /*
+ position: relative;
+ top: -2px;
*/
position: absolute;
top: 23px;
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/includes/tabpane.js b/libs/PhpDocumentor-1.3.2/docbuilder/includes/tabpane.js
index 30a339c387..8568b86ebe 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/includes/tabpane.js
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/includes/tabpane.js
@@ -1,309 +1,309 @@
-/*
- * Tab Pane
- *
- * This script was created by Erik Arvidsson (erik(at)eae.net)
- * for WebFX (http://webfx.eae.net)
- * Copyright 2002
- *
- * For usage see license at http://webfx.eae.net/license.html
- *
- * Version: 1.0
- * Created: 2002-01-?? First working version
- * Updated: 2002-02-17 Cleaned up for 1.0 public version
- *
- * Dependencies: *.css - a css file to define the layout
- *
- */
-
-
-// This function is used to define if the browser supports the needed
-// features
-function hasSupport() {
-
- if (typeof hasSupport.support != "undefined")
- return hasSupport.support;
-
- var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
-
- hasSupport.support = ( typeof document.implementation != "undefined" &&
- document.implementation.hasFeature( "html", "1.0" ) || ie55 )
-
- // IE55 has a serious DOM1 bug... Patch it!
- if ( ie55 ) {
- document._getElementsByTagName = document.getElementsByTagName;
- document.getElementsByTagName = function ( sTagName ) {
- if ( sTagName == "*" )
- return document.all;
- else
- return document._getElementsByTagName( sTagName );
- };
- }
-
- return hasSupport.support;
-}
-
-///////////////////////////////////////////////////////////////////////////////////
-// The constructor for tab panes
-//
-// el : HTMLElement The html element used to represent the tab pane
-// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us
-// persistance using cookies or not
-//
-function WebFXTabPane( el, bUseCookie ) {
- if ( !hasSupport() || el == null ) return;
-
- this.element = el;
- this.element.tabPane = this;
- this.pages = [];
- this.selectedIndex = null;
- this.useCookie = bUseCookie != null ? bUseCookie : false;
-
- // add class name tag to class name
- this.element.className = this.classNameTag + " " + this.element.className;
-
- // add tab row
- this.tabRow = document.createElement( "div" );
- this.tabRow.className = "tab-row";
- el.insertBefore( this.tabRow, el.firstChild );
-
- var tabIndex = 0;
- if ( this.useCookie ) {
- tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) );
- if ( isNaN( tabIndex ) )
- tabIndex = 0;
- }
-
- this.selectedIndex = tabIndex;
-
- // loop through child nodes and add them
- var cs = el.childNodes;
- var n;
- for (var i = 0; i < cs.length; i++) {
- if (cs[i].nodeType == 1 && cs[i].className == "tab-page") {
- this.addTabPage( cs[i] );
- }
- }
-}
-
-WebFXTabPane.prototype = {
-
- classNameTag: "dynamic-tab-pane-control",
-
- setSelectedIndex: function ( n ) {
- if (this.selectedIndex != n) {
- if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
- this.pages[ this.selectedIndex ].hide();
- this.selectedIndex = n;
- this.pages[ this.selectedIndex ].show();
-
- if ( this.useCookie )
- WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie
- }
- },
-
- getSelectedIndex: function () {
- return this.selectedIndex;
- },
-
- addTabPage: function ( oElement ) {
- if ( !hasSupport() ) return;
-
- if ( oElement.tabPage == this ) // already added
- return oElement.tabPage;
-
- var n = this.pages.length;
- var tp = this.pages[n] = new WebFXTabPage( oElement, this, n );
- tp.tabPane = this;
-
- // move the tab out of the box
- this.tabRow.appendChild( tp.tab );
-
- if ( n == this.selectedIndex )
- tp.show();
- else
- tp.hide();
-
- return tp;
- }
-};
-
-// Cookie handling
-WebFXTabPane.setCookie = function ( sName, sValue, nDays ) {
- var expires = "";
- if ( nDays ) {
- var d = new Date();
- d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
- expires = "; expires=" + d.toGMTString();
- }
-
- document.cookie = sName + "=" + sValue + expires + "; path=/";
-};
-
-WebFXTabPane.getCookie = function (sName) {
- var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
- var res = re.exec( document.cookie );
- return res != null ? res[3] : null;
-};
-
-WebFXTabPane.removeCookie = function ( name ) {
- setCookie( name, "", -1 );
-};
-
-
-
-
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////
-// The constructor for tab pages. This one should not be used.
-// Use WebFXTabPage.addTabPage instead
-//
-// el : HTMLElement The html element used to represent the tab pane
-// tabPane : WebFXTabPane The parent tab pane
-// nindex : Number The index of the page in the parent pane page array
-//
-function WebFXTabPage( el, tabPane, nIndex ) {
- if ( !hasSupport() || el == null ) return;
-
- this.element = el;
- this.element.tabPage = this;
- this.index = nIndex;
-
- var cs = el.childNodes;
- for (var i = 0; i < cs.length; i++) {
- if (cs[i].nodeType == 1 && cs[i].className == "tab") {
- this.tab = cs[i];
- break;
- }
- }
-
- // insert a tag around content to support keyboard navigation
- var a = document.createElement( "A" );
- a.href = "javascript:void 0;";
- while ( this.tab.hasChildNodes() )
- a.appendChild( this.tab.firstChild );
- this.tab.appendChild( a );
-
-
- anchor = '';
- if ( document.URL.indexOf( '#' ) != -1 ) {
- anchor = document.URL.substr( document.URL.indexOf( '#' ) + 1);
- }
- j = 0;
- if ( anchor.length > 0 ) {
- finalList = new Array();
- listOfAnchors = el.getElementsByTagName('A');
- for (i=0; i<listOfAnchors.length; i++) {
- if (listOfAnchors[i].name.length) {
- finalList[j++] = listOfAnchors[i].name;
- }
- }
- for(i=0; i<finalList.length; i++) {
- if ( anchor == finalList[i] ) {
- if (tabPane.selectedIndex != nIndex) tabPane.pages[ tabPane.selectedIndex ].hide();
- tabPane.selectedIndex = nIndex ;
- }
- }
- }
-
- // hook up events, using DOM0
- var oThis = this;
- this.tab.onclick = function () { oThis.select(); };
- this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis ); };
- this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis ); };
-}
-
-WebFXTabPage.prototype = {
- show: function () {
- var el = this.tab;
- var s = el.className + " selected";
- s = s.replace(/ +/g, " ");
- el.className = s;
-
- //this.element.style.display = "block";
- this.element.style.visibility = "visible";
- },
-
- hide: function () {
- var el = this.tab;
- var s = el.className;
- s = s.replace(/ selected/g, "");
- el.className = s;
-
- this.element.style.visibility = "hidden";
- },
-
- select: function () {
- this.tabPane.setSelectedIndex( this.index );
- }
-};
-
-WebFXTabPage.tabOver = function ( tabpage ) {
- var el = tabpage.tab;
- var s = el.className + " hover";
- s = s.replace(/ +/g, " ");
- el.className = s;
-};
-
-WebFXTabPage.tabOut = function ( tabpage ) {
- var el = tabpage.tab;
- var s = el.className;
- s = s.replace(/ hover/g, "");
- el.className = s;
-};
-
-
-// This function initializes all uninitialized tab panes and tab pages
-function setupAllTabs() {
- if ( !hasSupport() ) return;
-
- var all = document.getElementsByTagName( "*" );
- var l = all.length;
- var tabPaneRe = /tab\-pane/;
- var tabPageRe = /tab\-page/;
- var cn, el;
- var parentTabPane;
-
- for ( var i = 0; i < l; i++ ) {
- el = all[i]
- cn = el.className;
-
- // no className
- if ( cn == "" ) continue;
-
- // uninitiated tab pane
- if ( tabPaneRe.test( cn ) && !el.tabPane )
- new WebFXTabPane( el );
-
- // unitiated tab page wit a valid tab pane parent
- else if ( tabPageRe.test( cn ) && !el.tabPage &&
- tabPaneRe.test( el.parentNode.className ) ) {
- el.parentNode.tabPane.addTabPage( el );
- }
- }
-}
-
-
-// initialization hook up
-
-// DOM2
-if ( typeof window.addEventListener != "undefined" )
- window.addEventListener( "load", setupAllTabs, false );
-
-// IE
-else if ( typeof window.attachEvent != "undefined" )
- window.attachEvent( "onload", setupAllTabs );
-
-else {
- if ( window.onload != null ) {
- var oldOnload = window.onload;
- window.onload = function ( e ) {
- oldOnload( e );
- setupAllTabs();
- };
- }
- else
- window.onload = setupAllTabs;
-}
+/*
+ * Tab Pane
+ *
+ * This script was created by Erik Arvidsson (erik(at)eae.net)
+ * for WebFX (http://webfx.eae.net)
+ * Copyright 2002
+ *
+ * For usage see license at http://webfx.eae.net/license.html
+ *
+ * Version: 1.0
+ * Created: 2002-01-?? First working version
+ * Updated: 2002-02-17 Cleaned up for 1.0 public version
+ *
+ * Dependencies: *.css - a css file to define the layout
+ *
+ */
+
+
+// This function is used to define if the browser supports the needed
+// features
+function hasSupport() {
+
+ if (typeof hasSupport.support != "undefined")
+ return hasSupport.support;
+
+ var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
+
+ hasSupport.support = ( typeof document.implementation != "undefined" &&
+ document.implementation.hasFeature( "html", "1.0" ) || ie55 )
+
+ // IE55 has a serious DOM1 bug... Patch it!
+ if ( ie55 ) {
+ document._getElementsByTagName = document.getElementsByTagName;
+ document.getElementsByTagName = function ( sTagName ) {
+ if ( sTagName == "*" )
+ return document.all;
+ else
+ return document._getElementsByTagName( sTagName );
+ };
+ }
+
+ return hasSupport.support;
+}
+
+///////////////////////////////////////////////////////////////////////////////////
+// The constructor for tab panes
+//
+// el : HTMLElement The html element used to represent the tab pane
+// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us
+// persistance using cookies or not
+//
+function WebFXTabPane( el, bUseCookie ) {
+ if ( !hasSupport() || el == null ) return;
+
+ this.element = el;
+ this.element.tabPane = this;
+ this.pages = [];
+ this.selectedIndex = null;
+ this.useCookie = bUseCookie != null ? bUseCookie : false;
+
+ // add class name tag to class name
+ this.element.className = this.classNameTag + " " + this.element.className;
+
+ // add tab row
+ this.tabRow = document.createElement( "div" );
+ this.tabRow.className = "tab-row";
+ el.insertBefore( this.tabRow, el.firstChild );
+
+ var tabIndex = 0;
+ if ( this.useCookie ) {
+ tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) );
+ if ( isNaN( tabIndex ) )
+ tabIndex = 0;
+ }
+
+ this.selectedIndex = tabIndex;
+
+ // loop through child nodes and add them
+ var cs = el.childNodes;
+ var n;
+ for (var i = 0; i < cs.length; i++) {
+ if (cs[i].nodeType == 1 && cs[i].className == "tab-page") {
+ this.addTabPage( cs[i] );
+ }
+ }
+}
+
+WebFXTabPane.prototype = {
+
+ classNameTag: "dynamic-tab-pane-control",
+
+ setSelectedIndex: function ( n ) {
+ if (this.selectedIndex != n) {
+ if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
+ this.pages[ this.selectedIndex ].hide();
+ this.selectedIndex = n;
+ this.pages[ this.selectedIndex ].show();
+
+ if ( this.useCookie )
+ WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie
+ }
+ },
+
+ getSelectedIndex: function () {
+ return this.selectedIndex;
+ },
+
+ addTabPage: function ( oElement ) {
+ if ( !hasSupport() ) return;
+
+ if ( oElement.tabPage == this ) // already added
+ return oElement.tabPage;
+
+ var n = this.pages.length;
+ var tp = this.pages[n] = new WebFXTabPage( oElement, this, n );
+ tp.tabPane = this;
+
+ // move the tab out of the box
+ this.tabRow.appendChild( tp.tab );
+
+ if ( n == this.selectedIndex )
+ tp.show();
+ else
+ tp.hide();
+
+ return tp;
+ }
+};
+
+// Cookie handling
+WebFXTabPane.setCookie = function ( sName, sValue, nDays ) {
+ var expires = "";
+ if ( nDays ) {
+ var d = new Date();
+ d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
+ expires = "; expires=" + d.toGMTString();
+ }
+
+ document.cookie = sName + "=" + sValue + expires + "; path=/";
+};
+
+WebFXTabPane.getCookie = function (sName) {
+ var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
+ var res = re.exec( document.cookie );
+ return res != null ? res[3] : null;
+};
+
+WebFXTabPane.removeCookie = function ( name ) {
+ setCookie( name, "", -1 );
+};
+
+
+
+
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////////
+// The constructor for tab pages. This one should not be used.
+// Use WebFXTabPage.addTabPage instead
+//
+// el : HTMLElement The html element used to represent the tab pane
+// tabPane : WebFXTabPane The parent tab pane
+// nindex : Number The index of the page in the parent pane page array
+//
+function WebFXTabPage( el, tabPane, nIndex ) {
+ if ( !hasSupport() || el == null ) return;
+
+ this.element = el;
+ this.element.tabPage = this;
+ this.index = nIndex;
+
+ var cs = el.childNodes;
+ for (var i = 0; i < cs.length; i++) {
+ if (cs[i].nodeType == 1 && cs[i].className == "tab") {
+ this.tab = cs[i];
+ break;
+ }
+ }
+
+ // insert a tag around content to support keyboard navigation
+ var a = document.createElement( "A" );
+ a.href = "javascript:void 0;";
+ while ( this.tab.hasChildNodes() )
+ a.appendChild( this.tab.firstChild );
+ this.tab.appendChild( a );
+
+
+ anchor = '';
+ if ( document.URL.indexOf( '#' ) != -1 ) {
+ anchor = document.URL.substr( document.URL.indexOf( '#' ) + 1);
+ }
+ j = 0;
+ if ( anchor.length > 0 ) {
+ finalList = new Array();
+ listOfAnchors = el.getElementsByTagName('A');
+ for (i=0; i<listOfAnchors.length; i++) {
+ if (listOfAnchors[i].name.length) {
+ finalList[j++] = listOfAnchors[i].name;
+ }
+ }
+ for(i=0; i<finalList.length; i++) {
+ if ( anchor == finalList[i] ) {
+ if (tabPane.selectedIndex != nIndex) tabPane.pages[ tabPane.selectedIndex ].hide();
+ tabPane.selectedIndex = nIndex ;
+ }
+ }
+ }
+
+ // hook up events, using DOM0
+ var oThis = this;
+ this.tab.onclick = function () { oThis.select(); };
+ this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis ); };
+ this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis ); };
+}
+
+WebFXTabPage.prototype = {
+ show: function () {
+ var el = this.tab;
+ var s = el.className + " selected";
+ s = s.replace(/ +/g, " ");
+ el.className = s;
+
+ //this.element.style.display = "block";
+ this.element.style.visibility = "visible";
+ },
+
+ hide: function () {
+ var el = this.tab;
+ var s = el.className;
+ s = s.replace(/ selected/g, "");
+ el.className = s;
+
+ this.element.style.visibility = "hidden";
+ },
+
+ select: function () {
+ this.tabPane.setSelectedIndex( this.index );
+ }
+};
+
+WebFXTabPage.tabOver = function ( tabpage ) {
+ var el = tabpage.tab;
+ var s = el.className + " hover";
+ s = s.replace(/ +/g, " ");
+ el.className = s;
+};
+
+WebFXTabPage.tabOut = function ( tabpage ) {
+ var el = tabpage.tab;
+ var s = el.className;
+ s = s.replace(/ hover/g, "");
+ el.className = s;
+};
+
+
+// This function initializes all uninitialized tab panes and tab pages
+function setupAllTabs() {
+ if ( !hasSupport() ) return;
+
+ var all = document.getElementsByTagName( "*" );
+ var l = all.length;
+ var tabPaneRe = /tab\-pane/;
+ var tabPageRe = /tab\-page/;
+ var cn, el;
+ var parentTabPane;
+
+ for ( var i = 0; i < l; i++ ) {
+ el = all[i]
+ cn = el.className;
+
+ // no className
+ if ( cn == "" ) continue;
+
+ // uninitiated tab pane
+ if ( tabPaneRe.test( cn ) && !el.tabPane )
+ new WebFXTabPane( el );
+
+ // unitiated tab page wit a valid tab pane parent
+ else if ( tabPageRe.test( cn ) && !el.tabPage &&
+ tabPaneRe.test( el.parentNode.className ) ) {
+ el.parentNode.tabPane.addTabPage( el );
+ }
+ }
+}
+
+
+// initialization hook up
+
+// DOM2
+if ( typeof window.addEventListener != "undefined" )
+ window.addEventListener( "load", setupAllTabs, false );
+
+// IE
+else if ( typeof window.attachEvent != "undefined" )
+ window.attachEvent( "onload", setupAllTabs );
+
+else {
+ if ( window.onload != null ) {
+ var oldOnload = window.onload;
+ window.onload = function ( e ) {
+ oldOnload( e );
+ setupAllTabs();
+ };
+ }
+ else
+ window.onload = setupAllTabs;
+}
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/includes/utilities.php b/libs/PhpDocumentor-1.3.2/docbuilder/includes/utilities.php
index cbf2b89f1c..65f0b8c176 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/includes/utilities.php
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/includes/utilities.php
@@ -1,216 +1,216 @@
-<?php
-/**
- * phpDocumentor :: docBuilder Web Interface
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @author Andrew Eddie
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2003-2006 Andrew Eddie, Greg Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- */
-
-if ('@DATA-DIR@' != '@'.'DATA-DIR@')
-{
- include_once('PhpDocumentor/HTML_TreeMenu-1.1.2/TreeMenu.php');
-} else {
- include_once(dirname(realpath(__FILE__))."/../../HTML_TreeMenu-1.1.2/TreeMenu.php");
-}
-
-/**
- * Allows png's with alpha transparency to be displayed in IE 6
- * @param string $src path to the source image
- * @param int $wid width on the image [optional]
- * @param int $hgt height on the image [optional]
- * @param string $alt hover text for the image [optional]
- */
-function showImage( $src, $wid='', $hgt='', $alt='' ) {
- if (strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0' ) !== false) {
- return "<div style=\"height:{$hgt}px; width:{$wid}px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='$src', sizingMethod='scale');\" ></div>";
- } else {
- return "<img src=\"$src\" width=\"$wid\" height=\"$hgt\" alt=\"$alt\" border=\"0\" />";
- }
-}
-
-/**
- * Returns a select box based on an key,value array where selected is based on key
- * @param array $arr array of the key-text pairs
- * @param string $select_name The name of the select box
- * @param string $select_attribs Additional attributes to insert into the html select tag
- * @param string $selected The key value of the selected eleme
- */
-function htmlArraySelect( &$arr, $select_name, $select_attribs, $selected ) {
- GLOBAL $AppUI;
- reset( $arr );
- $s = "\n<select name=\"$select_name\" $select_attribs>";
- foreach ($arr as $k => $v ) {
- $s .= "\n\t<option value=\"".$k."\"".($k == $selected ? " selected=\"selected\"" : '').">" . $v . "</option>";
- }
- $s .= "\n</select>\n";
- return $s;
-}
-
-function getDir($path,&$node) {
- global $pd;
- if (!$dir = opendir($path)) return;
-
- $node = new HTML_TreeNode(array('text' => basename(realpath($path)), 'link' => "", 'icon' => 'folder.gif'));
- while (($file = readdir($dir)) !== false)
- {
- if ($file != '.' && $file != '..')
- {
- if (is_dir("$path$pd$file") && !is_link("$path$pd$file"))
- {
- $entry[] = "$path$pd$file";
- }
- }
- }
- closedir($dir);
- for($i = 0; $i < count($entry); $i++)
- {
- $node->addItem(new HTML_TreeNode(array('text'=>basename(realpath($entry[$i])), 'link' => "javascript:setHelp('".addslashes(realpath($entry[$i]))."');", 'icon' => 'folder.gif')));
- }
-}
-
-function recurseDir($path, &$node) {
- global $pd;
- if (!$dir = opendir($path)) {
- return false;
- }
- $anode = new HTML_TreeNode(array('text' => basename($path), 'link' => "javascript:setHelpVal('".$path."');", 'icon' => 'folder.gif'));
- $result = addslashes(realpath(stripslashes($path).$pd.".."));
- if (!$node) $anode->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif'),'..');
- while (($file = readdir($dir)) !== false) {
- if ($file != '.' && $file != '..') {
- if (is_dir("$path$pd$file")) {
- recurseDir("$path$pd$file",$anode);
- }
- }
- }
- rewinddir($dir);//
- while (false){//($file = readdir($dir)) !== false) {
- if ($file != '.' && $file != '..') {
- if (is_file("$path$pd$file")) {
- $anode->addItem(new DirNode($file,"javascript:setHelpVal('$path$pd$file');",'branchtop.gif',"$path$pd$file"));
- }
- }
- }
- if (!$node) $node = $anode;
- else
- $node->addItem($anode);
- closedir($dir);
-}
-
-function switchDirTree($path, &$node)
-{
- global $pd;
-
- // initialize recursion simulation values
- // array format: path => &parent in $node itemlist
- $parent = array();
- $parent_indexes = array();
- $parenti = 1;
-
- $node = new DirNode(basename($path),"javascript:setHelpVal('".$path."');",'folder.gif',$path);
- $result = addslashes(realpath($path.$pd.".."));
- $node->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif','..'));
- $rnode = &$node;
- $parent[realpath($path)] = false;
- $recur = 0;
- do
- {
- if ($recur++ > 120) return;
- if (!$dir = @opendir($path)) {
- // no child files or directories
-// echo "$path no child files or directories return to ";
- $rnode = &$parent[realpath($path)];
- $path = $rnode->path;
- if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
-// echo "$path parenti $parenti<br>";
- }
-// fancy_debug($path,$parent_indexes);
-// vdump_par($parent);
- if (!isset($parent_indexes[realpath($path)]))
- {
- $file = readdir($dir);
- while ($file !== false) {
- if ($file != '.' && $file != '..') {
- if (@is_dir(realpath("$path$pd$file"))) {
- if (!isset($parent_indexes[realpath($path)])) $parent_indexes[realpath($path)] = true;
- $parent[realpath("$path$pd$file")] = &$rnode;
-// echo "<br>adding new ".addslashes(realpath($path.$pd.$file))." to $path<br>";
- $rnode->addItem(new DirNode(addslashes(realpath("$path$pd$file")),"javascript:setHelpVal('".addslashes(realpath($path.$pd.$file))."');",'folder.gif',addslashes(realpath($path.$pd.$file))));
- }
- }
- $file = readdir($dir);
- }
- }
- // go down the tree if possible
- if (isset($parent_indexes[realpath($path)]))
- {
- if ($parenti + 1 > (count($rnode->items)))
- {
- // no more children, go back up to parent
-// echo "$path no more children, go back up to parent ";
- $rnode = &$parent[realpath($path)];
- $path = $rnode->path;
- if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
-// echo $path." parenti $parenti<br>";
- } else
- {
- // go to next child
-// echo "$path go to next child ";
- $parent_indexes[realpath($path)] = $parenti+1;
-// debug("set parent ".$rnode->items[$parenti]->path." = ".$rnode->path.'<br>');
- $parent[realpath($rnode->items[$parenti]->path)] = &$rnode;
- $rnode = &$rnode->items[$parenti];
- $path = $rnode->path;
-// echo "$path<br>";
- $parenti = 0;
- }
- } else
- {
- // no children, go back up the tree to the next child
-// echo "$path no children, go back up to parent ";
- $rnode = &$parent[realpath($path)];
- $path = $rnode->path;
- if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
-// echo "$path parenti $parenti<br>";
- }
- @closedir($dir);
- } while ($path && (($parenti < (count($rnode->items))) || ($parent[realpath($path)] !== false)));
-}
-
-function vdump_par($tree)
-{
- foreach($tree as $key => $val)
- {
- if ($val === false)
- debug($key.' -> false<br>');
- else
- debug($key.' -> ' .$val->path.'<br>');
- }
- debug('<br>');
-}
+<?php
+/**
+ * phpDocumentor :: docBuilder Web Interface
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @author Andrew Eddie
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2003-2006 Andrew Eddie, Greg Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ */
+
+if ('@DATA-DIR@' != '@'.'DATA-DIR@')
+{
+ include_once('PhpDocumentor/HTML_TreeMenu-1.1.2/TreeMenu.php');
+} else {
+ include_once(dirname(realpath(__FILE__))."/../../HTML_TreeMenu-1.1.2/TreeMenu.php");
+}
+
+/**
+ * Allows png's with alpha transparency to be displayed in IE 6
+ * @param string $src path to the source image
+ * @param int $wid width on the image [optional]
+ * @param int $hgt height on the image [optional]
+ * @param string $alt hover text for the image [optional]
+ */
+function showImage( $src, $wid='', $hgt='', $alt='' ) {
+ if (strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0' ) !== false) {
+ return "<div style=\"height:{$hgt}px; width:{$wid}px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='$src', sizingMethod='scale');\" ></div>";
+ } else {
+ return "<img src=\"$src\" width=\"$wid\" height=\"$hgt\" alt=\"$alt\" border=\"0\" />";
+ }
+}
+
+/**
+ * Returns a select box based on an key,value array where selected is based on key
+ * @param array $arr array of the key-text pairs
+ * @param string $select_name The name of the select box
+ * @param string $select_attribs Additional attributes to insert into the html select tag
+ * @param string $selected The key value of the selected eleme
+ */
+function htmlArraySelect( &$arr, $select_name, $select_attribs, $selected ) {
+ GLOBAL $AppUI;
+ reset( $arr );
+ $s = "\n<select name=\"$select_name\" $select_attribs>";
+ foreach ($arr as $k => $v ) {
+ $s .= "\n\t<option value=\"".$k."\"".($k == $selected ? " selected=\"selected\"" : '').">" . $v . "</option>";
+ }
+ $s .= "\n</select>\n";
+ return $s;
+}
+
+function getDir($path,&$node) {
+ global $pd;
+ if (!$dir = opendir($path)) return;
+
+ $node = new HTML_TreeNode(array('text' => basename(realpath($path)), 'link' => "", 'icon' => 'folder.gif'));
+ while (($file = readdir($dir)) !== false)
+ {
+ if ($file != '.' && $file != '..')
+ {
+ if (is_dir("$path$pd$file") && !is_link("$path$pd$file"))
+ {
+ $entry[] = "$path$pd$file";
+ }
+ }
+ }
+ closedir($dir);
+ for($i = 0; $i < count($entry); $i++)
+ {
+ $node->addItem(new HTML_TreeNode(array('text'=>basename(realpath($entry[$i])), 'link' => "javascript:setHelp('".addslashes(realpath($entry[$i]))."');", 'icon' => 'folder.gif')));
+ }
+}
+
+function recurseDir($path, &$node) {
+ global $pd;
+ if (!$dir = opendir($path)) {
+ return false;
+ }
+ $anode = new HTML_TreeNode(array('text' => basename($path), 'link' => "javascript:setHelpVal('".$path."');", 'icon' => 'folder.gif'));
+ $result = addslashes(realpath(stripslashes($path).$pd.".."));
+ if (!$node) $anode->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif'),'..');
+ while (($file = readdir($dir)) !== false) {
+ if ($file != '.' && $file != '..') {
+ if (is_dir("$path$pd$file")) {
+ recurseDir("$path$pd$file",$anode);
+ }
+ }
+ }
+ rewinddir($dir);//
+ while (false){//($file = readdir($dir)) !== false) {
+ if ($file != '.' && $file != '..') {
+ if (is_file("$path$pd$file")) {
+ $anode->addItem(new DirNode($file,"javascript:setHelpVal('$path$pd$file');",'branchtop.gif',"$path$pd$file"));
+ }
+ }
+ }
+ if (!$node) $node = $anode;
+ else
+ $node->addItem($anode);
+ closedir($dir);
+}
+
+function switchDirTree($path, &$node)
+{
+ global $pd;
+
+ // initialize recursion simulation values
+ // array format: path => &parent in $node itemlist
+ $parent = array();
+ $parent_indexes = array();
+ $parenti = 1;
+
+ $node = new DirNode(basename($path),"javascript:setHelpVal('".$path."');",'folder.gif',$path);
+ $result = addslashes(realpath($path.$pd.".."));
+ $node->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif','..'));
+ $rnode = &$node;
+ $parent[realpath($path)] = false;
+ $recur = 0;
+ do
+ {
+ if ($recur++ > 120) return;
+ if (!$dir = @opendir($path)) {
+ // no child files or directories
+// echo "$path no child files or directories return to ";
+ $rnode = &$parent[realpath($path)];
+ $path = $rnode->path;
+ if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
+// echo "$path parenti $parenti<br>";
+ }
+// fancy_debug($path,$parent_indexes);
+// vdump_par($parent);
+ if (!isset($parent_indexes[realpath($path)]))
+ {
+ $file = readdir($dir);
+ while ($file !== false) {
+ if ($file != '.' && $file != '..') {
+ if (@is_dir(realpath("$path$pd$file"))) {
+ if (!isset($parent_indexes[realpath($path)])) $parent_indexes[realpath($path)] = true;
+ $parent[realpath("$path$pd$file")] = &$rnode;
+// echo "<br>adding new ".addslashes(realpath($path.$pd.$file))." to $path<br>";
+ $rnode->addItem(new DirNode(addslashes(realpath("$path$pd$file")),"javascript:setHelpVal('".addslashes(realpath($path.$pd.$file))."');",'folder.gif',addslashes(realpath($path.$pd.$file))));
+ }
+ }
+ $file = readdir($dir);
+ }
+ }
+ // go down the tree if possible
+ if (isset($parent_indexes[realpath($path)]))
+ {
+ if ($parenti + 1 > (count($rnode->items)))
+ {
+ // no more children, go back up to parent
+// echo "$path no more children, go back up to parent ";
+ $rnode = &$parent[realpath($path)];
+ $path = $rnode->path;
+ if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
+// echo $path." parenti $parenti<br>";
+ } else
+ {
+ // go to next child
+// echo "$path go to next child ";
+ $parent_indexes[realpath($path)] = $parenti+1;
+// debug("set parent ".$rnode->items[$parenti]->path." = ".$rnode->path.'<br>');
+ $parent[realpath($rnode->items[$parenti]->path)] = &$rnode;
+ $rnode = &$rnode->items[$parenti];
+ $path = $rnode->path;
+// echo "$path<br>";
+ $parenti = 0;
+ }
+ } else
+ {
+ // no children, go back up the tree to the next child
+// echo "$path no children, go back up to parent ";
+ $rnode = &$parent[realpath($path)];
+ $path = $rnode->path;
+ if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
+// echo "$path parenti $parenti<br>";
+ }
+ @closedir($dir);
+ } while ($path && (($parenti < (count($rnode->items))) || ($parent[realpath($path)] !== false)));
+}
+
+function vdump_par($tree)
+{
+ foreach($tree as $key => $val)
+ {
+ if ($val === false)
+ debug($key.' -> false<br>');
+ else
+ debug($key.' -> ' .$val->path.'<br>');
+ }
+ debug('<br>');
+}
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/docbuilder/top.php b/libs/PhpDocumentor-1.3.2/docbuilder/top.php
index 1b2d9bae55..0562d64f12 100755
--- a/libs/PhpDocumentor-1.3.2/docbuilder/top.php
+++ b/libs/PhpDocumentor-1.3.2/docbuilder/top.php
@@ -1,89 +1,89 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<?php
-/**
- * phpDocumentor :: docBuilder Web Interface
- *
- * Advanced Web Interface to phpDocumentor
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @author Andrew Eddie
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2003-2006 Andrew Eddie, Greg Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @see phpdoc.php
- */
-if ('@DATA-DIR@' != '@'.'DATA-DIR@')
-{
- include_once( "PhpDocumentor/phpDocumentor/common.inc.php");
-} else {
- $path = dirname(dirname(__FILE__));
- include_once( "$path/phpDocumentor/common.inc.php");
-}
-//
-// +------------------------------------------------------------------------+
-// | phpDocumentor :: docBuilder Web Interface |
-// +------------------------------------------------------------------------+
-// | Copyright (c) 2003 Andrew Eddie, Greg Beaver |
-// +------------------------------------------------------------------------+
-// | This source file is subject to version 3.00 of the PHP License, |
-// | that is available at http://www.php.net/license/3_0.txt. |
-// | If you did not receive a copy of the PHP license and are unable to |
-// | obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +------------------------------------------------------------------------+
-//
-?>
-<html>
-<head>
- <title>
- Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
- </title>
- <style type="text/css">
- body, td, th {
- font-family: verdana,sans-serif;
- font-size: 10pt;
- }
- .title {
- font-size: 12pt;
- }
- </style>
-</head>
-
-<body bgcolor="#0099cc" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
-
-<table width="100%" cellspacing="0" cellpadding="0">
-<tr>
- <td bgcolor="#0099cc" height="35" width="100" nowrap="nowrap">
- <img src="../poweredbyphpdoc.gif" alt="" width="88" height="31" border="0" alt="" />
- </td>
- <td bgcolor="#0099cc" width="100%">
- <span class="title"><strong>docBuilder</strong> :: phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?> Web Interface</span>
- </td>
-</tr>
-</table>
-
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<?php
+/**
+ * phpDocumentor :: docBuilder Web Interface
+ *
+ * Advanced Web Interface to phpDocumentor
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2003-2006 Andrew Eddie, Greg Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @author Andrew Eddie
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2003-2006 Andrew Eddie, Greg Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @see phpdoc.php
+ */
+if ('@DATA-DIR@' != '@'.'DATA-DIR@')
+{
+ include_once( "PhpDocumentor/phpDocumentor/common.inc.php");
+} else {
+ $path = dirname(dirname(__FILE__));
+ include_once( "$path/phpDocumentor/common.inc.php");
+}
+//
+// +------------------------------------------------------------------------+
+// | phpDocumentor :: docBuilder Web Interface |
+// +------------------------------------------------------------------------+
+// | Copyright (c) 2003 Andrew Eddie, Greg Beaver |
+// +------------------------------------------------------------------------+
+// | This source file is subject to version 3.00 of the PHP License, |
+// | that is available at http://www.php.net/license/3_0.txt. |
+// | If you did not receive a copy of the PHP license and are unable to |
+// | obtain it through the world-wide-web, please send a note to |
+// | license@php.net so we can mail you a copy immediately. |
+// +------------------------------------------------------------------------+
+//
+?>
+<html>
+<head>
+ <title>
+ Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
+ </title>
+ <style type="text/css">
+ body, td, th {
+ font-family: verdana,sans-serif;
+ font-size: 10pt;
+ }
+ .title {
+ font-size: 12pt;
+ }
+ </style>
+</head>
+
+<body bgcolor="#0099cc" topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
+
+<table width="100%" cellspacing="0" cellpadding="0">
+<tr>
+ <td bgcolor="#0099cc" height="35" width="100" nowrap="nowrap">
+ <img src="../poweredbyphpdoc.gif" alt="" width="88" height="31" border="0" alt="" />
+ </td>
+ <td bgcolor="#0099cc" width="100%">
+ <span class="title"><strong>docBuilder</strong> :: phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?> Web Interface</span>
+ </td>
+</tr>
+</table>
+
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/new_phpdoc.php b/libs/PhpDocumentor-1.3.2/new_phpdoc.php
index e4adea90c5..9516424344 100755
--- a/libs/PhpDocumentor-1.3.2/new_phpdoc.php
+++ b/libs/PhpDocumentor-1.3.2/new_phpdoc.php
@@ -1,662 +1,662 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<?php
-/**
- * Advanced Web Interface to phpDocumentor
- * @see phpdoc.php
- * @package phpDocumentor
- * @deprecated in favor of docbuilder (see {@link docbuilder/config.php})
- * @filesource
- */
-//
-//
-// An HTML interface for Joshua Eichorn's phpDocumentor
-// Author: Juan Pablo Morales <ju-moral@uniandes.edu.co>
-// Joshua Eichorn <jeichorn@phpdoc.org>
-// Gregory Beaver <cellog@users.sourceforge.net>
-//
-// phpDocumentor, a program for creating javadoc style documentation from php code
-// Copyright (C) 2000-2002 Joshua Eichorn
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-//
-// Copyleft 2001 Juan Pablo Morales
-
-if (!function_exists('version_compare'))
-{
- print "phpDocumentor requires PHP version 4.1.0 or greater to function";
- exit;
-}
-
-// set up include path so we can find all files, no matter what
-$GLOBALS['_phpDocumentor_install_dir'] = dirname(realpath(__FILE__));
-// add my directory to the include path, and make it first, should fix any errors
-if (substr(PHP_OS, 0, 3) == 'WIN')
-ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
-else
-ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
-
-/**
-* common file information
-*/
-include_once("phpDocumentor/common.inc.php");
-
-// find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
-$ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
-if (isset($ini['_phpDocumentor_options']['userdir']))
- $configdir = $ini['_phpDocumentor_options']['userdir'];
-else
- $configdir = $_phpDocumentor_install_dir . '/user';
-
-// allow the user to change this at runtime
-if (!empty($_REQUEST['altuserdir'])) $configdir = $_REQUEST['altuserdir'];
-?>
-<html>
- <head>
- <title>
- Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
- </title>
- <?php
- if(!isset($_GET['submit']) || !empty($_REQUEST['altuserdir'])) {
-?>
-<script src="HTML_TreeMenu-1.1.2/TreeMenu.js" language="JavaScript" type="text/javascript"></script>
- <?php
- include_once('HTML_TreeMenu-1.1.2/TreeMenu.php');
- set_time_limit(0); // six minute timeout
- ini_set("memory_limit","256M");
- /**
- * Directory Node
- * @package HTML_TreeMenu
- */
- class DirNode extends HTML_TreeNode
- {
- /**
- * full path to this node
- * @var string
- */
- var $path;
-
- function DirNode($text = false, $link = false, $icon = false, $path, $events = array())
- {
- $this->path = $path;
- $options = array();
- if ($text) $options['text'] = $text;
- if ($link) $options['link'] = $link;
- if ($icon) $options['icon'] = $icon;
- HTML_TreeNode::HTML_TreeNode($options,$events);
- }
- }
-
- function getDir($path,&$node)
- {
- global $pd;
- if (!$dir = opendir($path)) return;
-
- $node = new HTML_TreeNode(array('text' => basename(realpath($path)), 'link' => "", 'icon' => 'folder.gif'));
- while (($file = readdir($dir)) !== false)
- {
- if ($file != '.' && $file != '..')
- {
- if (is_dir("$path$pd$file") && !is_link("$path$pd$file"))
- {
- $entry[] = "$path$pd$file";
- }
- }
- }
- closedir($dir);
- for($i = 0; $i < count($entry); $i++)
- {
- $node->addItem(new HTML_TreeNode(array('text'=>basename(realpath($entry[$i])), 'link' => "javascript:setHelp('".addslashes(realpath($entry[$i]))."');", 'icon' => 'folder.gif')));
- }
- }
-
- function recurseDir($path, &$node) {
- global $pd;
- if (!$dir = opendir($path)) {
- return false;
- }
- $anode = new HTML_TreeNode(array('text' => basename($path), 'link' => "javascript:setHelpVal('".$path."');", 'icon' => 'folder.gif'));
- $result = addslashes(realpath(stripslashes($path).$pd.".."));
- if (!$node) $anode->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif'),'..');
- while (($file = readdir($dir)) !== false) {
- if ($file != '.' && $file != '..') {
- if (is_dir("$path$pd$file")) {
- recurseDir("$path$pd$file",$anode);
- }
- }
- }
- rewinddir($dir);//
- while (false){//($file = readdir($dir)) !== false) {
- if ($file != '.' && $file != '..') {
- if (is_file("$path$pd$file")) {
- $anode->addItem(new DirNode($file,"javascript:setHelpVal('$path$pd$file');",'branchtop.gif',"$path$pd$file"));
- }
- }
- }
- if (!$node) $node = $anode;
- else
- $node->addItem($anode);
- closedir($dir);
- }
-
- function switchDirTree($path, &$node)
- {
- global $pd;
-
- // initialize recursion simulation values
- // array format: path => &parent in $node itemlist
- $parent = array();
- $parent_indexes = array();
- $parenti = 1;
-
- $node = new DirNode(basename($path),"javascript:setHelpVal('".$path."');",'folder.gif',$path);
- $result = addslashes(realpath($path.$pd.".."));
- $node->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif','..'));
- $rnode = &$node;
- $parent[realpath($path)] = false;
- $recur = 0;
- do
- {
- if ($recur++ > 120) return;
- if (!$dir = @opendir($path)) {
- // no child files or directories
-// echo "$path no child files or directories return to ";
- $rnode = &$parent[realpath($path)];
- $path = $rnode->path;
- if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
-// echo "$path parenti $parenti<br>";
- }
-// fancy_debug($path,$parent_indexes);
-// vdump_par($parent);
- if (!isset($parent_indexes[realpath($path)]))
- {
- $file = readdir($dir);
- while ($file !== false) {
- if ($file != '.' && $file != '..') {
- if (@is_dir(realpath("$path$pd$file"))) {
- if (!isset($parent_indexes[realpath($path)])) $parent_indexes[realpath($path)] = true;
- $parent[realpath("$path$pd$file")] = &$rnode;
-// echo "<br>adding new ".addslashes(realpath($path.$pd.$file))." to $path<br>";
- $rnode->addItem(new DirNode(addslashes(realpath("$path$pd$file")),"javascript:setHelpVal('".addslashes(realpath($path.$pd.$file))."');",'folder.gif',addslashes(realpath($path.$pd.$file))));
- }
- }
- $file = readdir($dir);
- }
- }
- // go down the tree if possible
- if (isset($parent_indexes[realpath($path)]))
- {
- if ($parenti + 1 > (count($rnode->items)))
- {
- // no more children, go back up to parent
-// echo "$path no more children, go back up to parent ";
- $rnode = &$parent[realpath($path)];
- $path = $rnode->path;
- if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
-// echo $path." parenti $parenti<br>";
- } else
- {
- // go to next child
-// echo "$path go to next child ";
- $parent_indexes[realpath($path)] = $parenti+1;
-// debug("set parent ".$rnode->items[$parenti]->path." = ".$rnode->path.'<br>');
- $parent[realpath($rnode->items[$parenti]->path)] = &$rnode;
- $rnode = &$rnode->items[$parenti];
- $path = $rnode->path;
-// echo "$path<br>";
- $parenti = 0;
- }
- } else
- {
- // no children, go back up the tree to the next child
-// echo "$path no children, go back up to parent ";
- $rnode = &$parent[realpath($path)];
- $path = $rnode->path;
- if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
-// echo "$path parenti $parenti<br>";
- }
- @closedir($dir);
- } while ($path && (($parenti < (count($rnode->items))) || ($parent[realpath($path)] !== false)));
- }
-
- function vdump_par($tree)
- {
- foreach($tree as $key => $val)
- {
- if ($val === false)
- debug($key.' -> false<br>');
- else
- debug($key.' -> ' .$val->path.'<br>');
- }
- debug('<br>');
- }
-
- $menu = new HTML_TreeMenu();
- $filename = '';
- if (isset($_GET) && isset($_GET['fileName'])) $filename = $_GET['fileName'];
- $filename = realpath($filename);
- $pd = (substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/';
- $test = ($pd == '/') ? '/' : 'C:\\';
- if (empty($filename) || ($filename == $test))
- {
- $filename = ($pd == '/') ? '/' : 'C:\\';
- $node = false;
- getDir($filename,$node);
- } else
- {
- flush();
-// if ($pd != '/') $pd = $pd.$pd;
- $anode = false;
- switchDirTree($filename,$anode);
-// recurseDir($filename,$anode);
- $node = new HTML_TreeNode(array('text' => "Click to view $filename",'link' => "",'icon' => 'branchtop.gif'));
- $node->addItem($anode);
- };
- $menu->addItem($node);
- $DHTMLmenu = &new HTML_TreeMenu_DHTML($menu, array('images' => 'HTML_TreeMenu-1.1.2/images'));
- ?>
-<script type="text/javascript" language="Javascript">
-/**
- Creates some global variables
-*/
-function initializate() {
- //
- //The "platform independent" newLine
- //
- //Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
-if (navigator.appVersion.lastIndexOf('Win') != -1)
- {
- $pathdelim="\\";
- $newLine="\r\n";
- } else
- {
- $newLine="\n";
- $pathdelim="/";
- }
-/* for($a=0;$a<document.dataForm.elements.length;$a++) {
- alert("The name is '"+document.dataForm.elements[$a].name+"' "+$a);
- }
-*/
-}
-/** Sets the contents of the help box, and submits the form
-*/
-function setHelp($str)
-{
- document.helpForm.fileName.value = $str;
- document.helpForm.helpdata.click();
-}
-
-/** Sets the contents of the help box only
-*/
-function setHelpVal($str)
-{
- document.helpForm.fileName.value = $str;
-}
-/**Adds the contents of the help box as a directory
-*/
-function addDirectory($object) {
- $a = document.helpForm.fileName.value;
- $a = myReplace($a,'\\\\','\\');
- if ($a[$a.length - 1] == $pathdelim) $a = $a.substring(0, $a.length - 1);
- if ($a.lastIndexOf('.') > 0)
- {
- $a = $a.substring(0,$a.lastIndexOf($pathdelim));
- }
- $object.value = prepareString($object.value)+$a;
-}
-/**Adds the contents of the converter box to the converters list
-*/
-function addConverter($object) {
- $object.value = prepareString($object.value)+document.dataForm.ConverterSetting.value;
-}
-/**Replaces the converters list with the contents of the converter box
-*/
-function replaceConverter($object) {
- $object.value = document.dataForm.ConverterSetting.value;
-}
-/**Adds the contents of the help box as a file to the given control
-*/
-function addFile($object) {
- $a = document.helpForm.fileName.value;
- $a = myReplace($a,'\\\\','\\');
- $object.value = prepareString($object.value)+$a;
-}
-/**Takes a given string and leaves it ready to add a new string
- That is, puts the comma and the new line if needed
-*/
-function prepareString($myString) {
- //First verify that a comma is not at the end
- if($myString.lastIndexOf(",") >= $myString.length-2) {
- //We have a comma at the end
- return $myString;
- }
- if($myString.length > 0) {
- $myString+=","+$newLine;
- }
- return $myString;
-}
-/**Do the validation needed before sending the from and return a truth value indicating if the form can be sent
-*/
- function validate() {
- //Take out all newLines and change them by nothing
- //This could be done by using javascript function's replacebut that was implemented only until Navigator 4.0 and so it is better to use more backward compatible functions like substr
- document.dataForm.elements[0].value= stripNewLines(document.dataForm.elements[0].value);
- document.dataForm.elements[1].value= stripNewLines(document.dataForm.elements[1].value);
- document.dataForm.elements[2].value= stripNewLines(document.dataForm.elements[2].value);
- document.dataForm.elements[3].value= stripNewLines(document.dataForm.elements[3].value);
- document.dataForm.elements[4].value= stripNewLines(document.dataForm.elements[4].value);
- document.dataForm.elements[5].value= stripNewLines(document.dataForm.elements[5].value);
- document.dataForm.elements[6].value= stripNewLines(document.dataForm.elements[6].value);
- document.dataForm.elements[7].value= stripNewLines(document.dataForm.elements[7].value);
- //By returning true we are allowing the form to be submitted
- return true;
- }
-/**Takes a string and removes all the ocurrences of new lines
-Could have been implemented a lot easier with replace but it's not very backwards compatible
-*/
- function stripNewLines($myString) {
- return myReplace($myString,$newLine,'');
- }
- function myReplace($string,$text,$by) {
- // Replaces text with by in string
- var $strLength = $string.length, $txtLength = $text.length;
- if (($strLength == 0) || ($txtLength == 0)) return $string;
-
- var $i = $string.indexOf($text);
- if ((!$i) && ($text != $string.substring(0,$txtLength))) return $string;
- if ($i == -1) return $string;
-
- var $newstr = $string.substring(0,$i) + $by;
-
- if ($i+$txtLength < $strLength)
- $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
-
- return $newstr;
- }
-</script><?php } ?>
- </head>
- <?php
- //Find out if we are submitting and if we are, send it
- // This code originally by Joshua Eichorn on phpdoc.php
- //
- if(isset($_GET['submit']) && empty($_REQUEST['altuserdir'])) {
- echo "<body bgcolor=\"#ffffff\">";
- echo "<h1>Parsing Files ...</h1>";
- flush();
- echo "<pre>\n";
- /** phpdoc.inc */
- include("phpDocumentor/phpdoc.inc");
- echo "</pre>\n";
- echo "<h1>Operation Completed!!</h1>";
- } else
- {
- ?>
- <body bgcolor="#ffffff" onload="javascript:initializate()">
- <h1>
- phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?> Web Interface
- </h1>
- phpDocumentor written by Joshua Eichorn<br>
- Web Interface written by Juan Pablo Morales and enhanced by Greg Beaver<br>
- <img src="poweredbyphpdoc.gif" alt="" width="88" height="31" border="0">
- <table cellpadding="1" cellspacing="1" border="0" width="60%" bgcolor=
- "#000000">
- <tr>
- <td bgcolor="#ffff66">
- <b>Help</b>
- </td>
- <td bgcolor="#ffff99">
- use this to find directories and files which can be used below
- <form name="helpForm" action="<?php print $_SERVER['PHP_SELF']; ?>" method="get"
- enctype="multipart/form-data">
- <input size="80" type="text" name="fileName" value="<?php print $filename;?>">
- <input type="submit" name="helpdata" value="browse tree">
- </form>
-<div id='menuLayer'></div>
-<?php
- $DHTMLmenu->printMenu();
-?>
- </td>
- </tr>
- </table>
-
- <form name="dataForm" action="<?php print $_SERVER['PHP_SELF']; ?>" method="GET" onsubmit=
- "return validate()">
- <table cellpadding="3" cellspacing="3" border="0" width="80%"
- bgcolor="#000000">
- <tr>
- <td bgcolor="#3399ff">
- <b>Use a pre-created config file for form values.</b>
- </td>
- <td bgcolor="#CCCCCC">
- Normally, phpDocumentor uses the form values from this form to set up parsing. In version 1.2,
- phpDocumentor allows you to "save" form values in configuration files so that you can replicate
- common complicated documentation tasks with only one time. Just choose a config file below or create a
- new one and refresh this page to choose it.<hr /><b>change config directory:</b><input size="20" type="text" name="altuserdir" value=""><?php if (!empty($_REQUEST['altuserdir'])) print '<br><i>changed to <b>"'.$_REQUEST['altuserdir'].'"</b></i>'; ?>
- <b>Choose a config:</b> <select name="setting[useconfig]">
- <option value="" <?php if (empty($_REQUEST['altuserdir'])) print 'selected'; ?>>don't use config file</option>
- <?php
- $dirs = array();
- $dirs = phpDocumentor_ConfigFileList($configdir);
- $path = '';
- $sel = ' selected';
- if (!empty($_REQUEST['altuserdir'])) $path = $configdir . PATH_DELIMITER;
- else $sel = '';
- foreach($dirs as $configfile)
- {
- print '<option value="'.$path.$configfile.'"'.$sel.'>'.$configfile.".ini</option>\n";
- $sel = '';
- }
- ?>
- </select><input type="SUBMIT" value=
- "Go" name="submitButton"><br>
- </td>
- </tr>
- </tr>
- <td bgcolor="#66cc66">
- <b>Target</b>
- </td>
- <td bgcolor="#eeeeee">
- Target is the directory where
- the output produced by phpDocumentor will reside<br>
- <input type="TEXT" name="setting[target]" size=
- "80"><br>
- <a href=
- "javascript:addDirectory(document.dataForm.elements[3])">
- Add the directory in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#3399ff">
- <b>Files to parse</b>
- </td>
- <td bgcolor="#CCCCCC">
- This is a group of comma-separated names of php files
- or tutorials that will be processed by phpDocumentor.<br>
-<textarea rows="6" cols="80" name=
-"setting[filename]"></textarea> <br>
- <a href=
- "javascript:addFile(document.dataForm.elements[4])">
- Add the file in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#66cc66">
- <b>Directory to parse</b>
- </td>
- <td bgcolor="#eeeeee">
- This is a group of comma-separated directories where php files
- or tutorials are found that will be processed by phpDocumentor.
- phpDocumentor automatically parses subdirectories<br>
-<textarea rows="6" cols="80" name="setting[directory]"></textarea> <br>
- <a href=
- "javascript:addDirectory(document.dataForm.elements[5])">
- Add the directory in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#66cc66">
- <b>Files to ignore</b>
- </td>
- <td bgcolor="#eeeeee">
- A list of files (full path or filename), and patterns
- to ignore. Patterns may use wildcards * and ?. To
- ignore all subdirectories named "test" for example,
- using "test/" To ignore all files and directories
- with test in their name use "*test*"
-<textarea rows="6" cols="80" name="setting[ignore]"></textarea> <br>
- <a href=
- "javascript:addDirectory(document.dataForm.elements[6])">
- Add the directory in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#66cc66">
- <b>Generated Documentation Title</b>
- </td>
- <td bgcolor="#eeeeee">
- Choose a title for the generated documentation<br>
- <input type="TEXT" name="setting[title]" size=
- "80" value="Generated Documentation"><br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#3399ff">
- <b>Default Package Name</b>
- </td>
- <td bgcolor="#cccccc">
- Choose a name for the default package<br>
- <input type="TEXT" name="setting[defaultpackagename]" size=
- "80" value="default"><br>
- </td>
- <tr>
- <tr>
- <td bgcolor="#3399ff">
- <b>Custom Tags</b>
- </td>
- <td bgcolor="#CCCCCC">
- Custom Tags is a comma-separated list of tags
- you want phpDocumentor to include as valid tags
- in this parse. An example would be "value, size"
- to allow @value and @size tags.
- <input type="TEXT" name="setting[customtags]" size=
- "80"><br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#66cc66">
- <b>Packages to parse</b>
- </td>
- <td bgcolor="#eeeeee">
- The parameter packages is a group of comma
- separated names of abstract packages that will
- be processed by phpDocumentor. All package names must be
- separated by commas.<br>
-<textarea rows="3" cols="80" name=
-"setting[packageoutput]"></textarea> <br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#3399ff">
- <b>Output Information</b>
- </td>
- <td bgcolor="#CCCCCC">
- <br>
- Outputformat
- may be HTML, XML, PDF, or CHM (case-sensitive) in version 1.2. There is only one Converter
- for both CHM and PDF, <b>default</b>. There are 2 HTML Converters,
- <b>frames</b> and <b>Smarty</b>. <b>frames templates</b> may be any of:<br><br>
- <b>default, l0l33t, phpdoc.de, phphtmllib, phpedit, DOM/default, DOM/l0l33t, or DOM/phpdoc.de</b>.
- <b>Smarty templates</b> may be any of:<br><br>
- <b>default or PHP</b>.<br>
-<br>
-There is only 1 template for all other Converters, <b>default</b>
-<br>Output type:Converter name:template name <input type=
- "TEXT" name="setting[output]" value=
- "HTML:Smarty:default" size="80"><br>
-<select name="ConverterSetting">
-<option value="HTML:frames:default">HTML:frames:default</option>
-<option value="HTML:frames:l0l33t">HTML:frames:l0l33t</option>
-<option value="HTML:frames:phpdoc.de">HTML:frames:phpdoc.de</option>
-<option value="HTML:frames:phphtmllib">HTML:frames:phphtmllib</option>
-<option value="HTML:frames:phpedit">HTML:frames:phpedit</option>
-<option value="HTML:frames:DOM/default">HTML:frames:DOM/default</option>
-<option value="HTML:frames:DOM/l0l33t">HTML:frames:DOM/l0l33t</option>
-<option value="HTML:frames:DOM/phpdoc.de">HTML:frames:DOM/phpdoc.de</option>
-<option value="HTML:Smarty:default" SELECTED>HTML:Smarty:default</option>
-<option value="PDF:default:default">PDF:default:default</option>
-<option value="CHM:default:default">CHM:default:default</option>
-<option value="XML:DocBook/peardoc2:default">XML:DocBook/peardoc2:default</option>
-</select><br>
-<a href=
- "javascript:addConverter(document.dataForm.elements[11])">
- Add the converter in the help box</a> <br>
-<a href=
- "javascript:replaceConverter(document.dataForm.elements[11])">
- Use ONLY the converter in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#3399ff">
- <b>Parse @access private</b>
- </td>
- <td bgcolor="#CCCCCC">
- The parameter Parse @access private tells phpDocumentor
- whether to parse elements with an "@access private" tag in their docblock<br>
- <input type="checkbox" name="setting[parseprivate]" value="on">Parse private <br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#66cc66">
- <b>JavaDoc-compliant Description parsing.</b>
- </td>
- <td bgcolor="#eeeeee">
- Normally, phpDocumentor uses several rules to determine the short description. This switch
- asks phpDocumentor to simply search for the first period (.) and use it to delineate the short
- description. In addition, the short description will not be separated from the long description<br>
- <input type="checkbox" name="setting[javadocdesc]" value="on">JavaDoc-compliant Description <br>
- </td>
- </tr>
- </table>
- <input type="HIDDEN" name="interface" value="web"> <input type=
- "HIDDEN" name="submit" value="true"> <input type="SUBMIT" value=
- "Create Documentation" name="submitButton">
- </form>
- <br>
- <br>
- <br>
- <p>
- Joshua Eichorn <a href="mailto:jeichorn@phpdoc.org">jeichorn@phpdoc.org</a><br>
- Juan Pablo Morales <a href=
- "mailto:ju-moral@uniandes.edu.co">ju-moral@uniandes.edu.co</a><br>
- Gregory Beaver <a href=
- "mailto:cellog@users.sourceforge.net">cellog@users.sourceforge.net</a>
- </p>
- <p>
- If you have any problems with phpDocumentor, please visit the website: <a
- href='http://phpdocu.sourceforge.net'>phpdocu.sourceforge.net</a> and
- submit a bug
- </p>
- <!-- Created: Tue Jun 26 18:52:40 MEST 2001 -->
- <!-- hhmts start -->
-<pre>
-Last modified: $Date: 2005/10/17 18:15:16 $
-Revision: $Revision: 1.1 $
-</pre>
- <!-- hhmts end -->
- <?php } //End the else that prints all code
- ?>
- </body>
-</html>
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<?php
+/**
+ * Advanced Web Interface to phpDocumentor
+ * @see phpdoc.php
+ * @package phpDocumentor
+ * @deprecated in favor of docbuilder (see {@link docbuilder/config.php})
+ * @filesource
+ */
+//
+//
+// An HTML interface for Joshua Eichorn's phpDocumentor
+// Author: Juan Pablo Morales <ju-moral@uniandes.edu.co>
+// Joshua Eichorn <jeichorn@phpdoc.org>
+// Gregory Beaver <cellog@users.sourceforge.net>
+//
+// phpDocumentor, a program for creating javadoc style documentation from php code
+// Copyright (C) 2000-2002 Joshua Eichorn
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+//
+// Copyleft 2001 Juan Pablo Morales
+
+if (!function_exists('version_compare'))
+{
+ print "phpDocumentor requires PHP version 4.1.0 or greater to function";
+ exit;
+}
+
+// set up include path so we can find all files, no matter what
+$GLOBALS['_phpDocumentor_install_dir'] = dirname(realpath(__FILE__));
+// add my directory to the include path, and make it first, should fix any errors
+if (substr(PHP_OS, 0, 3) == 'WIN')
+ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
+else
+ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
+
+/**
+* common file information
+*/
+include_once("phpDocumentor/common.inc.php");
+
+// find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+$ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
+if (isset($ini['_phpDocumentor_options']['userdir']))
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+else
+ $configdir = $_phpDocumentor_install_dir . '/user';
+
+// allow the user to change this at runtime
+if (!empty($_REQUEST['altuserdir'])) $configdir = $_REQUEST['altuserdir'];
+?>
+<html>
+ <head>
+ <title>
+ Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
+ </title>
+ <?php
+ if(!isset($_GET['submit']) || !empty($_REQUEST['altuserdir'])) {
+?>
+<script src="HTML_TreeMenu-1.1.2/TreeMenu.js" language="JavaScript" type="text/javascript"></script>
+ <?php
+ include_once('HTML_TreeMenu-1.1.2/TreeMenu.php');
+ set_time_limit(0); // six minute timeout
+ ini_set("memory_limit","256M");
+ /**
+ * Directory Node
+ * @package HTML_TreeMenu
+ */
+ class DirNode extends HTML_TreeNode
+ {
+ /**
+ * full path to this node
+ * @var string
+ */
+ var $path;
+
+ function DirNode($text = false, $link = false, $icon = false, $path, $events = array())
+ {
+ $this->path = $path;
+ $options = array();
+ if ($text) $options['text'] = $text;
+ if ($link) $options['link'] = $link;
+ if ($icon) $options['icon'] = $icon;
+ HTML_TreeNode::HTML_TreeNode($options,$events);
+ }
+ }
+
+ function getDir($path,&$node)
+ {
+ global $pd;
+ if (!$dir = opendir($path)) return;
+
+ $node = new HTML_TreeNode(array('text' => basename(realpath($path)), 'link' => "", 'icon' => 'folder.gif'));
+ while (($file = readdir($dir)) !== false)
+ {
+ if ($file != '.' && $file != '..')
+ {
+ if (is_dir("$path$pd$file") && !is_link("$path$pd$file"))
+ {
+ $entry[] = "$path$pd$file";
+ }
+ }
+ }
+ closedir($dir);
+ for($i = 0; $i < count($entry); $i++)
+ {
+ $node->addItem(new HTML_TreeNode(array('text'=>basename(realpath($entry[$i])), 'link' => "javascript:setHelp('".addslashes(realpath($entry[$i]))."');", 'icon' => 'folder.gif')));
+ }
+ }
+
+ function recurseDir($path, &$node) {
+ global $pd;
+ if (!$dir = opendir($path)) {
+ return false;
+ }
+ $anode = new HTML_TreeNode(array('text' => basename($path), 'link' => "javascript:setHelpVal('".$path."');", 'icon' => 'folder.gif'));
+ $result = addslashes(realpath(stripslashes($path).$pd.".."));
+ if (!$node) $anode->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif'),'..');
+ while (($file = readdir($dir)) !== false) {
+ if ($file != '.' && $file != '..') {
+ if (is_dir("$path$pd$file")) {
+ recurseDir("$path$pd$file",$anode);
+ }
+ }
+ }
+ rewinddir($dir);//
+ while (false){//($file = readdir($dir)) !== false) {
+ if ($file != '.' && $file != '..') {
+ if (is_file("$path$pd$file")) {
+ $anode->addItem(new DirNode($file,"javascript:setHelpVal('$path$pd$file');",'branchtop.gif',"$path$pd$file"));
+ }
+ }
+ }
+ if (!$node) $node = $anode;
+ else
+ $node->addItem($anode);
+ closedir($dir);
+ }
+
+ function switchDirTree($path, &$node)
+ {
+ global $pd;
+
+ // initialize recursion simulation values
+ // array format: path => &parent in $node itemlist
+ $parent = array();
+ $parent_indexes = array();
+ $parenti = 1;
+
+ $node = new DirNode(basename($path),"javascript:setHelpVal('".$path."');",'folder.gif',$path);
+ $result = addslashes(realpath($path.$pd.".."));
+ $node->addItem(new DirNode('..',"javascript:setHelp('".$result."');",'folder.gif','..'));
+ $rnode = &$node;
+ $parent[realpath($path)] = false;
+ $recur = 0;
+ do
+ {
+ if ($recur++ > 120) return;
+ if (!$dir = @opendir($path)) {
+ // no child files or directories
+// echo "$path no child files or directories return to ";
+ $rnode = &$parent[realpath($path)];
+ $path = $rnode->path;
+ if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
+// echo "$path parenti $parenti<br>";
+ }
+// fancy_debug($path,$parent_indexes);
+// vdump_par($parent);
+ if (!isset($parent_indexes[realpath($path)]))
+ {
+ $file = readdir($dir);
+ while ($file !== false) {
+ if ($file != '.' && $file != '..') {
+ if (@is_dir(realpath("$path$pd$file"))) {
+ if (!isset($parent_indexes[realpath($path)])) $parent_indexes[realpath($path)] = true;
+ $parent[realpath("$path$pd$file")] = &$rnode;
+// echo "<br>adding new ".addslashes(realpath($path.$pd.$file))." to $path<br>";
+ $rnode->addItem(new DirNode(addslashes(realpath("$path$pd$file")),"javascript:setHelpVal('".addslashes(realpath($path.$pd.$file))."');",'folder.gif',addslashes(realpath($path.$pd.$file))));
+ }
+ }
+ $file = readdir($dir);
+ }
+ }
+ // go down the tree if possible
+ if (isset($parent_indexes[realpath($path)]))
+ {
+ if ($parenti + 1 > (count($rnode->items)))
+ {
+ // no more children, go back up to parent
+// echo "$path no more children, go back up to parent ";
+ $rnode = &$parent[realpath($path)];
+ $path = $rnode->path;
+ if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
+// echo $path." parenti $parenti<br>";
+ } else
+ {
+ // go to next child
+// echo "$path go to next child ";
+ $parent_indexes[realpath($path)] = $parenti+1;
+// debug("set parent ".$rnode->items[$parenti]->path." = ".$rnode->path.'<br>');
+ $parent[realpath($rnode->items[$parenti]->path)] = &$rnode;
+ $rnode = &$rnode->items[$parenti];
+ $path = $rnode->path;
+// echo "$path<br>";
+ $parenti = 0;
+ }
+ } else
+ {
+ // no children, go back up the tree to the next child
+// echo "$path no children, go back up to parent ";
+ $rnode = &$parent[realpath($path)];
+ $path = $rnode->path;
+ if (isset($parent_indexes[realpath($path)])) $parenti = $parent_indexes[realpath($path)];
+// echo "$path parenti $parenti<br>";
+ }
+ @closedir($dir);
+ } while ($path && (($parenti < (count($rnode->items))) || ($parent[realpath($path)] !== false)));
+ }
+
+ function vdump_par($tree)
+ {
+ foreach($tree as $key => $val)
+ {
+ if ($val === false)
+ debug($key.' -> false<br>');
+ else
+ debug($key.' -> ' .$val->path.'<br>');
+ }
+ debug('<br>');
+ }
+
+ $menu = new HTML_TreeMenu();
+ $filename = '';
+ if (isset($_GET) && isset($_GET['fileName'])) $filename = $_GET['fileName'];
+ $filename = realpath($filename);
+ $pd = (substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/';
+ $test = ($pd == '/') ? '/' : 'C:\\';
+ if (empty($filename) || ($filename == $test))
+ {
+ $filename = ($pd == '/') ? '/' : 'C:\\';
+ $node = false;
+ getDir($filename,$node);
+ } else
+ {
+ flush();
+// if ($pd != '/') $pd = $pd.$pd;
+ $anode = false;
+ switchDirTree($filename,$anode);
+// recurseDir($filename,$anode);
+ $node = new HTML_TreeNode(array('text' => "Click to view $filename",'link' => "",'icon' => 'branchtop.gif'));
+ $node->addItem($anode);
+ };
+ $menu->addItem($node);
+ $DHTMLmenu = &new HTML_TreeMenu_DHTML($menu, array('images' => 'HTML_TreeMenu-1.1.2/images'));
+ ?>
+<script type="text/javascript" language="Javascript">
+/**
+ Creates some global variables
+*/
+function initializate() {
+ //
+ //The "platform independent" newLine
+ //
+ //Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
+if (navigator.appVersion.lastIndexOf('Win') != -1)
+ {
+ $pathdelim="\\";
+ $newLine="\r\n";
+ } else
+ {
+ $newLine="\n";
+ $pathdelim="/";
+ }
+/* for($a=0;$a<document.dataForm.elements.length;$a++) {
+ alert("The name is '"+document.dataForm.elements[$a].name+"' "+$a);
+ }
+*/
+}
+/** Sets the contents of the help box, and submits the form
+*/
+function setHelp($str)
+{
+ document.helpForm.fileName.value = $str;
+ document.helpForm.helpdata.click();
+}
+
+/** Sets the contents of the help box only
+*/
+function setHelpVal($str)
+{
+ document.helpForm.fileName.value = $str;
+}
+/**Adds the contents of the help box as a directory
+*/
+function addDirectory($object) {
+ $a = document.helpForm.fileName.value;
+ $a = myReplace($a,'\\\\','\\');
+ if ($a[$a.length - 1] == $pathdelim) $a = $a.substring(0, $a.length - 1);
+ if ($a.lastIndexOf('.') > 0)
+ {
+ $a = $a.substring(0,$a.lastIndexOf($pathdelim));
+ }
+ $object.value = prepareString($object.value)+$a;
+}
+/**Adds the contents of the converter box to the converters list
+*/
+function addConverter($object) {
+ $object.value = prepareString($object.value)+document.dataForm.ConverterSetting.value;
+}
+/**Replaces the converters list with the contents of the converter box
+*/
+function replaceConverter($object) {
+ $object.value = document.dataForm.ConverterSetting.value;
+}
+/**Adds the contents of the help box as a file to the given control
+*/
+function addFile($object) {
+ $a = document.helpForm.fileName.value;
+ $a = myReplace($a,'\\\\','\\');
+ $object.value = prepareString($object.value)+$a;
+}
+/**Takes a given string and leaves it ready to add a new string
+ That is, puts the comma and the new line if needed
+*/
+function prepareString($myString) {
+ //First verify that a comma is not at the end
+ if($myString.lastIndexOf(",") >= $myString.length-2) {
+ //We have a comma at the end
+ return $myString;
+ }
+ if($myString.length > 0) {
+ $myString+=","+$newLine;
+ }
+ return $myString;
+}
+/**Do the validation needed before sending the from and return a truth value indicating if the form can be sent
+*/
+ function validate() {
+ //Take out all newLines and change them by nothing
+ //This could be done by using javascript function's replacebut that was implemented only until Navigator 4.0 and so it is better to use more backward compatible functions like substr
+ document.dataForm.elements[0].value= stripNewLines(document.dataForm.elements[0].value);
+ document.dataForm.elements[1].value= stripNewLines(document.dataForm.elements[1].value);
+ document.dataForm.elements[2].value= stripNewLines(document.dataForm.elements[2].value);
+ document.dataForm.elements[3].value= stripNewLines(document.dataForm.elements[3].value);
+ document.dataForm.elements[4].value= stripNewLines(document.dataForm.elements[4].value);
+ document.dataForm.elements[5].value= stripNewLines(document.dataForm.elements[5].value);
+ document.dataForm.elements[6].value= stripNewLines(document.dataForm.elements[6].value);
+ document.dataForm.elements[7].value= stripNewLines(document.dataForm.elements[7].value);
+ //By returning true we are allowing the form to be submitted
+ return true;
+ }
+/**Takes a string and removes all the ocurrences of new lines
+Could have been implemented a lot easier with replace but it's not very backwards compatible
+*/
+ function stripNewLines($myString) {
+ return myReplace($myString,$newLine,'');
+ }
+ function myReplace($string,$text,$by) {
+ // Replaces text with by in string
+ var $strLength = $string.length, $txtLength = $text.length;
+ if (($strLength == 0) || ($txtLength == 0)) return $string;
+
+ var $i = $string.indexOf($text);
+ if ((!$i) && ($text != $string.substring(0,$txtLength))) return $string;
+ if ($i == -1) return $string;
+
+ var $newstr = $string.substring(0,$i) + $by;
+
+ if ($i+$txtLength < $strLength)
+ $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
+
+ return $newstr;
+ }
+</script><?php } ?>
+ </head>
+ <?php
+ //Find out if we are submitting and if we are, send it
+ // This code originally by Joshua Eichorn on phpdoc.php
+ //
+ if(isset($_GET['submit']) && empty($_REQUEST['altuserdir'])) {
+ echo "<body bgcolor=\"#ffffff\">";
+ echo "<h1>Parsing Files ...</h1>";
+ flush();
+ echo "<pre>\n";
+ /** phpdoc.inc */
+ include("phpDocumentor/phpdoc.inc");
+ echo "</pre>\n";
+ echo "<h1>Operation Completed!!</h1>";
+ } else
+ {
+ ?>
+ <body bgcolor="#ffffff" onload="javascript:initializate()">
+ <h1>
+ phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?> Web Interface
+ </h1>
+ phpDocumentor written by Joshua Eichorn<br>
+ Web Interface written by Juan Pablo Morales and enhanced by Greg Beaver<br>
+ <img src="poweredbyphpdoc.gif" alt="" width="88" height="31" border="0">
+ <table cellpadding="1" cellspacing="1" border="0" width="60%" bgcolor=
+ "#000000">
+ <tr>
+ <td bgcolor="#ffff66">
+ <b>Help</b>
+ </td>
+ <td bgcolor="#ffff99">
+ use this to find directories and files which can be used below
+ <form name="helpForm" action="<?php print $_SERVER['PHP_SELF']; ?>" method="get"
+ enctype="multipart/form-data">
+ <input size="80" type="text" name="fileName" value="<?php print $filename;?>">
+ <input type="submit" name="helpdata" value="browse tree">
+ </form>
+<div id='menuLayer'></div>
+<?php
+ $DHTMLmenu->printMenu();
+?>
+ </td>
+ </tr>
+ </table>
+
+ <form name="dataForm" action="<?php print $_SERVER['PHP_SELF']; ?>" method="GET" onsubmit=
+ "return validate()">
+ <table cellpadding="3" cellspacing="3" border="0" width="80%"
+ bgcolor="#000000">
+ <tr>
+ <td bgcolor="#3399ff">
+ <b>Use a pre-created config file for form values.</b>
+ </td>
+ <td bgcolor="#CCCCCC">
+ Normally, phpDocumentor uses the form values from this form to set up parsing. In version 1.2,
+ phpDocumentor allows you to "save" form values in configuration files so that you can replicate
+ common complicated documentation tasks with only one time. Just choose a config file below or create a
+ new one and refresh this page to choose it.<hr /><b>change config directory:</b><input size="20" type="text" name="altuserdir" value=""><?php if (!empty($_REQUEST['altuserdir'])) print '<br><i>changed to <b>"'.$_REQUEST['altuserdir'].'"</b></i>'; ?>
+ <b>Choose a config:</b> <select name="setting[useconfig]">
+ <option value="" <?php if (empty($_REQUEST['altuserdir'])) print 'selected'; ?>>don't use config file</option>
+ <?php
+ $dirs = array();
+ $dirs = phpDocumentor_ConfigFileList($configdir);
+ $path = '';
+ $sel = ' selected';
+ if (!empty($_REQUEST['altuserdir'])) $path = $configdir . PATH_DELIMITER;
+ else $sel = '';
+ foreach($dirs as $configfile)
+ {
+ print '<option value="'.$path.$configfile.'"'.$sel.'>'.$configfile.".ini</option>\n";
+ $sel = '';
+ }
+ ?>
+ </select><input type="SUBMIT" value=
+ "Go" name="submitButton"><br>
+ </td>
+ </tr>
+ </tr>
+ <td bgcolor="#66cc66">
+ <b>Target</b>
+ </td>
+ <td bgcolor="#eeeeee">
+ Target is the directory where
+ the output produced by phpDocumentor will reside<br>
+ <input type="TEXT" name="setting[target]" size=
+ "80"><br>
+ <a href=
+ "javascript:addDirectory(document.dataForm.elements[3])">
+ Add the directory in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#3399ff">
+ <b>Files to parse</b>
+ </td>
+ <td bgcolor="#CCCCCC">
+ This is a group of comma-separated names of php files
+ or tutorials that will be processed by phpDocumentor.<br>
+<textarea rows="6" cols="80" name=
+"setting[filename]"></textarea> <br>
+ <a href=
+ "javascript:addFile(document.dataForm.elements[4])">
+ Add the file in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#66cc66">
+ <b>Directory to parse</b>
+ </td>
+ <td bgcolor="#eeeeee">
+ This is a group of comma-separated directories where php files
+ or tutorials are found that will be processed by phpDocumentor.
+ phpDocumentor automatically parses subdirectories<br>
+<textarea rows="6" cols="80" name="setting[directory]"></textarea> <br>
+ <a href=
+ "javascript:addDirectory(document.dataForm.elements[5])">
+ Add the directory in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#66cc66">
+ <b>Files to ignore</b>
+ </td>
+ <td bgcolor="#eeeeee">
+ A list of files (full path or filename), and patterns
+ to ignore. Patterns may use wildcards * and ?. To
+ ignore all subdirectories named "test" for example,
+ using "test/" To ignore all files and directories
+ with test in their name use "*test*"
+<textarea rows="6" cols="80" name="setting[ignore]"></textarea> <br>
+ <a href=
+ "javascript:addDirectory(document.dataForm.elements[6])">
+ Add the directory in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#66cc66">
+ <b>Generated Documentation Title</b>
+ </td>
+ <td bgcolor="#eeeeee">
+ Choose a title for the generated documentation<br>
+ <input type="TEXT" name="setting[title]" size=
+ "80" value="Generated Documentation"><br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#3399ff">
+ <b>Default Package Name</b>
+ </td>
+ <td bgcolor="#cccccc">
+ Choose a name for the default package<br>
+ <input type="TEXT" name="setting[defaultpackagename]" size=
+ "80" value="default"><br>
+ </td>
+ <tr>
+ <tr>
+ <td bgcolor="#3399ff">
+ <b>Custom Tags</b>
+ </td>
+ <td bgcolor="#CCCCCC">
+ Custom Tags is a comma-separated list of tags
+ you want phpDocumentor to include as valid tags
+ in this parse. An example would be "value, size"
+ to allow @value and @size tags.
+ <input type="TEXT" name="setting[customtags]" size=
+ "80"><br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#66cc66">
+ <b>Packages to parse</b>
+ </td>
+ <td bgcolor="#eeeeee">
+ The parameter packages is a group of comma
+ separated names of abstract packages that will
+ be processed by phpDocumentor. All package names must be
+ separated by commas.<br>
+<textarea rows="3" cols="80" name=
+"setting[packageoutput]"></textarea> <br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#3399ff">
+ <b>Output Information</b>
+ </td>
+ <td bgcolor="#CCCCCC">
+ <br>
+ Outputformat
+ may be HTML, XML, PDF, or CHM (case-sensitive) in version 1.2. There is only one Converter
+ for both CHM and PDF, <b>default</b>. There are 2 HTML Converters,
+ <b>frames</b> and <b>Smarty</b>. <b>frames templates</b> may be any of:<br><br>
+ <b>default, l0l33t, phpdoc.de, phphtmllib, phpedit, DOM/default, DOM/l0l33t, or DOM/phpdoc.de</b>.
+ <b>Smarty templates</b> may be any of:<br><br>
+ <b>default or PHP</b>.<br>
+<br>
+There is only 1 template for all other Converters, <b>default</b>
+<br>Output type:Converter name:template name <input type=
+ "TEXT" name="setting[output]" value=
+ "HTML:Smarty:default" size="80"><br>
+<select name="ConverterSetting">
+<option value="HTML:frames:default">HTML:frames:default</option>
+<option value="HTML:frames:l0l33t">HTML:frames:l0l33t</option>
+<option value="HTML:frames:phpdoc.de">HTML:frames:phpdoc.de</option>
+<option value="HTML:frames:phphtmllib">HTML:frames:phphtmllib</option>
+<option value="HTML:frames:phpedit">HTML:frames:phpedit</option>
+<option value="HTML:frames:DOM/default">HTML:frames:DOM/default</option>
+<option value="HTML:frames:DOM/l0l33t">HTML:frames:DOM/l0l33t</option>
+<option value="HTML:frames:DOM/phpdoc.de">HTML:frames:DOM/phpdoc.de</option>
+<option value="HTML:Smarty:default" SELECTED>HTML:Smarty:default</option>
+<option value="PDF:default:default">PDF:default:default</option>
+<option value="CHM:default:default">CHM:default:default</option>
+<option value="XML:DocBook/peardoc2:default">XML:DocBook/peardoc2:default</option>
+</select><br>
+<a href=
+ "javascript:addConverter(document.dataForm.elements[11])">
+ Add the converter in the help box</a> <br>
+<a href=
+ "javascript:replaceConverter(document.dataForm.elements[11])">
+ Use ONLY the converter in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#3399ff">
+ <b>Parse @access private</b>
+ </td>
+ <td bgcolor="#CCCCCC">
+ The parameter Parse @access private tells phpDocumentor
+ whether to parse elements with an "@access private" tag in their docblock<br>
+ <input type="checkbox" name="setting[parseprivate]" value="on">Parse private <br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#66cc66">
+ <b>JavaDoc-compliant Description parsing.</b>
+ </td>
+ <td bgcolor="#eeeeee">
+ Normally, phpDocumentor uses several rules to determine the short description. This switch
+ asks phpDocumentor to simply search for the first period (.) and use it to delineate the short
+ description. In addition, the short description will not be separated from the long description<br>
+ <input type="checkbox" name="setting[javadocdesc]" value="on">JavaDoc-compliant Description <br>
+ </td>
+ </tr>
+ </table>
+ <input type="HIDDEN" name="interface" value="web"> <input type=
+ "HIDDEN" name="submit" value="true"> <input type="SUBMIT" value=
+ "Create Documentation" name="submitButton">
+ </form>
+ <br>
+ <br>
+ <br>
+ <p>
+ Joshua Eichorn <a href="mailto:jeichorn@phpdoc.org">jeichorn@phpdoc.org</a><br>
+ Juan Pablo Morales <a href=
+ "mailto:ju-moral@uniandes.edu.co">ju-moral@uniandes.edu.co</a><br>
+ Gregory Beaver <a href=
+ "mailto:cellog@users.sourceforge.net">cellog@users.sourceforge.net</a>
+ </p>
+ <p>
+ If you have any problems with phpDocumentor, please visit the website: <a
+ href='http://phpdocu.sourceforge.net'>phpdocu.sourceforge.net</a> and
+ submit a bug
+ </p>
+ <!-- Created: Tue Jun 26 18:52:40 MEST 2001 -->
+ <!-- hhmts start -->
+<pre>
+Last modified: $Date: 2005/10/17 18:15:16 $
+Revision: $Revision: 1.1 $
+</pre>
+ <!-- hhmts end -->
+ <?php } //End the else that prints all code
+ ?>
+ </body>
+</html>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor.ini
index bbb01631b7..bb1c08803f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor.ini
@@ -1,118 +1,118 @@
-;; phpDocumentor.ini
-;;
-;; contains all the runtime values that are configurable.
-;; This is moved from phpdoc.inc, to remove the necessity to edit the php code and
-;; simplify debugging
-[DEBUG]
-;; If you want to see the internals of the parser in action, set this to true
-PHPDOCUMENTOR_DEBUG = false
-;; set to true if you want to eliminate extra whitespace in doc comments (slows things down quite a bit)
-PHPDOCUMENTOR_KILL_WHITESPACE = false
-
-[_phpDocumentor_options]
-;; this is the value that will be displayed as the root directory
-Program_Root =
-;; uncomment this to set the path phpDocumentor looks in to find user files
-;userdir = user/
-
-;; Use useconfig if you want to be able to run phpdoc with no command-line options (!!)
-;; change the value of useconfig to an .ini file that is in users/ (like greg.ini)
-;[_phpDocumentor_setting]
-;useconfig = default
-
-[_phpDocumentor_phpfile_exts]
-php
-php3
-php4
-phtml
-inc
-
-;; deprecated in 1.2
-;; this list is informational only - the following tags will be parsed as
-;; having meaning, everything else will be treated as text by the output
-;; converter, meaning in the HTML converter, all other tags will be htmlentitied
-;[_phpDocumentor_html_allowed]
-;ul
-;ol
-;li
-;p
-;strong
-;pre
-;a
-;code
-;br
-;var
-;samp
-;kbd
-
-[_phpDocumentor_tags_allowed]
-abstract
-access
-author
-category
-copyright
-;; for Zend IDE support - minimal at best
-desc
-deprec
-deprecated
-example
-exception
-filesource
-final
-global
-ignore
-internal
-license
-link
-magic
-name
-package
-param
-parameter
-return
-;; alias for @return
-returns
-see
-since
-source
-static
-staticvar
-subpackage
-throws
-todo
-TODO
-tutorial
-uses
-var
-version
-;; compat tags, things wont parse right in incorrectly documented code without them
-;; hopefully better error handling in handleDockeyword allows these to go away
-;; this is a dumb tag included for pear compatability see bug# 558028
-extends
-private
-public
-
-[_phpDocumentor_inline_doc_tags_allowed]
-example
-inheritdoc
-internal
-link
-source
-tutorial
-
-[_phpDocumentor_inline_tutorial_tags_allowed]
-category
-example
-id
-link
-toc
-tutorial
-
-;; custom files to include in RIC
-;; these MUST be in upper-case
-[_phpDocumentor_RIC_files]
-README
-INSTALL
-CHANGELOG
-FAQ
-NEWS
+;; phpDocumentor.ini
+;;
+;; contains all the runtime values that are configurable.
+;; This is moved from phpdoc.inc, to remove the necessity to edit the php code and
+;; simplify debugging
+[DEBUG]
+;; If you want to see the internals of the parser in action, set this to true
+PHPDOCUMENTOR_DEBUG = false
+;; set to true if you want to eliminate extra whitespace in doc comments (slows things down quite a bit)
+PHPDOCUMENTOR_KILL_WHITESPACE = false
+
+[_phpDocumentor_options]
+;; this is the value that will be displayed as the root directory
+Program_Root =
+;; uncomment this to set the path phpDocumentor looks in to find user files
+;userdir = user/
+
+;; Use useconfig if you want to be able to run phpdoc with no command-line options (!!)
+;; change the value of useconfig to an .ini file that is in users/ (like greg.ini)
+;[_phpDocumentor_setting]
+;useconfig = default
+
+[_phpDocumentor_phpfile_exts]
+php
+php3
+php4
+phtml
+inc
+
+;; deprecated in 1.2
+;; this list is informational only - the following tags will be parsed as
+;; having meaning, everything else will be treated as text by the output
+;; converter, meaning in the HTML converter, all other tags will be htmlentitied
+;[_phpDocumentor_html_allowed]
+;ul
+;ol
+;li
+;p
+;strong
+;pre
+;a
+;code
+;br
+;var
+;samp
+;kbd
+
+[_phpDocumentor_tags_allowed]
+abstract
+access
+author
+category
+copyright
+;; for Zend IDE support - minimal at best
+desc
+deprec
+deprecated
+example
+exception
+filesource
+final
+global
+ignore
+internal
+license
+link
+magic
+name
+package
+param
+parameter
+return
+;; alias for @return
+returns
+see
+since
+source
+static
+staticvar
+subpackage
+throws
+todo
+TODO
+tutorial
+uses
+var
+version
+;; compat tags, things wont parse right in incorrectly documented code without them
+;; hopefully better error handling in handleDockeyword allows these to go away
+;; this is a dumb tag included for pear compatability see bug# 558028
+extends
+private
+public
+
+[_phpDocumentor_inline_doc_tags_allowed]
+example
+inheritdoc
+internal
+link
+source
+tutorial
+
+[_phpDocumentor_inline_tutorial_tags_allowed]
+category
+example
+id
+link
+toc
+tutorial
+
+;; custom files to include in RIC
+;; these MUST be in upper-case
+[_phpDocumentor_RIC_files]
+README
+INSTALL
+CHANGELOG
+FAQ
+NEWS
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/options.ini
index a383614b4f..cae1952dd4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/options.ini
@@ -1,507 +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 = <font color="blue">
-/T_ABSTRACT = </font>
-T_CLONE = <font color="blue">
-/T_CLONE = </font>
-T_HALT_COMPILER = <font color="red">
-/T_HALT_COMPILER = </font>
-T_PUBLIC = <font color="blue">
-/T_PUBLIC = </font>
-T_PRIVATE = <font color="blue">
-/T_PRIVATE = </font>
-T_PROTECTED = <font color="blue">
-/T_PROTECTED = </font>
-T_FINAL = <font color="blue">
-/T_FINAL = </font>
-T_IMPLEMENTS = <font color="blue">
-/T_IMPLEMENTS = </font>
-T_CLASS = <font color="blue">
-/T_CLASS = </font>
-T_INTERFACE = <font color="blue">
-/T_INTERFACE = </font>
-T_INCLUDE = <font color="blue">
-/T_INCLUDE = </font>
-T_INCLUDE_ONCE = <font color="blue">
-/T_INCLUDE_ONCE = </font>
-T_REQUIRE_ONCE = <font color="blue">
-/T_REQUIRE_ONCE = </font>
-T_FUNCTION = <font color="blue">
-/T_FUNCTION = </font>
-T_VARIABLE = <strong>
-/T_VARIABLE = </strong>
-T_CONSTANT_ENCAPSED_STRING = <font color="#66cccc">
-/T_CONSTANT_ENCAPSED_STRING = </font>
-T_COMMENT = <font color="green">
-/T_COMMENT = </font>
-T_OBJECT_OPERATOR = <strong>
-/T_OBJECT_OPERATOR = </strong>
-T_RETURN = <font color="blue">
-/T_RETURN = </font>
-T_STATIC = <font color="blue">
-/T_STATIC = </font>
-T_SWITCH = <font color="blue">
-/T_SWITCH = </font>
-T_IF = <font color="blue">
-/T_IF = </font>
-T_FOREACH = <font color="blue">
-/T_FOREACH = </font>
-T_FOR = <font color="blue">
-/T_FOR = </font>
-T_VAR = <font color="blue">
-/T_VAR = </font>
-T_EXTENDS = <font color="blue">
-/T_EXTENDS = </font>
-T_RETURN = <font color="blue">
-/T_RETURN = </font>
-T_GLOBAL = <font color="blue">
-/T_GLOBAL = </font>
-T_DOUBLE_COLON = <strong>
-/T_DOUBLE_COLON = </strong>
-T_OBJECT_OPERATOR = <strong>
-/T_OBJECT_OPERATOR = </strong>
-T_OPEN_TAG = <strong>
-/T_OPEN_TAG = </strong>
-T_CLOSE_TAG = <strong>
-/T_CLOSE_TAG = </strong>
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <strong>
-/@ = </strong>
-& = <strong>
-/& = </strong>
-[ = <strong>
-/[ = </strong>
-] = <strong>
-/] = </strong>
-! = <strong>
-/! = </strong>
-";" = <strong>
-/; = </strong>
-( = <strong>
-/( = </strong>
-) = <strong>
-/) = </strong>
-, = <strong>
-/, = </strong>
-{ = <strong>
-/{ = </strong>
-} = <strong>
-/} = </strong>
-""" = <font color="#66cccc">
-/" = </font>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <font color="#009999">
-/docblock = </font>
-tagphptype = <em>
-/tagphptype = </em>
-tagvarname = <strong>
-/tagvarname = </strong>
-coretag = <strong><font color = "#0099FF">
-/coretag = </font></strong>
-tag = <strong><font color="#009999">
-/tag = </font></strong>
-inlinetag = <em><font color="#0099FF">
-/inlinetag = </font></em>
-internal = <em><font color = "#6699cc">
-/internal = </font></em>
-closetemplate = <strong><font color="blue">
-/closetemplate = </font></strong>
-docblocktemplate = <font color="blue">
-/docblocktemplate = </font color="blue">
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <font size="-1"><strong>by <em>
-/author = </em></strong></font>
-author! = 0
-
-authorblurb = blockquote
-
-authorgroup = <strong>Authors:</strong><br />
-/authorgroup =
-authorgroup! = 0
-
-caution = <table border="1"><th align="center">Caution</th><tr><td>
-/caution = </td></tr></table>
-caution! = 0
-
-command = <b class="cmd">
-/command = </b>
-
-cmdsynopsis = <div id="cmdsynopsis">
-/cmdsynopsis = </div>
-
-copyright = <em>
-/copyright = </em><br />
-
-emphasis = strong
-
-example = <table class="example" width="100%" border="1"><tr><td>
-/example = </td></tr></table>
-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 = <table border="0" bgcolor="#E0E0E0" cellpadding="5"><tr><td><div class="src-code">
-/programlisting = </div></td></tr></table>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="refname">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = h1
-
-refpurpose = <h2 class="refpurpose"><em>
-/refpurpose = </em></h2>
-
-refsynopsisdiv = <div class="refsynopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 =
-/refsect2 = <hr />
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = (
-/releaseinfo = )<br />
-
-simpara =
-/simpara = <br />
-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 = <table border="1"><tr><td>
-/warning = </td></tr></table>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+T_ABSTRACT = <font color="blue">
+/T_ABSTRACT = </font>
+T_CLONE = <font color="blue">
+/T_CLONE = </font>
+T_HALT_COMPILER = <font color="red">
+/T_HALT_COMPILER = </font>
+T_PUBLIC = <font color="blue">
+/T_PUBLIC = </font>
+T_PRIVATE = <font color="blue">
+/T_PRIVATE = </font>
+T_PROTECTED = <font color="blue">
+/T_PROTECTED = </font>
+T_FINAL = <font color="blue">
+/T_FINAL = </font>
+T_IMPLEMENTS = <font color="blue">
+/T_IMPLEMENTS = </font>
+T_CLASS = <font color="blue">
+/T_CLASS = </font>
+T_INTERFACE = <font color="blue">
+/T_INTERFACE = </font>
+T_INCLUDE = <font color="blue">
+/T_INCLUDE = </font>
+T_INCLUDE_ONCE = <font color="blue">
+/T_INCLUDE_ONCE = </font>
+T_REQUIRE_ONCE = <font color="blue">
+/T_REQUIRE_ONCE = </font>
+T_FUNCTION = <font color="blue">
+/T_FUNCTION = </font>
+T_VARIABLE = <strong>
+/T_VARIABLE = </strong>
+T_CONSTANT_ENCAPSED_STRING = <font color="#66cccc">
+/T_CONSTANT_ENCAPSED_STRING = </font>
+T_COMMENT = <font color="green">
+/T_COMMENT = </font>
+T_OBJECT_OPERATOR = <strong>
+/T_OBJECT_OPERATOR = </strong>
+T_RETURN = <font color="blue">
+/T_RETURN = </font>
+T_STATIC = <font color="blue">
+/T_STATIC = </font>
+T_SWITCH = <font color="blue">
+/T_SWITCH = </font>
+T_IF = <font color="blue">
+/T_IF = </font>
+T_FOREACH = <font color="blue">
+/T_FOREACH = </font>
+T_FOR = <font color="blue">
+/T_FOR = </font>
+T_VAR = <font color="blue">
+/T_VAR = </font>
+T_EXTENDS = <font color="blue">
+/T_EXTENDS = </font>
+T_RETURN = <font color="blue">
+/T_RETURN = </font>
+T_GLOBAL = <font color="blue">
+/T_GLOBAL = </font>
+T_DOUBLE_COLON = <strong>
+/T_DOUBLE_COLON = </strong>
+T_OBJECT_OPERATOR = <strong>
+/T_OBJECT_OPERATOR = </strong>
+T_OPEN_TAG = <strong>
+/T_OPEN_TAG = </strong>
+T_CLOSE_TAG = <strong>
+/T_CLOSE_TAG = </strong>
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <strong>
+/@ = </strong>
+& = <strong>
+/& = </strong>
+[ = <strong>
+/[ = </strong>
+] = <strong>
+/] = </strong>
+! = <strong>
+/! = </strong>
+";" = <strong>
+/; = </strong>
+( = <strong>
+/( = </strong>
+) = <strong>
+/) = </strong>
+, = <strong>
+/, = </strong>
+{ = <strong>
+/{ = </strong>
+} = <strong>
+/} = </strong>
+""" = <font color="#66cccc">
+/" = </font>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <font color="#009999">
+/docblock = </font>
+tagphptype = <em>
+/tagphptype = </em>
+tagvarname = <strong>
+/tagvarname = </strong>
+coretag = <strong><font color = "#0099FF">
+/coretag = </font></strong>
+tag = <strong><font color="#009999">
+/tag = </font></strong>
+inlinetag = <em><font color="#0099FF">
+/inlinetag = </font></em>
+internal = <em><font color = "#6699cc">
+/internal = </font></em>
+closetemplate = <strong><font color="blue">
+/closetemplate = </font></strong>
+docblocktemplate = <font color="blue">
+/docblocktemplate = </font color="blue">
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <font size="-1"><strong>by <em>
+/author = </em></strong></font>
+author! = 0
+
+authorblurb = blockquote
+
+authorgroup = <strong>Authors:</strong><br />
+/authorgroup =
+authorgroup! = 0
+
+caution = <table border="1"><th align="center">Caution</th><tr><td>
+/caution = </td></tr></table>
+caution! = 0
+
+command = <b class="cmd">
+/command = </b>
+
+cmdsynopsis = <div id="cmdsynopsis">
+/cmdsynopsis = </div>
+
+copyright = <em>
+/copyright = </em><br />
+
+emphasis = strong
+
+example = <table class="example" width="100%" border="1"><tr><td>
+/example = </td></tr></table>
+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 = <table border="0" bgcolor="#E0E0E0" cellpadding="5"><tr><td><div class="src-code">
+/programlisting = </div></td></tr></table>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="refname">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = h1
+
+refpurpose = <h2 class="refpurpose"><em>
+/refpurpose = </em></h2>
+
+refsynopsisdiv = <div class="refsynopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 =
+/refsect2 = <hr />
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = (
+/releaseinfo = )<br />
+
+simpara =
+/simpara = <br />
+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 = <table border="1"><tr><td>
+/warning = </td></tr></table>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl
index a040830bce..29a27593a5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl
@@ -1,21 +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}">&nbsp; </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>
-
+{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}">&nbsp; </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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl
index 1ed17562d0..93cd4f27ef 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl
@@ -1,94 +1,94 @@
-{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
-<!-- Start of Class Data -->
-<H3>
- <SPAN class="type">{if $is_interface}Interface{else}Class{/if}</SPAN> {$class_name}
- <HR>
-</H3>
-[line <span class="linenumber">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>]<br />
-<pre>
-{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}
-</pre>
-{if $tutorial}
-<div class="maintutorial">Class Tutorial: {$tutorial}</div>
-{/if}
-{if $children}
-<SPAN class="type">Classes extended from {$class_name}:</SPAN>
- {section name=kids loop=$children}
- <dl>
- <dt>{$children[kids].link}</dt>
- <dd>{$children[kids].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-{if $conflicts.conflict_type}<p class="warning">Conflicts with classes:<br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
-<p>
-{/if}
-<SPAN class="type">Location:</SPAN> {$source_location}
-<hr>
-{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
-<hr>
-{include file="var.tpl" show="summary"}
-<hr>
-{include file="const.tpl" show="summary"}
-<hr>
-<!-- =========== INHERITED CONST SUMMARY =========== -->
-<A NAME='inheritedconst_summary'><!-- --></A>
-<H3>Inherited Class Constant Summary</H3>
-
-{section name=iconsts loop=$iconsts}
-<H4>Inherited From Class {$iconsts[iconsts].parent_class}</H4>
-<UL>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <!-- =========== Summary =========== -->
- <LI><CODE>{$iconsts[iconsts].iconsts[iconsts2].link}</CODE> = <CODE class="varsummarydefault">{$iconsts[iconsts].iconsts[iconsts2].value}</CODE>
- <BR>
- {$iconsts[iconsts].iconsts[iconsts2].sdesc}
- {/section}
- </LI>
-</UL>
-{/section}
-<hr>
-<!-- =========== INHERITED VAR SUMMARY =========== -->
-<A NAME='inheritedvar_summary'><!-- --></A>
-<H3>Inherited Class Variable Summary</H3>
-
-{section name=ivars loop=$ivars}
-<H4>Inherited From Class {$ivars[ivars].parent_class}</H4>
-<UL>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <!-- =========== Summary =========== -->
- <LI><CODE>{$ivars[ivars].ivars[ivars2].link}</CODE> = <CODE class="varsummarydefault">{$ivars[ivars].ivars[ivars2].default}</CODE>
- <BR>
- {$ivars[ivars].ivars[ivars2].sdesc}
- {/section}
- </LI>
-</UL>
-{/section}
-
-<hr>
-{include file="method.tpl" show="summary"}
-<!-- =========== INHERITED METHOD SUMMARY =========== -->
-<A NAME='methods_inherited'><!-- --></A>
-<H3>Inherited Method Summary</H3>
-
-{section name=imethods loop=$imethods}
-<H4>Inherited From Class {$imethods[imethods].parent_class}</h4>
-<UL>
- {section name=im2 loop=$imethods[imethods].imethods}
- <!-- =========== Summary =========== -->
- <LI><CODE>{$imethods[imethods].imethods[im2].link}</CODE><br>
- {$imethods[imethods].imethods[im2].sdesc}
- {/section}
-</UL>
-{/section}
-<hr>
-{include file="method.tpl"}
-<hr>
-{include file="var.tpl"}
-<hr>
-{include file="const.tpl"}
-<hr>
-{include file="footer.tpl"}
+{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
+<!-- Start of Class Data -->
+<H3>
+ <SPAN class="type">{if $is_interface}Interface{else}Class{/if}</SPAN> {$class_name}
+ <HR>
+</H3>
+[line <span class="linenumber">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>]<br />
+<pre>
+{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}
+</pre>
+{if $tutorial}
+<div class="maintutorial">Class Tutorial: {$tutorial}</div>
+{/if}
+{if $children}
+<SPAN class="type">Classes extended from {$class_name}:</SPAN>
+ {section name=kids loop=$children}
+ <dl>
+ <dt>{$children[kids].link}</dt>
+ <dd>{$children[kids].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+{if $conflicts.conflict_type}<p class="warning">Conflicts with classes:<br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+<p>
+{/if}
+<SPAN class="type">Location:</SPAN> {$source_location}
+<hr>
+{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+<hr>
+{include file="var.tpl" show="summary"}
+<hr>
+{include file="const.tpl" show="summary"}
+<hr>
+<!-- =========== INHERITED CONST SUMMARY =========== -->
+<A NAME='inheritedconst_summary'><!-- --></A>
+<H3>Inherited Class Constant Summary</H3>
+
+{section name=iconsts loop=$iconsts}
+<H4>Inherited From Class {$iconsts[iconsts].parent_class}</H4>
+<UL>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <!-- =========== Summary =========== -->
+ <LI><CODE>{$iconsts[iconsts].iconsts[iconsts2].link}</CODE> = <CODE class="varsummarydefault">{$iconsts[iconsts].iconsts[iconsts2].value}</CODE>
+ <BR>
+ {$iconsts[iconsts].iconsts[iconsts2].sdesc}
+ {/section}
+ </LI>
+</UL>
+{/section}
+<hr>
+<!-- =========== INHERITED VAR SUMMARY =========== -->
+<A NAME='inheritedvar_summary'><!-- --></A>
+<H3>Inherited Class Variable Summary</H3>
+
+{section name=ivars loop=$ivars}
+<H4>Inherited From Class {$ivars[ivars].parent_class}</H4>
+<UL>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <!-- =========== Summary =========== -->
+ <LI><CODE>{$ivars[ivars].ivars[ivars2].link}</CODE> = <CODE class="varsummarydefault">{$ivars[ivars].ivars[ivars2].default}</CODE>
+ <BR>
+ {$ivars[ivars].ivars[ivars2].sdesc}
+ {/section}
+ </LI>
+</UL>
+{/section}
+
+<hr>
+{include file="method.tpl" show="summary"}
+<!-- =========== INHERITED METHOD SUMMARY =========== -->
+<A NAME='methods_inherited'><!-- --></A>
+<H3>Inherited Method Summary</H3>
+
+{section name=imethods loop=$imethods}
+<H4>Inherited From Class {$imethods[imethods].parent_class}</h4>
+<UL>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <!-- =========== Summary =========== -->
+ <LI><CODE>{$imethods[imethods].imethods[im2].link}</CODE><br>
+ {$imethods[imethods].imethods[im2].sdesc}
+ {/section}
+</UL>
+{/section}
+<hr>
+{include file="method.tpl"}
+<hr>
+{include file="var.tpl"}
+<hr>
+{include file="const.tpl"}
+<hr>
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl
index 15bf6b7ec0..65d60118a1 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl
@@ -1,8 +1,8 @@
-{foreach key=subpackage item=files from=$classleftindex}
- {if $subpackage != ""}<b>{$subpackage}</b><br>{/if}
- {section name=files loop=$files}
- {if $files[files].link != ''}<a href="{ldelim}$subdir{rdelim}{$files[files].link}">{/if}
- {$files[files].title}
- {if $files[files].link != ''}</a>{/if}<br>
- {/section}
-{/foreach}
+{foreach key=subpackage item=files from=$classleftindex}
+ {if $subpackage != ""}<b>{$subpackage}</b><br>{/if}
+ {section name=files loop=$files}
+ {if $files[files].link != ''}<a href="{ldelim}$subdir{rdelim}{$files[files].link}">{/if}
+ {$files[files].title}
+ {if $files[files].link != ''}</a>{/if}<br>
+ {/section}
+{/foreach}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl
index 28c648be12..6308aba94a 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl
@@ -1,12 +1,12 @@
-{capture name="title"}Class Trees for Package {$package}{/capture}
-{include file="header.tpl" title=$smarty.capture.title}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{section name=classtrees loop=$classtrees}
-<SPAN class="code">Root class {$classtrees[classtrees].class}</SPAN>
-<code class="vardefaultsummary">{$classtrees[classtrees].class_tree}</code>
-{/section}
+{capture name="title"}Class Trees for Package {$package}{/capture}
+{include file="header.tpl" title=$smarty.capture.title}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{section name=classtrees loop=$classtrees}
+<SPAN class="code">Root class {$classtrees[classtrees].class}</SPAN>
+<code class="vardefaultsummary">{$classtrees[classtrees].class_tree}</code>
+{/section}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl
index 207491a577..720a71b55b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl
@@ -1,29 +1,29 @@
-{if $show=="summary"}
-<!-- =========== CONST SUMMARY =========== -->
-<A NAME='const_summary'><!-- --></A>
-<H3>Class Constant Summary</H3>
-
-<UL>
- {section name=consts loop=$consts}
- <!-- =========== Summary =========== -->
- <LI><CODE><a href="{$consts[consts].id}">{$consts[consts].const_name}</a></CODE> = <CODE class="varsummarydefault">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE>
- <BR>
- {$consts[consts].sdesc}
- {/section}
-</UL>
-{else}
-<!-- ============ VARIABLE DETAIL =========== -->
-
-<A NAME='variable_detail'></A>
-
-<H3>Class Constant Detail</H3>
-
-<UL>
-{section name=consts loop=$consts}
-<A NAME="{$consts[consts].const_dest}"><!-- --></A>
-<LI><SPAN class="code">{$consts[consts].const_name}</SPAN> = <CODE class="varsummarydefault">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE> [line <span class="linenumber">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>]</LI>
-{include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-<BR>
-{/section}
-</UL>
+{if $show=="summary"}
+<!-- =========== CONST SUMMARY =========== -->
+<A NAME='const_summary'><!-- --></A>
+<H3>Class Constant Summary</H3>
+
+<UL>
+ {section name=consts loop=$consts}
+ <!-- =========== Summary =========== -->
+ <LI><CODE><a href="{$consts[consts].id}">{$consts[consts].const_name}</a></CODE> = <CODE class="varsummarydefault">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE>
+ <BR>
+ {$consts[consts].sdesc}
+ {/section}
+</UL>
+{else}
+<!-- ============ VARIABLE DETAIL =========== -->
+
+<A NAME='variable_detail'></A>
+
+<H3>Class Constant Detail</H3>
+
+<UL>
+{section name=consts loop=$consts}
+<A NAME="{$consts[consts].const_dest}"><!-- --></A>
+<LI><SPAN class="code">{$consts[consts].const_name}</SPAN> = <CODE class="varsummarydefault">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE> [line <span class="linenumber">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>]</LI>
+{include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+<BR>
+{/section}
+</UL>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl
index cf7ee7cbe3..449383199b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl
@@ -1,11 +1,11 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML>
-<HEAD>
-<meta name="GENERATOR" content="phpDocumentor version {$phpdocversion}">
-<!-- Sitemap 1.0 -->
-</HEAD><BODY>
-<OBJECT type="text/site properties">
- <param name="ImageType" value="Folder">
-</OBJECT>
-{$toc}
-</BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="phpDocumentor version {$phpdocversion}">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<OBJECT type="text/site properties">
+ <param name="ImageType" value="Folder">
+</OBJECT>
+{$toc}
+</BODY></HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl
index 3917cc701d..4a3a64e935 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl
@@ -1,33 +1,33 @@
-{if $summary}
-<!-- =========== CONSTANT SUMMARY =========== -->
-<A NAME='constant_summary'><!-- --></A>
-<H3>Constant Summary</H3>
-
-<UL>
- {section name=def loop=$defines}
- <LI><CODE><A HREF="{$defines[def].id}">{$defines[def].define_name}</A></CODE> = <CODE class="varsummarydefault">{$defines[def].define_value}</CODE>
- <BR>{$defines[def].sdesc}
- {/section}
-</UL>
-{else}
-<!-- ============ CONSTANT DETAIL =========== -->
-
-<A NAME='constant_detail'></A>
-<H3>Constant Detail</H3>
-
-<UL>
- {section name=def loop=$defines}
- <A NAME="{$defines[def].define_link}"><!-- --></A>
- <LI><SPAN class="code">{$defines[def].define_name}</SPAN> = <CODE class="varsummarydefault">{$defines[def].define_value}</CODE> [line <span class="linenumber">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>]<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}
-<BR><BR>
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
- {/section}
-</UL>
+{if $summary}
+<!-- =========== CONSTANT SUMMARY =========== -->
+<A NAME='constant_summary'><!-- --></A>
+<H3>Constant Summary</H3>
+
+<UL>
+ {section name=def loop=$defines}
+ <LI><CODE><A HREF="{$defines[def].id}">{$defines[def].define_name}</A></CODE> = <CODE class="varsummarydefault">{$defines[def].define_value}</CODE>
+ <BR>{$defines[def].sdesc}
+ {/section}
+</UL>
+{else}
+<!-- ============ CONSTANT DETAIL =========== -->
+
+<A NAME='constant_detail'></A>
+<H3>Constant Detail</H3>
+
+<UL>
+ {section name=def loop=$defines}
+ <A NAME="{$defines[def].define_link}"><!-- --></A>
+ <LI><SPAN class="code">{$defines[def].define_name}</SPAN> = <CODE class="varsummarydefault">{$defines[def].define_value}</CODE> [line <span class="linenumber">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>]<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}
+<BR><BR>
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+ {/section}
+</UL>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl
index 0de18b672d..ef621b9bd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl
@@ -1,31 +1,31 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $function}
- {if $params}
- <p class="label"><b>Parameters</b></p>
- {section name=params loop=$params}
- <p class=dt><i>{$params[params].var}</i></p>
- <p class=indent>{$params[params].data}</p>
- {/section}
- {/if}
-{/if}
-{section name=tags loop=$tags}
-{if $tags[tags].keyword == 'return'}
- <p class="label"><b>Returns</b></p>
- <p class=indent>{$tags[tags].data}</p>
-{/if}
-{/section}
-{if $sdesc || $desc}
-<p class="label"><b>Remarks</b></p>
-{/if}
-{if $sdesc}
-<p>{$sdesc}</p>
-{/if}
-{if $desc}
-<p>{$desc}</p>
-{/if}
-{section name=tags loop=$tags}
-{if $tags[tags].keyword != 'return'}
- <p class="label"><b>{$tags[tags].keyword}</b></p>
- <p class=indent>{$tags[tags].data}</p>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $function}
+ {if $params}
+ <p class="label"><b>Parameters</b></p>
+ {section name=params loop=$params}
+ <p class=dt><i>{$params[params].var}</i></p>
+ <p class=indent>{$params[params].data}</p>
+ {/section}
+ {/if}
+{/if}
+{section name=tags loop=$tags}
+{if $tags[tags].keyword == 'return'}
+ <p class="label"><b>Returns</b></p>
+ <p class=indent>{$tags[tags].data}</p>
+{/if}
+{/section}
+{if $sdesc || $desc}
+<p class="label"><b>Remarks</b></p>
+{/if}
+{if $sdesc}
+<p>{$sdesc}</p>
+{/if}
+{if $desc}
+<p>{$desc}</p>
+{/if}
+{section name=tags loop=$tags}
+{if $tags[tags].keyword != 'return'}
+ <p class="label"><b>{$tags[tags].keyword}</b></p>
+ <p class=indent>{$tags[tags].data}</p>
+{/if}
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl
index 8e25db5c75..755f33c733 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl
@@ -1,9 +1,9 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h1>Index of All Elements</h1>
-<b>Indexes by package:</b><br>
-{section name=p loop=$packageindex}
-<a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a><br>
-{/section}<br>
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h1>Index of All Elements</h1>
+<b>Indexes by package:</b><br>
+{section name=p loop=$packageindex}
+<a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a><br>
+{/section}<br>
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl
index c85acbe055..45bcf94538 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl
@@ -1,8 +1,8 @@
-{foreach key=subpackage item=files from=$fileleftindex}
- {if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if}
- {section name=files loop=$files}
- {if $files[files].link != ''}<a href="{ldelim}$subdir{rdelim}{$files[files].link}">{/if}
- {$files[files].title}
- {if $files[files].link != ''}</a>{/if}<br>
- {/section}
-{/foreach}
+{foreach key=subpackage item=files from=$fileleftindex}
+ {if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if}
+ {section name=files loop=$files}
+ {if $files[files].link != ''}<a href="{ldelim}$subdir{rdelim}{$files[files].link}">{/if}
+ {$files[files].title}
+ {if $files[files].link != ''}</a>{/if}<br>
+ {/section}
+{/foreach}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl
index a0d7119e09..55c826b9ff 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl
@@ -1,6 +1,6 @@
-{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>
-{$source}
+{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>
+{$source}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl
index a015ceea5e..157bb1cd20 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <div id="credit">
- <hr>
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </div>
-{/if}
-</body>
-</html>
+{if !$index}
+ <div id="credit">
+ <hr>
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </div>
+{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl
index 1324c05dba..895e8ab442 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl
@@ -1,44 +1,44 @@
-{if $summary}
-<!-- =========== FUNCTION SUMMARY =========== -->
-<A NAME='function_summary'><!-- --></A>
-<H3>Function Summary</H3>
-
-<UL>
- {section name=func loop=$functions}
- <!-- =========== Summary =========== -->
- <LI><CODE><A HREF="{$functions[func].id}">{$functions[func].function_return} {$functions[func].function_name}()</A></CODE>
- <BR>{$functions[func].sdesc}
- {/section}
-</UL>
-{else}
-<!-- ============ FUNCTION DETAIL =========== -->
-
-<A NAME='function_detail'></A>
-<H3>Function Detail</H3>
-
-<UL>
-{section name=func loop=$functions}
-<A NAME="{$functions[func].function_dest}"><!-- --></A>
-
-<LI><SPAN class="code">{$functions[func].function_return} {$functions[func].function_name}()</SPAN> [line <span class="linenumber">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>]<br />
-<BR><BR>
-<SPAN class="type">Usage:</SPAN> <SPAN class="code">{if $functions[func].ifunction_call.returnsref}&amp;{/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}
-{/if})</SPAN>
-<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}
-{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=true}
-<BR>
-<p class="top">[ <a href="#top">Top</a> ]</p>
-{/section}
-</UL>
+{if $summary}
+<!-- =========== FUNCTION SUMMARY =========== -->
+<A NAME='function_summary'><!-- --></A>
+<H3>Function Summary</H3>
+
+<UL>
+ {section name=func loop=$functions}
+ <!-- =========== Summary =========== -->
+ <LI><CODE><A HREF="{$functions[func].id}">{$functions[func].function_return} {$functions[func].function_name}()</A></CODE>
+ <BR>{$functions[func].sdesc}
+ {/section}
+</UL>
+{else}
+<!-- ============ FUNCTION DETAIL =========== -->
+
+<A NAME='function_detail'></A>
+<H3>Function Detail</H3>
+
+<UL>
+{section name=func loop=$functions}
+<A NAME="{$functions[func].function_dest}"><!-- --></A>
+
+<LI><SPAN class="code">{$functions[func].function_return} {$functions[func].function_name}()</SPAN> [line <span class="linenumber">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>]<br />
+<BR><BR>
+<SPAN class="type">Usage:</SPAN> <SPAN class="code">{if $functions[func].ifunction_call.returnsref}&amp;{/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}
+{/if})</SPAN>
+<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}
+{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=true}
+<BR>
+<p class="top">[ <a href="#top">Top</a> ]</p>
+{/section}
+</UL>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl
index c1b74a1ca8..113a67ab6c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl
@@ -1,32 +1,32 @@
-{if $summary}
-<!-- =========== GLOBAL VARIABLE SUMMARY =========== -->
-<A NAME='global_summary'><!-- --></A>
-<H3>Global Variable Summary</H3>
-
-<UL>
- {section name=glob loop=$globals}
- <LI><CODE><A HREF="{$globals[glob].id}">{$globals[glob].global_name}</A></CODE> = <CODE class="varsummarydefault">{$globals[glob].global_value}</CODE>
- <BR>{$globals[glob].sdesc}
- {/section}
-</UL>
-
-{else}
-<!-- ============ GLOBAL VARIABLE DETAIL =========== -->
-
-<A NAME='global_detail'></A>
-<H3>Global Variable Detail</H3>
-
-<UL>
- {section name=glob loop=$globals}
- <A NAME="{$globals[glob].global_link}"><!-- --></A>
- <LI><i>{$globals[glob].global_type}</i> <SPAN class="code">{$globals[glob].global_name}</SPAN> = <CODE class="varsummarydefault">{$globals[glob].global_value}</CODE> [line <span class="linenumber">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>]<br />
- {if $globals[glob].global_conflicts.conflict_type}
- <p><b>Conflicts with globals:</b>
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- {/if}<BR><BR>
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
- {/section}
-</UL>
+{if $summary}
+<!-- =========== GLOBAL VARIABLE SUMMARY =========== -->
+<A NAME='global_summary'><!-- --></A>
+<H3>Global Variable Summary</H3>
+
+<UL>
+ {section name=glob loop=$globals}
+ <LI><CODE><A HREF="{$globals[glob].id}">{$globals[glob].global_name}</A></CODE> = <CODE class="varsummarydefault">{$globals[glob].global_value}</CODE>
+ <BR>{$globals[glob].sdesc}
+ {/section}
+</UL>
+
+{else}
+<!-- ============ GLOBAL VARIABLE DETAIL =========== -->
+
+<A NAME='global_detail'></A>
+<H3>Global Variable Detail</H3>
+
+<UL>
+ {section name=glob loop=$globals}
+ <A NAME="{$globals[glob].global_link}"><!-- --></A>
+ <LI><i>{$globals[glob].global_type}</i> <SPAN class="code">{$globals[glob].global_name}</SPAN> = <CODE class="varsummarydefault">{$globals[glob].global_value}</CODE> [line <span class="linenumber">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>]<br />
+ {if $globals[glob].global_conflicts.conflict_type}
+ <p><b>Conflicts with globals:</b>
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ {/if}<BR><BR>
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+ {/section}
+</UL>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl
index bdf6173ed9..30fad6bba7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl
@@ -1,22 +1,22 @@
-<!--
- IE 6 makes the page to wide with the following doctype. I accept
- standards if they help me, not if they make anything even harder!
-//-->
-<!--<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN' 'http://www.w3.org/TR/REC-html40/loose.dtd'>//-->
-<!--NewPage-->
-<HTML>
-<HEAD>
- <!-- Generated by PhpDoc date: '{$date}' -->
- <TITLE>{$title}</TITLE>
-<LINK REL ='stylesheet' TYPE='text/css' HREF='{$subdir}media/stylesheet.css' TITLE='Style'>
-{if $bgleft}
-<STYLE type="text/css"><!--
- BODY {ldelim}
- background-image : url("{$subdir}media/bg_left.png");
- background-repeat : repeat-y;
- {rdelim}
-//--></STYLE>
-{/if}
-</HEAD>
-<BODY {if !$bgleft}BGCOLOR='white'{/if}>
+<!--
+ IE 6 makes the page to wide with the following doctype. I accept
+ standards if they help me, not if they make anything even harder!
+//-->
+<!--<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN' 'http://www.w3.org/TR/REC-html40/loose.dtd'>//-->
+<!--NewPage-->
+<HTML>
+<HEAD>
+ <!-- Generated by PhpDoc date: '{$date}' -->
+ <TITLE>{$title}</TITLE>
+<LINK REL ='stylesheet' TYPE='text/css' HREF='{$subdir}media/stylesheet.css' TITLE='Style'>
+{if $bgleft}
+<STYLE type="text/css"><!--
+ BODY {ldelim}
+ background-image : url("{$subdir}media/bg_left.png");
+ background-repeat : repeat-y;
+ {rdelim}
+//--></STYLE>
+{/if}
+</HEAD>
+<BODY {if !$bgleft}BGCOLOR='white'{/if}>
<a name="top"><!-- --></a> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl
index 95e94b9f8b..c82846a8a2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl
@@ -1,17 +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)
-Title={$maintitle}
-
-[FILES]
-{section name=files loop=$files}
-{$files[files].name}
-{/section}
-
-[INFOTYPES]
-
+[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)
+Title={$maintitle}
+
+[FILES]
+{section name=files loop=$files}
+{$files[files].name}
+{/section}
+
+[INFOTYPES]
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl
index 1ab7440bf2..db76e4dc02 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl
@@ -1,26 +1,26 @@
-{if $summary}
-<!-- =========== INCLUDE SUMMARY =========== -->
-<A NAME='include_summary'><!-- --></A>
-<H3>Include Statements Summary</H3>
-
-<UL>
- {section name=includes loop=$includes}
- <LI><CODE><A HREF="#{$includes[includes].include_file}">{$includes[includes].include_name}</A></CODE> = <CODE class="varsummarydefault">{$includes[includes].include_value}</CODE>
- <BR>{$includes[includes].sdesc}
- {/section}
-</UL>
-{else}
-<!-- ============ INCLUDE DETAIL =========== -->
-
-<A NAME='include_detail'></A>
-<H3>Include Statements Detail</H3>
-
-<UL>
- {section name=includes loop=$includes}
- <A NAME="{$includes[includes].include_file}"><!-- --></A>
- <LI><SPAN class="code">{$includes[includes].include_name} file:</SPAN> = <CODE class="varsummarydefault">{$includes[includes].include_value}</CODE> [line <span class="linenumber">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>]<br />
- <BR><BR>
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
- {/section}
-</UL>
+{if $summary}
+<!-- =========== INCLUDE SUMMARY =========== -->
+<A NAME='include_summary'><!-- --></A>
+<H3>Include Statements Summary</H3>
+
+<UL>
+ {section name=includes loop=$includes}
+ <LI><CODE><A HREF="#{$includes[includes].include_file}">{$includes[includes].include_name}</A></CODE> = <CODE class="varsummarydefault">{$includes[includes].include_value}</CODE>
+ <BR>{$includes[includes].sdesc}
+ {/section}
+</UL>
+{else}
+<!-- ============ INCLUDE DETAIL =========== -->
+
+<A NAME='include_detail'></A>
+<H3>Include Statements Detail</H3>
+
+<UL>
+ {section name=includes loop=$includes}
+ <A NAME="{$includes[includes].include_file}"><!-- --></A>
+ <LI><SPAN class="code">{$includes[includes].include_name} file:</SPAN> = <CODE class="varsummarydefault">{$includes[includes].include_value}</CODE> [line <span class="linenumber">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>]<br />
+ <BR><BR>
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+ {/section}
+</UL>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl
index 8b31a11df3..94cbd18ef0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl
@@ -1,8 +1,8 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML>
-<HEAD>
-<meta name="GENERATOR" content="phpDocumentor {$phpdocversion} {$phpdocwebsite}">
-<!-- Sitemap 1.0 -->
-</HEAD><BODY>
-{$klinks}
-</BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="phpDocumentor {$phpdocversion} {$phpdocwebsite}">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+{$klinks}
+</BODY></HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl
index f73fb8a39d..4e0530971f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl
@@ -1,24 +1,24 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
- <!-- Generated by PhpDoc on {$date} -->
- <TITLE>{$title}</TITLE>
-</HEAD>
-<FRAMESET cols='220,*'>
-{if $package_count > 1}
- <FRAMESET rows='220,*'>
- <FRAME src='packages.html' name='left_top'>
-{/if}
- <FRAME src='{$start}' name='left_bottom'>
-{if $package_count > 1}
- </FRAMESET>
-{/if}
- <FRAME src='{$blank}.html' name='right'>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+ <!-- Generated by PhpDoc on {$date} -->
+ <TITLE>{$title}</TITLE>
+</HEAD>
+<FRAMESET cols='220,*'>
+{if $package_count > 1}
+ <FRAMESET rows='220,*'>
+ <FRAME src='packages.html' name='left_top'>
+{/if}
+ <FRAME src='{$start}' name='left_bottom'>
+{if $package_count > 1}
+ </FRAMESET>
+{/if}
+ <FRAME src='{$blank}.html' name='right'>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl
index 4cbd51f52e..4816c4f94d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl
@@ -1,126 +1,126 @@
-{if $show == 'summary'}
-<!-- =========== METHOD SUMMARY =========== -->
-<A NAME='method_summary'><!-- --></A>
-<H3>Method Summary</H3>
-
-<UL>
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <!-- =========== Summary =========== -->
- <LI><CODE>static <A HREF='{$methods[methods].id}'>{$methods[methods].function_return} {$methods[methods].function_name}()</A></CODE>
- <BR>{$methods[methods].sdesc}
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <!-- =========== Summary =========== -->
- <LI><CODE><A HREF='{$methods[methods].id}'>{$methods[methods].function_return} {$methods[methods].function_name}()</A></CODE>
- <BR>{$methods[methods].sdesc}
- {/if}
- {/section}
-</UL>
-
-{else}
-<!-- ============ METHOD DETAIL =========== -->
-
-<A NAME='method_detail'></A>
-<H3>Method Detail</H3>
-
-<UL>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<A NAME='{$methods[methods].method_dest}'><!-- --></A>
-
-<h1><A name="{$methods[methods].function_name}"></A>static {$class_name}::{$methods[methods].function_name}</h1>
-
-<p class=method>
-<b>static {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}(</b>
-{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].hasdefault}[{/if}<b>{$methods[methods].ifunction_call.params[params].type}</b>
-<i>{$methods[methods].ifunction_call.params[params].name}</i>{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if}<b> );</b>
-</p>
-
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-{if $methods[methods].method_overrides}
-<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>
-{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
-{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
- <p class="top">[ <a href="#top">Top</a> ]</p>
-<BR>
-{/if}
-{/section}
-
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<A NAME='{$methods[methods].method_dest}'><!-- --></A>
-
-<h1><A name="{$methods[methods].function_name}"></A>{$class_name}::{$methods[methods].function_name}</h1>
-
-<p class=method>
-<b>{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}(</b>
-{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].hasdefault}[{/if}<b>{$methods[methods].ifunction_call.params[params].type}</b>
-<i>{$methods[methods].ifunction_call.params[params].name}</i>{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if}<b> );</b>
-</p>
-
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-{if $methods[methods].method_overrides}
-<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>
-{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
-{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
- <p class="top">[ <a href="#top">Top</a> ]</p>
-<BR>
-{/if}
-{/section}
-</UL>
+{if $show == 'summary'}
+<!-- =========== METHOD SUMMARY =========== -->
+<A NAME='method_summary'><!-- --></A>
+<H3>Method Summary</H3>
+
+<UL>
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <!-- =========== Summary =========== -->
+ <LI><CODE>static <A HREF='{$methods[methods].id}'>{$methods[methods].function_return} {$methods[methods].function_name}()</A></CODE>
+ <BR>{$methods[methods].sdesc}
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <!-- =========== Summary =========== -->
+ <LI><CODE><A HREF='{$methods[methods].id}'>{$methods[methods].function_return} {$methods[methods].function_name}()</A></CODE>
+ <BR>{$methods[methods].sdesc}
+ {/if}
+ {/section}
+</UL>
+
+{else}
+<!-- ============ METHOD DETAIL =========== -->
+
+<A NAME='method_detail'></A>
+<H3>Method Detail</H3>
+
+<UL>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<A NAME='{$methods[methods].method_dest}'><!-- --></A>
+
+<h1><A name="{$methods[methods].function_name}"></A>static {$class_name}::{$methods[methods].function_name}</h1>
+
+<p class=method>
+<b>static {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}(</b>
+{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].hasdefault}[{/if}<b>{$methods[methods].ifunction_call.params[params].type}</b>
+<i>{$methods[methods].ifunction_call.params[params].name}</i>{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if}<b> );</b>
+</p>
+
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+{if $methods[methods].method_overrides}
+<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>
+{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+<BR>
+{/if}
+{/section}
+
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<A NAME='{$methods[methods].method_dest}'><!-- --></A>
+
+<h1><A name="{$methods[methods].function_name}"></A>{$class_name}::{$methods[methods].function_name}</h1>
+
+<p class=method>
+<b>{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}(</b>
+{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].hasdefault}[{/if}<b>{$methods[methods].ifunction_call.params[params].type}</b>
+<i>{$methods[methods].ifunction_call.params[params].name}</i>{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if}<b> );</b>
+</p>
+
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+{if $methods[methods].method_overrides}
+<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>
+{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+<BR>
+{/if}
+{/section}
+</UL>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl
index b48b671967..0967e6e720 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl
@@ -1,3 +1,3 @@
-{section name=packages loop=$packages}
-<a href="{$packages[packages].link}">{$packages[packages].title}</a>
+{section name=packages loop=$packages}
+<a href="{$packages[packages].link}">{$packages[packages].title}</a>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl
index dc93b0a1fa..39f4823aa0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl
@@ -1,34 +1,34 @@
-{include file="header.tpl" eltype="Procedural file"}
-<h3><SPAN class="type">File:</SPAN> {$source_location}<HR>
-</h3>
-{if $tutorial}
-<div class="maintutorial">Main Tutorial: {$tutorial}</div>
-{/if}
-{include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-Classes in this file:
-<dl>
-{section name=classes loop=$classes}
-<dt>{$classes[classes].link}</dt>
- <dd>{$classes[classes].sdesc}</dd>
-{/section}
-</dl>
-<hr>
-{include file="include.tpl" summary=true}
-<hr>
-{include file="global.tpl" summary=true}
-<hr>
-{include file="define.tpl" summary=true}
-<hr>
-{include file="function.tpl" summary=true}
-<hr>
-{include file="include.tpl"}
-<hr>
-{include file="global.tpl"}
-<hr>
-{include file="define.tpl"}
-<hr>
-{include file="function.tpl"}
-<hr>
-{include file="footer.tpl"}
-
+{include file="header.tpl" eltype="Procedural file"}
+<h3><SPAN class="type">File:</SPAN> {$source_location}<HR>
+</h3>
+{if $tutorial}
+<div class="maintutorial">Main Tutorial: {$tutorial}</div>
+{/if}
+{include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+Classes in this file:
+<dl>
+{section name=classes loop=$classes}
+<dt>{$classes[classes].link}</dt>
+ <dd>{$classes[classes].sdesc}</dd>
+{/section}
+</dl>
+<hr>
+{include file="include.tpl" summary=true}
+<hr>
+{include file="global.tpl" summary=true}
+<hr>
+{include file="define.tpl" summary=true}
+<hr>
+{include file="function.tpl" summary=true}
+<hr>
+{include file="include.tpl"}
+<hr>
+{include file="global.tpl"}
+<hr>
+{include file="define.tpl"}
+<hr>
+{include file="function.tpl"}
+<hr>
+{include file="footer.tpl"}
+
</HTML> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl
index 688974509c..f3a90ab39a 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h1>Element index for package {$package}</h1>
-{if count($packageindex) > 1}
-<b>Indexes by package:</b><br>
-{/if}
-{section name=p loop=$packageindex}
-{if $packageindex[p].title != $package}
-<a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a><br>
-{/if}
-{/section}<br>
-<a href="elementindex.html"><b>Index of all elements</b></a><br>
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h1>Element index for package {$package}</h1>
+{if count($packageindex) > 1}
+<b>Indexes by package:</b><br>
+{/if}
+{section name=p loop=$packageindex}
+{if $packageindex[p].title != $package}
+<a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a><br>
+{/if}
+{/section}<br>
+<a href="elementindex.html"><b>Index of all elements</b></a><br>
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl
index 87f68ebb70..dd0669b5c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl
@@ -1,11 +1,11 @@
-<UL>
-{section name=entry loop=$entry}
- <LI> <OBJECT type="text/sitemap">
- <param name="Name" value="{$entry[entry].paramname}">
-{if $entry[entry].isclass} <param name="ImageNumber" value="1">
-{/if}{if $entry[entry].outputfile} <param name="Local" value="{$entry[entry].outputfile}">
-{/if} </OBJECT>
- {if $entry[entry].tocsubentries}{$entry[entry].tocsubentries}{/if}
-{/section}
- {$tocsubentries}
-</UL>
+<UL>
+{section name=entry loop=$entry}
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="{$entry[entry].paramname}">
+{if $entry[entry].isclass} <param name="ImageNumber" value="1">
+{/if}{if $entry[entry].outputfile} <param name="Local" value="{$entry[entry].outputfile}">
+{/if} </OBJECT>
+ {if $entry[entry].tocsubentries}{$entry[entry].tocsubentries}{/if}
+{/section}
+ {$tocsubentries}
+</UL>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl
index 22c71c3b9a..a943522c24 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl
@@ -1,32 +1,32 @@
-{include file="header.tpl" title=$title}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="10%" align="left" valign="bottom">{if $prev}<a href=
-"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
-<td width="80%" align="center" valign="bottom"></td>
-<td width="10%" align="right" valign="bottom">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-</table>
-{/if}
-{$contents}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
-Prev{if $prev}</a>{/if}</td>
-<td width="34%" align="center" valign="top">{if $up}<a href=
-"{$up}">Up</a>{else}&nbsp;{/if}</td>
-<td width="33%" align="right" valign="top">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-
-<tr>
-<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
-<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
-<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
-</tr>
-</table>
-{/if}
+{include file="header.tpl" title=$title}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="10%" align="left" valign="bottom">{if $prev}<a href=
+"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
+<td width="80%" align="center" valign="bottom"></td>
+<td width="10%" align="right" valign="bottom">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+</table>
+{/if}
+{$contents}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
+Prev{if $prev}</a>{/if}</td>
+<td width="34%" align="center" valign="top">{if $up}<a href=
+"{$up}">Up</a>{else}&nbsp;{/if}</td>
+<td width="33%" align="right" valign="top">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+
+<tr>
+<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
+<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
+<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
+</tr>
+</table>
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl
index 1db3443844..3d22d403b4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl
@@ -1,29 +1,29 @@
-{if count($toc)}
-<h1 align="center">Table of Contents</h1>
-<ul>
-{section name=toc loop=$toc}
-{if $toc[toc].tagname == 'refsect1'}
-{assign var="context" value="refsect1"}
-{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect2'}
-{assign var="context" value="refsect2"}
-&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect3'}
-{assign var="context" value="refsect3"}
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'table'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{if $toc[toc].tagname == 'example'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{/section}
-</ul>
+{if count($toc)}
+<h1 align="center">Table of Contents</h1>
+<ul>
+{section name=toc loop=$toc}
+{if $toc[toc].tagname == 'refsect1'}
+{assign var="context" value="refsect1"}
+{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect2'}
+{assign var="context" value="refsect2"}
+&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect3'}
+{assign var="context" value="refsect3"}
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'table'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{if $toc[toc].tagname == 'example'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{/section}
+</ul>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl
index 6997545a35..de90717924 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl
@@ -1,5 +1,5 @@
-<ul>
- <li><a href="{$main.link}" target="right">{$main.title|strip_tags}</a>
-{if $kids}{$kids}</li>{/if}
-</ul>
-
+<ul>
+ <li><a href="{$main.link}" target="right">{$main.title|strip_tags}</a>
+{if $kids}{$kids}</li>{/if}
+</ul>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl
index e635bef282..eeefcc51bc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl
@@ -1,51 +1,51 @@
-{if $show=="summary"}
-<!-- =========== VAR SUMMARY =========== -->
-<A NAME='var_summary'><!-- --></A>
-<H3>Class Variable Summary</H3>
-
-<UL>
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <!-- =========== Summary =========== -->
- <LI><CODE>static <a href="{$vars[vars].id}">{$vars[vars].var_name}</a></CODE> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE>
- <BR>
- {$vars[vars].sdesc}
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <!-- =========== Summary =========== -->
- <LI><CODE><a href="{$vars[vars].id}">{$vars[vars].var_name}</a></CODE> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE>
- <BR>
- {$vars[vars].sdesc}
- {/if}
- {/section}
-</UL>
-{else}
-<!-- ============ VARIABLE DETAIL =========== -->
-
-<A NAME='variable_detail'></A>
-
-<H3>Variable Detail</H3>
-
-<UL>
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<A NAME="{$vars[vars].var_dest}"><!-- --></A>
-<LI><SPAN class="code">static {$vars[vars].var_name}</SPAN> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE> [line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>]</LI>
-<LI><b>Data type:</b> <CODE class="varsummarydefault">{$vars[vars].var_type}</CODE>{if $vars[vars].var_overrides}<b>Overrides:</b> {$vars[vars].var_overrides}<br>{/if}</LI>
-{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-<BR>
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<A NAME="{$vars[vars].var_dest}"><!-- --></A>
-<LI><SPAN class="code">{$vars[vars].var_name}</SPAN> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE> [line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>]</LI>
-<LI><b>Data type:</b> <CODE class="varsummarydefault">{$vars[vars].var_type}</CODE>{if $vars[vars].var_overrides}<b>Overrides:</b> {$vars[vars].var_overrides}<br>{/if}</LI>
-{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-<BR>
-{/if}
-{/section}
-</UL>
+{if $show=="summary"}
+<!-- =========== VAR SUMMARY =========== -->
+<A NAME='var_summary'><!-- --></A>
+<H3>Class Variable Summary</H3>
+
+<UL>
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <!-- =========== Summary =========== -->
+ <LI><CODE>static <a href="{$vars[vars].id}">{$vars[vars].var_name}</a></CODE> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE>
+ <BR>
+ {$vars[vars].sdesc}
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <!-- =========== Summary =========== -->
+ <LI><CODE><a href="{$vars[vars].id}">{$vars[vars].var_name}</a></CODE> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE>
+ <BR>
+ {$vars[vars].sdesc}
+ {/if}
+ {/section}
+</UL>
+{else}
+<!-- ============ VARIABLE DETAIL =========== -->
+
+<A NAME='variable_detail'></A>
+
+<H3>Variable Detail</H3>
+
+<UL>
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<A NAME="{$vars[vars].var_dest}"><!-- --></A>
+<LI><SPAN class="code">static {$vars[vars].var_name}</SPAN> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE> [line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>]</LI>
+<LI><b>Data type:</b> <CODE class="varsummarydefault">{$vars[vars].var_type}</CODE>{if $vars[vars].var_overrides}<b>Overrides:</b> {$vars[vars].var_overrides}<br>{/if}</LI>
+{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+<BR>
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<A NAME="{$vars[vars].var_dest}"><!-- --></A>
+<LI><SPAN class="code">{$vars[vars].var_name}</SPAN> = <CODE class="varsummarydefault">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</CODE> [line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>]</LI>
+<LI><b>Data type:</b> <CODE class="varsummarydefault">{$vars[vars].var_type}</CODE>{if $vars[vars].var_overrides}<b>Overrides:</b> {$vars[vars].var_overrides}<br>{/if}</LI>
+{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+<BR>
+{/if}
+{/section}
+</UL>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/options.ini
index a8bbc7212b..32ea208812 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, highlighted by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <strong>by <span class="author">
-/author = </span></strong>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = strong
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 =
-/refsect2 = <hr />
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, highlighted by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <strong>by <span class="author">
+/author = </span></strong>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = strong
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 =
+/refsect2 = <hr />
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/basicindex.tpl
index 031a998115..02da5c4017 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/basicindex.tpl
@@ -1,21 +1,21 @@
-{section name=letter loop=$letters}
- [ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> ]
-{/section}
-<br /><br />
-{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>
- <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>
-{/section}
+{section name=letter loop=$letters}
+ [ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> ]
+{/section}
+<br /><br />
+{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>
+ <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>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/blank.tpl
index 4619ceb5a3..a7f6308fad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/blank.tpl
@@ -1,6 +1,6 @@
-<div align="center"><h1>{$maintitle}</h1></div>
-<strong>Welcome to {$package}!</strong><br />
-<br />
-This documentation was generated by <a href="{$phpdocwebsite}">phpDocumentor v{$phpdocversion}</a>
-<br />
-
+<div align="center"><h1>{$maintitle}</h1></div>
+<strong>Welcome to {$package}!</strong><br />
+<br />
+This documentation was generated by <a href="{$phpdocwebsite}">phpDocumentor v{$phpdocversion}</a>
+<br />
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/class.tpl
index 94ffff6638..de4d8b6b33 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/class.tpl
@@ -1,570 +1,570 @@
-{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">{if $is_interface}Interface{else}Class{/if} Overview</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts}
- <span class="disabled">{if $is_interface}Interface{else}Class{/if} Overview</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendants</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
-
- {if $ivars || $imethods}
- <a href="#sec-inherited">Inherited Properties, Constants, and Methods</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
- {else}
- <a href="#sec-vars">Properties</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {if $consts || $iconsts}|{/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table width="100%" border="0">
- <tr><td valign="top" width="60%" class="class-overview">
-
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
-
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> [<span class="field">line {if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>]
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
- {if count($tags) > 0}
- <strong>Author(s):</strong>
- <ul>
- {section name=tag loop=$tags}
- {if $tags[tag].keyword eq "author"}
- <li>{$tags[tag].data}</li>
- {/if}
- {/section}
- </ul>
- {/if}
-
- {include file="classtags.tpl" tags=$tags}
- </td>
-
- {if count($contents.var) > 0}
- <td valign="top" width="20%" class="class-overview">
- <p align="center" class="short-description"><strong><a href="#sec_vars">Properties</a></strong></p>
- <ul>
- {section name=contents loop=$contents.var}
- <li>{$contents.var[contents]}</li>
- {/section}
- </ul>
- </td>
- {/if}
-
- {if count($contents.method) > 0}
- <td valign="top" width="20%" class="class-overview">
- <p align="center" class="short-description"><strong><a href="#sec_methods">Methods</a></strong></p>
- <ul>
- {section name=contents loop=$contents.method}
- <li>{$contents.method[contents]}</li>
- {/section}
- </ul>
- </td>
- {/if}
-
- </tr></table>
- <div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {/if}
- {if $ivars || $imethods}
- <a href="#sec-inherited">Inherited Properties and Methods</a>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
- {else}
- <a href="#sec-vars">Properties</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {if $consts || $iconsts}|{/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Child Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- <br /><div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
- </div>
-{/if}
-
-{if $ivars || $imethods || $iconsts}
- <a name="sec-inherited"></a>
- <div class="info-box">
- <div class="info-box-title">Inherited Properties, Constants, and Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $vars || $ivars || $methods || $imethods || $iconsts || $consts}|{/if}
- <span class="disabled">Inherited Properties, Constants, and Methods</span>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
- {else}
- <a href="#sec-vars">Properties</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {if $consts || $iconsts}|{/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header" width="30%">Inherited Properties</th>
- <th class="class-table-header" width="40%">Inherited Methods</th>
- <th class="class-table-header" width="30%">Inherited Constants</th>
- </tr>
- <tr>
- <td width="30%">
- {section name=ivars loop=$ivars}
- <p>Inherited From <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- <dl>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <dt>
- <span class="method-definition">{$ivars[ivars].ivars[ivars2].link}</span>
- </dt>
- <dd>
- <span class="method-definition">{$ivars[ivars].ivars[ivars2].ivars_sdesc}</span>
- </dd>
- {/section}
- </dl>
- </blockquote>
- {/section}
- </td>
- <td width="40%">
- {section name=imethods loop=$imethods}
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- <dl>
- {section name=im2 loop=$imethods[imethods].imethods}
- <dt>
- <span class="method-definition">{$imethods[imethods].imethods[im2].link}</span>
- </dt>
- <dd>
- <span class="method-definition">{$imethods[imethods].imethods[im2].sdesc}</span>
- </dd>
- {/section}
- </dl>
- </blockquote>
- {/section}
- </td>
- <td width="30%">
- {section name=iconsts loop=$iconsts}
- <p>Inherited From <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- <dl>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <dt>
- <span class="method-definition">{$iconsts[iconsts].iconsts[iconsts2].link}</span>
- </dt>
- <dd>
- <span class="method-definition">{$iconsts[iconsts].iconsts[iconsts2].iconsts_sdesc}</span>
- </dd>
- {/section}
- </dl>
- </blockquote>
- {/section}
- </td>
- </tr>
- </table>
- <br /><div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $ivars || $imethods || $iconsts}
- <a href="#sec-inherited">Inherited Properties, Constants, and Methods</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- <span class="disabled">Constants Summary</span> | <a href="#sec-consts">Constants Detail</a>
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
- {else}
- <a href="#sec-vars">Properties</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- <table border="0" cellspacing="0" cellpadding="0" class="var-summary">
- {section name=consts loop=$consts}
- <div class="var-title">
- <tr>
- <td class="var-title"><a href="#{$consts[consts].const_dest}" title="details" class="const-name-summary">{$consts[consts].const_name}</a>&nbsp;&nbsp;</td>
- <td class="const-summary-description">{$consts[consts].sdesc}</td></tr>
- </div>
- {/section}
- </table>
- </div>
- <br /><div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Property Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $ivars || $imethods || $iconsts}
- <a href="#sec-inherited">Inherited Properties and Methods</a>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {/if}
- <span class="disabled">Property Summary</span> | <a href="#sec-vars">Properties Detail</a>
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {if $consts || $iconsts}|{/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- <table border="0" cellspacing="0" cellpadding="0" class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- <tr><td class="var-title">static <span class="var-type-summary">{$vars[vars].var_type}</span>&nbsp;&nbsp;</td>
- <td class="var-title"><a href="#{$vars[vars].var_name}" title="details" class="var-name-summary">{$vars[vars].var_name}</a>&nbsp;&nbsp;</td>
- <td class="var-summary-description">{$vars[vars].sdesc}</td></tr>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <tr><td class="var-title"><span class="var-type-summary">{$vars[vars].var_type}</span>&nbsp;&nbsp;</td>
- <td class="var-title"><a href="#{$vars[vars].var_name}" title="details" class="var-name-summary">{$vars[vars].var_name}</a>&nbsp;&nbsp;</td>
- <td class="var-summary-description">{$vars[vars].sdesc}</td></tr>
- </div>
- {/if}
- {/section}
- </table>
- </div>
- <br /><div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $ivars || $imethods || $iconsts}
- <a href="#sec-inherited">Inherited Properties and Methods</a>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
- {else}
- <a href="#sec-vars">Properties</a>
- {/if}
- {if $consts || $iconsts}|{/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- <span class="disabled">Method Summary</span> | <a href="#sec-methods">Methods Detail</a>
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- <table border="0" cellspacing="0" cellpadding="0" class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- <tr><td class="method-definition">static
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>&nbsp;&nbsp;
- {/if}</td>
- <td class="method-definition"><a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>()&nbsp;&nbsp;</td>
- <td class="method-definition">{$methods[methods].sdesc}</td></tr>
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <tr><td class="method-definition"><span class="method-result">{$methods[methods].function_return}</span>&nbsp;&nbsp;</td>
- {/if}
- <td class="method-definition"><a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>()&nbsp;&nbsp;</td>
- <td class="method-definition">{$methods[methods].sdesc}</td></tr>
- </div>
- {/if}
- {/section}
- </table>
- </div>
- <br /><div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Properties</div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $ivars || $imethods || $iconsts}
- <a href="#sec-inherited">Inherited Properties and Methods</a>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Property Summary</a> | <a href="#sec-vars">Properties Detail</a>
- {else}
- <span class="disabled">Properties</span>
- {/if}
-
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- |
- {if $consts}
- <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {/if}
- {if $ivars || $imethods || $iconsts}
- <a href="#sec-inherited">Inherited Properties and Methods</a>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {/if}
- {if $vars || $ivars}
- |
- {if $vars}
- <a href="#sec-var-summary">Property Summary</a> | <a href="#sec-vars">Properties Detail</a>
- {else}
- <a href="#sec-vars">Properties</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- |
- {if $consts}
- <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- | <a href="#sec-method-summary">Method Summary</a> | <span class="disabled">Methods Detail</span>
- {else}
- | <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- </div>
- </div>
-{/if}
-
-{if $consts || $consts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Class Overview</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a>
- {/if}
- {if $consts}
- | <a href="#sec-const-summary">Constants Summary</a> | <span class="disabled">Constants Detail</span>
- {else}
- | <span class="disabled">Constants</span>
- {/if}
- {if $ivars || $imethods || $iconsts}
- <a href="#sec-inherited">Inherited Properties, Constants, and Methods</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts} | {/if}
- {/if}
-
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- </div>
- </div>
-{/if}
-
+{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">{if $is_interface}Interface{else}Class{/if} Overview</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts}
+ <span class="disabled">{if $is_interface}Interface{else}Class{/if} Overview</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendants</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+
+ {if $ivars || $imethods}
+ <a href="#sec-inherited">Inherited Properties, Constants, and Methods</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
+ {else}
+ <a href="#sec-vars">Properties</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {if $consts || $iconsts}|{/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table width="100%" border="0">
+ <tr><td valign="top" width="60%" class="class-overview">
+
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> [<span class="field">line {if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>]
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+ {if count($tags) > 0}
+ <strong>Author(s):</strong>
+ <ul>
+ {section name=tag loop=$tags}
+ {if $tags[tag].keyword eq "author"}
+ <li>{$tags[tag].data}</li>
+ {/if}
+ {/section}
+ </ul>
+ {/if}
+
+ {include file="classtags.tpl" tags=$tags}
+ </td>
+
+ {if count($contents.var) > 0}
+ <td valign="top" width="20%" class="class-overview">
+ <p align="center" class="short-description"><strong><a href="#sec_vars">Properties</a></strong></p>
+ <ul>
+ {section name=contents loop=$contents.var}
+ <li>{$contents.var[contents]}</li>
+ {/section}
+ </ul>
+ </td>
+ {/if}
+
+ {if count($contents.method) > 0}
+ <td valign="top" width="20%" class="class-overview">
+ <p align="center" class="short-description"><strong><a href="#sec_methods">Methods</a></strong></p>
+ <ul>
+ {section name=contents loop=$contents.method}
+ <li>{$contents.method[contents]}</li>
+ {/section}
+ </ul>
+ </td>
+ {/if}
+
+ </tr></table>
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {/if}
+ {if $ivars || $imethods}
+ <a href="#sec-inherited">Inherited Properties and Methods</a>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
+ {else}
+ <a href="#sec-vars">Properties</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {if $consts || $iconsts}|{/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Child Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ <br /><div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+ </div>
+{/if}
+
+{if $ivars || $imethods || $iconsts}
+ <a name="sec-inherited"></a>
+ <div class="info-box">
+ <div class="info-box-title">Inherited Properties, Constants, and Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $vars || $ivars || $methods || $imethods || $iconsts || $consts}|{/if}
+ <span class="disabled">Inherited Properties, Constants, and Methods</span>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
+ {else}
+ <a href="#sec-vars">Properties</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {if $consts || $iconsts}|{/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header" width="30%">Inherited Properties</th>
+ <th class="class-table-header" width="40%">Inherited Methods</th>
+ <th class="class-table-header" width="30%">Inherited Constants</th>
+ </tr>
+ <tr>
+ <td width="30%">
+ {section name=ivars loop=$ivars}
+ <p>Inherited From <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ <dl>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <dt>
+ <span class="method-definition">{$ivars[ivars].ivars[ivars2].link}</span>
+ </dt>
+ <dd>
+ <span class="method-definition">{$ivars[ivars].ivars[ivars2].ivars_sdesc}</span>
+ </dd>
+ {/section}
+ </dl>
+ </blockquote>
+ {/section}
+ </td>
+ <td width="40%">
+ {section name=imethods loop=$imethods}
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ <dl>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <dt>
+ <span class="method-definition">{$imethods[imethods].imethods[im2].link}</span>
+ </dt>
+ <dd>
+ <span class="method-definition">{$imethods[imethods].imethods[im2].sdesc}</span>
+ </dd>
+ {/section}
+ </dl>
+ </blockquote>
+ {/section}
+ </td>
+ <td width="30%">
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited From <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ <dl>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <dt>
+ <span class="method-definition">{$iconsts[iconsts].iconsts[iconsts2].link}</span>
+ </dt>
+ <dd>
+ <span class="method-definition">{$iconsts[iconsts].iconsts[iconsts2].iconsts_sdesc}</span>
+ </dd>
+ {/section}
+ </dl>
+ </blockquote>
+ {/section}
+ </td>
+ </tr>
+ </table>
+ <br /><div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $ivars || $imethods || $iconsts}
+ <a href="#sec-inherited">Inherited Properties, Constants, and Methods</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ <span class="disabled">Constants Summary</span> | <a href="#sec-consts">Constants Detail</a>
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
+ {else}
+ <a href="#sec-vars">Properties</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ <table border="0" cellspacing="0" cellpadding="0" class="var-summary">
+ {section name=consts loop=$consts}
+ <div class="var-title">
+ <tr>
+ <td class="var-title"><a href="#{$consts[consts].const_dest}" title="details" class="const-name-summary">{$consts[consts].const_name}</a>&nbsp;&nbsp;</td>
+ <td class="const-summary-description">{$consts[consts].sdesc}</td></tr>
+ </div>
+ {/section}
+ </table>
+ </div>
+ <br /><div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Property Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $ivars || $imethods || $iconsts}
+ <a href="#sec-inherited">Inherited Properties and Methods</a>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {/if}
+ <span class="disabled">Property Summary</span> | <a href="#sec-vars">Properties Detail</a>
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {if $consts || $iconsts}|{/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ <table border="0" cellspacing="0" cellpadding="0" class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ <tr><td class="var-title">static <span class="var-type-summary">{$vars[vars].var_type}</span>&nbsp;&nbsp;</td>
+ <td class="var-title"><a href="#{$vars[vars].var_name}" title="details" class="var-name-summary">{$vars[vars].var_name}</a>&nbsp;&nbsp;</td>
+ <td class="var-summary-description">{$vars[vars].sdesc}</td></tr>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <tr><td class="var-title"><span class="var-type-summary">{$vars[vars].var_type}</span>&nbsp;&nbsp;</td>
+ <td class="var-title"><a href="#{$vars[vars].var_name}" title="details" class="var-name-summary">{$vars[vars].var_name}</a>&nbsp;&nbsp;</td>
+ <td class="var-summary-description">{$vars[vars].sdesc}</td></tr>
+ </div>
+ {/if}
+ {/section}
+ </table>
+ </div>
+ <br /><div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $ivars || $imethods || $iconsts}
+ <a href="#sec-inherited">Inherited Properties and Methods</a>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Properties Summary</a> | <a href="#sec-vars">Properties Detail</a>
+ {else}
+ <a href="#sec-vars">Properties</a>
+ {/if}
+ {if $consts || $iconsts}|{/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ <span class="disabled">Method Summary</span> | <a href="#sec-methods">Methods Detail</a>
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ <table border="0" cellspacing="0" cellpadding="0" class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ <tr><td class="method-definition">static
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>&nbsp;&nbsp;
+ {/if}</td>
+ <td class="method-definition"><a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>()&nbsp;&nbsp;</td>
+ <td class="method-definition">{$methods[methods].sdesc}</td></tr>
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <tr><td class="method-definition"><span class="method-result">{$methods[methods].function_return}</span>&nbsp;&nbsp;</td>
+ {/if}
+ <td class="method-definition"><a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>()&nbsp;&nbsp;</td>
+ <td class="method-definition">{$methods[methods].sdesc}</td></tr>
+ </div>
+ {/if}
+ {/section}
+ </table>
+ </div>
+ <br /><div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Properties</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $ivars || $imethods || $iconsts}
+ <a href="#sec-inherited">Inherited Properties and Methods</a>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Property Summary</a> | <a href="#sec-vars">Properties Detail</a>
+ {else}
+ <span class="disabled">Properties</span>
+ {/if}
+
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ |
+ {if $consts}
+ <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {/if}
+ {if $ivars || $imethods || $iconsts}
+ <a href="#sec-inherited">Inherited Properties and Methods</a>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ |
+ {if $vars}
+ <a href="#sec-var-summary">Property Summary</a> | <a href="#sec-vars">Properties Detail</a>
+ {else}
+ <a href="#sec-vars">Properties</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ |
+ {if $consts}
+ <a href="#sec-const-summary">Constants Summary</a> | <a href="#sec-consts">Constants Detail</a>
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ | <a href="#sec-method-summary">Method Summary</a> | <span class="disabled">Methods Detail</span>
+ {else}
+ | <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $consts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Class Overview</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a>
+ {/if}
+ {if $consts}
+ | <a href="#sec-const-summary">Constants Summary</a> | <span class="disabled">Constants Detail</span>
+ {else}
+ | <span class="disabled">Constants</span>
+ {/if}
+ {if $ivars || $imethods || $iconsts}
+ <a href="#sec-inherited">Inherited Properties, Constants, and Methods</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts} | {/if}
+ {/if}
+
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Method Summary</a> | <a href="#sec-methods">Methods Detail</a>
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ </div>
+ </div>
+{/if}
+
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classleft.tpl
index 17d659654c..3bae1684b5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classleft.tpl
@@ -1,11 +1,11 @@
-{foreach key=subpackage item=files from=$classleftindex}
- <div class="package">
- {if $subpackage != ""}{$subpackage}<br />{/if}
- {section name=files loop=$files}
- {if $subpackage != ""}<span style="padding-left: 1em;">{/if}
- {if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}
- {if $subpackage != ""}</span>{/if}
- <br />
- {/section}
- </div>
-{/foreach}
+{foreach key=subpackage item=files from=$classleftindex}
+ <div class="package">
+ {if $subpackage != ""}{$subpackage}<br />{/if}
+ {section name=files loop=$files}
+ {if $subpackage != ""}<span style="padding-left: 1em;">{/if}
+ {if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}
+ {if $subpackage != ""}</span>{/if}
+ <br />
+ {/section}
+ </div>
+{/foreach}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtags.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtags.tpl
index 2628379f1f..b810ecf878 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtags.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtags.tpl
@@ -1,22 +1,22 @@
-{if count($api_tags) > 0}
-<strong>API Tags:</strong><br />
-<table border="0" cellspacing="0" cellpadding="0">
-{section name=tag loop=$api_tags}
- <tr>
- <td class="indent"><strong>{$api_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$api_tags[tag].data}</td>
- </tr>
-{/section}
-</table>
-<br />
-{/if}
-
-{if count($info_tags) > 0}
-<strong>Information Tags:</strong><br />
-<table border="0" cellspacing="0" cellpadding="0">
-{section name=tag loop=$info_tags}
- {if $info_tags[tag].keyword ne "author"}
- <tr><td><strong>{$info_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$info_tags[tag].data}</td></tr>
- {/if}
-{/section}
-</table>
-{/if}
+{if count($api_tags) > 0}
+<strong>API Tags:</strong><br />
+<table border="0" cellspacing="0" cellpadding="0">
+{section name=tag loop=$api_tags}
+ <tr>
+ <td class="indent"><strong>{$api_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$api_tags[tag].data}</td>
+ </tr>
+{/section}
+</table>
+<br />
+{/if}
+
+{if count($info_tags) > 0}
+<strong>Information Tags:</strong><br />
+<table border="0" cellspacing="0" cellpadding="0">
+{section name=tag loop=$info_tags}
+ {if $info_tags[tag].keyword ne "author"}
+ <tr><td><strong>{$info_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$info_tags[tag].data}</td></tr>
+ {/if}
+{/section}
+</table>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtrees.tpl
index 327c6dc0dc..0c0e974aac 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/classtrees.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl" noleftindex=true}
-<h1>{$title}</h1>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<hr />
-<div class="classtree">Root interface {$interfaces[classtrees].class}</div><br />
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<hr />
-<div class="classtree">Root class {$classtrees[classtrees].class}</div><br />
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<h1>{$title}</h1>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<hr />
+<div class="classtree">Root interface {$interfaces[classtrees].class}</div><br />
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<hr />
+<div class="classtree">Root class {$classtrees[classtrees].class}</div><br />
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/const.tpl
index 572a4d7cea..2e3270e065 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/const.tpl
@@ -1,19 +1,19 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-name">{$consts[consts].const_name}</span>
- = <span class="var-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- <span class="smalllinenumber">[line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}]</span>
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc}
- {include file="tags.tpl" api_tags=$consts[consts].api_tags info_tags=$consts[consts].info_tags}
-
- <br />
- <div class="top">[ <a href="#top">Top</a> ]</div>
-</div>
-{/section}
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-name">{$consts[consts].const_name}</span>
+ = <span class="var-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ <span class="smalllinenumber">[line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}]</span>
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc}
+ {include file="tags.tpl" api_tags=$consts[consts].api_tags info_tags=$consts[consts].info_tags}
+
+ <br />
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/define.tpl
index 830eebfc4e..9b3809dff0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/define.tpl
@@ -1,34 +1,34 @@
-{if count($defines) > 0}
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</span>
- </span>
- </div>
-<br />
- <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}
- {include file="tags.tpl" api_tags=$defines[def].api_tags info_tags=$defines[def].info_tags}
- <br />
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div><br />
- {/if}
- <div class="top">[ <a href="#top">Top</a> ]</div>
- <br />
-</div>
-{/section}
+{if count($defines) > 0}
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</span>
+ </span>
+ </div>
+<br />
+ <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}
+ {include file="tags.tpl" api_tags=$defines[def].api_tags info_tags=$defines[def].info_tags}
+ <br />
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div><br />
+ {/if}
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+ <br />
+</div>
+{/section}
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/docblock.tpl
index 5541460dfb..20bda10b85 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/docblock.tpl
@@ -1,5 +1,5 @@
-{if $sdesc != ''}
-<p align="center" class="short-description"><strong>{$sdesc|default:''}
-</strong></p>
-{/if}
-{if $desc != ''}<span class="description">{$desc|default:''}</span>{/if}
+{if $sdesc != ''}
+<p align="center" class="short-description"><strong>{$sdesc|default:''}
+</strong></p>
+{/if}
+{if $desc != ''}<span class="description">{$desc|default:''}</span>{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/elementindex.tpl
index a6c2fcc89f..0bb2be85cc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h1>Index of All Elements</h1>
-<h3>Package Indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h1>Index of All Elements</h1>
+<h3>Package Indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/examplesource.tpl
index 635cb2b52f..8b8c94fc00 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1 align="center">{$title}</h1>
-<div class="src-code"><span class="php">
-{$source}
-</span></div>
+{include file="header.tpl" title=$title}
+<h1 align="center">{$title}</h1>
+<div class="src-code"><span class="php">
+{$source}
+</span></div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/fileleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/fileleft.tpl
index 6891714754..44d254e1e5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/fileleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/fileleft.tpl
@@ -1,8 +1,8 @@
-{foreach key=subpackage item=files from=$fileleftindex}
- <div class="package">
- {if $subpackage != ""}<strong>{$subpackage}</strong><br />{/if}
- {section name=files loop=$files}
- <span style="padding-left: 1em;">{if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}</span><br />
- {/section}
- </div>
-{/foreach}
+{foreach key=subpackage item=files from=$fileleftindex}
+ <div class="package">
+ {if $subpackage != ""}<strong>{$subpackage}</strong><br />{/if}
+ {section name=files loop=$files}
+ <span style="padding-left: 1em;">{if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}</span><br />
+ {/section}
+ </div>
+{/foreach}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filesource.tpl
index e8ae18777c..7307486362 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filesource.tpl
@@ -1,8 +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="src-code"><span class="php">
-{$source}
-</span></div>
+{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="src-code"><span class="php">
+{$source}
+</span></div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filetags.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filetags.tpl
index 76598c87e8..77427b0e40 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filetags.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/filetags.tpl
@@ -1,7 +1,7 @@
-{if count($tags) > 0}
-<table border="0" cellspacing="0" cellpadding="0">
- {section name=tag loop=$tags}
- <tr><td><strong>{$tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$tags[tag].data}</td></tr>
- {/section}
-</table>
-{/if}
+{if count($tags) > 0}
+<table border="0" cellspacing="0" cellpadding="0">
+ {section name=tag loop=$tags}
+ <tr><td><strong>{$tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$tags[tag].data}</td></tr>
+ {/section}
+</table>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/footer.tpl
index b03216f272..32b09c11a8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/footer.tpl
@@ -1,11 +1,11 @@
- <div class="credit">
- <hr class="separator" />
- Documentation generated on {$date} by <a href="{$phpdocwebsite}">phpDocumentor {$phpdocversion}</a>
- </div>
- </td></tr></table>
- </td>
- </tr>
-</table>
-
-</body>
+ <div class="credit">
+ <hr class="separator" />
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}">phpDocumentor {$phpdocversion}</a>
+ </div>
+ </td></tr></table>
+ </td>
+ </tr>
+</table>
+
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/function.tpl
index 1042eafe10..417bbf76e8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/function.tpl
@@ -1,54 +1,54 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</span>
- </div>
-<br />
- <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}&amp;{/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}
-&nbsp;
-{/if})</code>
- </td></tr></table>
- </td></tr></table>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc}
-
- {if count($functions[func].params) > 0}
- <strong>Parameters:</strong><br />
- <table border="0" cellspacing="0" cellpadding="0">
- {section name=params loop=$functions[func].params}
- <tr><td class="indent">
- <span class="var-type">{$functions[func].params[params].datatype}</span>&nbsp;&nbsp;</td>
- <td>
- <span class="var-name">{$functions[func].params[params].var}:&nbsp;</span></td>
- <td>
- {if $functions[func].params[params].data}<span class="var-description"> {$functions[func].params[params].data}</span>{/if}
- </td></tr>
- {/section}
- </table>
- {/if}
-
-<br />
- {include file="tags.tpl" api_tags=$functions[func].api_tags info_tags=$functions[func].info_tags}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- <br />
- <div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
- </div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</span>
+ </div>
+<br />
+ <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}&amp;{/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}
+&nbsp;
+{/if})</code>
+ </td></tr></table>
+ </td></tr></table>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc}
+
+ {if count($functions[func].params) > 0}
+ <strong>Parameters:</strong><br />
+ <table border="0" cellspacing="0" cellpadding="0">
+ {section name=params loop=$functions[func].params}
+ <tr><td class="indent">
+ <span class="var-type">{$functions[func].params[params].datatype}</span>&nbsp;&nbsp;</td>
+ <td>
+ <span class="var-name">{$functions[func].params[params].var}:&nbsp;</span></td>
+ <td>
+ {if $functions[func].params[params].data}<span class="var-description"> {$functions[func].params[params].data}</span>{/if}
+ </td></tr>
+ {/section}
+ </table>
+ {/if}
+
+<br />
+ {include file="tags.tpl" api_tags=$functions[func].api_tags info_tags=$functions[func].info_tags}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ <br />
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+ </div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/global.tpl
index 0172b63ed9..f616349b69 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/global.tpl
@@ -1,35 +1,35 @@
-{if count($globals) > 0}
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>&nbsp;&nbsp;
- <span class="var-name">{$globals[glob].global_name}</span>
- <span class="smalllinenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</span>
- </span>
- </div>
-
- {if $globals[glob].sdesc != ""}
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc}
- {/if}
-
- <b>Default value:</b>&nbsp;&nbsp;<span class="var-default">{$globals[glob].global_value|replace:" ":"&nbsp;"|replace:"\n":"<br />\n"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span>
-<br />
- {include file="tags.tpl" api_tags=$globals[glob].api_tags info_tags=$globals[glob].info_tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- <br />
- <div class="top">[ <a href="#top">Top</a> ]</div>
- <br />
-</div>
-{/section}
-{/if}
+{if count($globals) > 0}
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>&nbsp;&nbsp;
+ <span class="var-name">{$globals[glob].global_name}</span>
+ <span class="smalllinenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</span>
+ </span>
+ </div>
+
+ {if $globals[glob].sdesc != ""}
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc}
+ {/if}
+
+ <b>Default value:</b>&nbsp;&nbsp;<span class="var-default">{$globals[glob].global_value|replace:" ":"&nbsp;"|replace:"\n":"<br />\n"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span>
+<br />
+ {include file="tags.tpl" api_tags=$globals[glob].api_tags info_tags=$globals[glob].info_tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ <br />
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+ <br />
+</div>
+{/section}
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/header.tpl
index e920a339d1..4a91b2ccf5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/header.tpl
@@ -1,102 +1,102 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
-<head>
- <title>{$title}</title>
- <link rel="stylesheet" type="text/css" href="{$subdir}media/style.css">
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-
-<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
- <tr>
- <td class="header-top-left"><img src="{$subdir}media/logo.png" border="0" alt="phpDocumentor {$phpdocver}" /></td>
- <td class="header-top-right">{$package}<br /><div class="header-top-right-subpackage">{$subpackage}</div></td>
- </tr>
- <tr><td colspan="2" class="header-line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
- <tr>
- <td colspan="2" class="header-menu">
- [ <a href="{$subdir}classtrees_{$package}.html" class="menu">class tree: {$package}</a> ]
- [ <a href="{$subdir}elementindex_{$package}.html" class="menu">index: {$package}</a> ]
- [ <a href="{$subdir}elementindex.html" class="menu">all elements</a> ]
- </td>
- </tr>
- <tr><td colspan="2" class="header-line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
-</table>
-
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="195" class="menu">
- <div class="package-title">{$package}</div>
-{if count($ric) >= 1}
- <div class="package">
- <div id="ric">
- {section name=ric loop=$ric}
- <p><a href="{$subdir}{$ric[ric].file}">{$ric[ric].name}</a></p>
- {/section}
- </div>
- </div>
-{/if}
-{if $hastodos}
- <div class="package">
- <div id="todolist">
- <p><a href="{$subdir}{$todolink}">Todo List</a></p>
- </div>
- </div>
-{/if}
- <b>Packages:</b><br />
- <div class="package">
- {section name=packagelist loop=$packageindex}
- <a href="{$subdir}{$packageindex[packagelist].link}">{$packageindex[packagelist].title}</a><br />
- {/section}
- </div>
- <br />
-{if $tutorials}
- <b>Tutorials/Manuals:</b><br />
- <div class="package">
- {if $tutorials.pkg}
- <strong>Package-level:</strong>
- {section name=ext loop=$tutorials.pkg}
- {$tutorials.pkg[ext]}
- {/section}
- {/if}
- {if $tutorials.cls}
- <strong>Class-level:</strong>
- {section name=ext loop=$tutorials.cls}
- {$tutorials.cls[ext]}
- {/section}
- {/if}
- {if $tutorials.proc}
- <strong>Procedural-level:</strong>
- {section name=ext loop=$tutorials.proc}
- {$tutorials.proc[ext]}
- {/section}
- </div>
- {/if}
-{/if}
- {if !$noleftindex}{assign var="noleftindex" value=false}{/if}
- {if !$noleftindex}
- {if $compiledfileindex}
- <b>Files:</b><br />
- {eval var=$compiledfileindex}
- {/if}
- <br />
- {if $compiledinterfaceindex}
- <b>Interfaces:</b><br />
- {eval var=$compiledinterfaceindex}
- {/if}
- {if $compiledclassindex}
- <b>Classes:</b><br />
- {eval var=$compiledclassindex}
- {/if}
- {/if}
- </td>
- <td>
- <table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">
-
-{if !$hasel}{assign var="hasel" value=false}{/if}
-{if $eltype == 'class' && $is_interface}{assign var="eltype" value="interface"}{/if}
-{if $hasel}
-<h1>{$eltype|capitalize}: {$class_name}</h1>
-Source Location: {$source_location}<br /><br />
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+<head>
+ <title>{$title}</title>
+ <link rel="stylesheet" type="text/css" href="{$subdir}media/style.css">
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+
+<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
+ <tr>
+ <td class="header-top-left"><img src="{$subdir}media/logo.png" border="0" alt="phpDocumentor {$phpdocver}" /></td>
+ <td class="header-top-right">{$package}<br /><div class="header-top-right-subpackage">{$subpackage}</div></td>
+ </tr>
+ <tr><td colspan="2" class="header-line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
+ <tr>
+ <td colspan="2" class="header-menu">
+ [ <a href="{$subdir}classtrees_{$package}.html" class="menu">class tree: {$package}</a> ]
+ [ <a href="{$subdir}elementindex_{$package}.html" class="menu">index: {$package}</a> ]
+ [ <a href="{$subdir}elementindex.html" class="menu">all elements</a> ]
+ </td>
+ </tr>
+ <tr><td colspan="2" class="header-line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
+</table>
+
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="195" class="menu">
+ <div class="package-title">{$package}</div>
+{if count($ric) >= 1}
+ <div class="package">
+ <div id="ric">
+ {section name=ric loop=$ric}
+ <p><a href="{$subdir}{$ric[ric].file}">{$ric[ric].name}</a></p>
+ {/section}
+ </div>
+ </div>
+{/if}
+{if $hastodos}
+ <div class="package">
+ <div id="todolist">
+ <p><a href="{$subdir}{$todolink}">Todo List</a></p>
+ </div>
+ </div>
+{/if}
+ <b>Packages:</b><br />
+ <div class="package">
+ {section name=packagelist loop=$packageindex}
+ <a href="{$subdir}{$packageindex[packagelist].link}">{$packageindex[packagelist].title}</a><br />
+ {/section}
+ </div>
+ <br />
+{if $tutorials}
+ <b>Tutorials/Manuals:</b><br />
+ <div class="package">
+ {if $tutorials.pkg}
+ <strong>Package-level:</strong>
+ {section name=ext loop=$tutorials.pkg}
+ {$tutorials.pkg[ext]}
+ {/section}
+ {/if}
+ {if $tutorials.cls}
+ <strong>Class-level:</strong>
+ {section name=ext loop=$tutorials.cls}
+ {$tutorials.cls[ext]}
+ {/section}
+ {/if}
+ {if $tutorials.proc}
+ <strong>Procedural-level:</strong>
+ {section name=ext loop=$tutorials.proc}
+ {$tutorials.proc[ext]}
+ {/section}
+ </div>
+ {/if}
+{/if}
+ {if !$noleftindex}{assign var="noleftindex" value=false}{/if}
+ {if !$noleftindex}
+ {if $compiledfileindex}
+ <b>Files:</b><br />
+ {eval var=$compiledfileindex}
+ {/if}
+ <br />
+ {if $compiledinterfaceindex}
+ <b>Interfaces:</b><br />
+ {eval var=$compiledinterfaceindex}
+ {/if}
+ {if $compiledclassindex}
+ <b>Classes:</b><br />
+ {eval var=$compiledclassindex}
+ {/if}
+ {/if}
+ </td>
+ <td>
+ <table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">
+
+{if !$hasel}{assign var="hasel" value=false}{/if}
+{if $eltype == 'class' && $is_interface}{assign var="eltype" value="interface"}{/if}
+{if $hasel}
+<h1>{$eltype|capitalize}: {$class_name}</h1>
+Source Location: {$source_location}<br /><br />
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/include.tpl
index 9780f532f2..ffab8effdf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/include.tpl
@@ -1,18 +1,18 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- <span class="smalllinenumber">[line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]</span>
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
- {include file="tags.tpl" api_tags=$includes[includes].api_tags info_tags=$includes[includes].info_tags}
- <div class="top">[ <a href="#top">Top</a> ]</div>
- <br />
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ <span class="smalllinenumber">[line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]</span>
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+ {include file="tags.tpl" api_tags=$includes[includes].api_tags info_tags=$includes[includes].info_tags}
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+ <br />
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/index.tpl
index 60c74b4704..a493f70e4e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/index.tpl
@@ -1,7 +1,7 @@
-{include file="header.tpl"}
-{if $contents}
-{$contents}
-{else}
-{include file="blank.tpl"}
-{/if}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+{if $contents}
+{$contents}
+{else}
+{include file="blank.tpl"}
+{/if}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/method.tpl
index 0c87d521a2..8ea3853c77 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/method.tpl
@@ -1,176 +1,176 @@
-<a name='method_detail'></a>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
-<div class="method-header">
- <span class="method-title">static method {$methods[methods].function_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</span>
-</div>
-<br />
-
- <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">&nbsp;
- <code>static {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-&nbsp;
-{/if})</code>
- </td></tr></table>
- </td></tr></table><br /></div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc}
-
- {if $methods[methods].params}
- <strong>Parameters:</strong><br />
- <table border="0" cellspacing="0" cellpadding="0">
- {section name=params loop=$methods[methods].params}
- <tr><td class="indent">
- <span class="var-type">{$methods[methods].params[params].datatype}</span>&nbsp;&nbsp;</td>
- <td>
- <span class="var-name">{$methods[methods].params[params].var}:&nbsp;</span></td>
- <td>
- {if $methods[methods].params[params].data}<span class="var-description"> {$methods[methods].params[params].data}</span>{/if}
- </td></tr>
- {/section}
- </table>
-
- {/if}
-<br />
- {include file="tags.tpl" api_tags=$methods[methods].api_tags info_tags=$methods[methods].info_tags}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
- <br />
- <div class="top">[ <a href="#top">Top</a> ]</div>
-</div>
-{/if}
-{/section}
-
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
-<div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</span>
-</div>
-<br />
-
- <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">&nbsp;
- <code>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-&nbsp;
-{/if})</code>
- </td></tr></table>
- </td></tr></table><br /></div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc}
-
- {if $methods[methods].params}
- <strong>Parameters:</strong><br />
- <table border="0" cellspacing="0" cellpadding="0">
- {section name=params loop=$methods[methods].params}
- <tr><td class="indent">
- <span class="var-type">{$methods[methods].params[params].datatype}</span>&nbsp;&nbsp;</td>
- <td>
- <span class="var-name">{$methods[methods].params[params].var}:&nbsp;</span></td>
- <td>
- {if $methods[methods].params[params].data}<span class="var-description"> {$methods[methods].params[params].data}</span>{/if}
- </td></tr>
- {/section}
- </table>
-
- {/if}
-<br />
- {include file="tags.tpl" api_tags=$methods[methods].api_tags info_tags=$methods[methods].info_tags}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
- <br />
- <div class="top">[ <a href="#top">Top</a> ]</div>
-</div>
-{/if}
-{/section}
+<a name='method_detail'></a>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+<div class="method-header">
+ <span class="method-title">static method {$methods[methods].function_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</span>
+</div>
+<br />
+
+ <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">&nbsp;
+ <code>static {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+&nbsp;
+{/if})</code>
+ </td></tr></table>
+ </td></tr></table><br /></div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc}
+
+ {if $methods[methods].params}
+ <strong>Parameters:</strong><br />
+ <table border="0" cellspacing="0" cellpadding="0">
+ {section name=params loop=$methods[methods].params}
+ <tr><td class="indent">
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>&nbsp;&nbsp;</td>
+ <td>
+ <span class="var-name">{$methods[methods].params[params].var}:&nbsp;</span></td>
+ <td>
+ {if $methods[methods].params[params].data}<span class="var-description"> {$methods[methods].params[params].data}</span>{/if}
+ </td></tr>
+ {/section}
+ </table>
+
+ {/if}
+<br />
+ {include file="tags.tpl" api_tags=$methods[methods].api_tags info_tags=$methods[methods].info_tags}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+ <br />
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+</div>
+{/if}
+{/section}
+
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+<div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span>&nbsp;&nbsp;<span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</span>
+</div>
+<br />
+
+ <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">&nbsp;
+ <code>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+&nbsp;
+{/if})</code>
+ </td></tr></table>
+ </td></tr></table><br /></div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc}
+
+ {if $methods[methods].params}
+ <strong>Parameters:</strong><br />
+ <table border="0" cellspacing="0" cellpadding="0">
+ {section name=params loop=$methods[methods].params}
+ <tr><td class="indent">
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>&nbsp;&nbsp;</td>
+ <td>
+ <span class="var-name">{$methods[methods].params[params].var}:&nbsp;</span></td>
+ <td>
+ {if $methods[methods].params[params].data}<span class="var-description"> {$methods[methods].params[params].data}</span>{/if}
+ </td></tr>
+ {/section}
+ </table>
+
+ {/if}
+<br />
+ {include file="tags.tpl" api_tags=$methods[methods].api_tags info_tags=$methods[methods].info_tags}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+ <br />
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/packages.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/packages.tpl
index b48b671967..0967e6e720 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/packages.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/packages.tpl
@@ -1,3 +1,3 @@
-{section name=packages loop=$packages}
-<a href="{$packages[packages].link}">{$packages[packages].title}</a>
+{section name=packages loop=$packages}
+<a href="{$packages[packages].link}">{$packages[packages].title}</a>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/page.tpl
index 7d39f52dff..83cfc582c5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/page.tpl
@@ -1,210 +1,210 @@
-{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Page Details</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Page Details</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Globals</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" type="page" desc=$desc sdesc=$sdesc}
- {include file="filetags.tpl" tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Page Details</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Globals</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Page Details</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Globals</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div><br />
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Page Details</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Globals</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div><br />
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Globals</div>
- <div class="nav-bar">
- <a href="#sec-description">Page Details</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Globals</span>
- {if $functions}|{/if}
- {if $globals}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div><br />
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Page Details</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Globals</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div><br />
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Page Details</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Page Details</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Globals</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" type="page" desc=$desc sdesc=$sdesc}
+ {include file="filetags.tpl" tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Page Details</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Globals</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Page Details</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Globals</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div><br />
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Page Details</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Globals</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div><br />
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Globals</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Page Details</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Globals</span>
+ {if $functions}|{/if}
+ {if $globals}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div><br />
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Page Details</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Globals</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div><br />
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/pkgelementindex.tpl
index c2b3455630..7f12c6c57a 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/pkgelementindex.tpl
@@ -1,15 +1,15 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h1>Element index for package {$package}</h1>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h1>Element index for package {$package}</h1>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tags.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tags.tpl
index 71cf2eff06..9f965d884e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tags.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tags.tpl
@@ -1,22 +1,22 @@
-{if count($api_tags) > 0}
-<strong>API Tags:</strong><br />
-<table border="0" cellspacing="0" cellpadding="0">
-{section name=tag loop=$api_tags}
- <tr>
- <td class="indent"><strong>{$api_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$api_tags[tag].data}</td>
- </tr>
-{/section}
-</table>
-<br />
-{/if}
-
-{if count($info_tags) > 0}
-<strong>Information Tags:</strong><br />
-<table border="0" cellspacing="0" cellpadding="0">
-{section name=tag loop=$info_tags}
- <tr>
- <td class="indent"><strong>{$info_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$info_tags[tag].data}</td>
- </tr>
-{/section}
-</table>
-{/if}
+{if count($api_tags) > 0}
+<strong>API Tags:</strong><br />
+<table border="0" cellspacing="0" cellpadding="0">
+{section name=tag loop=$api_tags}
+ <tr>
+ <td class="indent"><strong>{$api_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$api_tags[tag].data}</td>
+ </tr>
+{/section}
+</table>
+<br />
+{/if}
+
+{if count($info_tags) > 0}
+<strong>Information Tags:</strong><br />
+<table border="0" cellspacing="0" cellpadding="0">
+{section name=tag loop=$info_tags}
+ <tr>
+ <td class="indent"><strong>{$info_tags[tag].keyword|capitalize}:</strong>&nbsp;&nbsp;</td><td>{$info_tags[tag].data}</td>
+ </tr>
+{/section}
+</table>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial.tpl
index 22c71c3b9a..a943522c24 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial.tpl
@@ -1,32 +1,32 @@
-{include file="header.tpl" title=$title}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="10%" align="left" valign="bottom">{if $prev}<a href=
-"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
-<td width="80%" align="center" valign="bottom"></td>
-<td width="10%" align="right" valign="bottom">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-</table>
-{/if}
-{$contents}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
-Prev{if $prev}</a>{/if}</td>
-<td width="34%" align="center" valign="top">{if $up}<a href=
-"{$up}">Up</a>{else}&nbsp;{/if}</td>
-<td width="33%" align="right" valign="top">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-
-<tr>
-<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
-<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
-<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
-</tr>
-</table>
-{/if}
+{include file="header.tpl" title=$title}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="10%" align="left" valign="bottom">{if $prev}<a href=
+"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
+<td width="80%" align="center" valign="bottom"></td>
+<td width="10%" align="right" valign="bottom">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+</table>
+{/if}
+{$contents}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
+Prev{if $prev}</a>{/if}</td>
+<td width="34%" align="center" valign="top">{if $up}<a href=
+"{$up}">Up</a>{else}&nbsp;{/if}</td>
+<td width="33%" align="right" valign="top">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+
+<tr>
+<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
+<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
+<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
+</tr>
+</table>
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_toc.tpl
index 1db3443844..3d22d403b4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_toc.tpl
@@ -1,29 +1,29 @@
-{if count($toc)}
-<h1 align="center">Table of Contents</h1>
-<ul>
-{section name=toc loop=$toc}
-{if $toc[toc].tagname == 'refsect1'}
-{assign var="context" value="refsect1"}
-{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect2'}
-{assign var="context" value="refsect2"}
-&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect3'}
-{assign var="context" value="refsect3"}
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'table'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{if $toc[toc].tagname == 'example'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{/section}
-</ul>
+{if count($toc)}
+<h1 align="center">Table of Contents</h1>
+<ul>
+{section name=toc loop=$toc}
+{if $toc[toc].tagname == 'refsect1'}
+{assign var="context" value="refsect1"}
+{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect2'}
+{assign var="context" value="refsect2"}
+&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect3'}
+{assign var="context" value="refsect3"}
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'table'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{if $toc[toc].tagname == 'example'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{/section}
+</ul>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_tree.tpl
index faf7bcef80..dd2e581124 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/tutorial_tree.tpl
@@ -1,5 +1,5 @@
-<ul>
- <li type="square"><a href="{$main.link}">{$main.title|strip_tags}</a>
-{if $kids}{$kids}</li>{/if}
-</ul>
-
+<ul>
+ <li type="square"><a href="{$main.link}">{$main.title|strip_tags}</a>
+{if $kids}{$kids}</li>{/if}
+</ul>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/var.tpl
index ad3c20757d..45aba1952b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/HandS/templates/var.tpl
@@ -1,94 +1,94 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>&nbsp;&nbsp;
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- <span class="smalllinenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</span>
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc}
- {include file="tags.tpl" api_tags=$vars[vars].api_tags info_tags=$vars[vars].info_tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
- <br />
- <div class="top">[ <a href="#top">Top</a> ]</div>
-</div>
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>&nbsp;&nbsp;
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- <span class="smalllinenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</span>
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc}
- {include file="tags.tpl" api_tags=$vars[vars].api_tags info_tags=$vars[vars].info_tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
- <br />
- <div class="top">[ <a href="#top">Top</a> ]</div>
-</div>
-{/if}
-{/section}
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>&nbsp;&nbsp;
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ <span class="smalllinenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</span>
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc}
+ {include file="tags.tpl" api_tags=$vars[vars].api_tags info_tags=$vars[vars].info_tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+ <br />
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+</div>
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>&nbsp;&nbsp;
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ <span class="smalllinenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</span>
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc}
+ {include file="tags.tpl" api_tags=$vars[vars].api_tags info_tags=$vars[vars].info_tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+ <br />
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/options.ini
index 29f59237e7..73479c5f07 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = strong
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 =
-/refsect2 = <hr />
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = strong
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 =
+/refsect2 = <hr />
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/basicindex.tpl
index 37e94343c2..36cf9b4f34 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/basicindex.tpl
@@ -1,18 +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}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/blank.tpl
index b503c14223..aae5997529 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/blank.tpl
@@ -1,5 +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 />
-
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/class.tpl
index a95ca92703..d10ed3e3a3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/class.tpl
@@ -1,231 +1,231 @@
-{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
-
-{if $conflicts.conflict_type}<div class="warning">Conflicts with classes:<br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
-</div>
- {/if}
-{* original <div class="warning">{$conflicts</div> *}
-
-<table width="100%" border="0">
-<tr><td valign="top">
-
-<h3><a href="#class_details">{if $is_interface}Interface{else}Class{/if} Overview</a></h3>
-<pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre><br />
-<div class="description">{$sdesc|default:''}</div><br /><br />
-{if $tutorial}
-<h4 class="classtutorial">{if $is_interface}Interface{else}Class{/if} Tutorial:</h4>
-<ul>
- <li>{$tutorial}</li>
-</ul>
-{/if}
-{if count($tags) > 0}
-<h4>Author(s):</h4>
-<ul>
- {section name=tag loop=$tags}
- {if $tags[tag].keyword eq "author"}
- <li>{$tags[tag].data}</li>
- {/if}
- {/section}
-</ul>
-{/if}
-
-{assign var="version" value=""}
-{assign var="copyright" value=""}
-
-{section name=tag loop=$tags}
- {if $tags[tag].keyword eq "version"}
- {assign var="version" value=$tags[tag].data}
- {/if}
- {if $tags[tag].keyword eq "copyright"}
- {assign var="copyright" value=$tags[tag].data}
- {/if}
-{/section}
-
-{if $version}
-<h4>Version:</h4>
-<ul>
- <li>{$version}</li>
-</ul>
-{/if}
-
-{if $copyright}
-<h4>Copyright:</h4>
-<ul>
- <li>{$copyright}</li>
-</ul>
-{/if}
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
-
-</td>
-
-{if count($contents.var) > 0}
-<td valign="top">
-<h3><a href="#class_vars">Variables</a></h3>
-<ul>
- {section name=contents loop=$contents.var}
- <li>{$contents.var[contents]}</li>
- {/section}
-</ul>
-</td>
-{/if}
-
-{if count($contents.const) > 0}
-<td valign="top">
-<h3><a href="#class_consts">Constants</a></h3>
-<ul>
- {section name=contents loop=$contents.const}
- <li>{$contents.const[contents]}</li>
- {/section}
-</ul>
-</td>
-{/if}
-
-{if count($contents.method) > 0}
-<td valign="top">
-<h3><a href="#class_methods">Methods</a></h3>
-<ul>
- {section name=contents loop=$contents.method}
- <li>{$contents.method[contents]}</li>
- {/section}
-</ul>
-</td>
-{/if}
-
-</tr></table>
-<hr />
-
-<table width="100%" border="0"><tr>
-
-{* original {if $children != ""
-<td valign="top">
-<h3>Child classes:</h3>
-<div class="tags">
-{$children *}
-
-{if $children}
-<td valign="top">
-<h3>Child classes:</h3>
-<div class="tags">
-{section name=kids loop=$children}
-<dl>
-<dt>{$children[kids].link}</dt>
- <dd>{$children[kids].sdesc}</dd>
-</dl>
-{/section}
-</div>
-</td>
-{/if}
-
-{if $iconsts && count($iconsts) > 0}
-<td valign="top">
-<h3>Inherited Constants</h3>
-{section name=iconsts loop=$iconsts}
-<div class="tags">
-<h4>Class: {$iconsts[iconsts].parent_class}</h4>
-<dl>
-{section name=iconsts2 loop=$iconsts[iconsts].iconsts}
-<dt>
- {$iconsts[iconsts].iconsts[iconsts2].link}
-</dt>
-<dd>
- {$iconsts[iconsts].iconsts[iconsts2].iconsts_sdesc}
-</dd>
-{/section}
-</dl>
-</div>
-{/section}
-</td>
-{/if}
-
-{if $ivars && count($ivars) > 0}
-<td valign="top">
-<h3>Inherited Variables</h3>
-{section name=ivars loop=$ivars}
-<div class="tags">
-<h4>Class: {$ivars[ivars].parent_class}</h4>
-<dl>
-{section name=ivars2 loop=$ivars[ivars].ivars}
-<dt>
- {$ivars[ivars].ivars[ivars2].link}
- {* original <a href="{$ivars[ivars].ivars[ivars2].ipath #{$ivars[ivars].ivars[ivars2].ivar_name ">{$ivars[ivars].ivars[ivars2].ivar_name </a> *}
-</dt>
-<dd>
- {$ivars[ivars].ivars[ivars2].ivars_sdesc}
-</dd>
-{/section}
-</dl>
-</div>
-{/section}
-</td>
-{/if}
-
-{if $imethods && count($imethods) > 0}
-<td valign="top">
-<h3>Inherited Methods</h3>
-<div class="tags">
-{section name=imethods loop=$imethods}
-<h4>Class: {$imethods[imethods].parent_class}</h4>
-<dl>
- {section name=im2 loop=$imethods[imethods].imethods}
- <dt>
- {$imethods[imethods].imethods[im2].link}
-{* original <a href="{$imethods[imethods].imethods[im2].ipath#{$imethods[imethods].imethods[im2].ifunction_name">{$imethods[imethods].imethods[im2].ifunction_call</a> *}
- </dt>
- <dd>
- {$imethods[imethods].imethods[im2].sdesc}
- </dd>
- {/section}
-</dl>
-{/section}
-</div>
-</td>
-{/if}
-
-</tr></table>
-<hr />
-
-<a name="class_details"></a>
-<h3>Class Details</h3>
-<div class="tags">
-[line {if $class_slink}{$class_slink}{else}{$line_number}{/if}]<br />
-{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
-</div><br /><br />
-<div class="top">[ <a href="#top">Top</a> ]</div><br />
-
-{if $vars && count($vars) > 0}
-<hr />
-<a name="class_vars"></a>
-<h3>Class Variables</h3>
-<div class="tags">
-{include file="var.tpl"}
-</div><br />
-{/if}
-
-{if $methods & count($methods) > 0}
-<hr />
-<a name="class_methods"></a>
-<h3>Class Methods</h3>
-<div class="tags">
-{include file="method.tpl"}
-</div><br />
-{/if}
-
-{if $consts && count($consts) > 0}
-<hr />
-<a name="class_constss"></a>
-<h3>Class Constants</h3>
-<div class="tags">
-{include file="const.tpl"}
-</div><br />
-{/if}
-
+{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
+
+{if $conflicts.conflict_type}<div class="warning">Conflicts with classes:<br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+</div>
+ {/if}
+{* original <div class="warning">{$conflicts</div> *}
+
+<table width="100%" border="0">
+<tr><td valign="top">
+
+<h3><a href="#class_details">{if $is_interface}Interface{else}Class{/if} Overview</a></h3>
+<pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre><br />
+<div class="description">{$sdesc|default:''}</div><br /><br />
+{if $tutorial}
+<h4 class="classtutorial">{if $is_interface}Interface{else}Class{/if} Tutorial:</h4>
+<ul>
+ <li>{$tutorial}</li>
+</ul>
+{/if}
+{if count($tags) > 0}
+<h4>Author(s):</h4>
+<ul>
+ {section name=tag loop=$tags}
+ {if $tags[tag].keyword eq "author"}
+ <li>{$tags[tag].data}</li>
+ {/if}
+ {/section}
+</ul>
+{/if}
+
+{assign var="version" value=""}
+{assign var="copyright" value=""}
+
+{section name=tag loop=$tags}
+ {if $tags[tag].keyword eq "version"}
+ {assign var="version" value=$tags[tag].data}
+ {/if}
+ {if $tags[tag].keyword eq "copyright"}
+ {assign var="copyright" value=$tags[tag].data}
+ {/if}
+{/section}
+
+{if $version}
+<h4>Version:</h4>
+<ul>
+ <li>{$version}</li>
+</ul>
+{/if}
+
+{if $copyright}
+<h4>Copyright:</h4>
+<ul>
+ <li>{$copyright}</li>
+</ul>
+{/if}
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+
+</td>
+
+{if count($contents.var) > 0}
+<td valign="top">
+<h3><a href="#class_vars">Variables</a></h3>
+<ul>
+ {section name=contents loop=$contents.var}
+ <li>{$contents.var[contents]}</li>
+ {/section}
+</ul>
+</td>
+{/if}
+
+{if count($contents.const) > 0}
+<td valign="top">
+<h3><a href="#class_consts">Constants</a></h3>
+<ul>
+ {section name=contents loop=$contents.const}
+ <li>{$contents.const[contents]}</li>
+ {/section}
+</ul>
+</td>
+{/if}
+
+{if count($contents.method) > 0}
+<td valign="top">
+<h3><a href="#class_methods">Methods</a></h3>
+<ul>
+ {section name=contents loop=$contents.method}
+ <li>{$contents.method[contents]}</li>
+ {/section}
+</ul>
+</td>
+{/if}
+
+</tr></table>
+<hr />
+
+<table width="100%" border="0"><tr>
+
+{* original {if $children != ""
+<td valign="top">
+<h3>Child classes:</h3>
+<div class="tags">
+{$children *}
+
+{if $children}
+<td valign="top">
+<h3>Child classes:</h3>
+<div class="tags">
+{section name=kids loop=$children}
+<dl>
+<dt>{$children[kids].link}</dt>
+ <dd>{$children[kids].sdesc}</dd>
+</dl>
+{/section}
+</div>
+</td>
+{/if}
+
+{if $iconsts && count($iconsts) > 0}
+<td valign="top">
+<h3>Inherited Constants</h3>
+{section name=iconsts loop=$iconsts}
+<div class="tags">
+<h4>Class: {$iconsts[iconsts].parent_class}</h4>
+<dl>
+{section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+<dt>
+ {$iconsts[iconsts].iconsts[iconsts2].link}
+</dt>
+<dd>
+ {$iconsts[iconsts].iconsts[iconsts2].iconsts_sdesc}
+</dd>
+{/section}
+</dl>
+</div>
+{/section}
+</td>
+{/if}
+
+{if $ivars && count($ivars) > 0}
+<td valign="top">
+<h3>Inherited Variables</h3>
+{section name=ivars loop=$ivars}
+<div class="tags">
+<h4>Class: {$ivars[ivars].parent_class}</h4>
+<dl>
+{section name=ivars2 loop=$ivars[ivars].ivars}
+<dt>
+ {$ivars[ivars].ivars[ivars2].link}
+ {* original <a href="{$ivars[ivars].ivars[ivars2].ipath #{$ivars[ivars].ivars[ivars2].ivar_name ">{$ivars[ivars].ivars[ivars2].ivar_name </a> *}
+</dt>
+<dd>
+ {$ivars[ivars].ivars[ivars2].ivars_sdesc}
+</dd>
+{/section}
+</dl>
+</div>
+{/section}
+</td>
+{/if}
+
+{if $imethods && count($imethods) > 0}
+<td valign="top">
+<h3>Inherited Methods</h3>
+<div class="tags">
+{section name=imethods loop=$imethods}
+<h4>Class: {$imethods[imethods].parent_class}</h4>
+<dl>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <dt>
+ {$imethods[imethods].imethods[im2].link}
+{* original <a href="{$imethods[imethods].imethods[im2].ipath#{$imethods[imethods].imethods[im2].ifunction_name">{$imethods[imethods].imethods[im2].ifunction_call</a> *}
+ </dt>
+ <dd>
+ {$imethods[imethods].imethods[im2].sdesc}
+ </dd>
+ {/section}
+</dl>
+{/section}
+</div>
+</td>
+{/if}
+
+</tr></table>
+<hr />
+
+<a name="class_details"></a>
+<h3>Class Details</h3>
+<div class="tags">
+[line {if $class_slink}{$class_slink}{else}{$line_number}{/if}]<br />
+{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+</div><br /><br />
+<div class="top">[ <a href="#top">Top</a> ]</div><br />
+
+{if $vars && count($vars) > 0}
+<hr />
+<a name="class_vars"></a>
+<h3>Class Variables</h3>
+<div class="tags">
+{include file="var.tpl"}
+</div><br />
+{/if}
+
+{if $methods & count($methods) > 0}
+<hr />
+<a name="class_methods"></a>
+<h3>Class Methods</h3>
+<div class="tags">
+{include file="method.tpl"}
+</div><br />
+{/if}
+
+{if $consts && count($consts) > 0}
+<hr />
+<a name="class_constss"></a>
+<h3>Class Constants</h3>
+<div class="tags">
+{include file="const.tpl"}
+</div><br />
+{/if}
+
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classleft.tpl
index c07fc33ad3..b847f40978 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classleft.tpl
@@ -1,9 +1,9 @@
-{foreach key=subpackage item=files from=$classleftindex}
- <div class="package">
- {if $subpackage != ""}{$subpackage}<br />{/if}
- {section name=files loop=$files}
- {if $subpackage != ""}&nbsp;&nbsp;{/if}
- {if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}<br />
- {/section}
- </div>
-{/foreach}
+{foreach key=subpackage item=files from=$classleftindex}
+ <div class="package">
+ {if $subpackage != ""}{$subpackage}<br />{/if}
+ {section name=files loop=$files}
+ {if $subpackage != ""}&nbsp;&nbsp;{/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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classtrees.tpl
index 327c6dc0dc..0c0e974aac 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/classtrees.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl" noleftindex=true}
-<h1>{$title}</h1>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<hr />
-<div class="classtree">Root interface {$interfaces[classtrees].class}</div><br />
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<hr />
-<div class="classtree">Root class {$classtrees[classtrees].class}</div><br />
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<h1>{$title}</h1>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<hr />
+<div class="classtree">Root interface {$interfaces[classtrees].class}</div><br />
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<hr />
+<div class="classtree">Root class {$classtrees[classtrees].class}</div><br />
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/const.tpl
index 88856c4b65..9ad36e01f2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/const.tpl
@@ -1,14 +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:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</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}
+{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:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/define.tpl
index 04ce5b485b..3cc84da3b2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/define.tpl
@@ -1,32 +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 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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/docblock.tpl
index 09a603f843..2ddfa0bee3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/docblock.tpl
@@ -1,15 +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>&nbsp;&nbsp;</td><td>{$tags[tag].data}</td>
- </tr>
-{/section}
-</table>
-</div>
+{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>&nbsp;&nbsp;</td><td>{$tags[tag].data}</td>
+ </tr>
+{/section}
+</table>
+</div>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/elementindex.tpl
index 175a51361e..adb7b13654 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/elementindex.tpl
@@ -1,5 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/examplesource.tpl
index fb85654b97..c9ed8b860e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1 align="center">{$title}</h1>
-<div class="php">
-{$source}
-</div>
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/fileleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/fileleft.tpl
index 50f108d736..9af5e1cfac 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/fileleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/fileleft.tpl
@@ -1,10 +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}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/filesource.tpl
index 2a5be43e9a..3d93199ec8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/filesource.tpl
@@ -1,8 +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="src-code">
-{$source}
-</div>
+{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="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/footer.tpl
index 4486690a84..57097ba5da 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/footer.tpl
@@ -1,11 +1,11 @@
- <div class="credit">
- <hr />
- Documentation generated on {$date} by <a href="{$phpdocwebsite}">phpDocumentor {$phpdocversion}</a>
- </div>
- </td></tr></table>
- </td>
- </tr>
-</table>
-
-</body>
+ <div class="credit">
+ <hr />
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}">phpDocumentor {$phpdocversion}</a>
+ </div>
+ </td></tr></table>
+ </td>
+ </tr>
+</table>
+
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/function.tpl
index 6e0d2a4d91..204c582f61 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/function.tpl
@@ -1,48 +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}&amp;{/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}
-{/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}&nbsp;&nbsp;</td>
- <td><b>{$functions[func].params[params].var}</b>&nbsp;&nbsp;</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}
+{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}&amp;{/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}
+{/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}&nbsp;&nbsp;</td>
+ <td><b>{$functions[func].params[params].var}</b>&nbsp;&nbsp;</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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/global.tpl
index 1053f748e9..51ba08553b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/global.tpl
@@ -1,40 +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>&nbsp;&nbsp;</td>
- <td>{$globals[glob].global_value|replace:" ":"&nbsp;"|replace:"\n":"<br />\n"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</td>
- </tr>
- {if $globals[glob].global_conflicts.conflict_type}
- <tr>
- <td><b>Conflicts with globals:</b>&nbsp;&nbsp;</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>&nbsp;&nbsp;</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 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>&nbsp;&nbsp;</td>
+ <td>{$globals[glob].global_value|replace:" ":"&nbsp;"|replace:"\n":"<br />\n"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</td>
+ </tr>
+ {if $globals[glob].global_conflicts.conflict_type}
+ <tr>
+ <td><b>Conflicts with globals:</b>&nbsp;&nbsp;</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>&nbsp;&nbsp;</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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/header.tpl
index df934b10f3..9e5fd7f4c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/header.tpl
@@ -1,89 +1,89 @@
-<html>
-<head>
-<title>{$title}</title>
-<link rel="stylesheet" type="text/css" href="{$subdir}media/style.css">
-</head>
-<body>
-
-<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
- <tr>
- <td class="header_top">{$package}</td>
- </tr>
- <tr><td class="header_line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
- <tr>
- <td class="header_menu">
- [ <a href="{$subdir}classtrees_{$package}.html" class="menu">class tree: {$package}</a> ]
- [ <a href="{$subdir}elementindex_{$package}.html" class="menu">index: {$package}</a> ]
- [ <a href="{$subdir}elementindex.html" class="menu">all elements</a> ]
- </td>
- </tr>
- <tr><td class="header_line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
-</table>
-
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="200" class="menu">
-{if count($ric) >= 1}
- <div id="ric">
- {section name=ric loop=$ric}
- <p><a href="{$subdir}{$ric[ric].file}">{$ric[ric].name}</a></p>
- {/section}
- </div>
-{/if}
-{if $hastodos}
- <div id="todolist">
- <p><a href="{$subdir}{$todolink}">Todo List</a></p>
- </div>
-{/if}
- <b>Packages:</b><br />
- {section name=packagelist loop=$packageindex}
- <a href="{$subdir}{$packageindex[packagelist].link}">{$packageindex[packagelist].title}</a><br />
- {/section}
- <br /><br />
-{if $tutorials}
- <b>Tutorials/Manuals:</b><br />
- {if $tutorials.pkg}
- <strong>Package-level:</strong>
- {section name=ext loop=$tutorials.pkg}
- {$tutorials.pkg[ext]}
- {/section}
- {/if}
- {if $tutorials.cls}
- <strong>Class-level:</strong>
- {section name=ext loop=$tutorials.cls}
- {$tutorials.cls[ext]}
- {/section}
- {/if}
- {if $tutorials.proc}
- <strong>Procedural-level:</strong>
- {section name=ext loop=$tutorials.proc}
- {$tutorials.proc[ext]}
- {/section}
- {/if}
-{/if}
- {if !$noleftindex}{assign var="noleftindex" value=false}{/if}
- {if !$noleftindex}
- {if $compiledfileindex}
- <b>Files:</b><br />
- {eval var=$compiledfileindex}
- {/if}
-
- {if $compiledinterfaceindex}
- <b>Interfaces:</b><br />
- {eval var=$compiledinterfaceindex}
- {/if}
-
- {if $compiledclassindex}
- <b>Classes:</b><br />
- {eval var=$compiledclassindex}
- {/if}
- {/if}
- </td>
- <td>
- <table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">
-
-{if !$hasel}{assign var="hasel" value=false}{/if}
-{if $hasel}
-<h1>{$eltype|capitalize}: {$class_name}</h1>
-Source Location: {$source_location}<br /><br />
+<html>
+<head>
+<title>{$title}</title>
+<link rel="stylesheet" type="text/css" href="{$subdir}media/style.css">
+</head>
+<body>
+
+<table border="0" cellspacing="0" cellpadding="0" height="48" width="100%">
+ <tr>
+ <td class="header_top">{$package}</td>
+ </tr>
+ <tr><td class="header_line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
+ <tr>
+ <td class="header_menu">
+ [ <a href="{$subdir}classtrees_{$package}.html" class="menu">class tree: {$package}</a> ]
+ [ <a href="{$subdir}elementindex_{$package}.html" class="menu">index: {$package}</a> ]
+ [ <a href="{$subdir}elementindex.html" class="menu">all elements</a> ]
+ </td>
+ </tr>
+ <tr><td class="header_line"><img src="{$subdir}media/empty.png" width="1" height="1" border="0" alt="" /></td></tr>
+</table>
+
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="200" class="menu">
+{if count($ric) >= 1}
+ <div id="ric">
+ {section name=ric loop=$ric}
+ <p><a href="{$subdir}{$ric[ric].file}">{$ric[ric].name}</a></p>
+ {/section}
+ </div>
+{/if}
+{if $hastodos}
+ <div id="todolist">
+ <p><a href="{$subdir}{$todolink}">Todo List</a></p>
+ </div>
+{/if}
+ <b>Packages:</b><br />
+ {section name=packagelist loop=$packageindex}
+ <a href="{$subdir}{$packageindex[packagelist].link}">{$packageindex[packagelist].title}</a><br />
+ {/section}
+ <br /><br />
+{if $tutorials}
+ <b>Tutorials/Manuals:</b><br />
+ {if $tutorials.pkg}
+ <strong>Package-level:</strong>
+ {section name=ext loop=$tutorials.pkg}
+ {$tutorials.pkg[ext]}
+ {/section}
+ {/if}
+ {if $tutorials.cls}
+ <strong>Class-level:</strong>
+ {section name=ext loop=$tutorials.cls}
+ {$tutorials.cls[ext]}
+ {/section}
+ {/if}
+ {if $tutorials.proc}
+ <strong>Procedural-level:</strong>
+ {section name=ext loop=$tutorials.proc}
+ {$tutorials.proc[ext]}
+ {/section}
+ {/if}
+{/if}
+ {if !$noleftindex}{assign var="noleftindex" value=false}{/if}
+ {if !$noleftindex}
+ {if $compiledfileindex}
+ <b>Files:</b><br />
+ {eval var=$compiledfileindex}
+ {/if}
+
+ {if $compiledinterfaceindex}
+ <b>Interfaces:</b><br />
+ {eval var=$compiledinterfaceindex}
+ {/if}
+
+ {if $compiledclassindex}
+ <b>Classes:</b><br />
+ {eval var=$compiledclassindex}
+ {/if}
+ {/if}
+ </td>
+ <td>
+ <table cellpadding="10" cellspacing="0" width="100%" border="0"><tr><td valign="top">
+
+{if !$hasel}{assign var="hasel" value=false}{/if}
+{if $hasel}
+<h1>{$eltype|capitalize}: {$class_name}</h1>
+Source Location: {$source_location}<br /><br />
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/include.tpl
index cff067db91..68b800816c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/include.tpl
@@ -1,9 +1,9 @@
-{if count($includes) > 0}
-<h4>Includes:</h4>
-<div class="tags">
-{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}]<br />
-{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-{/section}
-</div>
+{if count($includes) > 0}
+<h4>Includes:</h4>
+<div class="tags">
+{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}]<br />
+{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+{/section}
+</div>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/index.tpl
index 60c74b4704..a493f70e4e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/index.tpl
@@ -1,7 +1,7 @@
-{include file="header.tpl"}
-{if $contents}
-{$contents}
-{else}
-{include file="blank.tpl"}
-{/if}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+{if $contents}
+{$contents}
+{else}
+{include file="blank.tpl"}
+{/if}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/method.tpl
index 216d31bda5..bcc4dceea1 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/method.tpl
@@ -1,145 +1,145 @@
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-{if $show == 'summary'}
-static method {$methods[methods].function_call}, {$methods[methods].sdesc}<br />
-{else}
- <hr />
- <a name="{$methods[methods].method_dest}"></a>
- <h3>static method {$methods[methods].function_name} <span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].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>static {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if})</code>
- </td></tr></table>
- </td></tr></table><br />
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}<br /><br />
-
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-{* original {if $methods[methods].descmethod != ""
- {$methods[methods].descmethod<br /><br />
- {/if *}
-{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})<br /><br />{/if}
-{* original {if $methods[methods].method_overrides != ""
- {$methods[methods].method_overrides<br /><br />
- {/if *}
-
- {if count($methods[methods].params) > 0}
- <h4>Parameters:</h4>
- <div class="tags">
- <table border="0" cellspacing="0" cellpadding="0">
- {section name=params loop=$methods[methods].params}
- <tr>
- <td class="type">{$methods[methods].params[params].datatype}&nbsp;&nbsp;</td>
- <td><b>{$methods[methods].params[params].var}</b>&nbsp;&nbsp;</td>
- <td>{$methods[methods].params[params].data}</td>
- </tr>
- {/section}
- </table>
- </div><br />
- {/if}
- <div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
-{/if}
-{/if}
-{/section}
-
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-{if $show == 'summary'}
-method {$methods[methods].function_call}, {$methods[methods].sdesc}<br />
-{else}
- <hr />
- <a name="{$methods[methods].method_dest}"></a>
- <h3>{if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_name} <span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].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>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if})</code>
- </td></tr></table>
- </td></tr></table><br />
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}<br /><br />
-
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-{* original {if $methods[methods].descmethod != ""
- {$methods[methods].descmethod<br /><br />
- {/if *}
-{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})<br /><br />{/if}
-{* original {if $methods[methods].method_overrides != ""
- {$methods[methods].method_overrides<br /><br />
- {/if *}
-
- {if count($methods[methods].params) > 0}
- <h4>Parameters:</h4>
- <div class="tags">
- <table border="0" cellspacing="0" cellpadding="0">
- {section name=params loop=$methods[methods].params}
- <tr>
- <td class="type">{$methods[methods].params[params].datatype}&nbsp;&nbsp;</td>
- <td><b>{$methods[methods].params[params].var}</b>&nbsp;&nbsp;</td>
- <td>{$methods[methods].params[params].data}</td>
- </tr>
- {/section}
- </table>
- </div><br />
- {/if}
- <div class="top">[ <a href="#top">Top</a> ]</div>
- </div>
-{/if}
-{/if}
-{/section}
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+{if $show == 'summary'}
+static method {$methods[methods].function_call}, {$methods[methods].sdesc}<br />
+{else}
+ <hr />
+ <a name="{$methods[methods].method_dest}"></a>
+ <h3>static method {$methods[methods].function_name} <span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].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>static {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if})</code>
+ </td></tr></table>
+ </td></tr></table><br />
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}<br /><br />
+
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+{* original {if $methods[methods].descmethod != ""
+ {$methods[methods].descmethod<br /><br />
+ {/if *}
+{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})<br /><br />{/if}
+{* original {if $methods[methods].method_overrides != ""
+ {$methods[methods].method_overrides<br /><br />
+ {/if *}
+
+ {if count($methods[methods].params) > 0}
+ <h4>Parameters:</h4>
+ <div class="tags">
+ <table border="0" cellspacing="0" cellpadding="0">
+ {section name=params loop=$methods[methods].params}
+ <tr>
+ <td class="type">{$methods[methods].params[params].datatype}&nbsp;&nbsp;</td>
+ <td><b>{$methods[methods].params[params].var}</b>&nbsp;&nbsp;</td>
+ <td>{$methods[methods].params[params].data}</td>
+ </tr>
+ {/section}
+ </table>
+ </div><br />
+ {/if}
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+{/if}
+{/if}
+{/section}
+
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+{if $show == 'summary'}
+method {$methods[methods].function_call}, {$methods[methods].sdesc}<br />
+{else}
+ <hr />
+ <a name="{$methods[methods].method_dest}"></a>
+ <h3>{if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_name} <span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].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>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if})</code>
+ </td></tr></table>
+ </td></tr></table><br />
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}<br /><br />
+
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+{* original {if $methods[methods].descmethod != ""
+ {$methods[methods].descmethod<br /><br />
+ {/if *}
+{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})<br /><br />{/if}
+{* original {if $methods[methods].method_overrides != ""
+ {$methods[methods].method_overrides<br /><br />
+ {/if *}
+
+ {if count($methods[methods].params) > 0}
+ <h4>Parameters:</h4>
+ <div class="tags">
+ <table border="0" cellspacing="0" cellpadding="0">
+ {section name=params loop=$methods[methods].params}
+ <tr>
+ <td class="type">{$methods[methods].params[params].datatype}&nbsp;&nbsp;</td>
+ <td><b>{$methods[methods].params[params].var}</b>&nbsp;&nbsp;</td>
+ <td>{$methods[methods].params[params].data}</td>
+ </tr>
+ {/section}
+ </table>
+ </div><br />
+ {/if}
+ <div class="top">[ <a href="#top">Top</a> ]</div>
+ </div>
+{/if}
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/packages.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/packages.tpl
index b48b671967..0967e6e720 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/packages.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/packages.tpl
@@ -1,3 +1,3 @@
-{section name=packages loop=$packages}
-<a href="{$packages[packages].link}">{$packages[packages].title}</a>
+{section name=packages loop=$packages}
+<a href="{$packages[packages].link}">{$packages[packages].title}</a>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/page.tpl
index 6dd8683d1a..db2cd60748 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/page.tpl
@@ -1,31 +1,31 @@
-{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
-
-<br>
-<br>
-
-{if $classes}
-<div class="contents">
-{if $tutorial}
-<span class="maintutorial">Main Tutorial: {$tutorial}</span>
-{/if}
-<h2>Classes:</h2>
-{section name=classes loop=$classes}
-<dt>{$classes[classes].link}</dt>
- <dd>{$classes[classes].sdesc}</dd>
-{/section}
-</div><br /><br />
-{/if}
-
-<h2>Page Details:</h2>
-{include file="docblock.tpl" type="page"}
-<br /><br />
-{include file="include.tpl"}
-<br /><br />
-{include file="global.tpl"}
-<br /><br />
-{include file="define.tpl"}
-<br />
-{include file="function.tpl"}
-
-{include file="footer.tpl"}
-
+{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
+
+<br>
+<br>
+
+{if $classes}
+<div class="contents">
+{if $tutorial}
+<span class="maintutorial">Main Tutorial: {$tutorial}</span>
+{/if}
+<h2>Classes:</h2>
+{section name=classes loop=$classes}
+<dt>{$classes[classes].link}</dt>
+ <dd>{$classes[classes].sdesc}</dd>
+{/section}
+</div><br /><br />
+{/if}
+
+<h2>Page Details:</h2>
+{include file="docblock.tpl" type="page"}
+<br /><br />
+{include file="include.tpl"}
+<br /><br />
+{include file="global.tpl"}
+<br /><br />
+{include file="define.tpl"}
+<br />
+{include file="function.tpl"}
+
+{include file="footer.tpl"}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/pkgelementindex.tpl
index 753ad7cf4b..0dabfdb722 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/pkgelementindex.tpl
@@ -1,5 +1,5 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h1>Element index for package {$package}</h1>
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h1>Element index for package {$package}</h1>
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial.tpl
index 22c71c3b9a..a943522c24 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial.tpl
@@ -1,32 +1,32 @@
-{include file="header.tpl" title=$title}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="10%" align="left" valign="bottom">{if $prev}<a href=
-"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
-<td width="80%" align="center" valign="bottom"></td>
-<td width="10%" align="right" valign="bottom">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-</table>
-{/if}
-{$contents}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
-Prev{if $prev}</a>{/if}</td>
-<td width="34%" align="center" valign="top">{if $up}<a href=
-"{$up}">Up</a>{else}&nbsp;{/if}</td>
-<td width="33%" align="right" valign="top">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-
-<tr>
-<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
-<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
-<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
-</tr>
-</table>
-{/if}
+{include file="header.tpl" title=$title}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="10%" align="left" valign="bottom">{if $prev}<a href=
+"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
+<td width="80%" align="center" valign="bottom"></td>
+<td width="10%" align="right" valign="bottom">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+</table>
+{/if}
+{$contents}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
+Prev{if $prev}</a>{/if}</td>
+<td width="34%" align="center" valign="top">{if $up}<a href=
+"{$up}">Up</a>{else}&nbsp;{/if}</td>
+<td width="33%" align="right" valign="top">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+
+<tr>
+<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
+<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
+<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
+</tr>
+</table>
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_toc.tpl
index 1db3443844..3d22d403b4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_toc.tpl
@@ -1,29 +1,29 @@
-{if count($toc)}
-<h1 align="center">Table of Contents</h1>
-<ul>
-{section name=toc loop=$toc}
-{if $toc[toc].tagname == 'refsect1'}
-{assign var="context" value="refsect1"}
-{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect2'}
-{assign var="context" value="refsect2"}
-&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect3'}
-{assign var="context" value="refsect3"}
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'table'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{if $toc[toc].tagname == 'example'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{/section}
-</ul>
+{if count($toc)}
+<h1 align="center">Table of Contents</h1>
+<ul>
+{section name=toc loop=$toc}
+{if $toc[toc].tagname == 'refsect1'}
+{assign var="context" value="refsect1"}
+{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect2'}
+{assign var="context" value="refsect2"}
+&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect3'}
+{assign var="context" value="refsect3"}
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'table'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{if $toc[toc].tagname == 'example'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{/section}
+</ul>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_tree.tpl
index faf7bcef80..dd2e581124 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/tutorial_tree.tpl
@@ -1,5 +1,5 @@
-<ul>
- <li type="square"><a href="{$main.link}">{$main.title|strip_tags}</a>
-{if $kids}{$kids}</li>{/if}
-</ul>
-
+<ul>
+ <li type="square"><a href="{$main.link}">{$main.title|strip_tags}</a>
+{if $kids}{$kids}</li>{/if}
+</ul>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/var.tpl
index e213010253..e36c61fd7b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/PHP/templates/var.tpl
@@ -1,60 +1,60 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-{if $show == 'summary'}
- static var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
-{else}
- <a name="{$vars[vars].var_dest}"></a>
- <p></p>
- <h4>static {$vars[vars].var_name} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span></h4>
- <p>[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- <br />
- <div class="tags">
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><b>Type:</b>&nbsp;&nbsp;</td>
- <td>{$vars[vars].var_type}</td>
- </tr>
- {if $vars[vars].var_overrides != ""}
- <tr>
- <td><b>Overrides:</b>&nbsp;&nbsp;</td>
- <td>{$vars[vars].var_overrides}</td>
- </tr>
- {/if}
- </table>
- </div><br /><br />
- <div class="top">[ <a href="#top">Top</a> ]</div><br />
-{/if}
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-{if $show == 'summary'}
- var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
-{else}
- <a name="{$vars[vars].var_dest}"></a>
- <p></p>
- <h4>{$vars[vars].var_name} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span></h4>
- <p>[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- <br />
- <div class="tags">
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><b>Type:</b>&nbsp;&nbsp;</td>
- <td>{$vars[vars].var_type}</td>
- </tr>
- {if $vars[vars].var_overrides != ""}
- <tr>
- <td><b>Overrides:</b>&nbsp;&nbsp;</td>
- <td>{$vars[vars].var_overrides}</td>
- </tr>
- {/if}
- </table>
- </div><br /><br />
- <div class="top">[ <a href="#top">Top</a> ]</div><br />
-{/if}
-{/if}
-{/section}
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+{if $show == 'summary'}
+ static var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
+{else}
+ <a name="{$vars[vars].var_dest}"></a>
+ <p></p>
+ <h4>static {$vars[vars].var_name} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span></h4>
+ <p>[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ <br />
+ <div class="tags">
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><b>Type:</b>&nbsp;&nbsp;</td>
+ <td>{$vars[vars].var_type}</td>
+ </tr>
+ {if $vars[vars].var_overrides != ""}
+ <tr>
+ <td><b>Overrides:</b>&nbsp;&nbsp;</td>
+ <td>{$vars[vars].var_overrides}</td>
+ </tr>
+ {/if}
+ </table>
+ </div><br /><br />
+ <div class="top">[ <a href="#top">Top</a> ]</div><br />
+{/if}
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+{if $show == 'summary'}
+ var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
+{else}
+ <a name="{$vars[vars].var_dest}"></a>
+ <p></p>
+ <h4>{$vars[vars].var_name} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span></h4>
+ <p>[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ <br />
+ <div class="tags">
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><b>Type:</b>&nbsp;&nbsp;</td>
+ <td>{$vars[vars].var_type}</td>
+ </tr>
+ {if $vars[vars].var_overrides != ""}
+ <tr>
+ <td><b>Overrides:</b>&nbsp;&nbsp;</td>
+ <td>{$vars[vars].var_overrides}</td>
+ </tr>
+ {/if}
+ </table>
+ </div><br /><br />
+ <div class="top">[ <a href="#top">Top</a> ]</div><br />
+{/if}
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/options.ini
index 2293168ed9..e61aeba88e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 =
-/refsect2 = <hr />
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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">
-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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 =
+/refsect2 = <hr />
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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">
+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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/basicindex.tpl
index 8628fc0c4c..b3f0c4a417 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/basicindex.tpl
@@ -1,17 +1,17 @@
-{section name=letter loop=$letters}
- <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a>
-{/section}
-
-{section name=index loop=$index}
- <a name="{$index[index].letter}"></a>
- <a href="{$indexname}.html#top">top</a><br>
- <div>
- <h2>{$index[index].letter}</h2>
- <dl class="lettercontents">
- {section name=contents loop=$index[index].index}
- <dt>{$index[index].index[contents].name}</dt>
- <dd>{$index[index].index[contents].listing}</dd>
- {/section}
- </dl>
- </div>
-{/section}
+{section name=letter loop=$letters}
+ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a>
+{/section}
+
+{section name=index loop=$index}
+ <a name="{$index[index].letter}"></a>
+ <a href="{$indexname}.html#top">top</a><br>
+ <div>
+ <h2>{$index[index].letter}</h2>
+ <dl class="lettercontents">
+ {section name=contents loop=$index[index].index}
+ <dt>{$index[index].index[contents].name}</dt>
+ <dd>{$index[index].index[contents].listing}</dd>
+ {/section}
+ </dl>
+ </div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/blank.tpl
index b503c14223..aae5997529 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/blank.tpl
@@ -1,5 +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 />
-
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/class.tpl
index 385b061eaa..399116ade3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/class.tpl
@@ -1,173 +1,173 @@
-{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
-
-{if $conflicts.conflict_type}<p class="warning">Conflicts with classes:<br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
-<p>
- {/if}
-
-<div class="leftcol">
- <h3><a href="#class_details">{if $is_interface}Interface{else}Class{/if} Overview</a> <span class="smalllinenumber">[line {if $class_slink}{$class_slink}{else}{$line_number}{/if}]</span></h3>
- <div id="classTree"><pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-</div>
- <div class="small">
- <p>{$sdesc|default:''}</p>
- {if $tutorial}
- <h4 class="classtutorial">{if $is_interface}Interface{else}Class{/if} Tutorial:</h4>
- <ul>
- <li>{$tutorial}</li>
- </ul>
- {/if}
- <h4>Author(s):</h4>
- <ul>
- {section name=tag loop=$tags}
- {if $tags[tag].keyword eq "author"}
- <li>{$tags[tag].data}</li>
- {/if}
- {/section}
- </ul>
- <h4>Version:</h4>
- <ul>
- {section name=tag loop=$tags}
- {if $tags[tag].keyword eq "version"}
- <li>{$tags[tag].data}</li>
- {/if}
- {/section}
- </ul>
-
- <h4>Copyright:</h4>
- <ul>
- {section name=tag loop=$tags}
- {if $tags[tag].keyword eq "copyright"}
- <li>{$tags[tag].data}</li>
- {/if}
- {/section}
- </li>
- </div>
-</div>
-
-<div class="middlecol">
- <h3><a href="#class_vars">Variables</a></h3>
- <ul class="small">
- {section name=contents loop=$contents.var}
- <li>{$contents.var[contents]}</li>
- {/section}
- </ul>
- <h3><a href="#class_consts">Constants</a></h3>
- <ul class="small">
- {section name=contents loop=$contents.const}
- <li>{$contents.const[contents]}</li>
- {/section}
- </ul>
-</div>
-<div class="rightcol">
- <h3><a href="#class_methods">Methods</a></h3>
- <ul class="small">
- {section name=contents loop=$contents.method}
- <li>{$contents.method[contents]}</li>
- {/section}
- </ul>
-</div>
-
-<div id="content">
-<hr>
- <div class="contents">
-{if $children}
- <h2>Child classes:</h2>
- {section name=kids loop=$children}
- <dl>
- <dt>{$children[kids].link}</dt>
- <dd>{$children[kids].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
- </div>
-
- <div class="leftCol">
- {if $implements}
- <h2>Implements interfaces</h2>
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- {/if}
- <h2>Inherited Variables</h2>
- {section name=ivars loop=$ivars}
- <div class="indent">
- <h3>Class: {$ivars[ivars].parent_class}</h3>
- <div class="small">
- <dl>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <dt>
- {$ivars[ivars].ivars[ivars2].link}
- </dt>
- <dd>
- {$ivars[ivars].ivars[ivars2].ivars_sdesc}
- </dd>
- {/section}
- </dl>
- </div>
- </div>
- {/section}
- <h2>Inherited Constants</h2>
- {section name=iconsts loop=$iconsts}
- <div class="indent">
- <h3>Class: {$iconsts[iconsts].parent_class}</h3>
- <div class="small">
- <dl>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <dt>
- {$iconsts[iconsts].iconsts[iconsts2].link}
- </dt>
- <dd>
- {$iconsts[iconsts].iconsts[iconsts2].iconsts_sdesc}
- </dd>
- {/section}
- </dl>
- </div>
- </div>
- {/section}
- </div>
-
- <div class="rightCol">
- <h2>Inherited Methods</h2>
- {section name=imethods loop=$imethods}
- <div class="indent">
- <h3>Class: {$imethods[imethods].parent_class}</h3>
- <dl class="small">
- {section name=im2 loop=$imethods[imethods].imethods}
- <dt>
- {$imethods[imethods].imethods[im2].link}
- </dt>
- <dd>
- {$imethods[imethods].imethods[im2].sdesc}
- </dd>
- {/section}
- </dl>
- </div>
- {/section}
- </div>
- <br clear="all">
- <hr>
-
- <a name="class_details"></a>
- <h2>Class Details</h2>
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="small" style="color: #334B66;">[ <a href="#top">Top</a> ]</p>
-
- <hr>
- <a name="class_vars"></a>
- <h2>Class Variables</h2>
- {include file="var.tpl"}
-
- <hr>
- <a name="class_methods"></a>
- <h2>Class Methods</h2>
- {include file="method.tpl"}
-
- <hr>
- <a name="class_consts"></a>
- <h2>Class Constants</h2>
- {include file="const.tpl"}
-</div>
-{include file="footer.tpl"}
+{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
+
+{if $conflicts.conflict_type}<p class="warning">Conflicts with classes:<br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+<p>
+ {/if}
+
+<div class="leftcol">
+ <h3><a href="#class_details">{if $is_interface}Interface{else}Class{/if} Overview</a> <span class="smalllinenumber">[line {if $class_slink}{$class_slink}{else}{$line_number}{/if}]</span></h3>
+ <div id="classTree"><pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+</div>
+ <div class="small">
+ <p>{$sdesc|default:''}</p>
+ {if $tutorial}
+ <h4 class="classtutorial">{if $is_interface}Interface{else}Class{/if} Tutorial:</h4>
+ <ul>
+ <li>{$tutorial}</li>
+ </ul>
+ {/if}
+ <h4>Author(s):</h4>
+ <ul>
+ {section name=tag loop=$tags}
+ {if $tags[tag].keyword eq "author"}
+ <li>{$tags[tag].data}</li>
+ {/if}
+ {/section}
+ </ul>
+ <h4>Version:</h4>
+ <ul>
+ {section name=tag loop=$tags}
+ {if $tags[tag].keyword eq "version"}
+ <li>{$tags[tag].data}</li>
+ {/if}
+ {/section}
+ </ul>
+
+ <h4>Copyright:</h4>
+ <ul>
+ {section name=tag loop=$tags}
+ {if $tags[tag].keyword eq "copyright"}
+ <li>{$tags[tag].data}</li>
+ {/if}
+ {/section}
+ </li>
+ </div>
+</div>
+
+<div class="middlecol">
+ <h3><a href="#class_vars">Variables</a></h3>
+ <ul class="small">
+ {section name=contents loop=$contents.var}
+ <li>{$contents.var[contents]}</li>
+ {/section}
+ </ul>
+ <h3><a href="#class_consts">Constants</a></h3>
+ <ul class="small">
+ {section name=contents loop=$contents.const}
+ <li>{$contents.const[contents]}</li>
+ {/section}
+ </ul>
+</div>
+<div class="rightcol">
+ <h3><a href="#class_methods">Methods</a></h3>
+ <ul class="small">
+ {section name=contents loop=$contents.method}
+ <li>{$contents.method[contents]}</li>
+ {/section}
+ </ul>
+</div>
+
+<div id="content">
+<hr>
+ <div class="contents">
+{if $children}
+ <h2>Child classes:</h2>
+ {section name=kids loop=$children}
+ <dl>
+ <dt>{$children[kids].link}</dt>
+ <dd>{$children[kids].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+ </div>
+
+ <div class="leftCol">
+ {if $implements}
+ <h2>Implements interfaces</h2>
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ {/if}
+ <h2>Inherited Variables</h2>
+ {section name=ivars loop=$ivars}
+ <div class="indent">
+ <h3>Class: {$ivars[ivars].parent_class}</h3>
+ <div class="small">
+ <dl>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <dt>
+ {$ivars[ivars].ivars[ivars2].link}
+ </dt>
+ <dd>
+ {$ivars[ivars].ivars[ivars2].ivars_sdesc}
+ </dd>
+ {/section}
+ </dl>
+ </div>
+ </div>
+ {/section}
+ <h2>Inherited Constants</h2>
+ {section name=iconsts loop=$iconsts}
+ <div class="indent">
+ <h3>Class: {$iconsts[iconsts].parent_class}</h3>
+ <div class="small">
+ <dl>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <dt>
+ {$iconsts[iconsts].iconsts[iconsts2].link}
+ </dt>
+ <dd>
+ {$iconsts[iconsts].iconsts[iconsts2].iconsts_sdesc}
+ </dd>
+ {/section}
+ </dl>
+ </div>
+ </div>
+ {/section}
+ </div>
+
+ <div class="rightCol">
+ <h2>Inherited Methods</h2>
+ {section name=imethods loop=$imethods}
+ <div class="indent">
+ <h3>Class: {$imethods[imethods].parent_class}</h3>
+ <dl class="small">
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <dt>
+ {$imethods[imethods].imethods[im2].link}
+ </dt>
+ <dd>
+ {$imethods[imethods].imethods[im2].sdesc}
+ </dd>
+ {/section}
+ </dl>
+ </div>
+ {/section}
+ </div>
+ <br clear="all">
+ <hr>
+
+ <a name="class_details"></a>
+ <h2>Class Details</h2>
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="small" style="color: #334B66;">[ <a href="#top">Top</a> ]</p>
+
+ <hr>
+ <a name="class_vars"></a>
+ <h2>Class Variables</h2>
+ {include file="var.tpl"}
+
+ <hr>
+ <a name="class_methods"></a>
+ <h2>Class Methods</h2>
+ {include file="method.tpl"}
+
+ <hr>
+ <a name="class_consts"></a>
+ <h2>Class Constants</h2>
+ {include file="const.tpl"}
+</div>
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classleft.tpl
index c361ba7d72..7d7de89a82 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classleft.tpl
@@ -1,8 +1,8 @@
-{foreach key=subpackage item=files from=$classleftindex}
- {if $subpackage != ""}<b>{$subpackage}</b><br>{/if}
- {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}
-{/foreach}
+{foreach key=subpackage item=files from=$classleftindex}
+ {if $subpackage != ""}<b>{$subpackage}</b><br>{/if}
+ {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}
+{/foreach}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classtrees.tpl
index 327c6dc0dc..0c0e974aac 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/classtrees.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl" noleftindex=true}
-<h1>{$title}</h1>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<hr />
-<div class="classtree">Root interface {$interfaces[classtrees].class}</div><br />
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<hr />
-<div class="classtree">Root class {$classtrees[classtrees].class}</div><br />
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<h1>{$title}</h1>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<hr />
+<div class="classtree">Root interface {$interfaces[classtrees].class}</div><br />
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<hr />
+<div class="classtree">Root class {$classtrees[classtrees].class}</div><br />
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/const.tpl
index 04a1f474c0..aeab7293a7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/const.tpl
@@ -1,14 +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:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span></h4>
- <div class="indent">
- <p class="linenumber">[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}
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/section}
+{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:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span></h4>
+ <div class="indent">
+ <p class="linenumber">[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}
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/define.tpl
index b655a99dfa..0aa7ef7608 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/define.tpl
@@ -1,23 +1,23 @@
-<div id="define{if $show == 'summary'}_summary{/if}">
-{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}
- <a name="{$defines[def].define_link}"></a>
- <h3>{$defines[def].define_name}</h3>
- <div class="indent">
- <p class="linenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</p>
- <p><code>{$defines[def].define_name} = {$defines[def].define_value}</code></p>
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
- {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}
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/section}
-</div>
+<div id="define{if $show == 'summary'}_summary{/if}">
+{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}
+ <a name="{$defines[def].define_link}"></a>
+ <h3>{$defines[def].define_name}</h3>
+ <div class="indent">
+ <p class="linenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</p>
+ <p><code>{$defines[def].define_name} = {$defines[def].define_value}</code></p>
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+ {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}
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/section}
+</div>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/docblock.tpl
index ebe541b8ab..9ea60cf24d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/docblock.tpl
@@ -1,13 +1,13 @@
-{if $sdesc != ''}
-<p align="center"><strong>{$sdesc|default:''}
-</strong></p>
-{/if}
-{if $desc != ''}{$desc|default:''}{/if}
-{if count($tags)}
-<h4>Tags:</h4>
-<ul>
-{section name=tag loop=$tags}
- <li><b>{$tags[tag].keyword}</b> - {$tags[tag].data}</li>
-{/section}
-</ul>
-{/if}
+{if $sdesc != ''}
+<p align="center"><strong>{$sdesc|default:''}
+</strong></p>
+{/if}
+{if $desc != ''}{$desc|default:''}{/if}
+{if count($tags)}
+<h4>Tags:</h4>
+<ul>
+{section name=tag loop=$tags}
+ <li><b>{$tags[tag].keyword}</b> - {$tags[tag].data}</li>
+{/section}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/elementindex.tpl
index b9b8028244..0ff4a79e9d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/elementindex.tpl
@@ -1,5 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/examplesource.tpl
index 9580ee405e..1bf1f882cd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1 align="center">{$title}</h1>
-<div class="php-src">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1 align="center">{$title}</h1>
+<div class="php-src">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/fileleft.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/fileleft.tpl
index 4e9b917af0..9e141dc5d9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/fileleft.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/fileleft.tpl
@@ -1,8 +1,8 @@
-{foreach key=subpackage item=files from=$fileleftindex}
- {if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if}
- {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}
-{/foreach}
+{foreach key=subpackage item=files from=$fileleftindex}
+ {if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if}
+ {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}
+{/foreach}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/filesource.tpl
index 20aea22203..15f7fbfe34 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/filesource.tpl
@@ -1,8 +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-src">
-{$source}
-</div>
+{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-src">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/footer.tpl
index ecf90ee808..0bdda65ca2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/footer.tpl
@@ -1,7 +1,7 @@
- <div id="credit">
- <hr>
- Documentation generated on {$date} by <a href="{$phpdocwebsite}">phpDocumentor {$phpdocversion}</a>
- </div>
-</div>
-</body>
-</html>
+ <div id="credit">
+ <hr>
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}">phpDocumentor {$phpdocversion}</a>
+ </div>
+</div>
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/function.tpl
index 454c1069ac..14fd78eb80 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/function.tpl
@@ -1,39 +1,39 @@
-<div id="function{if $show == 'summary'}_summary{/if}">
-{section name=func loop=$functions}
-{if $show == 'summary'}
-function {$functions[func].id}, {$functions[func].sdesc}<br>
-{else}
- <a name="{$functions[func].function_dest}"></a>
- <h3>{$functions[func].function_name}</h3>
- <div class="indent">
- <code>{$functions[func].function_return} {if $functions[func].ifunction_call.returnsref}&amp;{/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}
-{/if})</code>
- <p class="linenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags}
- {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}
-
- <h4>Parameters</h4>
- <ul>
- {section name=params loop=$functions[func].params}
- <li>
- <span class="type">{$functions[func].params[params].datatype}</span>
- <b>{$functions[func].params[params].var}</b>
- -
- {$functions[func].params[params].data}</li>
- {/section}
- </ul>
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/section}
-</div>
+<div id="function{if $show == 'summary'}_summary{/if}">
+{section name=func loop=$functions}
+{if $show == 'summary'}
+function {$functions[func].id}, {$functions[func].sdesc}<br>
+{else}
+ <a name="{$functions[func].function_dest}"></a>
+ <h3>{$functions[func].function_name}</h3>
+ <div class="indent">
+ <code>{$functions[func].function_return} {if $functions[func].ifunction_call.returnsref}&amp;{/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}
+{/if})</code>
+ <p class="linenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags}
+ {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}
+
+ <h4>Parameters</h4>
+ <ul>
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="type">{$functions[func].params[params].datatype}</span>
+ <b>{$functions[func].params[params].var}</b>
+ -
+ {$functions[func].params[params].data}</li>
+ {/section}
+ </ul>
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/section}
+</div>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/global.tpl
index 3ef7ac7135..9fa52bcefc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/global.tpl
@@ -1,24 +1,24 @@
-<div id="global{if $show == 'summary'}_summary{/if}">
-{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}
- <a name="{$globals[glob].global_link}"></a>
- <h3><i>{$globals[glob].global_type}</i> {$globals[glob].global_name}</h3>
- <div class="indent">
- <p class="linenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- <p><b>Default Value:</b>{$globals[glob].global_value|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</p>
- {if $globals[glob].global_conflicts.conflict_type}
- <p><b>Conflicts with globals:</b>
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </p>
- {/if}
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/section}
-</div>
+<div id="global{if $show == 'summary'}_summary{/if}">
+{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}
+ <a name="{$globals[glob].global_link}"></a>
+ <h3><i>{$globals[glob].global_type}</i> {$globals[glob].global_name}</h3>
+ <div class="indent">
+ <p class="linenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ <p><b>Default Value:</b>{$globals[glob].global_value|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</p>
+ {if $globals[glob].global_conflicts.conflict_type}
+ <p><b>Conflicts with globals:</b>
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </p>
+ {/if}
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/section}
+</div>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/header.tpl
index 852e0e9f47..b735fa3a11 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/header.tpl
@@ -1,93 +1,93 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <title>{$title}</title>
- <link rel="stylesheet" type="text/css" id="layout" href="{$subdir}media/layout.css" media="screen">
- <link rel="stylesheet" type="text/css" href="{$subdir}media/style.css" media="all">
- <link rel="stylesheet" type="text/css" href="{$subdir}media/print.css" media="print">
-</head>
-
-<body>
-<div id="header">
- <div id="navLinks">
- [ <a href="{$subdir}classtrees_{$package}.html">Class Tree: {$package}</a> ]
- [ <a href="{$subdir}elementindex_{$package}.html">Index: {$package}</a> ]
- [ <a href="{$subdir}elementindex.html">All elements</a> ]
- </div>
- <div id="packagePosition">
- <div id="packageTitle2">{$package}</div>
- <div id="packageTitle">{$package}</div>
- <div id="elementPath">{$subpackage} &middot; {$current}</div>
- </div>
-</div>
-
-<div id="nav" class="small">
-{if count($ric) >= 1}
- <div id="ric">
- {section name=ric loop=$ric}
- <p><a href="{$subdir}{$ric[ric].file}">{$ric[ric].name}</a></p>
- {/section}
- </div>
-{/if}
-{if $hastodos}
- <div id="todolist">
- <p><a href="{$subdir}{$todolink}">Todo List</a></p>
- </div>
-{/if}
- <div id="packages">
- Packages:
- {section name=packagelist loop=$packageindex}
- <p><a href="{$subdir}{$packageindex[packagelist].link}">{$packageindex[packagelist].title}</a></p>
- {/section}
- </div>
-{if $tutorials}
- <div id="tutorials">
- Tutorials/Manuals:<br />
- {if $tutorials.pkg}
- <strong>Package-level:</strong>
- {section name=ext loop=$tutorials.pkg}
- {$tutorials.pkg[ext]}
- {/section}
- {/if}
- {if $tutorials.cls}
- <strong>Class-level:</strong>
- {section name=ext loop=$tutorials.cls}
- {$tutorials.cls[ext]}
- {/section}
- {/if}
- {if $tutorials.proc}
- <strong>Procedural-level:</strong>
- {section name=ext loop=$tutorials.proc}
- {$tutorials.proc[ext]}
- {/section}
- {/if}
- </div>
-{/if}
-
- {if !$noleftindex}{assign var="noleftindex" value=false}{/if}
- {if !$noleftindex}
- <div id="index">
- <div id="files">
- {if $compiledfileindex}
- Files:<br>
- {eval var=$compiledfileindex}{/if}
- </div>
- <div id="interfaces">
- {if $compiledinterfaceindex}Interfaces:<br>
- {eval var=$compiledinterfaceindex}{/if}
- </div>
- <div id="classes">
- {if $compiledclassindex}Classes:<br>
- {eval var=$compiledclassindex}{/if}
- </div>
- </div>
- {/if}
-</div>
-
-<div id="body">
- {if !$hasel}{assign var="hasel" value=false}{/if}
- {if $eltype == 'class' && $is_interface}{assign var="eltype" value="interface"}{/if}
- {if $hasel}
- <h1>{$eltype|capitalize}: {$class_name}</h1>
- <p style="margin: 0px;">Source Location: {$source_location}</p>
- {/if}
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title>{$title}</title>
+ <link rel="stylesheet" type="text/css" id="layout" href="{$subdir}media/layout.css" media="screen">
+ <link rel="stylesheet" type="text/css" href="{$subdir}media/style.css" media="all">
+ <link rel="stylesheet" type="text/css" href="{$subdir}media/print.css" media="print">
+</head>
+
+<body>
+<div id="header">
+ <div id="navLinks">
+ [ <a href="{$subdir}classtrees_{$package}.html">Class Tree: {$package}</a> ]
+ [ <a href="{$subdir}elementindex_{$package}.html">Index: {$package}</a> ]
+ [ <a href="{$subdir}elementindex.html">All elements</a> ]
+ </div>
+ <div id="packagePosition">
+ <div id="packageTitle2">{$package}</div>
+ <div id="packageTitle">{$package}</div>
+ <div id="elementPath">{$subpackage} &middot; {$current}</div>
+ </div>
+</div>
+
+<div id="nav" class="small">
+{if count($ric) >= 1}
+ <div id="ric">
+ {section name=ric loop=$ric}
+ <p><a href="{$subdir}{$ric[ric].file}">{$ric[ric].name}</a></p>
+ {/section}
+ </div>
+{/if}
+{if $hastodos}
+ <div id="todolist">
+ <p><a href="{$subdir}{$todolink}">Todo List</a></p>
+ </div>
+{/if}
+ <div id="packages">
+ Packages:
+ {section name=packagelist loop=$packageindex}
+ <p><a href="{$subdir}{$packageindex[packagelist].link}">{$packageindex[packagelist].title}</a></p>
+ {/section}
+ </div>
+{if $tutorials}
+ <div id="tutorials">
+ Tutorials/Manuals:<br />
+ {if $tutorials.pkg}
+ <strong>Package-level:</strong>
+ {section name=ext loop=$tutorials.pkg}
+ {$tutorials.pkg[ext]}
+ {/section}
+ {/if}
+ {if $tutorials.cls}
+ <strong>Class-level:</strong>
+ {section name=ext loop=$tutorials.cls}
+ {$tutorials.cls[ext]}
+ {/section}
+ {/if}
+ {if $tutorials.proc}
+ <strong>Procedural-level:</strong>
+ {section name=ext loop=$tutorials.proc}
+ {$tutorials.proc[ext]}
+ {/section}
+ {/if}
+ </div>
+{/if}
+
+ {if !$noleftindex}{assign var="noleftindex" value=false}{/if}
+ {if !$noleftindex}
+ <div id="index">
+ <div id="files">
+ {if $compiledfileindex}
+ Files:<br>
+ {eval var=$compiledfileindex}{/if}
+ </div>
+ <div id="interfaces">
+ {if $compiledinterfaceindex}Interfaces:<br>
+ {eval var=$compiledinterfaceindex}{/if}
+ </div>
+ <div id="classes">
+ {if $compiledclassindex}Classes:<br>
+ {eval var=$compiledclassindex}{/if}
+ </div>
+ </div>
+ {/if}
+</div>
+
+<div id="body">
+ {if !$hasel}{assign var="hasel" value=false}{/if}
+ {if $eltype == 'class' && $is_interface}{assign var="eltype" value="interface"}{/if}
+ {if $hasel}
+ <h1>{$eltype|capitalize}: {$class_name}</h1>
+ <p style="margin: 0px;">Source Location: {$source_location}</p>
+ {/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/include.tpl
index 58eb8514c8..f2f5625db9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/include.tpl
@@ -1,8 +1,8 @@
-{if count($includes) > 0}
-Includes:<br>
-{section name=includes loop=$includes}
-{$includes[includes].include_name}({$includes[includes].include_value}) <span class="linenumber">[line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]</span>
-<br />
-{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-{/section}
+{if count($includes) > 0}
+Includes:<br>
+{section name=includes loop=$includes}
+{$includes[includes].include_name}({$includes[includes].include_value}) <span class="linenumber">[line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]</span>
+<br />
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/index.tpl
index 60c74b4704..a493f70e4e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/index.tpl
@@ -1,7 +1,7 @@
-{include file="header.tpl"}
-{if $contents}
-{$contents}
-{else}
-{include file="blank.tpl"}
-{/if}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+{if $contents}
+{$contents}
+{else}
+{include file="blank.tpl"}
+{/if}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/method.tpl
index 742e97bd7d..f9bcdd38f3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/method.tpl
@@ -1,123 +1,123 @@
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-{if $show == 'summary'}
- <p>static method {$methods[methods].function_call}, {$methods[methods].sdesc}</p>
-{else}
- <a name="{$methods[methods].method_dest}"></a>
- <p></p>
- <h3>static {$methods[methods].function_name}</h3>
- <div class="indent">
- <p>
- <code>static {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if})</code>
- </p>
-
- <p class="linenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}
-
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-{if $methods[methods].method_overrides}<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- <h4>Parameters:</h4>
- <ul>
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="type">{$methods[methods].params[params].datatype}</span>
- <b>{$methods[methods].params[params].var}</b>
- -
- {$methods[methods].params[params].data}</li>
- {/section}
- </ul>
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/if}
-{/section}
-
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-{if $show == 'summary'}
- <p>{if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_call}, {$methods[methods].sdesc}</p>
-{else}
- <a name="{$methods[methods].method_dest}"></a>
- <p></p>
- <h3>{$methods[methods].function_name}</h3>
- <div class="indent">
- <p>
- <code>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if})</code>
- </p>
-
- <p class="linenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}
-
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-{if $methods[methods].method_overrides}<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- <h4>Parameters:</h4>
- <ul>
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="type">{$methods[methods].params[params].datatype}</span>
- <b>{$methods[methods].params[params].var}</b>
- -
- {$methods[methods].params[params].data}</li>
- {/section}
- </ul>
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/if}
-{/section}
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+{if $show == 'summary'}
+ <p>static method {$methods[methods].function_call}, {$methods[methods].sdesc}</p>
+{else}
+ <a name="{$methods[methods].method_dest}"></a>
+ <p></p>
+ <h3>static {$methods[methods].function_name}</h3>
+ <div class="indent">
+ <p>
+ <code>static {$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if})</code>
+ </p>
+
+ <p class="linenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}
+
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+{if $methods[methods].method_overrides}<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ <h4>Parameters:</h4>
+ <ul>
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="type">{$methods[methods].params[params].datatype}</span>
+ <b>{$methods[methods].params[params].var}</b>
+ -
+ {$methods[methods].params[params].data}</li>
+ {/section}
+ </ul>
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/if}
+{/section}
+
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+{if $show == 'summary'}
+ <p>{if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_call}, {$methods[methods].sdesc}</p>
+{else}
+ <a name="{$methods[methods].method_dest}"></a>
+ <p></p>
+ <h3>{$methods[methods].function_name}</h3>
+ <div class="indent">
+ <p>
+ <code>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if})</code>
+ </p>
+
+ <p class="linenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}
+
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+{if $methods[methods].method_overrides}<p>Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})</p>{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ <h4>Parameters:</h4>
+ <ul>
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="type">{$methods[methods].params[params].datatype}</span>
+ <b>{$methods[methods].params[params].var}</b>
+ -
+ {$methods[methods].params[params].data}</li>
+ {/section}
+ </ul>
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/packages.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/packages.tpl
index b48b671967..0967e6e720 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/packages.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/packages.tpl
@@ -1,3 +1,3 @@
-{section name=packages loop=$packages}
-<a href="{$packages[packages].link}">{$packages[packages].title}</a>
+{section name=packages loop=$packages}
+<a href="{$packages[packages].link}">{$packages[packages].title}</a>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/page.tpl
index b85a5ce7d6..c3cb9fd1f7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/page.tpl
@@ -1,31 +1,31 @@
-{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
-
-<br>
-<br>
-
-<div class="contents">
-{if $tutorial}
-<span class="maintutorial">Main Tutorial: {$tutorial}</span>
-{/if}
-<h2>Classes:</h2>
-<dl>
-{section name=classes loop=$classes}
-<dt>{$classes[classes].link}</dt>
- <dd>{$classes[classes].sdesc}</dd>
-{/section}
-</dl>
-</div>
-
-<h2>Page Details:</h2>
-{include file="docblock.tpl" type="page"}
-<hr>
-{include file="include.tpl"}
-<hr>
-{include file="global.tpl"}
-<hr>
-{include file="define.tpl"}
-<hr>
-{include file="function.tpl"}
-
-{include file="footer.tpl"}
-
+{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
+
+<br>
+<br>
+
+<div class="contents">
+{if $tutorial}
+<span class="maintutorial">Main Tutorial: {$tutorial}</span>
+{/if}
+<h2>Classes:</h2>
+<dl>
+{section name=classes loop=$classes}
+<dt>{$classes[classes].link}</dt>
+ <dd>{$classes[classes].sdesc}</dd>
+{/section}
+</dl>
+</div>
+
+<h2>Page Details:</h2>
+{include file="docblock.tpl" type="page"}
+<hr>
+{include file="include.tpl"}
+<hr>
+{include file="global.tpl"}
+<hr>
+{include file="define.tpl"}
+<hr>
+{include file="function.tpl"}
+
+{include file="footer.tpl"}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/pkgelementindex.tpl
index 753ad7cf4b..0dabfdb722 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/pkgelementindex.tpl
@@ -1,5 +1,5 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h1>Element index for package {$package}</h1>
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h1>Element index for package {$package}</h1>
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial.tpl
index f468bf416b..71fbb4febc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial.tpl
@@ -1,32 +1,32 @@
-{include file="header.tpl" title=$title}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="10%" align="left" valign="bottom">{if $prev}<a href=
-"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
-<td width="80%" align="center" valign="bottom"></td>
-<td width="10%" align="right" valign="bottom">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-</table>
-{/if}
-{$contents}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
-Prev{if $prev}</a>{/if}</td>
-<td width="34%" align="center" valign="top">{if $up}<a href=
-"{$up}">Up</a>{else}&nbsp;{/if}</td>
-<td width="33%" align="right" valign="top">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-
-<tr>
-<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
-<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
-<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
-</tr>
-</table>
-{/if}
-{include file="footer.tpl"}
+{include file="header.tpl" title=$title}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="10%" align="left" valign="bottom">{if $prev}<a href=
+"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
+<td width="80%" align="center" valign="bottom"></td>
+<td width="10%" align="right" valign="bottom">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+</table>
+{/if}
+{$contents}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
+Prev{if $prev}</a>{/if}</td>
+<td width="34%" align="center" valign="top">{if $up}<a href=
+"{$up}">Up</a>{else}&nbsp;{/if}</td>
+<td width="33%" align="right" valign="top">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+
+<tr>
+<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
+<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
+<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
+</tr>
+</table>
+{/if}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_toc.tpl
index 1db3443844..3d22d403b4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_toc.tpl
@@ -1,29 +1,29 @@
-{if count($toc)}
-<h1 align="center">Table of Contents</h1>
-<ul>
-{section name=toc loop=$toc}
-{if $toc[toc].tagname == 'refsect1'}
-{assign var="context" value="refsect1"}
-{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect2'}
-{assign var="context" value="refsect2"}
-&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect3'}
-{assign var="context" value="refsect3"}
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'table'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{if $toc[toc].tagname == 'example'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{/section}
-</ul>
+{if count($toc)}
+<h1 align="center">Table of Contents</h1>
+<ul>
+{section name=toc loop=$toc}
+{if $toc[toc].tagname == 'refsect1'}
+{assign var="context" value="refsect1"}
+{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect2'}
+{assign var="context" value="refsect2"}
+&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect3'}
+{assign var="context" value="refsect3"}
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'table'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{if $toc[toc].tagname == 'example'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{/section}
+</ul>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_tree.tpl
index 1ccecc9746..ccb0289efb 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/tutorial_tree.tpl
@@ -1,5 +1,5 @@
-<ul>
- <li><a href="{$main.link}">{$main.title|strip_tags}</a>
-{if $kids}{$kids}</li>{/if}
-</ul>
-
+<ul>
+ <li><a href="{$main.link}">{$main.title|strip_tags}</a>
+{if $kids}{$kids}</li>{/if}
+</ul>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/var.tpl
index 56160db47b..262f427a78 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/Smarty/templates/default/templates/var.tpl
@@ -1,36 +1,36 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-{if $show == 'summary'}
- static var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
-{else}
- <a name="{$vars[vars].var_dest}"></a>
- <p></p>
- <h4>static {$vars[vars].var_name}{if $vars[vars].has_default} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span>{/if}</h4>
- <div class="indent">
- <p class="linenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
- <p><b>Type:</b> {$vars[vars].var_type}</p>
- <p><b>Overrides:</b> {$vars[vars].var_overrides}</p>
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-{if $show == 'summary'}
- var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
-{else}
- <a name="{$vars[vars].var_dest}"></a>
- <p></p>
- <h4>{$vars[vars].var_name}{if $vars[vars].has_default} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span>{/if}</h4>
- <div class="indent">
- <p class="linenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
- <p><b>Type:</b> {$vars[vars].var_type}</p>
- <p><b>Overrides:</b> {$vars[vars].var_overrides}</p>
- </div>
- <p class="top">[ <a href="#top">Top</a> ]</p>
-{/if}
-{/if}
-{/section}
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+{if $show == 'summary'}
+ static var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
+{else}
+ <a name="{$vars[vars].var_dest}"></a>
+ <p></p>
+ <h4>static {$vars[vars].var_name}{if $vars[vars].has_default} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span>{/if}</h4>
+ <div class="indent">
+ <p class="linenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+ <p><b>Type:</b> {$vars[vars].var_type}</p>
+ <p><b>Overrides:</b> {$vars[vars].var_overrides}</p>
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+{if $show == 'summary'}
+ var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
+{else}
+ <a name="{$vars[vars].var_dest}"></a>
+ <p></p>
+ <h4>{$vars[vars].var_name}{if $vars[vars].has_default} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":"&nbsp;"|replace:"\t":"&nbsp;&nbsp;&nbsp;"}</span>{/if}</h4>
+ <div class="indent">
+ <p class="linenumber">[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+ <p><b>Type:</b> {$vars[vars].var_type}</p>
+ <p><b>Overrides:</b> {$vars[vars].var_overrides}</p>
+ </div>
+ <p class="top">[ <a href="#top">Top</a> ]</p>
+{/if}
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/class.tpl
index c60f4e425b..9ab7c45513 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/class.tpl
@@ -1,429 +1,429 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/header.tpl
index 902871c310..0d62619064 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/header.tpl
@@ -1,95 +1,95 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- {if $top2 || $top3}
- <script src="{$subdir}media/lib/classTree.js"></script>
- {/if}
- {if $top2}
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- {/if}
- {if $top3 || $top2}
- <script language="javascript" type="text/javascript">
- var imgPlus = new Image();
- var imgMinus = new Image();
- imgPlus.src = "{$subdir}media/images/plus.png";
- imgMinus.src = "{$subdir}media/images/minus.png";
-
- function showNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgMinus.src;
- oTable.style.display = "block";
- {rdelim}
-
- function hideNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgPlus.src;
- oTable.style.display = "none";
- {rdelim}
-
- function nodeIsVisible(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- break;
- {rdelim}
- return (oTable && oTable.style.display == "block");
- {rdelim}
-
- function toggleNodeVisibility(Node){ldelim}
- if (nodeIsVisible(Node)){ldelim}
- hideNode(Node);
- {rdelim}else{ldelim}
- showNode(Node);
- {rdelim}
- {rdelim}
- </script>
- {/if}
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ {if $top2 || $top3}
+ <script src="{$subdir}media/lib/classTree.js"></script>
+ {/if}
+ {if $top2}
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ {/if}
+ {if $top3 || $top2}
+ <script language="javascript" type="text/javascript">
+ var imgPlus = new Image();
+ var imgMinus = new Image();
+ imgPlus.src = "{$subdir}media/images/plus.png";
+ imgMinus.src = "{$subdir}media/images/minus.png";
+
+ function showNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgMinus.src;
+ oTable.style.display = "block";
+ {rdelim}
+
+ function hideNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgPlus.src;
+ oTable.style.display = "none";
+ {rdelim}
+
+ function nodeIsVisible(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ break;
+ {rdelim}
+ return (oTable && oTable.style.display == "block");
+ {rdelim}
+
+ function toggleNodeVisibility(Node){ldelim}
+ if (nodeIsVisible(Node)){ldelim}
+ hideNode(Node);
+ {rdelim}else{ldelim}
+ showNode(Node);
+ {rdelim}
+ {rdelim}
+ </script>
+ {/if}
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/left_frame.tpl
index 25d8905ad0..35178d876d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/left_frame.tpl
@@ -1,197 +1,197 @@
-{include file="header.tpl" top2=true}
-<h3 class="package-title">{$info.0.package}</h3>
-<div class="tree">
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=p loop=$info}
- {if $info[p].subpackage == ""}
- var tree = new WebFXTree('<span class="package">{$info.0.package|escape:"quotes"}</span>');
- tree.setBehavior('classic');
-
- {if $hastodos}
- var todos = new WebFXTreeItem('To-do List', '{$todolink}');
- tree.add(todos);
- {/if}
-
- var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
- tree.add(class_trees);
-
- var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
- tree.add(elements);
-
- var parent_node;
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
- {if $info[p].hasinterfaces}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
- {if $info[p].hasclasses}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
-
- {if $info[p].functions}
- var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link}');
- tree_function.add(fic);
- {/section}
-
- tree.add(tree_function);
- {/if}
-
- {if $info[p].files}
- var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- tree_file.add(file);
- {/section}
-
- tree.add(tree_file);
- {/if}
-
- {else}
- {if $info[p].subpackagetutorial}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa|escape:"quotes"}');
- {else}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage|escape:"quotes"}</span>', '{$packagedoc|escape:"quotes"}');
- {/if}
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].classes}
- var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
-
- {section name=class loop=$info[p].classes}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- subpackagetree_classe.add(classe);
- {/section}
-
- subpackagetree.add(subpackagetree_classe);
- {/if}
-
- {if $info[p].functions}
- var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- subpackagetree_function.add(fic);
- {/section}
-
- subpackagetree.add(subpackagetree_function);
- {/if}
-
- {if $info[p].files}
- var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- subpackagetree_file.add(file);
- {/section}
-
- subpackagetree.add(subpackagetree_file);
- {/if}
-
- tree.add(subpackagetree);
- {/if}
-{/section}
-
-document.write(tree);
-{rdelim}
-</script>
-</div>
-<p class="notes">
- Generated by
- <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
-</p>
-</body>
-</html>
+{include file="header.tpl" top2=true}
+<h3 class="package-title">{$info.0.package}</h3>
+<div class="tree">
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=p loop=$info}
+ {if $info[p].subpackage == ""}
+ var tree = new WebFXTree('<span class="package">{$info.0.package|escape:"quotes"}</span>');
+ tree.setBehavior('classic');
+
+ {if $hastodos}
+ var todos = new WebFXTreeItem('To-do List', '{$todolink}');
+ tree.add(todos);
+ {/if}
+
+ var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
+ tree.add(class_trees);
+
+ var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
+ tree.add(elements);
+
+ var parent_node;
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+ {if $info[p].hasinterfaces}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+ {if $info[p].hasclasses}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+
+ {if $info[p].functions}
+ var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link}');
+ tree_function.add(fic);
+ {/section}
+
+ tree.add(tree_function);
+ {/if}
+
+ {if $info[p].files}
+ var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ tree_file.add(file);
+ {/section}
+
+ tree.add(tree_file);
+ {/if}
+
+ {else}
+ {if $info[p].subpackagetutorial}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa|escape:"quotes"}');
+ {else}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage|escape:"quotes"}</span>', '{$packagedoc|escape:"quotes"}');
+ {/if}
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].classes}
+ var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=class loop=$info[p].classes}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ subpackagetree_classe.add(classe);
+ {/section}
+
+ subpackagetree.add(subpackagetree_classe);
+ {/if}
+
+ {if $info[p].functions}
+ var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ subpackagetree_function.add(fic);
+ {/section}
+
+ subpackagetree.add(subpackagetree_function);
+ {/if}
+
+ {if $info[p].files}
+ var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ subpackagetree_file.add(file);
+ {/section}
+
+ subpackagetree.add(subpackagetree_file);
+ {/if}
+
+ tree.add(subpackagetree);
+ {/if}
+{/section}
+
+document.write(tree);
+{rdelim}
+</script>
+</div>
+<p class="notes">
+ Generated by
+ <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
+</p>
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/lib/classTree.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/lib/classTree.js
index 5989426f08..ebb3fb4a77 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/lib/classTree.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/lib/classTree.js
@@ -1,454 +1,454 @@
-/*----------------------------------------\
-| Cross Browser Tree Widget 1.1 |
-|-----------------------------------------|
-| Created by Emil A. Eklund (eae@eae.net) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------|
-| This script is provided as is without |
-| any warranty whatsoever. It may be used |
-| free of charge for non commerical sites |
-| For commerical use contact the author |
-| of this script for further details. |
-|-----------------------------------------|
-| Created 2000-12-11 | Updated 2001-09-06 |
-\----------------------------------------*/
-
-var webFXTreeConfig = {
- rootIcon : 'media/images/empty.png',
- openRootIcon : 'media/images/empty.png',
- folderIcon : 'media/images/empty.png',
- openFolderIcon : 'media/images/empty.png',
- fileIcon : 'media/images/empty.png',
- iIcon : 'media/images/I.png',
- lIcon : 'media/images/L.png',
- lMinusIcon : 'media/images/Lminus.png',
- lPlusIcon : 'media/images/Lplus.png',
- tIcon : 'media/images/T.png',
- tMinusIcon : 'media/images/Tminus.png',
- tPlusIcon : 'media/images/Tplus.png',
- blankIcon : 'media/images/blank.png',
- defaultText : 'Tree Item',
- defaultAction : 'javascript:void(0);',
- defaultTarget : 'right',
- defaultBehavior : 'classic'
-};
-
-var webFXTreeHandler = {
- idCounter : 0,
- idPrefix : "webfx-tree-object-",
- all : {},
- behavior : null,
- selected : null,
- getId : function() { return this.idPrefix + this.idCounter++; },
- toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
- select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
- focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
- blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
- keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
- cookies : new WebFXCookie()
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
- if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
- document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
- if (this.cookies) {
- var start = this.cookies.indexOf(' ' + key + '=');
- if (start == -1) { return null; }
- var end = this.cookies.indexOf(";", start);
- if (end == -1) { end = this.cookies.length; }
- end -= start;
- var cookie = this.cookies.substr(start,end);
- return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
- }
- else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction, sTarget) {
- this.childNodes = [];
- this.id = webFXTreeHandler.getId();
- this.text = sText || webFXTreeConfig.defaultText;
- this.action = sAction || webFXTreeConfig.defaultAction;
- this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
- this._last = false;
- webFXTreeHandler.all[this.id] = this;
-}
-
-WebFXTreeAbstractNode.prototype.add = function (node) {
- node.parentNode = this;
- this.childNodes[this.childNodes.length] = node;
- var root = this;
- if (this.childNodes.length >=2) {
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- while (root.parentNode) { root = root.parentNode; }
- if (root.rendered) {
- if (this.childNodes.length >= 2) {
- document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
- if (this.childNodes[this.childNodes.length -2].folder) {
- this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
- this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
- }
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- this._last = true;
- var foo = this;
- while (foo.parentNode) {
- for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
- if (foo.id == foo.parentNode.childNodes[i].id) { break; }
- }
- if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
- else { foo.parentNode._last = false; }
- foo = foo.parentNode;
- }
- document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
- if ((!this.folder) && (!this.openIcon)) {
- this.icon = webFXTreeConfig.folderIcon;
- this.openIcon = webFXTreeConfig.openFolderIcon;
- }
- this.folder = true;
- this.indent();
- this.expand();
- }
- return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
- if (this.folder) {
- if (this.open) { this.collapse(); }
- else { this.expand(); }
- }
-}
-
-WebFXTreeAbstractNode.prototype.select = function() {
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
- webFXTreeHandler.selected = this;
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
- document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
- document.getElementById(this.id + '-anchor').style.color = 'menutext';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
- this.open = true;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-}
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
- this.open = false;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-}
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
- this.expandChildren();
- if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
- if ((this.folder) && (this.open)) { this.collapse(); }
- this.collapseChildren();
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
- /*
- * Since we only want to modify items one level below ourself,
- * and since the rightmost indentation position is occupied by
- * the plus icon we set this to -2
- */
- if (lvl == null) { lvl = -2; }
- var state = 0;
- for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
- state = this.childNodes[i].indent(lvl + 1, del, last, level);
- if (state) { return; }
- }
- if (del) {
- if (level >= this._level) {
- if (this.folder) {
- document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
- this.plusIcon = webFXTreeConfig.lPlusIcon;
- this.minusIcon = webFXTreeConfig.lMinusIcon;
- }
- else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
- return 1;
- }
- }
- var foo = document.getElementById(this.id + '-indent-' + lvl);
- if (foo) {
- if ((del) && (last)) { foo._last = true; }
- if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
- else { foo.src = webFXTreeConfig.iIcon; }
- }
- return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- this.icon = sIcon || webFXTreeConfig.rootIcon;
- this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
- /* Defaults to open */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
- this.folder = true;
- this.rendered = false;
- if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
- this.targetWindow = 'right';
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
- webFXTreeHandler.behavior = sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
- return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
- if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
- else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
- this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
- return null;
-}
-
-WebFXTree.prototype.getLast = function() {
- return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
- if (key == 39) { this.expand(); return false; }
- if (key == 37) { this.collapse(); return false; }
- if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
- return true;
-}
-
-WebFXTree.prototype.toString = function() {
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i, this.childNodes.length);
- }
- str += "</div>";
- this.rendered = true;
- return str;
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- /* Defaults to close */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
- if (eParent) { eParent.add(this); }
- if (sIcon) { this.icon = sIcon; }
- if (sOpenIcon) { this.openIcon = sOpenIcon; }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
- var parentNode = this.parentNode;
- var prevSibling = this.getPreviousSibling(true);
- var nextSibling = this.getNextSibling(true);
- var folder = this.parentNode.folder;
- var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
- this.getPreviousSibling().focus();
- this._remove();
- if (parentNode.childNodes.length == 0) {
- parentNode.folder = false;
- parentNode.open = false;
- }
- if (last) {
- if (parentNode.id == prevSibling.id) {
- document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
- }
- else { }
- }
- if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
- parentNode.indent(null, true, last, this._level);
- }
- if (document.getElementById(prevSibling.id + '-plus')) {
- if (nextSibling) {
- if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
- else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
- else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
-}
-
-WebFXTreeItem.prototype._remove = function() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
- this.childNodes[i]._remove();
- }
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this.id == this.parentNode.childNodes[i].id) {
- for (var j = i; j < this.parentNode.childNodes.length; j++) {
- this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
- }
- this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
- if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
- }
- }
- webFXTreeHandler.all[this.id] = null;
- if (document.getElementById(this.id)) {
- document.getElementById(this.id).innerHTML = "";
- document.getElementById(this.id).removeNode();
- }
-}
-
-WebFXTreeItem.prototype.expand = function() {
- this.doExpand();
- document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
- document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
- return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
- if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
- else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
- else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (i == 0) { return this.parentNode; }
- else {
- if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
- else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
- if ((key == 39) && (this.folder)) {
- if (!this.open) { this.expand(); return false; }
- else { this.getFirst().select(); return false; }
- }
- else if (key == 37) {
- if (this.open) { this.collapse(); return false; }
- else { this.parentNode.select(); return false; }
- }
- else if (key == 40) {
- if (this.open) { this.getFirst().select(); return false; }
- else {
- var sib = this.getNextSibling();
- if (sib) { sib.select(); return false; }
- } }
- else if (key == 38) { this.getPreviousSibling().select(); return false; }
- return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
- var foo = this.parentNode;
- var indent = '';
- if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
- var i = 0;
- while (foo.parentNode) {
- foo = foo.parentNode;
- indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
- i++;
- }
- this._level = i;
- if (this.childNodes.length) { this.folder = 1; }
- else { this.open = false; }
- if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
- if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
- if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
- }
- else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
- var label = this.text;
- label = label.replace('<', '<');
- label = label.replace('>', '>');
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += indent;
- str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
- str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i,this.childNodes.length);
- }
- str += "</div>";
- this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
- this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
- return str;
+/*----------------------------------------\
+| Cross Browser Tree Widget 1.1 |
+|-----------------------------------------|
+| Created by Emil A. Eklund (eae@eae.net) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------|
+| This script is provided as is without |
+| any warranty whatsoever. It may be used |
+| free of charge for non commerical sites |
+| For commerical use contact the author |
+| of this script for further details. |
+|-----------------------------------------|
+| Created 2000-12-11 | Updated 2001-09-06 |
+\----------------------------------------*/
+
+var webFXTreeConfig = {
+ rootIcon : 'media/images/empty.png',
+ openRootIcon : 'media/images/empty.png',
+ folderIcon : 'media/images/empty.png',
+ openFolderIcon : 'media/images/empty.png',
+ fileIcon : 'media/images/empty.png',
+ iIcon : 'media/images/I.png',
+ lIcon : 'media/images/L.png',
+ lMinusIcon : 'media/images/Lminus.png',
+ lPlusIcon : 'media/images/Lplus.png',
+ tIcon : 'media/images/T.png',
+ tMinusIcon : 'media/images/Tminus.png',
+ tPlusIcon : 'media/images/Tplus.png',
+ blankIcon : 'media/images/blank.png',
+ defaultText : 'Tree Item',
+ defaultAction : 'javascript:void(0);',
+ defaultTarget : 'right',
+ defaultBehavior : 'classic'
+};
+
+var webFXTreeHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-tree-object-",
+ all : {},
+ behavior : null,
+ selected : null,
+ getId : function() { return this.idPrefix + this.idCounter++; },
+ toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+ select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+ focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+ blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+ keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
+ cookies : new WebFXCookie()
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+ if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+ document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+ if (this.cookies) {
+ var start = this.cookies.indexOf(' ' + key + '=');
+ if (start == -1) { return null; }
+ var end = this.cookies.indexOf(";", start);
+ if (end == -1) { end = this.cookies.length; }
+ end -= start;
+ var cookie = this.cookies.substr(start,end);
+ return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+ }
+ else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction, sTarget) {
+ this.childNodes = [];
+ this.id = webFXTreeHandler.getId();
+ this.text = sText || webFXTreeConfig.defaultText;
+ this.action = sAction || webFXTreeConfig.defaultAction;
+ this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
+ this._last = false;
+ webFXTreeHandler.all[this.id] = this;
+}
+
+WebFXTreeAbstractNode.prototype.add = function (node) {
+ node.parentNode = this;
+ this.childNodes[this.childNodes.length] = node;
+ var root = this;
+ if (this.childNodes.length >=2) {
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ while (root.parentNode) { root = root.parentNode; }
+ if (root.rendered) {
+ if (this.childNodes.length >= 2) {
+ document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
+ if (this.childNodes[this.childNodes.length -2].folder) {
+ this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
+ this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
+ }
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ this._last = true;
+ var foo = this;
+ while (foo.parentNode) {
+ for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+ if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+ }
+ if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
+ else { foo.parentNode._last = false; }
+ foo = foo.parentNode;
+ }
+ document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
+ if ((!this.folder) && (!this.openIcon)) {
+ this.icon = webFXTreeConfig.folderIcon;
+ this.openIcon = webFXTreeConfig.openFolderIcon;
+ }
+ this.folder = true;
+ this.indent();
+ this.expand();
+ }
+ return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+ if (this.folder) {
+ if (this.open) { this.collapse(); }
+ else { this.expand(); }
+ }
+}
+
+WebFXTreeAbstractNode.prototype.select = function() {
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+ webFXTreeHandler.selected = this;
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
+ document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
+ document.getElementById(this.id + '-anchor').style.color = 'menutext';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
+ this.open = true;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+}
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+ this.open = false;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+}
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+ this.expandChildren();
+ if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+ if ((this.folder) && (this.open)) { this.collapse(); }
+ this.collapseChildren();
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
+ /*
+ * Since we only want to modify items one level below ourself,
+ * and since the rightmost indentation position is occupied by
+ * the plus icon we set this to -2
+ */
+ if (lvl == null) { lvl = -2; }
+ var state = 0;
+ for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+ state = this.childNodes[i].indent(lvl + 1, del, last, level);
+ if (state) { return; }
+ }
+ if (del) {
+ if (level >= this._level) {
+ if (this.folder) {
+ document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+ this.plusIcon = webFXTreeConfig.lPlusIcon;
+ this.minusIcon = webFXTreeConfig.lMinusIcon;
+ }
+ else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+ return 1;
+ }
+ }
+ var foo = document.getElementById(this.id + '-indent-' + lvl);
+ if (foo) {
+ if ((del) && (last)) { foo._last = true; }
+ if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
+ else { foo.src = webFXTreeConfig.iIcon; }
+ }
+ return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ this.icon = sIcon || webFXTreeConfig.rootIcon;
+ this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
+ /* Defaults to open */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+ this.folder = true;
+ this.rendered = false;
+ if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+ this.targetWindow = 'right';
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+ webFXTreeHandler.behavior = sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+ return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+ if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+ else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+ this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+ return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+ return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+ if (key == 39) { this.expand(); return false; }
+ if (key == 37) { this.collapse(); return false; }
+ if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
+ return true;
+}
+
+WebFXTree.prototype.toString = function() {
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i, this.childNodes.length);
+ }
+ str += "</div>";
+ this.rendered = true;
+ return str;
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ /* Defaults to close */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+ if (eParent) { eParent.add(this); }
+ if (sIcon) { this.icon = sIcon; }
+ if (sOpenIcon) { this.openIcon = sOpenIcon; }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+ var parentNode = this.parentNode;
+ var prevSibling = this.getPreviousSibling(true);
+ var nextSibling = this.getNextSibling(true);
+ var folder = this.parentNode.folder;
+ var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+ this.getPreviousSibling().focus();
+ this._remove();
+ if (parentNode.childNodes.length == 0) {
+ parentNode.folder = false;
+ parentNode.open = false;
+ }
+ if (last) {
+ if (parentNode.id == prevSibling.id) {
+ document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
+ }
+ else { }
+ }
+ if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
+ parentNode.indent(null, true, last, this._level);
+ }
+ if (document.getElementById(prevSibling.id + '-plus')) {
+ if (nextSibling) {
+ if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
+ else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+ else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+}
+
+WebFXTreeItem.prototype._remove = function() {
+ for (var i = this.childNodes.length - 1; i >= 0; i--) {
+ this.childNodes[i]._remove();
+ }
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this.id == this.parentNode.childNodes[i].id) {
+ for (var j = i; j < this.parentNode.childNodes.length; j++) {
+ this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
+ }
+ this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
+ if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+ }
+ }
+ webFXTreeHandler.all[this.id] = null;
+ if (document.getElementById(this.id)) {
+ document.getElementById(this.id).innerHTML = "";
+ document.getElementById(this.id).removeNode();
+ }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+ this.doExpand();
+ document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+ document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+ return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+ if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+ else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+ else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (i == 0) { return this.parentNode; }
+ else {
+ if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+ else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+ if ((key == 39) && (this.folder)) {
+ if (!this.open) { this.expand(); return false; }
+ else { this.getFirst().select(); return false; }
+ }
+ else if (key == 37) {
+ if (this.open) { this.collapse(); return false; }
+ else { this.parentNode.select(); return false; }
+ }
+ else if (key == 40) {
+ if (this.open) { this.getFirst().select(); return false; }
+ else {
+ var sib = this.getNextSibling();
+ if (sib) { sib.select(); return false; }
+ } }
+ else if (key == 38) { this.getPreviousSibling().select(); return false; }
+ return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+ var foo = this.parentNode;
+ var indent = '';
+ if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+ var i = 0;
+ while (foo.parentNode) {
+ foo = foo.parentNode;
+ indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+ i++;
+ }
+ this._level = i;
+ if (this.childNodes.length) { this.folder = 1; }
+ else { this.open = false; }
+ if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+ if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+ if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+ }
+ else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+ var label = this.text;
+ label = label.replace('<', '<');
+ label = label.replace('>', '>');
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += indent;
+ str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
+ str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i,this.childNodes.length);
+ }
+ str += "</div>";
+ this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+ this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+ return str;
} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/stylesheet.css b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/stylesheet.css
index a3c177a86d..97514c39f2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/stylesheet.css
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/media/stylesheet.css
@@ -507,8 +507,8 @@ dd {
padding-left: 0em
}
-/*------------------------------------------------------------------------------
- webfx-tree
+/*------------------------------------------------------------------------------
+ webfx-tree
------------------------------------------------------------------------------*/
.webfx-tree-container {
margin: 0px;
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/method.tpl
index df271c8d82..06d57a1202 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/method.tpl
@@ -1,149 +1,149 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/ric.tpl
index 9d0ef3e114..ad792475fd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<div align="center"><h1>{$name}</h1></div>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<div align="center"><h1>{$name}</h1></div>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_tree.tpl
index 5ada4ec15d..40d9a4ffbd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/tutorial_tree.tpl
@@ -1,8 +1,8 @@
- var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
-
-{if $haskids}
- var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
- parent_node = a{$name|replace:"-":"_"}node;
- {$kids}
- parent_node = a{$name|replace:"-":"_"}_old_parent_node;
-{/if}
+ var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
+
+{if $haskids}
+ var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
+ parent_node = a{$name|replace:"-":"_"}node;
+ {$kids}
+ parent_node = a{$name|replace:"-":"_"}_old_parent_node;
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/var.tpl
index 93f2973757..1b3ca2ff00 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/default/templates/var.tpl
@@ -1,90 +1,90 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/basicindex.tpl
index 78eb5787aa..fc00a96cb4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/basicindex.tpl
@@ -1,57 +1,57 @@
-<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")}
- <img src="{$subdir}media/images/{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="var-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Global")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="var-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Method")}
- <img src="{$subdir}media/images/{if $index[index].index[contents].constructor}Constructor{elseif $index[index].index[contents].destructor}Destructor{else}{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}{/if}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="method-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Function")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="method-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Constant")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="const-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Page") || ($index[index].index[contents].title == "Include")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="include-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Class")}
- <img src="{$subdir}media/images/{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- {$index[index].index[contents].name}
- {else}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- {$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>
+<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")}
+ <img src="{$subdir}media/images/{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="var-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Global")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="var-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Method")}
+ <img src="{$subdir}media/images/{if $index[index].index[contents].constructor}Constructor{elseif $index[index].index[contents].destructor}Destructor{else}{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}{/if}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="method-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Function")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="method-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Constant")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="const-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Page") || ($index[index].index[contents].title == "Include")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="include-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Class")}
+ <img src="{$subdir}media/images/{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ {$index[index].index[contents].name}
+ {else}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ {$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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/class.tpl
index ee265b915c..1999d25dda 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/class.tpl
@@ -1,444 +1,444 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name"><img src="{$subdir}media/images/{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if}Class_logo.png"
- alt="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
- title="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
- style="vertical-align: middle">{if $is_interface}Interface{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts}
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em; white-space: nowrap">
- <img src="{$subdir}media/images/{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if}Class.png"
- alt="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
- title="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
- style="vertical-align: center"/>
- {$children[kids].link}
- </td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- <img src="{$subdir}media/images/StaticVariable.png" alt=" " />
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" alt=" " />
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- <img src="{$subdir}media/images/StaticMethod.png" alt=" "/>
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{elseif $methods[methods].access == 'private'}{if $methods[methods].abstract}Abstract{/if}PrivateMethod{else}{if $methods[methods].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <img src="{$subdir}media/images/{if $ivars[ivars].ivars[ivars2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <img src="{$subdir}media/images/{if $imethods[imethods].imethods[im2].constructor}Constructor{elseif $imethods[imethods].imethods[im2].destructor}Destructor{elseif $imethods[imethods].imethods[im2].access == 'private'}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}PrivateMethod{else}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name"><img src="{$subdir}media/images/{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if}Class_logo.png"
+ alt="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
+ title="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
+ style="vertical-align: middle">{if $is_interface}Interface{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em; white-space: nowrap">
+ <img src="{$subdir}media/images/{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if}Class.png"
+ alt="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
+ title="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
+ style="vertical-align: center"/>
+ {$children[kids].link}
+ </td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ <img src="{$subdir}media/images/StaticVariable.png" alt=" " />
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" alt=" " />
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ <img src="{$subdir}media/images/StaticMethod.png" alt=" "/>
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{elseif $methods[methods].access == 'private'}{if $methods[methods].abstract}Abstract{/if}PrivateMethod{else}{if $methods[methods].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <img src="{$subdir}media/images/{if $ivars[ivars].ivars[ivars2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <img src="{$subdir}media/images/{if $imethods[imethods].imethods[im2].constructor}Constructor{elseif $imethods[imethods].imethods[im2].destructor}Destructor{elseif $imethods[imethods].imethods[im2].access == 'private'}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}PrivateMethod{else}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/define.tpl
index bf9134c041..94078960a8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/define.tpl
@@ -1,25 +1,25 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Constant.png" />
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Constant.png" />
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/function.tpl
index 4b66b63fd4..e62a98ae47 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Function.png" />
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Function.png" />
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/global.tpl
index fea80726bf..d37bda37e9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/global.tpl
@@ -1,27 +1,27 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Global.png" />
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Global.png" />
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/header.tpl
index 902871c310..0d62619064 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/header.tpl
@@ -1,95 +1,95 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- {if $top2 || $top3}
- <script src="{$subdir}media/lib/classTree.js"></script>
- {/if}
- {if $top2}
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- {/if}
- {if $top3 || $top2}
- <script language="javascript" type="text/javascript">
- var imgPlus = new Image();
- var imgMinus = new Image();
- imgPlus.src = "{$subdir}media/images/plus.png";
- imgMinus.src = "{$subdir}media/images/minus.png";
-
- function showNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgMinus.src;
- oTable.style.display = "block";
- {rdelim}
-
- function hideNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgPlus.src;
- oTable.style.display = "none";
- {rdelim}
-
- function nodeIsVisible(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- break;
- {rdelim}
- return (oTable && oTable.style.display == "block");
- {rdelim}
-
- function toggleNodeVisibility(Node){ldelim}
- if (nodeIsVisible(Node)){ldelim}
- hideNode(Node);
- {rdelim}else{ldelim}
- showNode(Node);
- {rdelim}
- {rdelim}
- </script>
- {/if}
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ {if $top2 || $top3}
+ <script src="{$subdir}media/lib/classTree.js"></script>
+ {/if}
+ {if $top2}
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ {/if}
+ {if $top3 || $top2}
+ <script language="javascript" type="text/javascript">
+ var imgPlus = new Image();
+ var imgMinus = new Image();
+ imgPlus.src = "{$subdir}media/images/plus.png";
+ imgMinus.src = "{$subdir}media/images/minus.png";
+
+ function showNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgMinus.src;
+ oTable.style.display = "block";
+ {rdelim}
+
+ function hideNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgPlus.src;
+ oTable.style.display = "none";
+ {rdelim}
+
+ function nodeIsVisible(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ break;
+ {rdelim}
+ return (oTable && oTable.style.display == "block");
+ {rdelim}
+
+ function toggleNodeVisibility(Node){ldelim}
+ if (nodeIsVisible(Node)){ldelim}
+ hideNode(Node);
+ {rdelim}else{ldelim}
+ showNode(Node);
+ {rdelim}
+ {rdelim}
+ </script>
+ {/if}
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/include.tpl
index 3ef8ca9f7c..f264afd390 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/include.tpl
@@ -1,17 +1,17 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Page.png" alt=" " />
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Page.png" alt=" " />
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/left_frame.tpl
index ba7b07994e..a38cb29f44 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/left_frame.tpl
@@ -1,250 +1,250 @@
-{include file="header.tpl" top2=true}
-<h3 class="package-title">{$info.0.package}</h3>
-<div class="tree">
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=p loop=$info}
- {if $info[p].subpackage == ""}
- var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
- tree.setBehavior('classic');
- tree.openIcon = 'media/images/package.png';
- tree.icon = 'media/images/package.png';
-
- {if $hastodos}
- var todos = new WebFXTreeItem('To-do List', '{$todolink}');
- todos.openIcon = 'media/images/Index.png';
- todos.icon = 'media/images/Index.png';
- tree.add(todos);
- {/if}
-
- var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
- class_trees.openIcon = 'media/images/Index.png';
- class_trees.icon = 'media/images/Index.png';
- tree.add(class_trees);
-
- var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
- elements.openIcon = 'media/images/Index.png';
- elements.icon = 'media/images/Index.png';
- tree.add(elements);
-
- var parent_node;
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree_tutorial.openIcon = 'media/images/tutorial_folder.png';
- tree_tutorial.icon = 'media/images/tutorial_folder.png';
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_inner_tutorial.openIcon = 'media/images/package_folder.png';
- tree_inner_tutorial.icon = 'media/images/package_folder.png';
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_inner_tutorial.openIcon = 'media/images/class_folder.png';
- tree_inner_tutorial.icon = 'media/images/class_folder.png';
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_inner_tutorial.openIcon = 'media/images/function_folder.png';
- tree_inner_tutorial.icon = 'media/images/function_folder.png';
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].hasinterfaces}
- var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc|escape:"quotes"}');
- tree_classe.openIcon = 'media/images/class_folder.png';
- tree_classe.icon = 'media/images/class_folder.png';
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- classe.openIcon = 'media/images/Interface.png';
- classe.icon = 'media/images/Interface.png';
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
-
- {if $info[p].hasclasses}
- var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
- tree_classe.openIcon = 'media/images/class_folder.png';
- tree_classe.icon = 'media/images/class_folder.png';
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- classe.openIcon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
- classe.icon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
-
- {if $info[p].functions}
- var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
- tree_function.openIcon = 'media/images/function_folder.png';
- tree_function.icon = 'media/images/function_folder.png';
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- fic.openIcon = 'media/images/Function.png';
- fic.icon = 'media/images/Function.png';
- tree_function.add(fic);
- {/section}
-
- tree.add(tree_function);
- {/if}
-
- {if $info[p].files}
- var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
- tree_file.openIcon = 'media/images/folder.png';
- tree_file.icon = 'media/images/folder.png';
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- file.openIcon = 'media/images/Page.png';
- file.icon = 'media/images/Page.png';
- tree_file.add(file);
- {/section}
-
- tree.add(tree_file);
- {/if}
-
- {else}
- {if $info[p].subpackagetutorial}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa}');
- {else}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc|escape:"quotes"}');
- {/if}
-
- subpackagetree.openIcon = 'media/images/package.png';
- subpackagetree.icon = 'media/images/package.png';
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree_tutorial.openIcon = 'media/images/tutorial_folder.png';
- tree_tutorial.icon = 'media/images/tutorial_folder.png';
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_inner_tutorial.openIcon = 'media/images/package_folder.png';
- tree_inner_tutorial.icon = 'media/images/package_folder.png';
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_inner_tutorial.openIcon = 'media/images/class_folder.png';
- tree_inner_tutorial.icon = 'media/images/class_folder.png';
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_inner_tutorial.openIcon = 'media/images/function_folder.png';
- tree_inner_tutorial.icon = 'media/images/function_folder.png';
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].classes}
- var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
- subpackagetree_classe.openIcon = 'media/images/class_folder.png';
- subpackagetree_classe.icon = 'media/images/class_folder.png';
-
- {section name=class loop=$info[p].classes}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- classe.openIcon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
- classe.icon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
- subpackagetree_classe.add(classe);
- {/section}
-
- subpackagetree.add(subpackagetree_classe);
- {/if}
-
- {if $info[p].functions}
- var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
- subpackagetree_function.openIcon = 'media/images/function_folder.png';
- subpackagetree_function.icon = 'media/images/function_folder.png';
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- fic.openIcon = 'media/images/Function.png';
- fic.icon = 'media/images/Function.png';
- subpackagetree_function.add(fic);
- {/section}
-
- subpackagetree.add(subpackagetree_function);
- {/if}
-
- {if $info[p].files}
- var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
- subpackagetree_file.openIcon = 'media/images/folder.png';
- subpackagetree_file.icon = 'media/images/folder.png';
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- file.openIcon = 'media/images/Page.png';
- file.icon = 'media/images/Page.png';
- subpackagetree_file.add(file);
- {/section}
-
- subpackagetree.add(subpackagetree_file);
- {/if}
-
- tree.add(subpackagetree);
- {/if}
-{/section}
-
-document.write(tree);
-{rdelim}
-</script>
-</div>
-<p class="notes">
- Generated by
- <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
-</p>
-</body>
-</html>
+{include file="header.tpl" top2=true}
+<h3 class="package-title">{$info.0.package}</h3>
+<div class="tree">
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=p loop=$info}
+ {if $info[p].subpackage == ""}
+ var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
+ tree.setBehavior('classic');
+ tree.openIcon = 'media/images/package.png';
+ tree.icon = 'media/images/package.png';
+
+ {if $hastodos}
+ var todos = new WebFXTreeItem('To-do List', '{$todolink}');
+ todos.openIcon = 'media/images/Index.png';
+ todos.icon = 'media/images/Index.png';
+ tree.add(todos);
+ {/if}
+
+ var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
+ class_trees.openIcon = 'media/images/Index.png';
+ class_trees.icon = 'media/images/Index.png';
+ tree.add(class_trees);
+
+ var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
+ elements.openIcon = 'media/images/Index.png';
+ elements.icon = 'media/images/Index.png';
+ tree.add(elements);
+
+ var parent_node;
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree_tutorial.openIcon = 'media/images/tutorial_folder.png';
+ tree_tutorial.icon = 'media/images/tutorial_folder.png';
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_inner_tutorial.openIcon = 'media/images/package_folder.png';
+ tree_inner_tutorial.icon = 'media/images/package_folder.png';
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_inner_tutorial.openIcon = 'media/images/class_folder.png';
+ tree_inner_tutorial.icon = 'media/images/class_folder.png';
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_inner_tutorial.openIcon = 'media/images/function_folder.png';
+ tree_inner_tutorial.icon = 'media/images/function_folder.png';
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].hasinterfaces}
+ var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc|escape:"quotes"}');
+ tree_classe.openIcon = 'media/images/class_folder.png';
+ tree_classe.icon = 'media/images/class_folder.png';
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ classe.openIcon = 'media/images/Interface.png';
+ classe.icon = 'media/images/Interface.png';
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+
+ {if $info[p].hasclasses}
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
+ tree_classe.openIcon = 'media/images/class_folder.png';
+ tree_classe.icon = 'media/images/class_folder.png';
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ classe.openIcon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
+ classe.icon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+
+ {if $info[p].functions}
+ var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
+ tree_function.openIcon = 'media/images/function_folder.png';
+ tree_function.icon = 'media/images/function_folder.png';
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ fic.openIcon = 'media/images/Function.png';
+ fic.icon = 'media/images/Function.png';
+ tree_function.add(fic);
+ {/section}
+
+ tree.add(tree_function);
+ {/if}
+
+ {if $info[p].files}
+ var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+ tree_file.openIcon = 'media/images/folder.png';
+ tree_file.icon = 'media/images/folder.png';
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ file.openIcon = 'media/images/Page.png';
+ file.icon = 'media/images/Page.png';
+ tree_file.add(file);
+ {/section}
+
+ tree.add(tree_file);
+ {/if}
+
+ {else}
+ {if $info[p].subpackagetutorial}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa}');
+ {else}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc|escape:"quotes"}');
+ {/if}
+
+ subpackagetree.openIcon = 'media/images/package.png';
+ subpackagetree.icon = 'media/images/package.png';
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree_tutorial.openIcon = 'media/images/tutorial_folder.png';
+ tree_tutorial.icon = 'media/images/tutorial_folder.png';
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_inner_tutorial.openIcon = 'media/images/package_folder.png';
+ tree_inner_tutorial.icon = 'media/images/package_folder.png';
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_inner_tutorial.openIcon = 'media/images/class_folder.png';
+ tree_inner_tutorial.icon = 'media/images/class_folder.png';
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_inner_tutorial.openIcon = 'media/images/function_folder.png';
+ tree_inner_tutorial.icon = 'media/images/function_folder.png';
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].classes}
+ var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
+ subpackagetree_classe.openIcon = 'media/images/class_folder.png';
+ subpackagetree_classe.icon = 'media/images/class_folder.png';
+
+ {section name=class loop=$info[p].classes}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ classe.openIcon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
+ classe.icon = 'media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png';
+ subpackagetree_classe.add(classe);
+ {/section}
+
+ subpackagetree.add(subpackagetree_classe);
+ {/if}
+
+ {if $info[p].functions}
+ var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
+ subpackagetree_function.openIcon = 'media/images/function_folder.png';
+ subpackagetree_function.icon = 'media/images/function_folder.png';
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ fic.openIcon = 'media/images/Function.png';
+ fic.icon = 'media/images/Function.png';
+ subpackagetree_function.add(fic);
+ {/section}
+
+ subpackagetree.add(subpackagetree_function);
+ {/if}
+
+ {if $info[p].files}
+ var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+ subpackagetree_file.openIcon = 'media/images/folder.png';
+ subpackagetree_file.icon = 'media/images/folder.png';
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ file.openIcon = 'media/images/Page.png';
+ file.icon = 'media/images/Page.png';
+ subpackagetree_file.add(file);
+ {/section}
+
+ subpackagetree.add(subpackagetree_file);
+ {/if}
+
+ tree.add(subpackagetree);
+ {/if}
+{/section}
+
+document.write(tree);
+{rdelim}
+</script>
+</div>
+<p class="notes">
+ Generated by
+ <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
+</p>
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/lib/classTree.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/lib/classTree.js
index 5989426f08..ebb3fb4a77 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/lib/classTree.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/lib/classTree.js
@@ -1,454 +1,454 @@
-/*----------------------------------------\
-| Cross Browser Tree Widget 1.1 |
-|-----------------------------------------|
-| Created by Emil A. Eklund (eae@eae.net) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------|
-| This script is provided as is without |
-| any warranty whatsoever. It may be used |
-| free of charge for non commerical sites |
-| For commerical use contact the author |
-| of this script for further details. |
-|-----------------------------------------|
-| Created 2000-12-11 | Updated 2001-09-06 |
-\----------------------------------------*/
-
-var webFXTreeConfig = {
- rootIcon : 'media/images/empty.png',
- openRootIcon : 'media/images/empty.png',
- folderIcon : 'media/images/empty.png',
- openFolderIcon : 'media/images/empty.png',
- fileIcon : 'media/images/empty.png',
- iIcon : 'media/images/I.png',
- lIcon : 'media/images/L.png',
- lMinusIcon : 'media/images/Lminus.png',
- lPlusIcon : 'media/images/Lplus.png',
- tIcon : 'media/images/T.png',
- tMinusIcon : 'media/images/Tminus.png',
- tPlusIcon : 'media/images/Tplus.png',
- blankIcon : 'media/images/blank.png',
- defaultText : 'Tree Item',
- defaultAction : 'javascript:void(0);',
- defaultTarget : 'right',
- defaultBehavior : 'classic'
-};
-
-var webFXTreeHandler = {
- idCounter : 0,
- idPrefix : "webfx-tree-object-",
- all : {},
- behavior : null,
- selected : null,
- getId : function() { return this.idPrefix + this.idCounter++; },
- toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
- select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
- focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
- blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
- keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
- cookies : new WebFXCookie()
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
- if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
- document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
- if (this.cookies) {
- var start = this.cookies.indexOf(' ' + key + '=');
- if (start == -1) { return null; }
- var end = this.cookies.indexOf(";", start);
- if (end == -1) { end = this.cookies.length; }
- end -= start;
- var cookie = this.cookies.substr(start,end);
- return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
- }
- else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction, sTarget) {
- this.childNodes = [];
- this.id = webFXTreeHandler.getId();
- this.text = sText || webFXTreeConfig.defaultText;
- this.action = sAction || webFXTreeConfig.defaultAction;
- this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
- this._last = false;
- webFXTreeHandler.all[this.id] = this;
-}
-
-WebFXTreeAbstractNode.prototype.add = function (node) {
- node.parentNode = this;
- this.childNodes[this.childNodes.length] = node;
- var root = this;
- if (this.childNodes.length >=2) {
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- while (root.parentNode) { root = root.parentNode; }
- if (root.rendered) {
- if (this.childNodes.length >= 2) {
- document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
- if (this.childNodes[this.childNodes.length -2].folder) {
- this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
- this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
- }
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- this._last = true;
- var foo = this;
- while (foo.parentNode) {
- for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
- if (foo.id == foo.parentNode.childNodes[i].id) { break; }
- }
- if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
- else { foo.parentNode._last = false; }
- foo = foo.parentNode;
- }
- document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
- if ((!this.folder) && (!this.openIcon)) {
- this.icon = webFXTreeConfig.folderIcon;
- this.openIcon = webFXTreeConfig.openFolderIcon;
- }
- this.folder = true;
- this.indent();
- this.expand();
- }
- return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
- if (this.folder) {
- if (this.open) { this.collapse(); }
- else { this.expand(); }
- }
-}
-
-WebFXTreeAbstractNode.prototype.select = function() {
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
- webFXTreeHandler.selected = this;
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
- document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
- document.getElementById(this.id + '-anchor').style.color = 'menutext';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
- this.open = true;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-}
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
- this.open = false;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-}
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
- this.expandChildren();
- if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
- if ((this.folder) && (this.open)) { this.collapse(); }
- this.collapseChildren();
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
- /*
- * Since we only want to modify items one level below ourself,
- * and since the rightmost indentation position is occupied by
- * the plus icon we set this to -2
- */
- if (lvl == null) { lvl = -2; }
- var state = 0;
- for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
- state = this.childNodes[i].indent(lvl + 1, del, last, level);
- if (state) { return; }
- }
- if (del) {
- if (level >= this._level) {
- if (this.folder) {
- document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
- this.plusIcon = webFXTreeConfig.lPlusIcon;
- this.minusIcon = webFXTreeConfig.lMinusIcon;
- }
- else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
- return 1;
- }
- }
- var foo = document.getElementById(this.id + '-indent-' + lvl);
- if (foo) {
- if ((del) && (last)) { foo._last = true; }
- if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
- else { foo.src = webFXTreeConfig.iIcon; }
- }
- return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- this.icon = sIcon || webFXTreeConfig.rootIcon;
- this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
- /* Defaults to open */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
- this.folder = true;
- this.rendered = false;
- if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
- this.targetWindow = 'right';
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
- webFXTreeHandler.behavior = sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
- return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
- if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
- else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
- this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
- return null;
-}
-
-WebFXTree.prototype.getLast = function() {
- return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
- if (key == 39) { this.expand(); return false; }
- if (key == 37) { this.collapse(); return false; }
- if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
- return true;
-}
-
-WebFXTree.prototype.toString = function() {
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i, this.childNodes.length);
- }
- str += "</div>";
- this.rendered = true;
- return str;
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- /* Defaults to close */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
- if (eParent) { eParent.add(this); }
- if (sIcon) { this.icon = sIcon; }
- if (sOpenIcon) { this.openIcon = sOpenIcon; }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
- var parentNode = this.parentNode;
- var prevSibling = this.getPreviousSibling(true);
- var nextSibling = this.getNextSibling(true);
- var folder = this.parentNode.folder;
- var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
- this.getPreviousSibling().focus();
- this._remove();
- if (parentNode.childNodes.length == 0) {
- parentNode.folder = false;
- parentNode.open = false;
- }
- if (last) {
- if (parentNode.id == prevSibling.id) {
- document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
- }
- else { }
- }
- if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
- parentNode.indent(null, true, last, this._level);
- }
- if (document.getElementById(prevSibling.id + '-plus')) {
- if (nextSibling) {
- if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
- else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
- else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
-}
-
-WebFXTreeItem.prototype._remove = function() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
- this.childNodes[i]._remove();
- }
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this.id == this.parentNode.childNodes[i].id) {
- for (var j = i; j < this.parentNode.childNodes.length; j++) {
- this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
- }
- this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
- if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
- }
- }
- webFXTreeHandler.all[this.id] = null;
- if (document.getElementById(this.id)) {
- document.getElementById(this.id).innerHTML = "";
- document.getElementById(this.id).removeNode();
- }
-}
-
-WebFXTreeItem.prototype.expand = function() {
- this.doExpand();
- document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
- document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
- return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
- if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
- else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
- else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (i == 0) { return this.parentNode; }
- else {
- if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
- else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
- if ((key == 39) && (this.folder)) {
- if (!this.open) { this.expand(); return false; }
- else { this.getFirst().select(); return false; }
- }
- else if (key == 37) {
- if (this.open) { this.collapse(); return false; }
- else { this.parentNode.select(); return false; }
- }
- else if (key == 40) {
- if (this.open) { this.getFirst().select(); return false; }
- else {
- var sib = this.getNextSibling();
- if (sib) { sib.select(); return false; }
- } }
- else if (key == 38) { this.getPreviousSibling().select(); return false; }
- return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
- var foo = this.parentNode;
- var indent = '';
- if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
- var i = 0;
- while (foo.parentNode) {
- foo = foo.parentNode;
- indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
- i++;
- }
- this._level = i;
- if (this.childNodes.length) { this.folder = 1; }
- else { this.open = false; }
- if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
- if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
- if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
- }
- else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
- var label = this.text;
- label = label.replace('<', '<');
- label = label.replace('>', '>');
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += indent;
- str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
- str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i,this.childNodes.length);
- }
- str += "</div>";
- this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
- this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
- return str;
+/*----------------------------------------\
+| Cross Browser Tree Widget 1.1 |
+|-----------------------------------------|
+| Created by Emil A. Eklund (eae@eae.net) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------|
+| This script is provided as is without |
+| any warranty whatsoever. It may be used |
+| free of charge for non commerical sites |
+| For commerical use contact the author |
+| of this script for further details. |
+|-----------------------------------------|
+| Created 2000-12-11 | Updated 2001-09-06 |
+\----------------------------------------*/
+
+var webFXTreeConfig = {
+ rootIcon : 'media/images/empty.png',
+ openRootIcon : 'media/images/empty.png',
+ folderIcon : 'media/images/empty.png',
+ openFolderIcon : 'media/images/empty.png',
+ fileIcon : 'media/images/empty.png',
+ iIcon : 'media/images/I.png',
+ lIcon : 'media/images/L.png',
+ lMinusIcon : 'media/images/Lminus.png',
+ lPlusIcon : 'media/images/Lplus.png',
+ tIcon : 'media/images/T.png',
+ tMinusIcon : 'media/images/Tminus.png',
+ tPlusIcon : 'media/images/Tplus.png',
+ blankIcon : 'media/images/blank.png',
+ defaultText : 'Tree Item',
+ defaultAction : 'javascript:void(0);',
+ defaultTarget : 'right',
+ defaultBehavior : 'classic'
+};
+
+var webFXTreeHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-tree-object-",
+ all : {},
+ behavior : null,
+ selected : null,
+ getId : function() { return this.idPrefix + this.idCounter++; },
+ toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+ select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+ focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+ blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+ keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
+ cookies : new WebFXCookie()
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+ if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+ document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+ if (this.cookies) {
+ var start = this.cookies.indexOf(' ' + key + '=');
+ if (start == -1) { return null; }
+ var end = this.cookies.indexOf(";", start);
+ if (end == -1) { end = this.cookies.length; }
+ end -= start;
+ var cookie = this.cookies.substr(start,end);
+ return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+ }
+ else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction, sTarget) {
+ this.childNodes = [];
+ this.id = webFXTreeHandler.getId();
+ this.text = sText || webFXTreeConfig.defaultText;
+ this.action = sAction || webFXTreeConfig.defaultAction;
+ this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
+ this._last = false;
+ webFXTreeHandler.all[this.id] = this;
+}
+
+WebFXTreeAbstractNode.prototype.add = function (node) {
+ node.parentNode = this;
+ this.childNodes[this.childNodes.length] = node;
+ var root = this;
+ if (this.childNodes.length >=2) {
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ while (root.parentNode) { root = root.parentNode; }
+ if (root.rendered) {
+ if (this.childNodes.length >= 2) {
+ document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
+ if (this.childNodes[this.childNodes.length -2].folder) {
+ this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
+ this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
+ }
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ this._last = true;
+ var foo = this;
+ while (foo.parentNode) {
+ for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+ if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+ }
+ if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
+ else { foo.parentNode._last = false; }
+ foo = foo.parentNode;
+ }
+ document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
+ if ((!this.folder) && (!this.openIcon)) {
+ this.icon = webFXTreeConfig.folderIcon;
+ this.openIcon = webFXTreeConfig.openFolderIcon;
+ }
+ this.folder = true;
+ this.indent();
+ this.expand();
+ }
+ return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+ if (this.folder) {
+ if (this.open) { this.collapse(); }
+ else { this.expand(); }
+ }
+}
+
+WebFXTreeAbstractNode.prototype.select = function() {
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+ webFXTreeHandler.selected = this;
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
+ document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
+ document.getElementById(this.id + '-anchor').style.color = 'menutext';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
+ this.open = true;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+}
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+ this.open = false;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+}
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+ this.expandChildren();
+ if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+ if ((this.folder) && (this.open)) { this.collapse(); }
+ this.collapseChildren();
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
+ /*
+ * Since we only want to modify items one level below ourself,
+ * and since the rightmost indentation position is occupied by
+ * the plus icon we set this to -2
+ */
+ if (lvl == null) { lvl = -2; }
+ var state = 0;
+ for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+ state = this.childNodes[i].indent(lvl + 1, del, last, level);
+ if (state) { return; }
+ }
+ if (del) {
+ if (level >= this._level) {
+ if (this.folder) {
+ document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+ this.plusIcon = webFXTreeConfig.lPlusIcon;
+ this.minusIcon = webFXTreeConfig.lMinusIcon;
+ }
+ else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+ return 1;
+ }
+ }
+ var foo = document.getElementById(this.id + '-indent-' + lvl);
+ if (foo) {
+ if ((del) && (last)) { foo._last = true; }
+ if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
+ else { foo.src = webFXTreeConfig.iIcon; }
+ }
+ return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ this.icon = sIcon || webFXTreeConfig.rootIcon;
+ this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
+ /* Defaults to open */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+ this.folder = true;
+ this.rendered = false;
+ if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+ this.targetWindow = 'right';
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+ webFXTreeHandler.behavior = sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+ return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+ if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+ else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+ this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+ return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+ return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+ if (key == 39) { this.expand(); return false; }
+ if (key == 37) { this.collapse(); return false; }
+ if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
+ return true;
+}
+
+WebFXTree.prototype.toString = function() {
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i, this.childNodes.length);
+ }
+ str += "</div>";
+ this.rendered = true;
+ return str;
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ /* Defaults to close */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+ if (eParent) { eParent.add(this); }
+ if (sIcon) { this.icon = sIcon; }
+ if (sOpenIcon) { this.openIcon = sOpenIcon; }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+ var parentNode = this.parentNode;
+ var prevSibling = this.getPreviousSibling(true);
+ var nextSibling = this.getNextSibling(true);
+ var folder = this.parentNode.folder;
+ var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+ this.getPreviousSibling().focus();
+ this._remove();
+ if (parentNode.childNodes.length == 0) {
+ parentNode.folder = false;
+ parentNode.open = false;
+ }
+ if (last) {
+ if (parentNode.id == prevSibling.id) {
+ document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
+ }
+ else { }
+ }
+ if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
+ parentNode.indent(null, true, last, this._level);
+ }
+ if (document.getElementById(prevSibling.id + '-plus')) {
+ if (nextSibling) {
+ if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
+ else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+ else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+}
+
+WebFXTreeItem.prototype._remove = function() {
+ for (var i = this.childNodes.length - 1; i >= 0; i--) {
+ this.childNodes[i]._remove();
+ }
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this.id == this.parentNode.childNodes[i].id) {
+ for (var j = i; j < this.parentNode.childNodes.length; j++) {
+ this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
+ }
+ this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
+ if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+ }
+ }
+ webFXTreeHandler.all[this.id] = null;
+ if (document.getElementById(this.id)) {
+ document.getElementById(this.id).innerHTML = "";
+ document.getElementById(this.id).removeNode();
+ }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+ this.doExpand();
+ document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+ document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+ return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+ if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+ else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+ else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (i == 0) { return this.parentNode; }
+ else {
+ if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+ else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+ if ((key == 39) && (this.folder)) {
+ if (!this.open) { this.expand(); return false; }
+ else { this.getFirst().select(); return false; }
+ }
+ else if (key == 37) {
+ if (this.open) { this.collapse(); return false; }
+ else { this.parentNode.select(); return false; }
+ }
+ else if (key == 40) {
+ if (this.open) { this.getFirst().select(); return false; }
+ else {
+ var sib = this.getNextSibling();
+ if (sib) { sib.select(); return false; }
+ } }
+ else if (key == 38) { this.getPreviousSibling().select(); return false; }
+ return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+ var foo = this.parentNode;
+ var indent = '';
+ if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+ var i = 0;
+ while (foo.parentNode) {
+ foo = foo.parentNode;
+ indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+ i++;
+ }
+ this._level = i;
+ if (this.childNodes.length) { this.folder = 1; }
+ else { this.open = false; }
+ if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+ if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+ if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+ }
+ else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+ var label = this.text;
+ label = label.replace('<', '<');
+ label = label.replace('>', '>');
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += indent;
+ str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
+ str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i,this.childNodes.length);
+ }
+ str += "</div>";
+ this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+ this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+ return str;
} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/stylesheet.css b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/stylesheet.css
index e4405133ba..53924f73f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/stylesheet.css
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/media/stylesheet.css
@@ -499,8 +499,8 @@ a img {
padding-left: 0em
}
-/*------------------------------------------------------------------------------
- webfx-tree
+/*------------------------------------------------------------------------------
+ webfx-tree
------------------------------------------------------------------------------*/
.webfx-tree-container {
margin: 0px;
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/method.tpl
index 57a757f151..547e261dd6 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/method.tpl
@@ -1,151 +1,151 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <img src="{$subdir}media/images/StaticMethod.png" />
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{else}{if $methods[methods].abstract}Abstract{/if}{if $methods[methods].access == 'private'}Private{/if}Method{/if}.png" />
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <img src="{$subdir}media/images/StaticMethod.png" />
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{else}{if $methods[methods].abstract}Abstract{/if}{if $methods[methods].access == 'private'}Private{/if}Method{/if}.png" />
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/page.tpl
index 8e10bf9dbd..2cffc22dbc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/page.tpl
@@ -1,214 +1,214 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name"><img src="{$subdir}media/images/Page_logo.png" alt="File" style="vertical-align: middle">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
- <img src="{$subdir}media/images/{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if}Class.png"
- alt="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"
- title="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"/>
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name"><img src="{$subdir}media/images/Page_logo.png" alt="File" style="vertical-align: middle">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
+ <img src="{$subdir}media/images/{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if}Class.png"
+ alt="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"
+ title="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"/>
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/ric.tpl
index 9d0ef3e114..ad792475fd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<div align="center"><h1>{$name}</h1></div>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<div align="center"><h1>{$name}</h1></div>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_nav.tpl
index 17eea714ed..3cd7893d34 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}"><img src="{$subdir}media/images/previous_button.png" alt="Previous"></a>
- {else}
- <span class="disabled"><img src="{$subdir}media/images/previous_button_disabled.png" alt="Previous"></span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}"><img src="{$subdir}media/images/up_button.png" alt="Up"></a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}"><img src="{$subdir}media/images/next_button.png" alt="Next"></a>
- {else}
- <span class="disabled"><img src="{$subdir}media/images/next_button_disabled.png" alt="Next"></span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}"><img src="{$subdir}media/images/previous_button.png" alt="Previous"></a>
+ {else}
+ <span class="disabled"><img src="{$subdir}media/images/previous_button_disabled.png" alt="Previous"></span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}"><img src="{$subdir}media/images/up_button.png" alt="Up"></a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}"><img src="{$subdir}media/images/next_button.png" alt="Next"></a>
+ {else}
+ <span class="disabled"><img src="{$subdir}media/images/next_button_disabled.png" alt="Next"></span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_tree.tpl
index 60a7112b3e..8b10e9db39 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/tutorial_tree.tpl
@@ -1,9 +1,9 @@
- var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node,
- 'media/images/tutorial.png', 'media/images/tutorial.png');
-
-{if $haskids}
- var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
- parent_node = a{$name|replace:"-":"_"}node;
- {$kids}
- parent_node = a{$name|replace:"-":"_"}_old_parent_node;
-{/if}
+ var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node,
+ 'media/images/tutorial.png', 'media/images/tutorial.png');
+
+{if $haskids}
+ var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
+ parent_node = a{$name|replace:"-":"_"}node;
+ {$kids}
+ parent_node = a{$name|replace:"-":"_"}_old_parent_node;
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/var.tpl
index 2e99625b21..a82d1bfa6d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/earthli/templates/var.tpl
@@ -1,94 +1,94 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <img src="{$subdir}media/images/StaticVariable.png" />
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <img src="{$subdir}media/images/StaticVariable.png" />
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/class.tpl
index c60f4e425b..9ab7c45513 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/class.tpl
@@ -1,429 +1,429 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/header.tpl
index 258319a716..cd34cf9fe8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/header.tpl
@@ -1,99 +1,99 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- {if $top2 || $top3}
- <script src="{$subdir}media/lib/classTree.js"></script>
- {/if}
- {if $top2}
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <style>
- body {ldelim} padding: 1em {rdelim}
- </style>
- {/if}
- {if $top3 || $top2}
- <script language="javascript" type="text/javascript">
- var imgPlus = new Image();
- var imgMinus = new Image();
- imgPlus.src = "{$subdir}media/images/plus.png";
- imgMinus.src = "{$subdir}media/images/minus.png";
-
- function showNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgMinus.src;
- oTable.style.display = "block";
- {rdelim}
-
- function hideNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgPlus.src;
- oTable.style.display = "none";
- {rdelim}
-
- function nodeIsVisible(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- break;
- {rdelim}
- return (oTable && oTable.style.display == "block");
- {rdelim}
-
- function toggleNodeVisibility(Node){ldelim}
- if (nodeIsVisible(Node)){ldelim}
- hideNode(Node);
- {rdelim}else{ldelim}
- showNode(Node);
- {rdelim}
- {rdelim}
- </script>
- {/if}
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ {if $top2 || $top3}
+ <script src="{$subdir}media/lib/classTree.js"></script>
+ {/if}
+ {if $top2}
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <style>
+ body {ldelim} padding: 1em {rdelim}
+ </style>
+ {/if}
+ {if $top3 || $top2}
+ <script language="javascript" type="text/javascript">
+ var imgPlus = new Image();
+ var imgMinus = new Image();
+ imgPlus.src = "{$subdir}media/images/plus.png";
+ imgMinus.src = "{$subdir}media/images/minus.png";
+
+ function showNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgMinus.src;
+ oTable.style.display = "block";
+ {rdelim}
+
+ function hideNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgPlus.src;
+ oTable.style.display = "none";
+ {rdelim}
+
+ function nodeIsVisible(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ break;
+ {rdelim}
+ return (oTable && oTable.style.display == "block");
+ {rdelim}
+
+ function toggleNodeVisibility(Node){ldelim}
+ if (nodeIsVisible(Node)){ldelim}
+ hideNode(Node);
+ {rdelim}else{ldelim}
+ showNode(Node);
+ {rdelim}
+ {rdelim}
+ </script>
+ {/if}
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/left_frame.tpl
index 8cab3fd516..2072566d1f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/left_frame.tpl
@@ -1,198 +1,198 @@
-{include file="header.tpl" top2=true}
-<h3 class="package-title">{$info.0.package}</h3>
-<div class="tree">
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=p loop=$info}
- {if $info[p].subpackage == ""}
- var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
- tree.setBehavior('classic');
-
- {if $hastodos}
- var todos = new WebFXTreeItem('To-do List', '{$todolink}');
- tree.add(todos);
- {/if}
-
- var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
- tree.add(class_trees);
-
- var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
- tree.add(elements);
-
- var parent_node;
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].hasinterfaces}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
- {if $info[p].hasclasses}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
-
- {if $info[p].functions}
- var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- tree_function.add(fic);
- {/section}
-
- tree.add(tree_function);
- {/if}
-
- {if $info[p].files}
- var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- tree_file.add(file);
- {/section}
-
- tree.add(tree_file);
- {/if}
-
- {else}
- {if $info[p].subpackagetutorial}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa}');
- {else}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc|escape:"quotes"}');
- {/if}
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].classes}
- var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
-
- {section name=class loop=$info[p].classes}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- subpackagetree_classe.add(classe);
- {/section}
-
- subpackagetree.add(subpackagetree_classe);
- {/if}
-
- {if $info[p].functions}
- var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- subpackagetree_function.add(fic);
- {/section}
-
- subpackagetree.add(subpackagetree_function);
- {/if}
-
- {if $info[p].files}
- var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- subpackagetree_file.add(file);
- {/section}
-
- subpackagetree.add(subpackagetree_file);
- {/if}
-
- tree.add(subpackagetree);
- {/if}
-{/section}
-
-document.write(tree);
-{rdelim}
-</script>
-</div>
-<p class="notes">
- Generated by
- <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
-</p>
-</body>
-</html>
+{include file="header.tpl" top2=true}
+<h3 class="package-title">{$info.0.package}</h3>
+<div class="tree">
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=p loop=$info}
+ {if $info[p].subpackage == ""}
+ var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
+ tree.setBehavior('classic');
+
+ {if $hastodos}
+ var todos = new WebFXTreeItem('To-do List', '{$todolink}');
+ tree.add(todos);
+ {/if}
+
+ var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
+ tree.add(class_trees);
+
+ var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
+ tree.add(elements);
+
+ var parent_node;
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].hasinterfaces}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+ {if $info[p].hasclasses}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+
+ {if $info[p].functions}
+ var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ tree_function.add(fic);
+ {/section}
+
+ tree.add(tree_function);
+ {/if}
+
+ {if $info[p].files}
+ var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ tree_file.add(file);
+ {/section}
+
+ tree.add(tree_file);
+ {/if}
+
+ {else}
+ {if $info[p].subpackagetutorial}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa}');
+ {else}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc|escape:"quotes"}');
+ {/if}
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].classes}
+ var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=class loop=$info[p].classes}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ subpackagetree_classe.add(classe);
+ {/section}
+
+ subpackagetree.add(subpackagetree_classe);
+ {/if}
+
+ {if $info[p].functions}
+ var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ subpackagetree_function.add(fic);
+ {/section}
+
+ subpackagetree.add(subpackagetree_function);
+ {/if}
+
+ {if $info[p].files}
+ var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ subpackagetree_file.add(file);
+ {/section}
+
+ subpackagetree.add(subpackagetree_file);
+ {/if}
+
+ tree.add(subpackagetree);
+ {/if}
+{/section}
+
+document.write(tree);
+{rdelim}
+</script>
+</div>
+<p class="notes">
+ Generated by
+ <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
+</p>
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/lib/classTree.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/lib/classTree.js
index 5989426f08..ebb3fb4a77 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/lib/classTree.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/lib/classTree.js
@@ -1,454 +1,454 @@
-/*----------------------------------------\
-| Cross Browser Tree Widget 1.1 |
-|-----------------------------------------|
-| Created by Emil A. Eklund (eae@eae.net) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------|
-| This script is provided as is without |
-| any warranty whatsoever. It may be used |
-| free of charge for non commerical sites |
-| For commerical use contact the author |
-| of this script for further details. |
-|-----------------------------------------|
-| Created 2000-12-11 | Updated 2001-09-06 |
-\----------------------------------------*/
-
-var webFXTreeConfig = {
- rootIcon : 'media/images/empty.png',
- openRootIcon : 'media/images/empty.png',
- folderIcon : 'media/images/empty.png',
- openFolderIcon : 'media/images/empty.png',
- fileIcon : 'media/images/empty.png',
- iIcon : 'media/images/I.png',
- lIcon : 'media/images/L.png',
- lMinusIcon : 'media/images/Lminus.png',
- lPlusIcon : 'media/images/Lplus.png',
- tIcon : 'media/images/T.png',
- tMinusIcon : 'media/images/Tminus.png',
- tPlusIcon : 'media/images/Tplus.png',
- blankIcon : 'media/images/blank.png',
- defaultText : 'Tree Item',
- defaultAction : 'javascript:void(0);',
- defaultTarget : 'right',
- defaultBehavior : 'classic'
-};
-
-var webFXTreeHandler = {
- idCounter : 0,
- idPrefix : "webfx-tree-object-",
- all : {},
- behavior : null,
- selected : null,
- getId : function() { return this.idPrefix + this.idCounter++; },
- toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
- select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
- focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
- blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
- keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
- cookies : new WebFXCookie()
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
- if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
- document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
- if (this.cookies) {
- var start = this.cookies.indexOf(' ' + key + '=');
- if (start == -1) { return null; }
- var end = this.cookies.indexOf(";", start);
- if (end == -1) { end = this.cookies.length; }
- end -= start;
- var cookie = this.cookies.substr(start,end);
- return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
- }
- else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction, sTarget) {
- this.childNodes = [];
- this.id = webFXTreeHandler.getId();
- this.text = sText || webFXTreeConfig.defaultText;
- this.action = sAction || webFXTreeConfig.defaultAction;
- this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
- this._last = false;
- webFXTreeHandler.all[this.id] = this;
-}
-
-WebFXTreeAbstractNode.prototype.add = function (node) {
- node.parentNode = this;
- this.childNodes[this.childNodes.length] = node;
- var root = this;
- if (this.childNodes.length >=2) {
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- while (root.parentNode) { root = root.parentNode; }
- if (root.rendered) {
- if (this.childNodes.length >= 2) {
- document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
- if (this.childNodes[this.childNodes.length -2].folder) {
- this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
- this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
- }
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- this._last = true;
- var foo = this;
- while (foo.parentNode) {
- for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
- if (foo.id == foo.parentNode.childNodes[i].id) { break; }
- }
- if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
- else { foo.parentNode._last = false; }
- foo = foo.parentNode;
- }
- document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
- if ((!this.folder) && (!this.openIcon)) {
- this.icon = webFXTreeConfig.folderIcon;
- this.openIcon = webFXTreeConfig.openFolderIcon;
- }
- this.folder = true;
- this.indent();
- this.expand();
- }
- return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
- if (this.folder) {
- if (this.open) { this.collapse(); }
- else { this.expand(); }
- }
-}
-
-WebFXTreeAbstractNode.prototype.select = function() {
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
- webFXTreeHandler.selected = this;
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
- document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
- document.getElementById(this.id + '-anchor').style.color = 'menutext';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
- this.open = true;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-}
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
- this.open = false;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-}
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
- this.expandChildren();
- if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
- if ((this.folder) && (this.open)) { this.collapse(); }
- this.collapseChildren();
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
- /*
- * Since we only want to modify items one level below ourself,
- * and since the rightmost indentation position is occupied by
- * the plus icon we set this to -2
- */
- if (lvl == null) { lvl = -2; }
- var state = 0;
- for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
- state = this.childNodes[i].indent(lvl + 1, del, last, level);
- if (state) { return; }
- }
- if (del) {
- if (level >= this._level) {
- if (this.folder) {
- document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
- this.plusIcon = webFXTreeConfig.lPlusIcon;
- this.minusIcon = webFXTreeConfig.lMinusIcon;
- }
- else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
- return 1;
- }
- }
- var foo = document.getElementById(this.id + '-indent-' + lvl);
- if (foo) {
- if ((del) && (last)) { foo._last = true; }
- if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
- else { foo.src = webFXTreeConfig.iIcon; }
- }
- return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- this.icon = sIcon || webFXTreeConfig.rootIcon;
- this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
- /* Defaults to open */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
- this.folder = true;
- this.rendered = false;
- if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
- this.targetWindow = 'right';
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
- webFXTreeHandler.behavior = sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
- return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
- if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
- else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
- this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
- return null;
-}
-
-WebFXTree.prototype.getLast = function() {
- return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
- if (key == 39) { this.expand(); return false; }
- if (key == 37) { this.collapse(); return false; }
- if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
- return true;
-}
-
-WebFXTree.prototype.toString = function() {
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i, this.childNodes.length);
- }
- str += "</div>";
- this.rendered = true;
- return str;
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- /* Defaults to close */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
- if (eParent) { eParent.add(this); }
- if (sIcon) { this.icon = sIcon; }
- if (sOpenIcon) { this.openIcon = sOpenIcon; }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
- var parentNode = this.parentNode;
- var prevSibling = this.getPreviousSibling(true);
- var nextSibling = this.getNextSibling(true);
- var folder = this.parentNode.folder;
- var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
- this.getPreviousSibling().focus();
- this._remove();
- if (parentNode.childNodes.length == 0) {
- parentNode.folder = false;
- parentNode.open = false;
- }
- if (last) {
- if (parentNode.id == prevSibling.id) {
- document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
- }
- else { }
- }
- if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
- parentNode.indent(null, true, last, this._level);
- }
- if (document.getElementById(prevSibling.id + '-plus')) {
- if (nextSibling) {
- if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
- else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
- else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
-}
-
-WebFXTreeItem.prototype._remove = function() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
- this.childNodes[i]._remove();
- }
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this.id == this.parentNode.childNodes[i].id) {
- for (var j = i; j < this.parentNode.childNodes.length; j++) {
- this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
- }
- this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
- if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
- }
- }
- webFXTreeHandler.all[this.id] = null;
- if (document.getElementById(this.id)) {
- document.getElementById(this.id).innerHTML = "";
- document.getElementById(this.id).removeNode();
- }
-}
-
-WebFXTreeItem.prototype.expand = function() {
- this.doExpand();
- document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
- document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
- return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
- if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
- else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
- else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (i == 0) { return this.parentNode; }
- else {
- if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
- else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
- if ((key == 39) && (this.folder)) {
- if (!this.open) { this.expand(); return false; }
- else { this.getFirst().select(); return false; }
- }
- else if (key == 37) {
- if (this.open) { this.collapse(); return false; }
- else { this.parentNode.select(); return false; }
- }
- else if (key == 40) {
- if (this.open) { this.getFirst().select(); return false; }
- else {
- var sib = this.getNextSibling();
- if (sib) { sib.select(); return false; }
- } }
- else if (key == 38) { this.getPreviousSibling().select(); return false; }
- return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
- var foo = this.parentNode;
- var indent = '';
- if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
- var i = 0;
- while (foo.parentNode) {
- foo = foo.parentNode;
- indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
- i++;
- }
- this._level = i;
- if (this.childNodes.length) { this.folder = 1; }
- else { this.open = false; }
- if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
- if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
- if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
- }
- else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
- var label = this.text;
- label = label.replace('<', '<');
- label = label.replace('>', '>');
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += indent;
- str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
- str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i,this.childNodes.length);
- }
- str += "</div>";
- this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
- this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
- return str;
+/*----------------------------------------\
+| Cross Browser Tree Widget 1.1 |
+|-----------------------------------------|
+| Created by Emil A. Eklund (eae@eae.net) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------|
+| This script is provided as is without |
+| any warranty whatsoever. It may be used |
+| free of charge for non commerical sites |
+| For commerical use contact the author |
+| of this script for further details. |
+|-----------------------------------------|
+| Created 2000-12-11 | Updated 2001-09-06 |
+\----------------------------------------*/
+
+var webFXTreeConfig = {
+ rootIcon : 'media/images/empty.png',
+ openRootIcon : 'media/images/empty.png',
+ folderIcon : 'media/images/empty.png',
+ openFolderIcon : 'media/images/empty.png',
+ fileIcon : 'media/images/empty.png',
+ iIcon : 'media/images/I.png',
+ lIcon : 'media/images/L.png',
+ lMinusIcon : 'media/images/Lminus.png',
+ lPlusIcon : 'media/images/Lplus.png',
+ tIcon : 'media/images/T.png',
+ tMinusIcon : 'media/images/Tminus.png',
+ tPlusIcon : 'media/images/Tplus.png',
+ blankIcon : 'media/images/blank.png',
+ defaultText : 'Tree Item',
+ defaultAction : 'javascript:void(0);',
+ defaultTarget : 'right',
+ defaultBehavior : 'classic'
+};
+
+var webFXTreeHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-tree-object-",
+ all : {},
+ behavior : null,
+ selected : null,
+ getId : function() { return this.idPrefix + this.idCounter++; },
+ toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+ select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+ focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+ blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+ keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
+ cookies : new WebFXCookie()
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+ if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+ document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+ if (this.cookies) {
+ var start = this.cookies.indexOf(' ' + key + '=');
+ if (start == -1) { return null; }
+ var end = this.cookies.indexOf(";", start);
+ if (end == -1) { end = this.cookies.length; }
+ end -= start;
+ var cookie = this.cookies.substr(start,end);
+ return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+ }
+ else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction, sTarget) {
+ this.childNodes = [];
+ this.id = webFXTreeHandler.getId();
+ this.text = sText || webFXTreeConfig.defaultText;
+ this.action = sAction || webFXTreeConfig.defaultAction;
+ this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
+ this._last = false;
+ webFXTreeHandler.all[this.id] = this;
+}
+
+WebFXTreeAbstractNode.prototype.add = function (node) {
+ node.parentNode = this;
+ this.childNodes[this.childNodes.length] = node;
+ var root = this;
+ if (this.childNodes.length >=2) {
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ while (root.parentNode) { root = root.parentNode; }
+ if (root.rendered) {
+ if (this.childNodes.length >= 2) {
+ document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
+ if (this.childNodes[this.childNodes.length -2].folder) {
+ this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
+ this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
+ }
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ this._last = true;
+ var foo = this;
+ while (foo.parentNode) {
+ for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+ if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+ }
+ if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
+ else { foo.parentNode._last = false; }
+ foo = foo.parentNode;
+ }
+ document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
+ if ((!this.folder) && (!this.openIcon)) {
+ this.icon = webFXTreeConfig.folderIcon;
+ this.openIcon = webFXTreeConfig.openFolderIcon;
+ }
+ this.folder = true;
+ this.indent();
+ this.expand();
+ }
+ return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+ if (this.folder) {
+ if (this.open) { this.collapse(); }
+ else { this.expand(); }
+ }
+}
+
+WebFXTreeAbstractNode.prototype.select = function() {
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+ webFXTreeHandler.selected = this;
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
+ document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
+ document.getElementById(this.id + '-anchor').style.color = 'menutext';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
+ this.open = true;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+}
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+ this.open = false;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+}
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+ this.expandChildren();
+ if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+ if ((this.folder) && (this.open)) { this.collapse(); }
+ this.collapseChildren();
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
+ /*
+ * Since we only want to modify items one level below ourself,
+ * and since the rightmost indentation position is occupied by
+ * the plus icon we set this to -2
+ */
+ if (lvl == null) { lvl = -2; }
+ var state = 0;
+ for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+ state = this.childNodes[i].indent(lvl + 1, del, last, level);
+ if (state) { return; }
+ }
+ if (del) {
+ if (level >= this._level) {
+ if (this.folder) {
+ document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+ this.plusIcon = webFXTreeConfig.lPlusIcon;
+ this.minusIcon = webFXTreeConfig.lMinusIcon;
+ }
+ else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+ return 1;
+ }
+ }
+ var foo = document.getElementById(this.id + '-indent-' + lvl);
+ if (foo) {
+ if ((del) && (last)) { foo._last = true; }
+ if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
+ else { foo.src = webFXTreeConfig.iIcon; }
+ }
+ return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ this.icon = sIcon || webFXTreeConfig.rootIcon;
+ this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
+ /* Defaults to open */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+ this.folder = true;
+ this.rendered = false;
+ if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+ this.targetWindow = 'right';
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+ webFXTreeHandler.behavior = sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+ return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+ if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+ else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+ this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+ return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+ return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+ if (key == 39) { this.expand(); return false; }
+ if (key == 37) { this.collapse(); return false; }
+ if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
+ return true;
+}
+
+WebFXTree.prototype.toString = function() {
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i, this.childNodes.length);
+ }
+ str += "</div>";
+ this.rendered = true;
+ return str;
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ /* Defaults to close */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+ if (eParent) { eParent.add(this); }
+ if (sIcon) { this.icon = sIcon; }
+ if (sOpenIcon) { this.openIcon = sOpenIcon; }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+ var parentNode = this.parentNode;
+ var prevSibling = this.getPreviousSibling(true);
+ var nextSibling = this.getNextSibling(true);
+ var folder = this.parentNode.folder;
+ var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+ this.getPreviousSibling().focus();
+ this._remove();
+ if (parentNode.childNodes.length == 0) {
+ parentNode.folder = false;
+ parentNode.open = false;
+ }
+ if (last) {
+ if (parentNode.id == prevSibling.id) {
+ document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
+ }
+ else { }
+ }
+ if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
+ parentNode.indent(null, true, last, this._level);
+ }
+ if (document.getElementById(prevSibling.id + '-plus')) {
+ if (nextSibling) {
+ if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
+ else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+ else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+}
+
+WebFXTreeItem.prototype._remove = function() {
+ for (var i = this.childNodes.length - 1; i >= 0; i--) {
+ this.childNodes[i]._remove();
+ }
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this.id == this.parentNode.childNodes[i].id) {
+ for (var j = i; j < this.parentNode.childNodes.length; j++) {
+ this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
+ }
+ this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
+ if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+ }
+ }
+ webFXTreeHandler.all[this.id] = null;
+ if (document.getElementById(this.id)) {
+ document.getElementById(this.id).innerHTML = "";
+ document.getElementById(this.id).removeNode();
+ }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+ this.doExpand();
+ document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+ document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+ return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+ if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+ else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+ else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (i == 0) { return this.parentNode; }
+ else {
+ if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+ else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+ if ((key == 39) && (this.folder)) {
+ if (!this.open) { this.expand(); return false; }
+ else { this.getFirst().select(); return false; }
+ }
+ else if (key == 37) {
+ if (this.open) { this.collapse(); return false; }
+ else { this.parentNode.select(); return false; }
+ }
+ else if (key == 40) {
+ if (this.open) { this.getFirst().select(); return false; }
+ else {
+ var sib = this.getNextSibling();
+ if (sib) { sib.select(); return false; }
+ } }
+ else if (key == 38) { this.getPreviousSibling().select(); return false; }
+ return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+ var foo = this.parentNode;
+ var indent = '';
+ if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+ var i = 0;
+ while (foo.parentNode) {
+ foo = foo.parentNode;
+ indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+ i++;
+ }
+ this._level = i;
+ if (this.childNodes.length) { this.folder = 1; }
+ else { this.open = false; }
+ if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+ if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+ if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+ }
+ else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+ var label = this.text;
+ label = label.replace('<', '<');
+ label = label.replace('>', '>');
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += indent;
+ str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
+ str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i,this.childNodes.length);
+ }
+ str += "</div>";
+ this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+ this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+ return str;
} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/stylesheet.css b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/stylesheet.css
index 0d67c48a91..670b30e228 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/stylesheet.css
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/media/stylesheet.css
@@ -516,8 +516,8 @@ dd {
padding-left: 0em
}
-/*------------------------------------------------------------------------------
- webfx-tree
+/*------------------------------------------------------------------------------
+ webfx-tree
------------------------------------------------------------------------------*/
.webfx-tree-container {
margin: 0px;
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/method.tpl
index df271c8d82..06d57a1202 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/method.tpl
@@ -1,149 +1,149 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/ric.tpl
index 9d0ef3e114..ad792475fd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<div align="center"><h1>{$name}</h1></div>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<div align="center"><h1>{$name}</h1></div>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_tree.tpl
index 5ada4ec15d..40d9a4ffbd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/tutorial_tree.tpl
@@ -1,8 +1,8 @@
- var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
-
-{if $haskids}
- var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
- parent_node = a{$name|replace:"-":"_"}node;
- {$kids}
- parent_node = a{$name|replace:"-":"_"}_old_parent_node;
-{/if}
+ var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
+
+{if $haskids}
+ var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
+ parent_node = a{$name|replace:"-":"_"}node;
+ {$kids}
+ parent_node = a{$name|replace:"-":"_"}_old_parent_node;
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/var.tpl
index f11f3be974..fccf689213 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/l0l33t/templates/var.tpl
@@ -1,92 +1,92 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/class.tpl
index c60f4e425b..9ab7c45513 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/class.tpl
@@ -1,429 +1,429 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/header.tpl
index 902871c310..0d62619064 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/header.tpl
@@ -1,95 +1,95 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- {if $top2 || $top3}
- <script src="{$subdir}media/lib/classTree.js"></script>
- {/if}
- {if $top2}
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- {/if}
- {if $top3 || $top2}
- <script language="javascript" type="text/javascript">
- var imgPlus = new Image();
- var imgMinus = new Image();
- imgPlus.src = "{$subdir}media/images/plus.png";
- imgMinus.src = "{$subdir}media/images/minus.png";
-
- function showNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgMinus.src;
- oTable.style.display = "block";
- {rdelim}
-
- function hideNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgPlus.src;
- oTable.style.display = "none";
- {rdelim}
-
- function nodeIsVisible(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- break;
- {rdelim}
- return (oTable && oTable.style.display == "block");
- {rdelim}
-
- function toggleNodeVisibility(Node){ldelim}
- if (nodeIsVisible(Node)){ldelim}
- hideNode(Node);
- {rdelim}else{ldelim}
- showNode(Node);
- {rdelim}
- {rdelim}
- </script>
- {/if}
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ {if $top2 || $top3}
+ <script src="{$subdir}media/lib/classTree.js"></script>
+ {/if}
+ {if $top2}
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ {/if}
+ {if $top3 || $top2}
+ <script language="javascript" type="text/javascript">
+ var imgPlus = new Image();
+ var imgMinus = new Image();
+ imgPlus.src = "{$subdir}media/images/plus.png";
+ imgMinus.src = "{$subdir}media/images/minus.png";
+
+ function showNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgMinus.src;
+ oTable.style.display = "block";
+ {rdelim}
+
+ function hideNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgPlus.src;
+ oTable.style.display = "none";
+ {rdelim}
+
+ function nodeIsVisible(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ break;
+ {rdelim}
+ return (oTable && oTable.style.display == "block");
+ {rdelim}
+
+ function toggleNodeVisibility(Node){ldelim}
+ if (nodeIsVisible(Node)){ldelim}
+ hideNode(Node);
+ {rdelim}else{ldelim}
+ showNode(Node);
+ {rdelim}
+ {rdelim}
+ </script>
+ {/if}
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/left_frame.tpl
index 9066e6b85a..b496b70c56 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/left_frame.tpl
@@ -1,216 +1,216 @@
-{include file="header.tpl" top2=true}
-<h3 class="package-title">{$info.0.package}</h3>
-<div class="tree">
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=p loop=$info}
- {if $info[p].subpackage == ""}
- var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
- tree.setBehavior('classic');
-
- {if $hastodos}
- var todos = new WebFXTreeItem('To-do List', '{$todolink}');
- tree.add(todos);
- {/if}
-
- var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
- tree.add(class_trees);
-
- var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
- tree.add(elements);
-
- var parent_node;
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].hasinterfaces}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
- {if $info[p].hasclasses}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
-
- {if $info[p].functions}
- var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- tree_function.add(fic);
- {/section}
-
- tree.add(tree_function);
- {/if}
-
- {if $info[p].files}
- var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- tree_file.add(file);
- {/section}
-
- tree.add(tree_file);
- {/if}
-
- {else}
- {if $info[p].subpackagetutorial}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa}');
- {else}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc}');
- {/if}
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].hasinterfaces}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
- {if $info[p].hasclasses}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
-
- {if $info[p].functions}
- var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- subpackagetree_function.add(fic);
- {/section}
-
- subpackagetree.add(subpackagetree_function);
- {/if}
-
- {if $info[p].files}
- var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- subpackagetree_file.add(file);
- {/section}
-
- subpackagetree.add(subpackagetree_file);
- {/if}
-
- tree.add(subpackagetree);
- {/if}
-{/section}
-
-document.write(tree);
-{rdelim}
-</script>
-</div>
-<p class="notes">
- Generated by
- <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
-</p>
-</body>
-</html>
+{include file="header.tpl" top2=true}
+<h3 class="package-title">{$info.0.package}</h3>
+<div class="tree">
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=p loop=$info}
+ {if $info[p].subpackage == ""}
+ var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
+ tree.setBehavior('classic');
+
+ {if $hastodos}
+ var todos = new WebFXTreeItem('To-do List', '{$todolink}');
+ tree.add(todos);
+ {/if}
+
+ var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
+ tree.add(class_trees);
+
+ var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
+ tree.add(elements);
+
+ var parent_node;
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].hasinterfaces}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+ {if $info[p].hasclasses}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+
+ {if $info[p].functions}
+ var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ tree_function.add(fic);
+ {/section}
+
+ tree.add(tree_function);
+ {/if}
+
+ {if $info[p].files}
+ var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ tree_file.add(file);
+ {/section}
+
+ tree.add(tree_file);
+ {/if}
+
+ {else}
+ {if $info[p].subpackagetutorial}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags|escape:"quotes"}</span>', '{$info[p].subpackagetutorialnoa}');
+ {else}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc}');
+ {/if}
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].hasinterfaces}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+ {if $info[p].hasclasses}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+
+ {if $info[p].functions}
+ var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ subpackagetree_function.add(fic);
+ {/section}
+
+ subpackagetree.add(subpackagetree_function);
+ {/if}
+
+ {if $info[p].files}
+ var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ subpackagetree_file.add(file);
+ {/section}
+
+ subpackagetree.add(subpackagetree_file);
+ {/if}
+
+ tree.add(subpackagetree);
+ {/if}
+{/section}
+
+document.write(tree);
+{rdelim}
+</script>
+</div>
+<p class="notes">
+ Generated by
+ <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
+</p>
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/lib/classTree.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/lib/classTree.js
index 5989426f08..ebb3fb4a77 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/lib/classTree.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/lib/classTree.js
@@ -1,454 +1,454 @@
-/*----------------------------------------\
-| Cross Browser Tree Widget 1.1 |
-|-----------------------------------------|
-| Created by Emil A. Eklund (eae@eae.net) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------|
-| This script is provided as is without |
-| any warranty whatsoever. It may be used |
-| free of charge for non commerical sites |
-| For commerical use contact the author |
-| of this script for further details. |
-|-----------------------------------------|
-| Created 2000-12-11 | Updated 2001-09-06 |
-\----------------------------------------*/
-
-var webFXTreeConfig = {
- rootIcon : 'media/images/empty.png',
- openRootIcon : 'media/images/empty.png',
- folderIcon : 'media/images/empty.png',
- openFolderIcon : 'media/images/empty.png',
- fileIcon : 'media/images/empty.png',
- iIcon : 'media/images/I.png',
- lIcon : 'media/images/L.png',
- lMinusIcon : 'media/images/Lminus.png',
- lPlusIcon : 'media/images/Lplus.png',
- tIcon : 'media/images/T.png',
- tMinusIcon : 'media/images/Tminus.png',
- tPlusIcon : 'media/images/Tplus.png',
- blankIcon : 'media/images/blank.png',
- defaultText : 'Tree Item',
- defaultAction : 'javascript:void(0);',
- defaultTarget : 'right',
- defaultBehavior : 'classic'
-};
-
-var webFXTreeHandler = {
- idCounter : 0,
- idPrefix : "webfx-tree-object-",
- all : {},
- behavior : null,
- selected : null,
- getId : function() { return this.idPrefix + this.idCounter++; },
- toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
- select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
- focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
- blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
- keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
- cookies : new WebFXCookie()
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
- if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
- document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
- if (this.cookies) {
- var start = this.cookies.indexOf(' ' + key + '=');
- if (start == -1) { return null; }
- var end = this.cookies.indexOf(";", start);
- if (end == -1) { end = this.cookies.length; }
- end -= start;
- var cookie = this.cookies.substr(start,end);
- return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
- }
- else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction, sTarget) {
- this.childNodes = [];
- this.id = webFXTreeHandler.getId();
- this.text = sText || webFXTreeConfig.defaultText;
- this.action = sAction || webFXTreeConfig.defaultAction;
- this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
- this._last = false;
- webFXTreeHandler.all[this.id] = this;
-}
-
-WebFXTreeAbstractNode.prototype.add = function (node) {
- node.parentNode = this;
- this.childNodes[this.childNodes.length] = node;
- var root = this;
- if (this.childNodes.length >=2) {
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- while (root.parentNode) { root = root.parentNode; }
- if (root.rendered) {
- if (this.childNodes.length >= 2) {
- document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
- if (this.childNodes[this.childNodes.length -2].folder) {
- this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
- this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
- }
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- this._last = true;
- var foo = this;
- while (foo.parentNode) {
- for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
- if (foo.id == foo.parentNode.childNodes[i].id) { break; }
- }
- if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
- else { foo.parentNode._last = false; }
- foo = foo.parentNode;
- }
- document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
- if ((!this.folder) && (!this.openIcon)) {
- this.icon = webFXTreeConfig.folderIcon;
- this.openIcon = webFXTreeConfig.openFolderIcon;
- }
- this.folder = true;
- this.indent();
- this.expand();
- }
- return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
- if (this.folder) {
- if (this.open) { this.collapse(); }
- else { this.expand(); }
- }
-}
-
-WebFXTreeAbstractNode.prototype.select = function() {
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
- webFXTreeHandler.selected = this;
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
- document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
- document.getElementById(this.id + '-anchor').style.color = 'menutext';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
- this.open = true;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-}
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
- this.open = false;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-}
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
- this.expandChildren();
- if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
- if ((this.folder) && (this.open)) { this.collapse(); }
- this.collapseChildren();
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
- /*
- * Since we only want to modify items one level below ourself,
- * and since the rightmost indentation position is occupied by
- * the plus icon we set this to -2
- */
- if (lvl == null) { lvl = -2; }
- var state = 0;
- for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
- state = this.childNodes[i].indent(lvl + 1, del, last, level);
- if (state) { return; }
- }
- if (del) {
- if (level >= this._level) {
- if (this.folder) {
- document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
- this.plusIcon = webFXTreeConfig.lPlusIcon;
- this.minusIcon = webFXTreeConfig.lMinusIcon;
- }
- else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
- return 1;
- }
- }
- var foo = document.getElementById(this.id + '-indent-' + lvl);
- if (foo) {
- if ((del) && (last)) { foo._last = true; }
- if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
- else { foo.src = webFXTreeConfig.iIcon; }
- }
- return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- this.icon = sIcon || webFXTreeConfig.rootIcon;
- this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
- /* Defaults to open */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
- this.folder = true;
- this.rendered = false;
- if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
- this.targetWindow = 'right';
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
- webFXTreeHandler.behavior = sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
- return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
- if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
- else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
- this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
- return null;
-}
-
-WebFXTree.prototype.getLast = function() {
- return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
- if (key == 39) { this.expand(); return false; }
- if (key == 37) { this.collapse(); return false; }
- if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
- return true;
-}
-
-WebFXTree.prototype.toString = function() {
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i, this.childNodes.length);
- }
- str += "</div>";
- this.rendered = true;
- return str;
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- /* Defaults to close */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
- if (eParent) { eParent.add(this); }
- if (sIcon) { this.icon = sIcon; }
- if (sOpenIcon) { this.openIcon = sOpenIcon; }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
- var parentNode = this.parentNode;
- var prevSibling = this.getPreviousSibling(true);
- var nextSibling = this.getNextSibling(true);
- var folder = this.parentNode.folder;
- var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
- this.getPreviousSibling().focus();
- this._remove();
- if (parentNode.childNodes.length == 0) {
- parentNode.folder = false;
- parentNode.open = false;
- }
- if (last) {
- if (parentNode.id == prevSibling.id) {
- document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
- }
- else { }
- }
- if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
- parentNode.indent(null, true, last, this._level);
- }
- if (document.getElementById(prevSibling.id + '-plus')) {
- if (nextSibling) {
- if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
- else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
- else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
-}
-
-WebFXTreeItem.prototype._remove = function() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
- this.childNodes[i]._remove();
- }
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this.id == this.parentNode.childNodes[i].id) {
- for (var j = i; j < this.parentNode.childNodes.length; j++) {
- this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
- }
- this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
- if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
- }
- }
- webFXTreeHandler.all[this.id] = null;
- if (document.getElementById(this.id)) {
- document.getElementById(this.id).innerHTML = "";
- document.getElementById(this.id).removeNode();
- }
-}
-
-WebFXTreeItem.prototype.expand = function() {
- this.doExpand();
- document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
- document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
- return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
- if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
- else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
- else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (i == 0) { return this.parentNode; }
- else {
- if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
- else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
- if ((key == 39) && (this.folder)) {
- if (!this.open) { this.expand(); return false; }
- else { this.getFirst().select(); return false; }
- }
- else if (key == 37) {
- if (this.open) { this.collapse(); return false; }
- else { this.parentNode.select(); return false; }
- }
- else if (key == 40) {
- if (this.open) { this.getFirst().select(); return false; }
- else {
- var sib = this.getNextSibling();
- if (sib) { sib.select(); return false; }
- } }
- else if (key == 38) { this.getPreviousSibling().select(); return false; }
- return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
- var foo = this.parentNode;
- var indent = '';
- if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
- var i = 0;
- while (foo.parentNode) {
- foo = foo.parentNode;
- indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
- i++;
- }
- this._level = i;
- if (this.childNodes.length) { this.folder = 1; }
- else { this.open = false; }
- if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
- if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
- if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
- }
- else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
- var label = this.text;
- label = label.replace('<', '<');
- label = label.replace('>', '>');
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += indent;
- str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
- str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i,this.childNodes.length);
- }
- str += "</div>";
- this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
- this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
- return str;
+/*----------------------------------------\
+| Cross Browser Tree Widget 1.1 |
+|-----------------------------------------|
+| Created by Emil A. Eklund (eae@eae.net) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------|
+| This script is provided as is without |
+| any warranty whatsoever. It may be used |
+| free of charge for non commerical sites |
+| For commerical use contact the author |
+| of this script for further details. |
+|-----------------------------------------|
+| Created 2000-12-11 | Updated 2001-09-06 |
+\----------------------------------------*/
+
+var webFXTreeConfig = {
+ rootIcon : 'media/images/empty.png',
+ openRootIcon : 'media/images/empty.png',
+ folderIcon : 'media/images/empty.png',
+ openFolderIcon : 'media/images/empty.png',
+ fileIcon : 'media/images/empty.png',
+ iIcon : 'media/images/I.png',
+ lIcon : 'media/images/L.png',
+ lMinusIcon : 'media/images/Lminus.png',
+ lPlusIcon : 'media/images/Lplus.png',
+ tIcon : 'media/images/T.png',
+ tMinusIcon : 'media/images/Tminus.png',
+ tPlusIcon : 'media/images/Tplus.png',
+ blankIcon : 'media/images/blank.png',
+ defaultText : 'Tree Item',
+ defaultAction : 'javascript:void(0);',
+ defaultTarget : 'right',
+ defaultBehavior : 'classic'
+};
+
+var webFXTreeHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-tree-object-",
+ all : {},
+ behavior : null,
+ selected : null,
+ getId : function() { return this.idPrefix + this.idCounter++; },
+ toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+ select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+ focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+ blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+ keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
+ cookies : new WebFXCookie()
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+ if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+ document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+ if (this.cookies) {
+ var start = this.cookies.indexOf(' ' + key + '=');
+ if (start == -1) { return null; }
+ var end = this.cookies.indexOf(";", start);
+ if (end == -1) { end = this.cookies.length; }
+ end -= start;
+ var cookie = this.cookies.substr(start,end);
+ return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+ }
+ else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction, sTarget) {
+ this.childNodes = [];
+ this.id = webFXTreeHandler.getId();
+ this.text = sText || webFXTreeConfig.defaultText;
+ this.action = sAction || webFXTreeConfig.defaultAction;
+ this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
+ this._last = false;
+ webFXTreeHandler.all[this.id] = this;
+}
+
+WebFXTreeAbstractNode.prototype.add = function (node) {
+ node.parentNode = this;
+ this.childNodes[this.childNodes.length] = node;
+ var root = this;
+ if (this.childNodes.length >=2) {
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ while (root.parentNode) { root = root.parentNode; }
+ if (root.rendered) {
+ if (this.childNodes.length >= 2) {
+ document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
+ if (this.childNodes[this.childNodes.length -2].folder) {
+ this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
+ this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
+ }
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ this._last = true;
+ var foo = this;
+ while (foo.parentNode) {
+ for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+ if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+ }
+ if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
+ else { foo.parentNode._last = false; }
+ foo = foo.parentNode;
+ }
+ document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
+ if ((!this.folder) && (!this.openIcon)) {
+ this.icon = webFXTreeConfig.folderIcon;
+ this.openIcon = webFXTreeConfig.openFolderIcon;
+ }
+ this.folder = true;
+ this.indent();
+ this.expand();
+ }
+ return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+ if (this.folder) {
+ if (this.open) { this.collapse(); }
+ else { this.expand(); }
+ }
+}
+
+WebFXTreeAbstractNode.prototype.select = function() {
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+ webFXTreeHandler.selected = this;
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
+ document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
+ document.getElementById(this.id + '-anchor').style.color = 'menutext';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
+ this.open = true;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+}
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+ this.open = false;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+}
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+ this.expandChildren();
+ if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+ if ((this.folder) && (this.open)) { this.collapse(); }
+ this.collapseChildren();
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
+ /*
+ * Since we only want to modify items one level below ourself,
+ * and since the rightmost indentation position is occupied by
+ * the plus icon we set this to -2
+ */
+ if (lvl == null) { lvl = -2; }
+ var state = 0;
+ for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+ state = this.childNodes[i].indent(lvl + 1, del, last, level);
+ if (state) { return; }
+ }
+ if (del) {
+ if (level >= this._level) {
+ if (this.folder) {
+ document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+ this.plusIcon = webFXTreeConfig.lPlusIcon;
+ this.minusIcon = webFXTreeConfig.lMinusIcon;
+ }
+ else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+ return 1;
+ }
+ }
+ var foo = document.getElementById(this.id + '-indent-' + lvl);
+ if (foo) {
+ if ((del) && (last)) { foo._last = true; }
+ if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
+ else { foo.src = webFXTreeConfig.iIcon; }
+ }
+ return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ this.icon = sIcon || webFXTreeConfig.rootIcon;
+ this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
+ /* Defaults to open */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+ this.folder = true;
+ this.rendered = false;
+ if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+ this.targetWindow = 'right';
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+ webFXTreeHandler.behavior = sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+ return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+ if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+ else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+ this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+ return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+ return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+ if (key == 39) { this.expand(); return false; }
+ if (key == 37) { this.collapse(); return false; }
+ if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
+ return true;
+}
+
+WebFXTree.prototype.toString = function() {
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i, this.childNodes.length);
+ }
+ str += "</div>";
+ this.rendered = true;
+ return str;
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ /* Defaults to close */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+ if (eParent) { eParent.add(this); }
+ if (sIcon) { this.icon = sIcon; }
+ if (sOpenIcon) { this.openIcon = sOpenIcon; }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+ var parentNode = this.parentNode;
+ var prevSibling = this.getPreviousSibling(true);
+ var nextSibling = this.getNextSibling(true);
+ var folder = this.parentNode.folder;
+ var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+ this.getPreviousSibling().focus();
+ this._remove();
+ if (parentNode.childNodes.length == 0) {
+ parentNode.folder = false;
+ parentNode.open = false;
+ }
+ if (last) {
+ if (parentNode.id == prevSibling.id) {
+ document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
+ }
+ else { }
+ }
+ if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
+ parentNode.indent(null, true, last, this._level);
+ }
+ if (document.getElementById(prevSibling.id + '-plus')) {
+ if (nextSibling) {
+ if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
+ else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+ else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+}
+
+WebFXTreeItem.prototype._remove = function() {
+ for (var i = this.childNodes.length - 1; i >= 0; i--) {
+ this.childNodes[i]._remove();
+ }
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this.id == this.parentNode.childNodes[i].id) {
+ for (var j = i; j < this.parentNode.childNodes.length; j++) {
+ this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
+ }
+ this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
+ if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+ }
+ }
+ webFXTreeHandler.all[this.id] = null;
+ if (document.getElementById(this.id)) {
+ document.getElementById(this.id).innerHTML = "";
+ document.getElementById(this.id).removeNode();
+ }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+ this.doExpand();
+ document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+ document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+ return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+ if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+ else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+ else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (i == 0) { return this.parentNode; }
+ else {
+ if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+ else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+ if ((key == 39) && (this.folder)) {
+ if (!this.open) { this.expand(); return false; }
+ else { this.getFirst().select(); return false; }
+ }
+ else if (key == 37) {
+ if (this.open) { this.collapse(); return false; }
+ else { this.parentNode.select(); return false; }
+ }
+ else if (key == 40) {
+ if (this.open) { this.getFirst().select(); return false; }
+ else {
+ var sib = this.getNextSibling();
+ if (sib) { sib.select(); return false; }
+ } }
+ else if (key == 38) { this.getPreviousSibling().select(); return false; }
+ return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+ var foo = this.parentNode;
+ var indent = '';
+ if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+ var i = 0;
+ while (foo.parentNode) {
+ foo = foo.parentNode;
+ indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+ i++;
+ }
+ this._level = i;
+ if (this.childNodes.length) { this.folder = 1; }
+ else { this.open = false; }
+ if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+ if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+ if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+ }
+ else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+ var label = this.text;
+ label = label.replace('<', '<');
+ label = label.replace('>', '>');
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += indent;
+ str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
+ str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i,this.childNodes.length);
+ }
+ str += "</div>";
+ this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+ this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+ return str;
} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/stylesheet.css b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/stylesheet.css
index 390769c210..c8c97d4d56 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/stylesheet.css
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/media/stylesheet.css
@@ -507,8 +507,8 @@ dd {
padding-left: 0em
}
-/*------------------------------------------------------------------------------
- webfx-tree
+/*------------------------------------------------------------------------------
+ webfx-tree
------------------------------------------------------------------------------*/
.webfx-tree-container {
margin: 0px;
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/method.tpl
index df271c8d82..06d57a1202 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/method.tpl
@@ -1,149 +1,149 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/ric.tpl
index 9d0ef3e114..ad792475fd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<div align="center"><h1>{$name}</h1></div>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<div align="center"><h1>{$name}</h1></div>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_tree.tpl
index 5ada4ec15d..40d9a4ffbd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/tutorial_tree.tpl
@@ -1,8 +1,8 @@
- var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
-
-{if $haskids}
- var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
- parent_node = a{$name|replace:"-":"_"}node;
- {$kids}
- parent_node = a{$name|replace:"-":"_"}_old_parent_node;
-{/if}
+ var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
+
+{if $haskids}
+ var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
+ parent_node = a{$name|replace:"-":"_"}node;
+ {$kids}
+ parent_node = a{$name|replace:"-":"_"}_old_parent_node;
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/var.tpl
index f11f3be974..fccf689213 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phpdoc.de/templates/var.tpl
@@ -1,92 +1,92 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/class.tpl
index c60f4e425b..9ab7c45513 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/class.tpl
@@ -1,429 +1,429 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/header.tpl
index 902871c310..0d62619064 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/header.tpl
@@ -1,95 +1,95 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- {if $top2 || $top3}
- <script src="{$subdir}media/lib/classTree.js"></script>
- {/if}
- {if $top2}
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- {/if}
- {if $top3 || $top2}
- <script language="javascript" type="text/javascript">
- var imgPlus = new Image();
- var imgMinus = new Image();
- imgPlus.src = "{$subdir}media/images/plus.png";
- imgMinus.src = "{$subdir}media/images/minus.png";
-
- function showNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgMinus.src;
- oTable.style.display = "block";
- {rdelim}
-
- function hideNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgPlus.src;
- oTable.style.display = "none";
- {rdelim}
-
- function nodeIsVisible(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- break;
- {rdelim}
- return (oTable && oTable.style.display == "block");
- {rdelim}
-
- function toggleNodeVisibility(Node){ldelim}
- if (nodeIsVisible(Node)){ldelim}
- hideNode(Node);
- {rdelim}else{ldelim}
- showNode(Node);
- {rdelim}
- {rdelim}
- </script>
- {/if}
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ {if $top2 || $top3}
+ <script src="{$subdir}media/lib/classTree.js"></script>
+ {/if}
+ {if $top2}
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ {/if}
+ {if $top3 || $top2}
+ <script language="javascript" type="text/javascript">
+ var imgPlus = new Image();
+ var imgMinus = new Image();
+ imgPlus.src = "{$subdir}media/images/plus.png";
+ imgMinus.src = "{$subdir}media/images/minus.png";
+
+ function showNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgMinus.src;
+ oTable.style.display = "block";
+ {rdelim}
+
+ function hideNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgPlus.src;
+ oTable.style.display = "none";
+ {rdelim}
+
+ function nodeIsVisible(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ break;
+ {rdelim}
+ return (oTable && oTable.style.display == "block");
+ {rdelim}
+
+ function toggleNodeVisibility(Node){ldelim}
+ if (nodeIsVisible(Node)){ldelim}
+ hideNode(Node);
+ {rdelim}else{ldelim}
+ showNode(Node);
+ {rdelim}
+ {rdelim}
+ </script>
+ {/if}
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/left_frame.tpl
index 5d05140f5b..e162223980 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/left_frame.tpl
@@ -1,216 +1,216 @@
-{include file="header.tpl" top2=true}
-<h3 class="package-title">{$info.0.package}</h3>
-<div class="tree">
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=p loop=$info}
- {if $info[p].subpackage == ""}
- var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
- tree.setBehavior('classic');
-
- {if $hastodos}
- var todos = new WebFXTreeItem('To-do List', '{$todolink}');
- tree.add(todos);
- {/if}
-
- var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
- tree.add(class_trees);
-
- var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
- tree.add(elements);
-
- var parent_node;
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].hasinterfaces}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
- {if $info[p].hasclasses}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
-
- {if $info[p].functions}
- var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- tree_function.add(fic);
- {/section}
-
- tree.add(tree_function);
- {/if}
-
- {if $info[p].files}
- var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- tree_file.add(file);
- {/section}
-
- tree.add(tree_file);
- {/if}
-
- {else}
- {if $info[p].subpackagetutorial}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags}</span>', '{$info[p].subpackagetutorialnoa}');
- {else}
- var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc|escape:"quotes"}');
- {/if}
-
- {if $info[p].tutorials}
- var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
- tree.add(tree_tutorial);
-
- {if $info[p].tutorials.pkg}
- var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.cls}
- var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- {/if}
-
- {if $info[p].tutorials.proc}
- var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
- tree_tutorial.add(tree_inner_tutorial);
-
- parent_node = tree_inner_tutorial;
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- {/if}
- {/if}
-
- {if $info[p].hasinterfaces}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
- {if $info[p].hasclasses}
- {if $info[p].classes}
- var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
-
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
- tree_classe.add(classe);
- {/if}
- {/section}
-
- tree.add(tree_classe);
- {/if}
- {/if}
-
- {if $info[p].functions}
- var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
- subpackagetree_function.add(fic);
- {/section}
-
- subpackagetree.add(subpackagetree_function);
- {/if}
-
- {if $info[p].files}
- var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
-
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
- subpackagetree_file.add(file);
- {/section}
-
- subpackagetree.add(subpackagetree_file);
- {/if}
-
- tree.add(subpackagetree);
- {/if}
-{/section}
-
-document.write(tree);
-{rdelim}
-</script>
-</div>
-<p class="notes">
- Generated by
- <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
-</p>
-</body>
-</html>
+{include file="header.tpl" top2=true}
+<h3 class="package-title">{$info.0.package}</h3>
+<div class="tree">
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=p loop=$info}
+ {if $info[p].subpackage == ""}
+ var tree = new WebFXTree('<span class="package">{$info.0.package}</span>');
+ tree.setBehavior('classic');
+
+ {if $hastodos}
+ var todos = new WebFXTreeItem('To-do List', '{$todolink}');
+ tree.add(todos);
+ {/if}
+
+ var class_trees = new WebFXTreeItem('Class trees', '{$classtreepage}.html');
+ tree.add(class_trees);
+
+ var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
+ tree.add(elements);
+
+ var parent_node;
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].hasinterfaces}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+ {if $info[p].hasclasses}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+
+ {if $info[p].functions}
+ var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ tree_function.add(fic);
+ {/section}
+
+ tree.add(tree_function);
+ {/if}
+
+ {if $info[p].files}
+ var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ tree_file.add(file);
+ {/section}
+
+ tree.add(tree_file);
+ {/if}
+
+ {else}
+ {if $info[p].subpackagetutorial}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackagetutorialtitle|strip_tags}</span>', '{$info[p].subpackagetutorialnoa}');
+ {else}
+ var subpackagetree = new WebFXTreeItem('<span class="sub-package">{$info[p].subpackage}</span>', '{$packagedoc|escape:"quotes"}');
+ {/if}
+
+ {if $info[p].tutorials}
+ var tree_tutorial = new WebFXTreeItem('Tutorial(s)/Manual(s)', '');
+ tree.add(tree_tutorial);
+
+ {if $info[p].tutorials.pkg}
+ var tree_inner_tutorial = new WebFXTreeItem('Package-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ var tree_inner_tutorial = new WebFXTreeItem('Class-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ var tree_inner_tutorial = new WebFXTreeItem('Function-level', '');
+ tree_tutorial.add(tree_inner_tutorial);
+
+ parent_node = tree_inner_tutorial;
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ {/if}
+ {/if}
+
+ {if $info[p].hasinterfaces}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Interface(s)', '{$packagedoc}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+ {if $info[p].hasclasses}
+ {if $info[p].classes}
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title|escape:"quotes"}', '{$info[p].classes[class].link|escape:"quotes"}');
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+
+ tree.add(tree_classe);
+ {/if}
+ {/if}
+
+ {if $info[p].functions}
+ var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title|escape:"quotes"}', '{$info[p].functions[nonclass].link|escape:"quotes"}');
+ subpackagetree_function.add(fic);
+ {/section}
+
+ subpackagetree.add(subpackagetree_function);
+ {/if}
+
+ {if $info[p].files}
+ var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc|escape:"quotes"}');
+
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title|escape:"quotes"}', '{$info[p].files[nonclass].link|escape:"quotes"}');
+ subpackagetree_file.add(file);
+ {/section}
+
+ subpackagetree.add(subpackagetree_file);
+ {/if}
+
+ tree.add(subpackagetree);
+ {/if}
+{/section}
+
+document.write(tree);
+{rdelim}
+</script>
+</div>
+<p class="notes">
+ Generated by
+ <a href="{$phpdocwebsite}" target="_blank">phpDocumentor <span class="field">{$phpdocversion}</span></a>
+</p>
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/lib/classTree.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/lib/classTree.js
index 5989426f08..ebb3fb4a77 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/lib/classTree.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/lib/classTree.js
@@ -1,454 +1,454 @@
-/*----------------------------------------\
-| Cross Browser Tree Widget 1.1 |
-|-----------------------------------------|
-| Created by Emil A. Eklund (eae@eae.net) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------|
-| This script is provided as is without |
-| any warranty whatsoever. It may be used |
-| free of charge for non commerical sites |
-| For commerical use contact the author |
-| of this script for further details. |
-|-----------------------------------------|
-| Created 2000-12-11 | Updated 2001-09-06 |
-\----------------------------------------*/
-
-var webFXTreeConfig = {
- rootIcon : 'media/images/empty.png',
- openRootIcon : 'media/images/empty.png',
- folderIcon : 'media/images/empty.png',
- openFolderIcon : 'media/images/empty.png',
- fileIcon : 'media/images/empty.png',
- iIcon : 'media/images/I.png',
- lIcon : 'media/images/L.png',
- lMinusIcon : 'media/images/Lminus.png',
- lPlusIcon : 'media/images/Lplus.png',
- tIcon : 'media/images/T.png',
- tMinusIcon : 'media/images/Tminus.png',
- tPlusIcon : 'media/images/Tplus.png',
- blankIcon : 'media/images/blank.png',
- defaultText : 'Tree Item',
- defaultAction : 'javascript:void(0);',
- defaultTarget : 'right',
- defaultBehavior : 'classic'
-};
-
-var webFXTreeHandler = {
- idCounter : 0,
- idPrefix : "webfx-tree-object-",
- all : {},
- behavior : null,
- selected : null,
- getId : function() { return this.idPrefix + this.idCounter++; },
- toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
- select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
- focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
- blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
- keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
- cookies : new WebFXCookie()
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
- if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
- document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
- if (this.cookies) {
- var start = this.cookies.indexOf(' ' + key + '=');
- if (start == -1) { return null; }
- var end = this.cookies.indexOf(";", start);
- if (end == -1) { end = this.cookies.length; }
- end -= start;
- var cookie = this.cookies.substr(start,end);
- return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
- }
- else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction, sTarget) {
- this.childNodes = [];
- this.id = webFXTreeHandler.getId();
- this.text = sText || webFXTreeConfig.defaultText;
- this.action = sAction || webFXTreeConfig.defaultAction;
- this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
- this._last = false;
- webFXTreeHandler.all[this.id] = this;
-}
-
-WebFXTreeAbstractNode.prototype.add = function (node) {
- node.parentNode = this;
- this.childNodes[this.childNodes.length] = node;
- var root = this;
- if (this.childNodes.length >=2) {
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- while (root.parentNode) { root = root.parentNode; }
- if (root.rendered) {
- if (this.childNodes.length >= 2) {
- document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
- if (this.childNodes[this.childNodes.length -2].folder) {
- this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
- this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
- }
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- this._last = true;
- var foo = this;
- while (foo.parentNode) {
- for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
- if (foo.id == foo.parentNode.childNodes[i].id) { break; }
- }
- if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
- else { foo.parentNode._last = false; }
- foo = foo.parentNode;
- }
- document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
- if ((!this.folder) && (!this.openIcon)) {
- this.icon = webFXTreeConfig.folderIcon;
- this.openIcon = webFXTreeConfig.openFolderIcon;
- }
- this.folder = true;
- this.indent();
- this.expand();
- }
- return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
- if (this.folder) {
- if (this.open) { this.collapse(); }
- else { this.expand(); }
- }
-}
-
-WebFXTreeAbstractNode.prototype.select = function() {
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
- webFXTreeHandler.selected = this;
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
- document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
- document.getElementById(this.id + '-anchor').style.color = 'menutext';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
- this.open = true;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-}
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
- this.open = false;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-}
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
- this.expandChildren();
- if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
- if ((this.folder) && (this.open)) { this.collapse(); }
- this.collapseChildren();
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
- /*
- * Since we only want to modify items one level below ourself,
- * and since the rightmost indentation position is occupied by
- * the plus icon we set this to -2
- */
- if (lvl == null) { lvl = -2; }
- var state = 0;
- for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
- state = this.childNodes[i].indent(lvl + 1, del, last, level);
- if (state) { return; }
- }
- if (del) {
- if (level >= this._level) {
- if (this.folder) {
- document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
- this.plusIcon = webFXTreeConfig.lPlusIcon;
- this.minusIcon = webFXTreeConfig.lMinusIcon;
- }
- else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
- return 1;
- }
- }
- var foo = document.getElementById(this.id + '-indent-' + lvl);
- if (foo) {
- if ((del) && (last)) { foo._last = true; }
- if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
- else { foo.src = webFXTreeConfig.iIcon; }
- }
- return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- this.icon = sIcon || webFXTreeConfig.rootIcon;
- this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
- /* Defaults to open */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
- this.folder = true;
- this.rendered = false;
- if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
- this.targetWindow = 'right';
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
- webFXTreeHandler.behavior = sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
- return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
- if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
- else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
- this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
- return null;
-}
-
-WebFXTree.prototype.getLast = function() {
- return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
- if (key == 39) { this.expand(); return false; }
- if (key == 37) { this.collapse(); return false; }
- if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
- return true;
-}
-
-WebFXTree.prototype.toString = function() {
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i, this.childNodes.length);
- }
- str += "</div>";
- this.rendered = true;
- return str;
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- /* Defaults to close */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
- if (eParent) { eParent.add(this); }
- if (sIcon) { this.icon = sIcon; }
- if (sOpenIcon) { this.openIcon = sOpenIcon; }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
- var parentNode = this.parentNode;
- var prevSibling = this.getPreviousSibling(true);
- var nextSibling = this.getNextSibling(true);
- var folder = this.parentNode.folder;
- var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
- this.getPreviousSibling().focus();
- this._remove();
- if (parentNode.childNodes.length == 0) {
- parentNode.folder = false;
- parentNode.open = false;
- }
- if (last) {
- if (parentNode.id == prevSibling.id) {
- document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
- }
- else { }
- }
- if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
- parentNode.indent(null, true, last, this._level);
- }
- if (document.getElementById(prevSibling.id + '-plus')) {
- if (nextSibling) {
- if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
- else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
- else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
-}
-
-WebFXTreeItem.prototype._remove = function() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
- this.childNodes[i]._remove();
- }
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this.id == this.parentNode.childNodes[i].id) {
- for (var j = i; j < this.parentNode.childNodes.length; j++) {
- this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
- }
- this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
- if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
- }
- }
- webFXTreeHandler.all[this.id] = null;
- if (document.getElementById(this.id)) {
- document.getElementById(this.id).innerHTML = "";
- document.getElementById(this.id).removeNode();
- }
-}
-
-WebFXTreeItem.prototype.expand = function() {
- this.doExpand();
- document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
- document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
- return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
- if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
- else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
- else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (i == 0) { return this.parentNode; }
- else {
- if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
- else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
- if ((key == 39) && (this.folder)) {
- if (!this.open) { this.expand(); return false; }
- else { this.getFirst().select(); return false; }
- }
- else if (key == 37) {
- if (this.open) { this.collapse(); return false; }
- else { this.parentNode.select(); return false; }
- }
- else if (key == 40) {
- if (this.open) { this.getFirst().select(); return false; }
- else {
- var sib = this.getNextSibling();
- if (sib) { sib.select(); return false; }
- } }
- else if (key == 38) { this.getPreviousSibling().select(); return false; }
- return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
- var foo = this.parentNode;
- var indent = '';
- if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
- var i = 0;
- while (foo.parentNode) {
- foo = foo.parentNode;
- indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
- i++;
- }
- this._level = i;
- if (this.childNodes.length) { this.folder = 1; }
- else { this.open = false; }
- if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
- if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
- if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
- }
- else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
- var label = this.text;
- label = label.replace('<', '<');
- label = label.replace('>', '>');
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += indent;
- str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
- str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i,this.childNodes.length);
- }
- str += "</div>";
- this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
- this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
- return str;
+/*----------------------------------------\
+| Cross Browser Tree Widget 1.1 |
+|-----------------------------------------|
+| Created by Emil A. Eklund (eae@eae.net) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------|
+| This script is provided as is without |
+| any warranty whatsoever. It may be used |
+| free of charge for non commerical sites |
+| For commerical use contact the author |
+| of this script for further details. |
+|-----------------------------------------|
+| Created 2000-12-11 | Updated 2001-09-06 |
+\----------------------------------------*/
+
+var webFXTreeConfig = {
+ rootIcon : 'media/images/empty.png',
+ openRootIcon : 'media/images/empty.png',
+ folderIcon : 'media/images/empty.png',
+ openFolderIcon : 'media/images/empty.png',
+ fileIcon : 'media/images/empty.png',
+ iIcon : 'media/images/I.png',
+ lIcon : 'media/images/L.png',
+ lMinusIcon : 'media/images/Lminus.png',
+ lPlusIcon : 'media/images/Lplus.png',
+ tIcon : 'media/images/T.png',
+ tMinusIcon : 'media/images/Tminus.png',
+ tPlusIcon : 'media/images/Tplus.png',
+ blankIcon : 'media/images/blank.png',
+ defaultText : 'Tree Item',
+ defaultAction : 'javascript:void(0);',
+ defaultTarget : 'right',
+ defaultBehavior : 'classic'
+};
+
+var webFXTreeHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-tree-object-",
+ all : {},
+ behavior : null,
+ selected : null,
+ getId : function() { return this.idPrefix + this.idCounter++; },
+ toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+ select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+ focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+ blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+ keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
+ cookies : new WebFXCookie()
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+ if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+ document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+ if (this.cookies) {
+ var start = this.cookies.indexOf(' ' + key + '=');
+ if (start == -1) { return null; }
+ var end = this.cookies.indexOf(";", start);
+ if (end == -1) { end = this.cookies.length; }
+ end -= start;
+ var cookie = this.cookies.substr(start,end);
+ return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+ }
+ else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction, sTarget) {
+ this.childNodes = [];
+ this.id = webFXTreeHandler.getId();
+ this.text = sText || webFXTreeConfig.defaultText;
+ this.action = sAction || webFXTreeConfig.defaultAction;
+ this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
+ this._last = false;
+ webFXTreeHandler.all[this.id] = this;
+}
+
+WebFXTreeAbstractNode.prototype.add = function (node) {
+ node.parentNode = this;
+ this.childNodes[this.childNodes.length] = node;
+ var root = this;
+ if (this.childNodes.length >=2) {
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ while (root.parentNode) { root = root.parentNode; }
+ if (root.rendered) {
+ if (this.childNodes.length >= 2) {
+ document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
+ if (this.childNodes[this.childNodes.length -2].folder) {
+ this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
+ this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
+ }
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ this._last = true;
+ var foo = this;
+ while (foo.parentNode) {
+ for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+ if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+ }
+ if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
+ else { foo.parentNode._last = false; }
+ foo = foo.parentNode;
+ }
+ document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
+ if ((!this.folder) && (!this.openIcon)) {
+ this.icon = webFXTreeConfig.folderIcon;
+ this.openIcon = webFXTreeConfig.openFolderIcon;
+ }
+ this.folder = true;
+ this.indent();
+ this.expand();
+ }
+ return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+ if (this.folder) {
+ if (this.open) { this.collapse(); }
+ else { this.expand(); }
+ }
+}
+
+WebFXTreeAbstractNode.prototype.select = function() {
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+ webFXTreeHandler.selected = this;
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
+ document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
+ document.getElementById(this.id + '-anchor').style.color = 'menutext';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
+ this.open = true;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+}
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+ this.open = false;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+}
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+ this.expandChildren();
+ if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+ if ((this.folder) && (this.open)) { this.collapse(); }
+ this.collapseChildren();
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
+ /*
+ * Since we only want to modify items one level below ourself,
+ * and since the rightmost indentation position is occupied by
+ * the plus icon we set this to -2
+ */
+ if (lvl == null) { lvl = -2; }
+ var state = 0;
+ for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+ state = this.childNodes[i].indent(lvl + 1, del, last, level);
+ if (state) { return; }
+ }
+ if (del) {
+ if (level >= this._level) {
+ if (this.folder) {
+ document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+ this.plusIcon = webFXTreeConfig.lPlusIcon;
+ this.minusIcon = webFXTreeConfig.lMinusIcon;
+ }
+ else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+ return 1;
+ }
+ }
+ var foo = document.getElementById(this.id + '-indent-' + lvl);
+ if (foo) {
+ if ((del) && (last)) { foo._last = true; }
+ if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
+ else { foo.src = webFXTreeConfig.iIcon; }
+ }
+ return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ this.icon = sIcon || webFXTreeConfig.rootIcon;
+ this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
+ /* Defaults to open */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+ this.folder = true;
+ this.rendered = false;
+ if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+ this.targetWindow = 'right';
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+ webFXTreeHandler.behavior = sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+ return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+ if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+ else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+ this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+ return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+ return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+ if (key == 39) { this.expand(); return false; }
+ if (key == 37) { this.collapse(); return false; }
+ if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
+ return true;
+}
+
+WebFXTree.prototype.toString = function() {
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i, this.childNodes.length);
+ }
+ str += "</div>";
+ this.rendered = true;
+ return str;
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ /* Defaults to close */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+ if (eParent) { eParent.add(this); }
+ if (sIcon) { this.icon = sIcon; }
+ if (sOpenIcon) { this.openIcon = sOpenIcon; }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+ var parentNode = this.parentNode;
+ var prevSibling = this.getPreviousSibling(true);
+ var nextSibling = this.getNextSibling(true);
+ var folder = this.parentNode.folder;
+ var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+ this.getPreviousSibling().focus();
+ this._remove();
+ if (parentNode.childNodes.length == 0) {
+ parentNode.folder = false;
+ parentNode.open = false;
+ }
+ if (last) {
+ if (parentNode.id == prevSibling.id) {
+ document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
+ }
+ else { }
+ }
+ if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
+ parentNode.indent(null, true, last, this._level);
+ }
+ if (document.getElementById(prevSibling.id + '-plus')) {
+ if (nextSibling) {
+ if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
+ else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+ else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+}
+
+WebFXTreeItem.prototype._remove = function() {
+ for (var i = this.childNodes.length - 1; i >= 0; i--) {
+ this.childNodes[i]._remove();
+ }
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this.id == this.parentNode.childNodes[i].id) {
+ for (var j = i; j < this.parentNode.childNodes.length; j++) {
+ this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
+ }
+ this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
+ if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+ }
+ }
+ webFXTreeHandler.all[this.id] = null;
+ if (document.getElementById(this.id)) {
+ document.getElementById(this.id).innerHTML = "";
+ document.getElementById(this.id).removeNode();
+ }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+ this.doExpand();
+ document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+ document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+ return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+ if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+ else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+ else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (i == 0) { return this.parentNode; }
+ else {
+ if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+ else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+ if ((key == 39) && (this.folder)) {
+ if (!this.open) { this.expand(); return false; }
+ else { this.getFirst().select(); return false; }
+ }
+ else if (key == 37) {
+ if (this.open) { this.collapse(); return false; }
+ else { this.parentNode.select(); return false; }
+ }
+ else if (key == 40) {
+ if (this.open) { this.getFirst().select(); return false; }
+ else {
+ var sib = this.getNextSibling();
+ if (sib) { sib.select(); return false; }
+ } }
+ else if (key == 38) { this.getPreviousSibling().select(); return false; }
+ return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+ var foo = this.parentNode;
+ var indent = '';
+ if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+ var i = 0;
+ while (foo.parentNode) {
+ foo = foo.parentNode;
+ indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+ i++;
+ }
+ this._level = i;
+ if (this.childNodes.length) { this.folder = 1; }
+ else { this.open = false; }
+ if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+ if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+ if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+ }
+ else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+ var label = this.text;
+ label = label.replace('<', '<');
+ label = label.replace('>', '>');
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += indent;
+ str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
+ str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i,this.childNodes.length);
+ }
+ str += "</div>";
+ this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+ this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+ return str;
} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/stylesheet.css b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/stylesheet.css
index 80cf8da92e..ed1e23987d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/stylesheet.css
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/media/stylesheet.css
@@ -506,8 +506,8 @@ dd {
padding-left: 0em
}
-/*------------------------------------------------------------------------------
- webfx-tree
+/*------------------------------------------------------------------------------
+ webfx-tree
------------------------------------------------------------------------------*/
.webfx-tree-container {
margin: 0px;
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/method.tpl
index df271c8d82..06d57a1202 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/method.tpl
@@ -1,149 +1,149 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/ric.tpl
index 9d0ef3e114..ad792475fd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<div align="center"><h1>{$name}</h1></div>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<div align="center"><h1>{$name}</h1></div>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_tree.tpl
index 5ada4ec15d..40d9a4ffbd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/tutorial_tree.tpl
@@ -1,8 +1,8 @@
- var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
-
-{if $haskids}
- var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
- parent_node = a{$name|replace:"-":"_"}node;
- {$kids}
- parent_node = a{$name|replace:"-":"_"}_old_parent_node;
-{/if}
+ var a{$name|replace:"-":"_"}node = new WebFXTreeItem('{$main.title|strip_tags|escape:"quotes"}','{$main.link}', parent_node);
+
+{if $haskids}
+ var a{$name|replace:"-":"_"}_old_parent_node = parent_node;
+ parent_node = a{$name|replace:"-":"_"}node;
+ {$kids}
+ parent_node = a{$name|replace:"-":"_"}_old_parent_node;
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/var.tpl
index f11f3be974..fccf689213 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/DOM/phphtmllib/templates/var.tpl
@@ -1,92 +1,92 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl
index 5aa837851f..bb5378f646 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl
@@ -1,430 +1,430 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
-
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
-</div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+</div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl
index d5e26dfab7..c22ba37ddf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl
index c78bc575d5..eb3f670de2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl
@@ -1,159 +1,159 @@
-{include file="header.tpl" top2=true}
-<div class="package-title">{$package}</div>
-<div class="package-details">
-
- <dl class="tree">
-
- <dt class="folder-title">Description</dt>
- <dd>
- <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
- <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
- {if $hastodos}
- <a href="{$todolink}" target="right">Todo List</a><br />
- {/if}
- </dd>
-
- {section name=p loop=$info}
-
- {if $info[p].subpackage == ""}
-
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
- {if $info[p].hasinterfaces}
- <dt class="folder-title">Interfaces</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].hasclasses}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
-
- {else}
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
-
- <dt class="sub-package">{$info[p].subpackage}</dt>
- <dd>
- <dl class="tree">
- {if $info[p].subpackagetutorial}
- <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
- {/if}
- {if $info[p].classes}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
- </dl>
- </dd>
-
- {/if}
-
- {/section}
- </dl>
-</div>
-<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
-</BODY>
-</HTML>
+{include file="header.tpl" top2=true}
+<div class="package-title">{$package}</div>
+<div class="package-details">
+
+ <dl class="tree">
+
+ <dt class="folder-title">Description</dt>
+ <dd>
+ <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
+ <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
+ {if $hastodos}
+ <a href="{$todolink}" target="right">Todo List</a><br />
+ {/if}
+ </dd>
+
+ {section name=p loop=$info}
+
+ {if $info[p].subpackage == ""}
+
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+ {if $info[p].hasinterfaces}
+ <dt class="folder-title">Interfaces</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].hasclasses}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+
+ {else}
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+
+ <dt class="sub-package">{$info[p].subpackage}</dt>
+ <dd>
+ <dl class="tree">
+ {if $info[p].subpackagetutorial}
+ <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
+ {/if}
+ {if $info[p].classes}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+ </dl>
+ </dd>
+
+ {/if}
+
+ {/section}
+ </dl>
+</div>
+<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
+</BODY>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl
index dad8a89436..3ef9ee53aa 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl
@@ -1,151 +1,151 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static method {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static method {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl
index a2a296012a..fbe7eda34c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl
@@ -1,43 +1,43 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- {assign var="last_package_name" value=""}
- {section name=p loop=$packages}
- {if $last_package_name != ""} | {/if}
- <a href="{$packages[p].link}" target="left_bottom">{$packages[p].title}</a>
- {assign var="last_package_name" value=$packages[p].title}
- {/section}
- {/if}
- </td>
- </tr>
- </table>
- </div>
- </div>
- </body>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ {assign var="last_package_name" value=""}
+ {section name=p loop=$packages}
+ {if $last_package_name != ""} | {/if}
+ <a href="{$packages[p].link}" target="left_bottom">{$packages[p].title}</a>
+ {assign var="last_package_name" value=$packages[p].title}
+ {/section}
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ </body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl
index d5a1835594..617b565411 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl
@@ -1,6 +1,6 @@
-<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
-{if $haskids}
-<div style="margin-left: 1em">
- {$kids}
-</div>
-{/if}
+<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
+{if $haskids}
+<div style="margin-left: 1em">
+ {$kids}
+</div>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl
index ab773fb049..607d768163 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl
@@ -1,91 +1,91 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/options.ini
index bc57cb5f83..64638d09aa 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/options.ini
@@ -1,576 +1,576 @@
-preservedocbooktags = false
-
-;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
-[highlightSourceTokens]
-;; format:
-;; T_CONSTANTNAME = open
-;; /T_CONSTANTNAME = close
-
-T_INCLUDE = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-example! = 0
-
-formalpara = p
-
-graphic = img
-graphic->fileref = src
-graphic/ =
-
-function =
-/function = ()
-
-important = strong
-
-informalequation = blockquote
-
-informalexample = div
-
-inlineequation = em
-
-itemizedlist = ul
-
-listitem = li
-
-literal = code
-
-literallayout = span
-
-option = " "
-/option =
-
-orderedlist = ol
-
-para = p
-
-programlisting = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+example! = 0
+
+formalpara = p
+
+graphic = img
+graphic->fileref = src
+graphic/ =
+
+function =
+/function = ()
+
+important = strong
+
+informalequation = blockquote
+
+informalexample = div
+
+inlineequation = em
+
+itemizedlist = ul
+
+listitem = li
+
+literal = code
+
+literallayout = span
+
+option = " "
+/option =
+
+orderedlist = ol
+
+para = p
+
+programlisting = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/basicindex.tpl
index 78eb5787aa..fc00a96cb4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/basicindex.tpl
@@ -1,57 +1,57 @@
-<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")}
- <img src="{$subdir}media/images/{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="var-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Global")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="var-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Method")}
- <img src="{$subdir}media/images/{if $index[index].index[contents].constructor}Constructor{elseif $index[index].index[contents].destructor}Destructor{else}{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}{/if}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="method-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Function")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="method-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Constant")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="const-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Page") || ($index[index].index[contents].title == "Include")}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- <span class="include-title">{$index[index].index[contents].name}</span>
- {elseif ($index[index].index[contents].title == "Class")}
- <img src="{$subdir}media/images/{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- {$index[index].index[contents].name}
- {else}
- <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
- {$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>
+<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")}
+ <img src="{$subdir}media/images/{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="var-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Global")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="var-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Method")}
+ <img src="{$subdir}media/images/{if $index[index].index[contents].constructor}Constructor{elseif $index[index].index[contents].destructor}Destructor{else}{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}{/if}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="method-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Function")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="method-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Constant")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="const-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Page") || ($index[index].index[contents].title == "Include")}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ <span class="include-title">{$index[index].index[contents].name}</span>
+ {elseif ($index[index].index[contents].title == "Class")}
+ <img src="{$subdir}media/images/{if $index[index].index[contents].abstract}Abstract{/if}{if $index[index].index[contents].access == 'private'}Private{/if}{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ {$index[index].index[contents].name}
+ {else}
+ <img src="{$subdir}media/images/{$index[index].index[contents].title}.png" alt="{$index[index].index[contents].title}" title="{$index[index].index[contents].title}" /></title>
+ {$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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/class.tpl
index 2162139792..7a46002e03 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/class.tpl
@@ -1,437 +1,437 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name"><img src="{$subdir}media/images/{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if}{if $is_interface}Interface{else}Class{/if}_logo.png"
- alt="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
- title="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
- style="vertical-align: middle">{if $is_interface}Interface{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts}
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em; white-space: nowrap">
- <img src="{$subdir}media/images/{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if}Class.png"
- alt="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
- title="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
- style="vertical-align: center"/>
- {$children[kids].link}
- </td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- <img src="{$subdir}media/images/StaticVariable.png" alt=" " />
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" alt=" " />
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- <img src="{$subdir}media/images/StaticMethod.png" alt=" "/>
- {if $methods[methods].function_return}
- static <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{elseif $methods[methods].access == 'private'}{if $methods[methods].abstract}Abstract{/if}PrivateMethod{else}{if $methods[methods].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <img src="{$subdir}media/images/{if $ivars[ivars].ivars[ivars2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <img src="{$subdir}media/images/{if $imethods[imethods].imethods[im2].constructor}Constructor{elseif $imethods[imethods].imethods[im2].destructor}Destructor{elseif $imethods[imethods].imethods[im2].access == 'private'}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}PrivateMethod{else}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_consts'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name"><img src="{$subdir}media/images/{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if}{if $is_interface}Interface{else}Class{/if}_logo.png"
+ alt="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
+ title="{if $abstract}{if $access == 'private'}AbstractPrivate{else}Abstract{/if}{else}{if $access == 'private'}Private{/if}{/if} Class"
+ style="vertical-align: middle">{if $is_interface}Interface{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em; white-space: nowrap">
+ <img src="{$subdir}media/images/{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if}Class.png"
+ alt="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
+ title="{if $children[kids].abstract}Abstract{/if}{if $children[kids].access == 'private'}Private{/if} class"
+ style="vertical-align: center"/>
+ {$children[kids].link}
+ </td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ <img src="{$subdir}media/images/StaticVariable.png" alt=" " />
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" alt=" " />
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ <img src="{$subdir}media/images/StaticMethod.png" alt=" "/>
+ {if $methods[methods].function_return}
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{elseif $methods[methods].access == 'private'}{if $methods[methods].abstract}Abstract{/if}PrivateMethod{else}{if $methods[methods].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <img src="{$subdir}media/images/{if $ivars[ivars].ivars[ivars2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <img src="{$subdir}media/images/{if $imethods[imethods].imethods[im2].constructor}Constructor{elseif $imethods[imethods].imethods[im2].destructor}Destructor{elseif $imethods[imethods].imethods[im2].access == 'private'}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}PrivateMethod{else}{if $imethods[imethods].imethods[im2].abstract}Abstract{/if}Method{/if}.png" alt=" "/>
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_consts'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/define.tpl
index bf9134c041..94078960a8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/define.tpl
@@ -1,25 +1,25 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Constant.png" />
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Constant.png" />
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/function.tpl
index 4b66b63fd4..e62a98ae47 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Function.png" />
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Function.png" />
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/global.tpl
index fea80726bf..d37bda37e9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/global.tpl
@@ -1,27 +1,27 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Global.png" />
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Global.png" />
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/header.tpl
index d5e26dfab7..c22ba37ddf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/header.tpl
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/include.tpl
index 3ef8ca9f7c..f264afd390 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/include.tpl
@@ -1,17 +1,17 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <img src="{$subdir}media/images/Page.png" alt=" " />
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <img src="{$subdir}media/images/Page.png" alt=" " />
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/left_frame.tpl
index 7cb1a7574f..fe79e52122 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/left_frame.tpl
@@ -1,159 +1,159 @@
-{include file="header.tpl" top2=true}
-<div class="package-title">{$package}</div>
-<div class="package-details">
-
- <dl class="tree">
-
- <dt class="folder-title">Description</dt>
- <dd>
- <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
- <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
- {if $hastodos}
- <a href="{$todolink}" target="right">Todo List</a><br />
- {/if}
- </dd>
-
- {section name=p loop=$info}
-
- {if $info[p].subpackage == ""}
-
- {if $info[p].tutorials}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/tutorial_folder.png" alt=" ">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/package_folder.png" alt=" ">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
- {if $info[p].hasinterfaces}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Interfaces</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- <dd><img class="tree-icon" src="{$subdir}media/images/Interface.png" alt="Interface"><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].hasclasses}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Classes</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- <dd><img class="tree-icon" src="{$subdir}media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png" alt="Class"><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><img class="tree-icon" src="{$subdir}media/images/Function.png" alt="Function"><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/folder.png" alt=" ">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><img class="tree-icon" src="{$subdir}media/images/Page.png" alt="File"><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
-
- {else}
- {if $info[p].tutorials}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/tutorial_folder.png" alt=" ">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/package_folder.png" alt=" ">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
-
- <dt class="sub-package"><img class="tree-icon" src="{$subdir}media/images/package.png" alt="Sub-package">{$info[p].subpackage}</dt>
- <dd>
- <dl class="tree">
- {if $info[p].subpackagetutorial}
- <div><img class="tree-icon" src="{$subdir}media/images/tutorial.png" alt="Tutorial"><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
- {/if}
- {if $info[p].classes}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Classes</dt>
- {section name=class loop=$info[p].classes}
- <dd><img class="tree-icon" src="{$subdir}media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png" alt="Class"><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><img class="tree-icon" src="{$subdir}media/images/Function.png" alt="Function"><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/folder.png" alt=" ">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><img class="tree-icon" src="{$subdir}media/images/Page.png" alt="File"><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
- </dl>
- </dd>
-
- {/if}
-
- {/section}
- </dl>
-</div>
-<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
-</BODY>
-</HTML>
+{include file="header.tpl" top2=true}
+<div class="package-title">{$package}</div>
+<div class="package-details">
+
+ <dl class="tree">
+
+ <dt class="folder-title">Description</dt>
+ <dd>
+ <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
+ <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
+ {if $hastodos}
+ <a href="{$todolink}" target="right">Todo List</a><br />
+ {/if}
+ </dd>
+
+ {section name=p loop=$info}
+
+ {if $info[p].subpackage == ""}
+
+ {if $info[p].tutorials}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/tutorial_folder.png" alt=" ">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/package_folder.png" alt=" ">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+ {if $info[p].hasinterfaces}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Interfaces</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ <dd><img class="tree-icon" src="{$subdir}media/images/Interface.png" alt="Interface"><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].hasclasses}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ <dd><img class="tree-icon" src="{$subdir}media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png" alt="Class"><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><img class="tree-icon" src="{$subdir}media/images/Function.png" alt="Function"><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/folder.png" alt=" ">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><img class="tree-icon" src="{$subdir}media/images/Page.png" alt="File"><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+
+ {else}
+ {if $info[p].tutorials}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/tutorial_folder.png" alt=" ">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/package_folder.png" alt=" ">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+
+ <dt class="sub-package"><img class="tree-icon" src="{$subdir}media/images/package.png" alt="Sub-package">{$info[p].subpackage}</dt>
+ <dd>
+ <dl class="tree">
+ {if $info[p].subpackagetutorial}
+ <div><img class="tree-icon" src="{$subdir}media/images/tutorial.png" alt="Tutorial"><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
+ {/if}
+ {if $info[p].classes}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/class_folder.png" alt=" ">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ <dd><img class="tree-icon" src="{$subdir}media/images/{if $info[p].classes[class].abstract}Abstract{/if}{if $info[p].classes[class].access == 'private'}Private{/if}Class.png" alt="Class"><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/function_folder.png" alt=" ">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><img class="tree-icon" src="{$subdir}media/images/Function.png" alt="Function"><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title"><img class="tree-icon" src="{$subdir}media/images/folder.png" alt=" ">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><img class="tree-icon" src="{$subdir}media/images/Page.png" alt="File"><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+ </dl>
+ </dd>
+
+ {/if}
+
+ {/section}
+ </dl>
+</div>
+<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
+</BODY>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/method.tpl
index c732184d89..413cc5ea47 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/method.tpl
@@ -1,151 +1,151 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <img src="{$subdir}media/images/StaticMethod.png" />
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{else}{if $methods[methods].abstract}Abstract{/if}{if $methods[methods].access == 'private'}Private{/if}Method{/if}.png" />
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <img src="{$subdir}media/images/StaticMethod.png" />
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{else}{if $methods[methods].abstract}Abstract{/if}{if $methods[methods].access == 'private'}Private{/if}Method{/if}.png" />
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/page.tpl
index 8e10bf9dbd..2cffc22dbc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/page.tpl
@@ -1,214 +1,214 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name"><img src="{$subdir}media/images/Page_logo.png" alt="File" style="vertical-align: middle">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
- <img src="{$subdir}media/images/{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if}Class.png"
- alt="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"
- title="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"/>
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name"><img src="{$subdir}media/images/Page_logo.png" alt="File" style="vertical-align: middle">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
+ <img src="{$subdir}media/images/{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if}Class.png"
+ alt="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"
+ title="{if $classes[classes].abstract}Abstract{/if}{if $classes[classes].access == 'private'}Private{/if} class"/>
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/ric.tpl
index 9d0ef3e114..ad792475fd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<div align="center"><h1>{$name}</h1></div>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<div align="center"><h1>{$name}</h1></div>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/top_frame.tpl
index b07e54da49..69beb10c98 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_nav.tpl
index 17eea714ed..3cd7893d34 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}"><img src="{$subdir}media/images/previous_button.png" alt="Previous"></a>
- {else}
- <span class="disabled"><img src="{$subdir}media/images/previous_button_disabled.png" alt="Previous"></span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}"><img src="{$subdir}media/images/up_button.png" alt="Up"></a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}"><img src="{$subdir}media/images/next_button.png" alt="Next"></a>
- {else}
- <span class="disabled"><img src="{$subdir}media/images/next_button_disabled.png" alt="Next"></span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}"><img src="{$subdir}media/images/previous_button.png" alt="Previous"></a>
+ {else}
+ <span class="disabled"><img src="{$subdir}media/images/previous_button_disabled.png" alt="Previous"></span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}"><img src="{$subdir}media/images/up_button.png" alt="Up"></a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}"><img src="{$subdir}media/images/next_button.png" alt="Next"></a>
+ {else}
+ <span class="disabled"><img src="{$subdir}media/images/next_button_disabled.png" alt="Next"></span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_tree.tpl
index 3d0e59147b..18c8b05a9e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/tutorial_tree.tpl
@@ -1,6 +1,6 @@
-<div><img class="tree-icon" src="{$subdir}media/images/tutorial.png" alt="Tutorial"><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
-{if $haskids}
-<div style="margin-left: 19px">
- {$kids}
-</div>
-{/if}
+<div><img class="tree-icon" src="{$subdir}media/images/tutorial.png" alt="Tutorial"><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
+{if $haskids}
+<div style="margin-left: 19px">
+ {$kids}
+</div>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/var.tpl
index 96b4e017ed..1da110cce9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/earthli/templates/var.tpl
@@ -1,94 +1,94 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <img src="{$subdir}media/images/{if $vars[vars].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/options.ini
index 525fba2331..fc1211f84d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/options.ini
@@ -1,576 +1,576 @@
-preservedocbooktags = false
-
-;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
-[highlightSourceTokens]
-;; format:
-;; T_CONSTANTNAME = open
-;; /T_CONSTANTNAME = close
-
-T_INCLUDE = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/class.tpl
index c60f4e425b..9ab7c45513 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/class.tpl
@@ -1,429 +1,429 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/header.tpl
index ad045a4dc6..09fc9856c5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/header.tpl
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- {if $top2}
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <style>
- body {ldelim} padding: 1em; {rdelim}
- </style>
- {/if}
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ {if $top2}
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <style>
+ body {ldelim} padding: 1em; {rdelim}
+ </style>
+ {/if}
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/left_frame.tpl
index c78bc575d5..eb3f670de2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/left_frame.tpl
@@ -1,159 +1,159 @@
-{include file="header.tpl" top2=true}
-<div class="package-title">{$package}</div>
-<div class="package-details">
-
- <dl class="tree">
-
- <dt class="folder-title">Description</dt>
- <dd>
- <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
- <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
- {if $hastodos}
- <a href="{$todolink}" target="right">Todo List</a><br />
- {/if}
- </dd>
-
- {section name=p loop=$info}
-
- {if $info[p].subpackage == ""}
-
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
- {if $info[p].hasinterfaces}
- <dt class="folder-title">Interfaces</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].hasclasses}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
-
- {else}
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
-
- <dt class="sub-package">{$info[p].subpackage}</dt>
- <dd>
- <dl class="tree">
- {if $info[p].subpackagetutorial}
- <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
- {/if}
- {if $info[p].classes}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
- </dl>
- </dd>
-
- {/if}
-
- {/section}
- </dl>
-</div>
-<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
-</BODY>
-</HTML>
+{include file="header.tpl" top2=true}
+<div class="package-title">{$package}</div>
+<div class="package-details">
+
+ <dl class="tree">
+
+ <dt class="folder-title">Description</dt>
+ <dd>
+ <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
+ <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
+ {if $hastodos}
+ <a href="{$todolink}" target="right">Todo List</a><br />
+ {/if}
+ </dd>
+
+ {section name=p loop=$info}
+
+ {if $info[p].subpackage == ""}
+
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+ {if $info[p].hasinterfaces}
+ <dt class="folder-title">Interfaces</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].hasclasses}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+
+ {else}
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+
+ <dt class="sub-package">{$info[p].subpackage}</dt>
+ <dd>
+ <dl class="tree">
+ {if $info[p].subpackagetutorial}
+ <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
+ {/if}
+ {if $info[p].classes}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+ </dl>
+ </dd>
+
+ {/if}
+
+ {/section}
+ </dl>
+</div>
+<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
+</BODY>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/method.tpl
index df271c8d82..06d57a1202 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/method.tpl
@@ -1,149 +1,149 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_tree.tpl
index d5a1835594..617b565411 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/tutorial_tree.tpl
@@ -1,6 +1,6 @@
-<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
-{if $haskids}
-<div style="margin-left: 1em">
- {$kids}
-</div>
-{/if}
+<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
+{if $haskids}
+<div style="margin-left: 1em">
+ {$kids}
+</div>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/var.tpl
index f11f3be974..fccf689213 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/l0l33t/templates/var.tpl
@@ -1,92 +1,92 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/class.tpl
index c60f4e425b..9ab7c45513 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/class.tpl
@@ -1,429 +1,429 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/header.tpl
index d5e26dfab7..c22ba37ddf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/header.tpl
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/left_frame.tpl
index c78bc575d5..eb3f670de2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/left_frame.tpl
@@ -1,159 +1,159 @@
-{include file="header.tpl" top2=true}
-<div class="package-title">{$package}</div>
-<div class="package-details">
-
- <dl class="tree">
-
- <dt class="folder-title">Description</dt>
- <dd>
- <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
- <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
- {if $hastodos}
- <a href="{$todolink}" target="right">Todo List</a><br />
- {/if}
- </dd>
-
- {section name=p loop=$info}
-
- {if $info[p].subpackage == ""}
-
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
- {if $info[p].hasinterfaces}
- <dt class="folder-title">Interfaces</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].hasclasses}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
-
- {else}
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
-
- <dt class="sub-package">{$info[p].subpackage}</dt>
- <dd>
- <dl class="tree">
- {if $info[p].subpackagetutorial}
- <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
- {/if}
- {if $info[p].classes}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
- </dl>
- </dd>
-
- {/if}
-
- {/section}
- </dl>
-</div>
-<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
-</BODY>
-</HTML>
+{include file="header.tpl" top2=true}
+<div class="package-title">{$package}</div>
+<div class="package-details">
+
+ <dl class="tree">
+
+ <dt class="folder-title">Description</dt>
+ <dd>
+ <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
+ <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
+ {if $hastodos}
+ <a href="{$todolink}" target="right">Todo List</a><br />
+ {/if}
+ </dd>
+
+ {section name=p loop=$info}
+
+ {if $info[p].subpackage == ""}
+
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+ {if $info[p].hasinterfaces}
+ <dt class="folder-title">Interfaces</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].hasclasses}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+
+ {else}
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+
+ <dt class="sub-package">{$info[p].subpackage}</dt>
+ <dd>
+ <dl class="tree">
+ {if $info[p].subpackagetutorial}
+ <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
+ {/if}
+ {if $info[p].classes}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+ </dl>
+ </dd>
+
+ {/if}
+
+ {/section}
+ </dl>
+</div>
+<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
+</BODY>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/method.tpl
index df271c8d82..06d57a1202 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/method.tpl
@@ -1,149 +1,149 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_tree.tpl
index d5a1835594..617b565411 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/tutorial_tree.tpl
@@ -1,6 +1,6 @@
-<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
-{if $haskids}
-<div style="margin-left: 1em">
- {$kids}
-</div>
-{/if}
+<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
+{if $haskids}
+<div style="margin-left: 1em">
+ {$kids}
+</div>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/var.tpl
index f11f3be974..fccf689213 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpdoc.de/templates/var.tpl
@@ -1,92 +1,92 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/options.ini
index 5df6006734..c785503d63 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/options.ini
@@ -1,507 +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 = <font color="blue">
-/T_ABSTRACT = </font>
-T_CLONE = <font color="blue">
-/T_CLONE = </font>
-T_HALT_COMPILER = <font color="red">
-/T_HALT_COMPILER = </font>
-T_PUBLIC = <font color="blue">
-/T_PUBLIC = </font>
-T_PRIVATE = <font color="blue">
-/T_PRIVATE = </font>
-T_PROTECTED = <font color="blue">
-/T_PROTECTED = </font>
-T_FINAL = <font color="blue">
-/T_FINAL = </font>
-T_IMPLEMENTS = <font color="blue">
-/T_IMPLEMENTS = </font>
-T_CLASS = <font color="blue">
-/T_CLASS = </font>
-T_INTERFACE = <font color="blue">
-/T_INTERFACE = </font>
-T_INCLUDE = <font color="blue">
-/T_INCLUDE = </font>
-T_INCLUDE_ONCE = <font color="blue">
-/T_INCLUDE_ONCE = </font>
-T_REQUIRE_ONCE = <font color="blue">
-/T_REQUIRE_ONCE = </font>
-T_FUNCTION = <font color="blue">
-/T_FUNCTION = </font>
-T_VARIABLE = <strong>
-/T_VARIABLE = </strong>
-T_CONSTANT_ENCAPSED_STRING = <font color="#66cccc">
-/T_CONSTANT_ENCAPSED_STRING = </font>
-T_COMMENT = <font color="green">
-/T_COMMENT = </font>
-T_OBJECT_OPERATOR = <strong>
-/T_OBJECT_OPERATOR = </strong>
-T_RETURN = <font color="blue">
-/T_RETURN = </font>
-T_STATIC = <font color="blue">
-/T_STATIC = </font>
-T_SWITCH = <font color="blue">
-/T_SWITCH = </font>
-T_IF = <font color="blue">
-/T_IF = </font>
-T_FOREACH = <font color="blue">
-/T_FOREACH = </font>
-T_FOR = <font color="blue">
-/T_FOR = </font>
-T_VAR = <font color="blue">
-/T_VAR = </font>
-T_EXTENDS = <font color="blue">
-/T_EXTENDS = </font>
-T_RETURN = <font color="blue">
-/T_RETURN = </font>
-T_GLOBAL = <font color="blue">
-/T_GLOBAL = </font>
-T_DOUBLE_COLON = <strong>
-/T_DOUBLE_COLON = </strong>
-T_OBJECT_OPERATOR = <strong>
-/T_OBJECT_OPERATOR = </strong>
-T_OPEN_TAG = <strong>
-/T_OPEN_TAG = </strong>
-T_CLOSE_TAG = <strong>
-/T_CLOSE_TAG = </strong>
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <strong>
-/@ = </strong>
-& = <strong>
-/& = </strong>
-[ = <strong>
-/[ = </strong>
-] = <strong>
-/] = </strong>
-! = <strong>
-/! = </strong>
-";" = <strong>
-/; = </strong>
-( = <strong>
-/( = </strong>
-) = <strong>
-/) = </strong>
-, = <strong>
-/, = </strong>
-{ = <strong>
-/{ = </strong>
-} = <strong>
-/} = </strong>
-""" = <font color="#66cccc">
-/" = </font>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <font color="#009999">
-/docblock = </font>
-tagphptype = <em>
-/tagphptype = </em>
-tagvarname = <strong>
-/tagvarname = </strong>
-coretag = <strong><font color = "#0099FF">
-/coretag = </font></strong>
-tag = <strong><font color="#009999">
-/tag = </font></strong>
-inlinetag = <em><font color="#0099FF">
-/inlinetag = </font></em>
-internal = <em><font color = "#6699cc">
-/internal = </font></em>
-closetemplate = <strong><font color="blue">
-/closetemplate = </font></strong>
-docblocktemplate = <font color="blue">
-/docblocktemplate = </font color="blue">
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <font size="-1"><strong>by <em>
-/author = </em></strong></font>
-author! = 0
-
-authorblurb = blockquote
-
-authorgroup = <strong>Authors:</strong><br />
-/authorgroup =
-authorgroup! = 0
-
-caution = <table border="1"><th align="center">Caution</th><tr><td>
-/caution = </td></tr></table>
-caution! = 0
-
-command = <b class="cmd">
-/command = </b>
-
-cmdsynopsis = <div id="cmdsynopsis">
-/cmdsynopsis = </div>
-
-copyright = <em>
-/copyright = </em><br />
-
-emphasis = strong
-
-example = <table class="src-code" width="100%" border="1"><tr><td>
-/example = </td></tr></table>
-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 = <table border="0" bgcolor="#E0E0E0" cellpadding="5"><tr><td><div class="src-code">
-/programlisting = </div></td></tr></table>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="refname">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = h1
-
-refpurpose = <h2 class="refpurpose"><em>
-/refpurpose = </em></h2>
-
-refsynopsisdiv = <div class="refsynopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 =
-/refsect2 = <hr />
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = (
-/releaseinfo = )<br />
-
-simpara =
-/simpara = <br />
-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 = <table border="1"><tr><td>
-/warning = </td></tr></table>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+T_ABSTRACT = <font color="blue">
+/T_ABSTRACT = </font>
+T_CLONE = <font color="blue">
+/T_CLONE = </font>
+T_HALT_COMPILER = <font color="red">
+/T_HALT_COMPILER = </font>
+T_PUBLIC = <font color="blue">
+/T_PUBLIC = </font>
+T_PRIVATE = <font color="blue">
+/T_PRIVATE = </font>
+T_PROTECTED = <font color="blue">
+/T_PROTECTED = </font>
+T_FINAL = <font color="blue">
+/T_FINAL = </font>
+T_IMPLEMENTS = <font color="blue">
+/T_IMPLEMENTS = </font>
+T_CLASS = <font color="blue">
+/T_CLASS = </font>
+T_INTERFACE = <font color="blue">
+/T_INTERFACE = </font>
+T_INCLUDE = <font color="blue">
+/T_INCLUDE = </font>
+T_INCLUDE_ONCE = <font color="blue">
+/T_INCLUDE_ONCE = </font>
+T_REQUIRE_ONCE = <font color="blue">
+/T_REQUIRE_ONCE = </font>
+T_FUNCTION = <font color="blue">
+/T_FUNCTION = </font>
+T_VARIABLE = <strong>
+/T_VARIABLE = </strong>
+T_CONSTANT_ENCAPSED_STRING = <font color="#66cccc">
+/T_CONSTANT_ENCAPSED_STRING = </font>
+T_COMMENT = <font color="green">
+/T_COMMENT = </font>
+T_OBJECT_OPERATOR = <strong>
+/T_OBJECT_OPERATOR = </strong>
+T_RETURN = <font color="blue">
+/T_RETURN = </font>
+T_STATIC = <font color="blue">
+/T_STATIC = </font>
+T_SWITCH = <font color="blue">
+/T_SWITCH = </font>
+T_IF = <font color="blue">
+/T_IF = </font>
+T_FOREACH = <font color="blue">
+/T_FOREACH = </font>
+T_FOR = <font color="blue">
+/T_FOR = </font>
+T_VAR = <font color="blue">
+/T_VAR = </font>
+T_EXTENDS = <font color="blue">
+/T_EXTENDS = </font>
+T_RETURN = <font color="blue">
+/T_RETURN = </font>
+T_GLOBAL = <font color="blue">
+/T_GLOBAL = </font>
+T_DOUBLE_COLON = <strong>
+/T_DOUBLE_COLON = </strong>
+T_OBJECT_OPERATOR = <strong>
+/T_OBJECT_OPERATOR = </strong>
+T_OPEN_TAG = <strong>
+/T_OPEN_TAG = </strong>
+T_CLOSE_TAG = <strong>
+/T_CLOSE_TAG = </strong>
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <strong>
+/@ = </strong>
+& = <strong>
+/& = </strong>
+[ = <strong>
+/[ = </strong>
+] = <strong>
+/] = </strong>
+! = <strong>
+/! = </strong>
+";" = <strong>
+/; = </strong>
+( = <strong>
+/( = </strong>
+) = <strong>
+/) = </strong>
+, = <strong>
+/, = </strong>
+{ = <strong>
+/{ = </strong>
+} = <strong>
+/} = </strong>
+""" = <font color="#66cccc">
+/" = </font>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <font color="#009999">
+/docblock = </font>
+tagphptype = <em>
+/tagphptype = </em>
+tagvarname = <strong>
+/tagvarname = </strong>
+coretag = <strong><font color = "#0099FF">
+/coretag = </font></strong>
+tag = <strong><font color="#009999">
+/tag = </font></strong>
+inlinetag = <em><font color="#0099FF">
+/inlinetag = </font></em>
+internal = <em><font color = "#6699cc">
+/internal = </font></em>
+closetemplate = <strong><font color="blue">
+/closetemplate = </font></strong>
+docblocktemplate = <font color="blue">
+/docblocktemplate = </font color="blue">
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <font size="-1"><strong>by <em>
+/author = </em></strong></font>
+author! = 0
+
+authorblurb = blockquote
+
+authorgroup = <strong>Authors:</strong><br />
+/authorgroup =
+authorgroup! = 0
+
+caution = <table border="1"><th align="center">Caution</th><tr><td>
+/caution = </td></tr></table>
+caution! = 0
+
+command = <b class="cmd">
+/command = </b>
+
+cmdsynopsis = <div id="cmdsynopsis">
+/cmdsynopsis = </div>
+
+copyright = <em>
+/copyright = </em><br />
+
+emphasis = strong
+
+example = <table class="src-code" width="100%" border="1"><tr><td>
+/example = </td></tr></table>
+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 = <table border="0" bgcolor="#E0E0E0" cellpadding="5"><tr><td><div class="src-code">
+/programlisting = </div></td></tr></table>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="refname">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = h1
+
+refpurpose = <h2 class="refpurpose"><em>
+/refpurpose = </em></h2>
+
+refsynopsisdiv = <div class="refsynopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 =
+/refsect2 = <hr />
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = (
+/releaseinfo = )<br />
+
+simpara =
+/simpara = <br />
+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 = <table border="1"><tr><td>
+/warning = </td></tr></table>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/basicindex.tpl
index 1f188c005a..f6f906cc24 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/basicindex.tpl
@@ -1,24 +1,24 @@
-{section name=letter loop=$letters}
- <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a>
-{/section}
-
-<br /><br />
-<table border="0" width="100%">
-{section name=index loop=$index}
-<thead>
- <tr>
- <td><strong>{$index[index].letter}</strong></td>
- <td align='right'><a name="{$index[index].letter}">&nbsp; </a>
- <a href="#top">top</a><br /></td>
- </tr>
-</thead>
-<tbody>
- {section name=contents loop=$index[index].index}
- <tr>
- <td>&nbsp;&nbsp;&nbsp;<strong>{$index[index].index[contents].name}</strong></td>
- <td width="100%" align="left" valign="top">{$index[index].index[contents].listing}</td>
- </tr>
- {/section}
-</tbody>
-{/section}
-</table>
+{section name=letter loop=$letters}
+ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a>
+{/section}
+
+<br /><br />
+<table border="0" width="100%">
+{section name=index loop=$index}
+<thead>
+ <tr>
+ <td><strong>{$index[index].letter}</strong></td>
+ <td align='right'><a name="{$index[index].letter}">&nbsp; </a>
+ <a href="#top">top</a><br /></td>
+ </tr>
+</thead>
+<tbody>
+ {section name=contents loop=$index[index].index}
+ <tr>
+ <td>&nbsp;&nbsp;&nbsp;<strong>{$index[index].index[contents].name}</strong></td>
+ <td width="100%" align="left" valign="top">{$index[index].index[contents].listing}</td>
+ </tr>
+ {/section}
+</tbody>
+{/section}
+</table>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/class.tpl
index 7aed01720a..b9dda9274b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/class.tpl
@@ -1,95 +1,95 @@
-{include file="header.tpl" top3=true}
-<!-- Start of Class Data -->
-<h2>
- {if $is_interface}Interface{else}Class{/if} {$class_name}
-</h2> (line <span class="linenumber">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
-<div class="tab-pane" id="tabPane1">
-<script type="text/javascript">
-tp1 = new WebFXTabPane( document.getElementById( "tabPane1" ));
-</script>
-
-<div class="tab-page" id="Description">
-<h2 class="tab">Description</h2>
-<pre>
-{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}
-</pre>
-{if $tutorial}
-<div class="maintutorial">Class Tutorial: {$tutorial}</div>
-{/if}
-{if $conflicts.conflict_type}
- <div align="left"><span class="font10bold" style="color:#FF0000">Warning:</span> Conflicts with classes:<br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
-{/if}
-<p>
- <b><i>Located in File: <a href="{$page_link}">{$source_location}</a></i></b><br>
-</p>
-{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
-<br /><hr />
-{if $children}
-<span class="type">Classes extended from {$class_name}:</span>
- {section name=kids loop=$children}
- <dl>
- <dt>{$children[kids].link}</dt>
- <dd>{$children[kids].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-</div>
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "Description" ) );</script>
-<div class="tab-page" id="tabPage1">
-{include file="var.tpl"}
-</div>
-<div class="tab-page" id="constantsTabpage">
-{include file="const.tpl"}
-</div>
-<div class="tab-page" id="tabPage2">
-{include file="method.tpl"}
-</div>
-<div class="tab-page" id="iVars">
-<h2 class="tab">Inherited Variables</h2>
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "iVars" ) );</script>
-<!-- =========== VAR INHERITED SUMMARY =========== -->
-<A NAME='var_inherited_summary'><!-- --></A>
-<h3>Inherited Class Variable Summary</h3>
-
- {section name=ivars loop=$ivars}
- <!-- =========== Summary =========== -->
- <h4>Inherited From Class {$ivars[ivars].parent_class}</h4>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <h4>
-<img src="{$subdir}media/images/PublicProperty.gif" border="0" /><strong class="property"> {$ivars[ivars].ivars[ivars2].link}</strong> - {$ivars[ivars].ivars[ivars2].sdesc}
- </h4>
- {/section}
- {/section}
-</div>
-<div class="tab-page" id="iMethods">
-<h2 class="tab">Inherited Methods</h2>
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "iMethods" ) );</script>
-<!-- =========== INHERITED METHOD SUMMARY =========== -->
-<A NAME='functions_inherited'><!-- --></A>
-<h3>Inherited Method Summary</h3>
-
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <h4>Inherited From Class {$imethods[imethods].parent_class}</h4>
- {section name=im2 loop=$imethods[imethods].imethods}
- <h4>
-<img src="{$subdir}media/images/{if $imethods[imethods].imethods[im2].constructor}Constructor{elseif $imethods[imethods].imethods[im2].destructor}Destructor{else}PublicMethod{/if}.gif" border="0" /><strong class="method"> {$imethods[imethods].imethods[im2].link}</strong> - {$imethods[imethods].imethods[im2].sdesc}
- </h4>
-
- {/section}
- <br />
- {/section}
-</div>
-</div>
-<script type="text/javascript">
-//<![CDATA[
-
-setupAllTabs();
-
-//]]>
-</script>
-{include file="footer.tpl"}
+{include file="header.tpl" top3=true}
+<!-- Start of Class Data -->
+<h2>
+ {if $is_interface}Interface{else}Class{/if} {$class_name}
+</h2> (line <span class="linenumber">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+<div class="tab-pane" id="tabPane1">
+<script type="text/javascript">
+tp1 = new WebFXTabPane( document.getElementById( "tabPane1" ));
+</script>
+
+<div class="tab-page" id="Description">
+<h2 class="tab">Description</h2>
+<pre>
+{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}
+</pre>
+{if $tutorial}
+<div class="maintutorial">Class Tutorial: {$tutorial}</div>
+{/if}
+{if $conflicts.conflict_type}
+ <div align="left"><span class="font10bold" style="color:#FF0000">Warning:</span> Conflicts with classes:<br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+{/if}
+<p>
+ <b><i>Located in File: <a href="{$page_link}">{$source_location}</a></i></b><br>
+</p>
+{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+<br /><hr />
+{if $children}
+<span class="type">Classes extended from {$class_name}:</span>
+ {section name=kids loop=$children}
+ <dl>
+ <dt>{$children[kids].link}</dt>
+ <dd>{$children[kids].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+</div>
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "Description" ) );</script>
+<div class="tab-page" id="tabPage1">
+{include file="var.tpl"}
+</div>
+<div class="tab-page" id="constantsTabpage">
+{include file="const.tpl"}
+</div>
+<div class="tab-page" id="tabPage2">
+{include file="method.tpl"}
+</div>
+<div class="tab-page" id="iVars">
+<h2 class="tab">Inherited Variables</h2>
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "iVars" ) );</script>
+<!-- =========== VAR INHERITED SUMMARY =========== -->
+<A NAME='var_inherited_summary'><!-- --></A>
+<h3>Inherited Class Variable Summary</h3>
+
+ {section name=ivars loop=$ivars}
+ <!-- =========== Summary =========== -->
+ <h4>Inherited From Class {$ivars[ivars].parent_class}</h4>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <h4>
+<img src="{$subdir}media/images/PublicProperty.gif" border="0" /><strong class="property"> {$ivars[ivars].ivars[ivars2].link}</strong> - {$ivars[ivars].ivars[ivars2].sdesc}
+ </h4>
+ {/section}
+ {/section}
+</div>
+<div class="tab-page" id="iMethods">
+<h2 class="tab">Inherited Methods</h2>
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "iMethods" ) );</script>
+<!-- =========== INHERITED METHOD SUMMARY =========== -->
+<A NAME='functions_inherited'><!-- --></A>
+<h3>Inherited Method Summary</h3>
+
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <h4>Inherited From Class {$imethods[imethods].parent_class}</h4>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <h4>
+<img src="{$subdir}media/images/{if $imethods[imethods].imethods[im2].constructor}Constructor{elseif $imethods[imethods].imethods[im2].destructor}Destructor{else}PublicMethod{/if}.gif" border="0" /><strong class="method"> {$imethods[imethods].imethods[im2].link}</strong> - {$imethods[imethods].imethods[im2].sdesc}
+ </h4>
+
+ {/section}
+ <br />
+ {/section}
+</div>
+</div>
+<script type="text/javascript">
+//<![CDATA[
+
+setupAllTabs();
+
+//]]>
+</script>
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/const.tpl
index 6462370932..d9f36e58dc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/const.tpl
@@ -1,21 +1,21 @@
-
-<h2 class="tab">Class Constants</h2>
-<!-- ============ VARIABLE DETAIL =========== -->
-<strong>Summary:</strong><br />
-{section name=consts loop=$consts}
-<div class="const-title">
- <a href="#{$consts[consts].const_dest}" title="details" class="property"><strong>{$consts[consts].const_name}</strong></a>
-</div>
-{/section}
-<hr />
-{section name=consts loop=$consts}
-<a name="{$consts[consts].const_dest}" id="{$consts[consts].const_dest}"><!-- --></A>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'">
-<h4>
-<img src="{$subdir}media/images/Constant.gif" border="0" /> <strong class="property">{$consts[consts].const_name} = {$consts[consts].const_value|replace:"\n":"<br />"}</strong> (line <span class="linenumber">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </h4>
-{include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-</div>
-{/section}
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "constantsTabpage" ) );</script>
-
+
+<h2 class="tab">Class Constants</h2>
+<!-- ============ VARIABLE DETAIL =========== -->
+<strong>Summary:</strong><br />
+{section name=consts loop=$consts}
+<div class="const-title">
+ <a href="#{$consts[consts].const_dest}" title="details" class="property"><strong>{$consts[consts].const_name}</strong></a>
+</div>
+{/section}
+<hr />
+{section name=consts loop=$consts}
+<a name="{$consts[consts].const_dest}" id="{$consts[consts].const_dest}"><!-- --></A>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'">
+<h4>
+<img src="{$subdir}media/images/Constant.gif" border="0" /> <strong class="property">{$consts[consts].const_name} = {$consts[consts].const_value|replace:"\n":"<br />"}</strong> (line <span class="linenumber">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </h4>
+{include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+</div>
+{/section}
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "constantsTabpage" ) );</script>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/define.tpl
index 039b83c2c8..68339e5307 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/define.tpl
@@ -1,24 +1,24 @@
-<!-- ============ CONSTANT DETAIL =========== -->
-
-<A NAME='constant_detail'></A>
-<h2 class="tab">Constants</h2>
-
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage3" ) );</script>
-
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'">
-<h4>
- <img src="{$subdir}media/images/Constant.gif" border="0" /> <strong class="property">{$defines[def].define_name}</strong> (line <span class="linenumber">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </h4>
-<h4>{$defines[def].define_name} : {$defines[def].define_value|replace:"\n":"<br />"}</h4>
-{if $defines[def].define_conflicts.conflict_type}
- <p><span class="warning">Warning:</span> Conflicts with constants:<br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </p>
-{/if}
-{include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-</div>
+<!-- ============ CONSTANT DETAIL =========== -->
+
+<A NAME='constant_detail'></A>
+<h2 class="tab">Constants</h2>
+
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage3" ) );</script>
+
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'">
+<h4>
+ <img src="{$subdir}media/images/Constant.gif" border="0" /> <strong class="property">{$defines[def].define_name}</strong> (line <span class="linenumber">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </h4>
+<h4>{$defines[def].define_name} : {$defines[def].define_value|replace:"\n":"<br />"}</h4>
+{if $defines[def].define_conflicts.conflict_type}
+ <p><span class="warning">Warning:</span> Conflicts with constants:<br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </p>
+{/if}
+{include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/docblock.tpl
index 4b5ea6fca3..7b1e17d766 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/docblock.tpl
@@ -1,30 +1,30 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<h5>{$sdesc}</h5>
-{/if}
-{if $desc}
-<div class="desc">{$desc}</div>
-{/if}
-{if $function}
- {if $params}
- <h4>Parameters</h4>
- <ul>
- {section name=params loop=$params}
- <li><strong>{$params[params].datatype} {$params[params].var}</strong>: {$params[params].data}</li>
- {/section}
- </ul>
- {/if}
-
- <h4>Info</h4>
- <ul>
- {section name=tags loop=$tags}
- <li><strong>{$tags[tags].keyword}</strong> - {$tags[tags].data}</li>
- {/section}
- </ul>
-{else}
-<ul>
- {section name=tags loop=$tags}
- <li><strong>{$tags[tags].keyword}:</strong> - {$tags[tags].data}</li>
- {/section}
-</ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<h5>{$sdesc}</h5>
+{/if}
+{if $desc}
+<div class="desc">{$desc}</div>
+{/if}
+{if $function}
+ {if $params}
+ <h4>Parameters</h4>
+ <ul>
+ {section name=params loop=$params}
+ <li><strong>{$params[params].datatype} {$params[params].var}</strong>: {$params[params].data}</li>
+ {/section}
+ </ul>
+ {/if}
+
+ <h4>Info</h4>
+ <ul>
+ {section name=tags loop=$tags}
+ <li><strong>{$tags[tags].keyword}</strong> - {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{else}
+<ul>
+ {section name=tags loop=$tags}
+ <li><strong>{$tags[tags].keyword}:</strong> - {$tags[tags].data}</li>
+ {/section}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/elementindex.tpl
index 7772d6868a..fcb310a867 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/elementindex.tpl
@@ -1,13 +1,13 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h1>Index of All Elements</h1>
-<a name="top">&nbsp; </a>
-<strong>Indexes by package:</strong><br />
-<ul>
-{section name=p loop=$packageindex}
-<li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h1>Index of All Elements</h1>
+<a name="top">&nbsp; </a>
+<strong>Indexes by package:</strong><br />
+<ul>
+{section name=p loop=$packageindex}
+<li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/examplesource.tpl
index 89961159d3..5aef23d746 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1 align="center">{$title}</h1>
-<div class="src-code">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1 align="center">{$title}</h1>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/filesource.tpl
index 2a5be43e9a..3d93199ec8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/filesource.tpl
@@ -1,8 +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="src-code">
-{$source}
-</div>
+{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="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/footer.tpl
index 88cd9a3384..9088c4fc92 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <div id="credit">
- <hr />
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </div>
-{/if}
-</body>
-</html>
+{if !$index}
+ <div id="credit">
+ <hr />
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </div>
+{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/function.tpl
index 67de258e18..6348dd0e3f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/function.tpl
@@ -1,29 +1,29 @@
-<!-- ============ FUNCTION DETAIL =========== -->
-
-<h2 class="tab">Functions</h2>
-
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage4" ) );</script>
-
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'">
-<h4>
- <img src="{$subdir}media/images/PublicMethod.gif" border="0" /> <strong class="method">{$functions[func].function_name}</strong> (line <span class="linenumber">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </h4>
-<h4><i>{$functions[func].function_return}</i> <strong>{if $functions[func].ifunction_call.returnsref}&amp;{/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}
-{/if})</strong></h4>
-{if $functions[func].function_conflicts.conflict_type}
-<div align="left"><span class="warning">Warning:</span> Conflicts with functions:<br />
-{section name=me loop=$functions[func].function_conflicts.conflicts}
-{$functions[func].function_conflicts.conflicts[me]}<br />
-{/section}
-</div>
-{/if}
-
-{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=true}
-</div>
-{/section}
+<!-- ============ FUNCTION DETAIL =========== -->
+
+<h2 class="tab">Functions</h2>
+
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage4" ) );</script>
+
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'">
+<h4>
+ <img src="{$subdir}media/images/PublicMethod.gif" border="0" /> <strong class="method">{$functions[func].function_name}</strong> (line <span class="linenumber">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </h4>
+<h4><i>{$functions[func].function_return}</i> <strong>{if $functions[func].ifunction_call.returnsref}&amp;{/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}
+{/if})</strong></h4>
+{if $functions[func].function_conflicts.conflict_type}
+<div align="left"><span class="warning">Warning:</span> Conflicts with functions:<br />
+{section name=me loop=$functions[func].function_conflicts.conflicts}
+{$functions[func].function_conflicts.conflicts[me]}<br />
+{/section}
+</div>
+{/if}
+
+{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=true}
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/global.tpl
index 4490bdb16d..42303bf113 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/global.tpl
@@ -1,24 +1,24 @@
-<!-- ============ GLOBAL DETAIL =========== -->
-
-<h2 class="tab">Global Variables</h2>
-
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage2" ) );</script>
-
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'">
-<h4>
- <img src="{$subdir}media/images/Constants.gif" border="0" /> <strong class="Property">{$globals[glob].global_name}</strong> (line <span class="linenumber">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </h4>
-<h4><i>{$globals[glob].global_type}</i> {$globals[glob].global_name} : {$globals[glob].global_value|replace:"\n":"<br />"}</h4>
-{if $globals[glob].global_conflicts.conflict_type}
- <p><span class="warning">Warning:</span> Conflicts with global variables:<br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </p>
-{/if}
-
-{include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-</div>
+<!-- ============ GLOBAL DETAIL =========== -->
+
+<h2 class="tab">Global Variables</h2>
+
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage2" ) );</script>
+
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'">
+<h4>
+ <img src="{$subdir}media/images/Constants.gif" border="0" /> <strong class="Property">{$globals[glob].global_name}</strong> (line <span class="linenumber">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </h4>
+<h4><i>{$globals[glob].global_type}</i> {$globals[glob].global_name} : {$globals[glob].global_value|replace:"\n":"<br />"}</h4>
+{if $globals[glob].global_conflicts.conflict_type}
+ <p><span class="warning">Warning:</span> Conflicts with global variables:<br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </p>
+{/if}
+
+{include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/header.tpl
index ff0484631c..378f67e333 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/header.tpl
@@ -1,97 +1,97 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
-<head>
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
-{if $top2 || $top3}
- <script src="{$subdir}media/lib/classTree.js"></script>
-<link id="webfx-tab-style-sheet" type="text/css" rel="stylesheet" href="{$subdir}media/lib/tab.webfx.css" />
-<script type="text/javascript" src="{$subdir}media/lib/tabpane.js"></script>
-{/if}
-{if $top2}
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-{/if}
-{if $top3 || $top2}
- <script language="javascript" type="text/javascript" src="{$subdir}media/lib/ua.js"></script>
-<script language="javascript" type="text/javascript">
- var imgPlus = new Image();
- var imgMinus = new Image();
- imgPlus.src = "{$subdir}media/images/plus.gif";
- imgMinus.src = "{$subdir}media/images/minus.gif";
-
- function showNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgMinus.src;
- oTable.style.display = "block";
- {rdelim}
-
- function hideNode(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- var oImg = document.layers["img" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- var oImg = document.all["img" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- var oImg = document.getElementById("img" + Node);
- break;
- {rdelim}
- oImg.src = imgPlus.src;
- oTable.style.display = "none";
- {rdelim}
-
- function nodeIsVisible(Node){ldelim}
- switch(navigator.family){ldelim}
- case 'nn4':
- // Nav 4.x code fork...
- var oTable = document.layers["span" + Node];
- break;
- case 'ie4':
- // IE 4/5 code fork...
- var oTable = document.all["span" + Node];
- break;
- case 'gecko':
- // Standards Compliant code fork...
- var oTable = document.getElementById("span" + Node);
- break;
- {rdelim}
- return (oTable && oTable.style.display == "block");
- {rdelim}
-
- function toggleNodeVisibility(Node){ldelim}
- if (nodeIsVisible(Node)){ldelim}
- hideNode(Node);
- {rdelim}else{ldelim}
- showNode(Node);
- {rdelim}
- {rdelim}
-</script>
-{/if}
-<!-- template designed by Julien Damon based on PHPEdit's generated templates, and tweaked by Greg Beaver -->
-<body bgcolor="#ffffff" {if $top2} topmargin="3" leftmargin="3" rightmargin="2" bottommargin="3"{/if}>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+<head>
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+{if $top2 || $top3}
+ <script src="{$subdir}media/lib/classTree.js"></script>
+<link id="webfx-tab-style-sheet" type="text/css" rel="stylesheet" href="{$subdir}media/lib/tab.webfx.css" />
+<script type="text/javascript" src="{$subdir}media/lib/tabpane.js"></script>
+{/if}
+{if $top2}
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+{/if}
+{if $top3 || $top2}
+ <script language="javascript" type="text/javascript" src="{$subdir}media/lib/ua.js"></script>
+<script language="javascript" type="text/javascript">
+ var imgPlus = new Image();
+ var imgMinus = new Image();
+ imgPlus.src = "{$subdir}media/images/plus.gif";
+ imgMinus.src = "{$subdir}media/images/minus.gif";
+
+ function showNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgMinus.src;
+ oTable.style.display = "block";
+ {rdelim}
+
+ function hideNode(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ var oImg = document.layers["img" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ var oImg = document.all["img" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ var oImg = document.getElementById("img" + Node);
+ break;
+ {rdelim}
+ oImg.src = imgPlus.src;
+ oTable.style.display = "none";
+ {rdelim}
+
+ function nodeIsVisible(Node){ldelim}
+ switch(navigator.family){ldelim}
+ case 'nn4':
+ // Nav 4.x code fork...
+ var oTable = document.layers["span" + Node];
+ break;
+ case 'ie4':
+ // IE 4/5 code fork...
+ var oTable = document.all["span" + Node];
+ break;
+ case 'gecko':
+ // Standards Compliant code fork...
+ var oTable = document.getElementById("span" + Node);
+ break;
+ {rdelim}
+ return (oTable && oTable.style.display == "block");
+ {rdelim}
+
+ function toggleNodeVisibility(Node){ldelim}
+ if (nodeIsVisible(Node)){ldelim}
+ hideNode(Node);
+ {rdelim}else{ldelim}
+ showNode(Node);
+ {rdelim}
+ {rdelim}
+</script>
+{/if}
+<!-- template designed by Julien Damon based on PHPEdit's generated templates, and tweaked by Greg Beaver -->
+<body bgcolor="#ffffff" {if $top2} topmargin="3" leftmargin="3" rightmargin="2" bottommargin="3"{/if}>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/include.tpl
index eff97f1641..56e66a9d5b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/include.tpl
@@ -1,16 +1,16 @@
-<!-- ============ Includes DETAIL =========== -->
-
-<h2 class="tab">Include/Require Statements</h2>
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage1" ) );</script>
-
-
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'">
-<h4>
- <img src="{$subdir}media/images/file.png" border="0" /> <strong class="Property">{$includes[includes].include_value}</strong> (line <span class="linenumber">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </h4>
-<h4>{$includes[includes].include_name} : {$includes[includes].include_value}</h4>
-{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-</div>
+<!-- ============ Includes DETAIL =========== -->
+
+<h2 class="tab">Include/Require Statements</h2>
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage1" ) );</script>
+
+
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'">
+<h4>
+ <img src="{$subdir}media/images/file.png" border="0" /> <strong class="Property">{$includes[includes].include_value}</strong> (line <span class="linenumber">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </h4>
+<h4>{$includes[includes].include_name} : {$includes[includes].include_value}</h4>
+{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/index.tpl
index 5ada200abc..a0ade4f5c9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET cols='220,*'>
- <FRAMESET rows='220,*'>
- <FRAME src='packages.html' name='left_top'>
- <FRAME src='{$start}' name='left_bottom'>
- </FRAMESET>
- <FRAME src='{$blank}.html' name='right'>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET cols='220,*'>
+ <FRAMESET rows='220,*'>
+ <FRAME src='packages.html' name='left_top'>
+ <FRAME src='{$start}' name='left_bottom'>
+ </FRAMESET>
+ <FRAME src='{$blank}.html' name='right'>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/left_frame.tpl
index 14466bc534..dd5f260721 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/left_frame.tpl
@@ -1,166 +1,166 @@
-{include file="header.tpl" top2=true}
-{if $hastodos}
-<div id="todolist">
-<p><a href="{$todolink}" target="right">Todo List</a></p>
-</div>
-{/if}
-<h3>Navigation: {$info.0.package}</h3>
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=p loop=$info}
-{if $info[p].subpackage == ""}
-{if $info[p].packagetutorial}
- var tree = new WebFXTree('Help : {$info[p].packagetutorialtitle|strip_tags}', '{$info[p].packagetutorialnoa}');
-{else}
- var tree = new WebFXTree('Help : {$info[p].package}', '{$info[p].packagedoc}.html');
-{/if}
- tree.setBehavior('classic');
- tree.openIcon = 'media/images/Disk.gif';
- tree.icon = 'media/images/Disk.gif';
-
- var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
- elements.openIcon = 'media/images/file.png';
- elements.icon = 'media/images/file.png';
- tree.add(elements);
-
- var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
- tree_function.openIcon = 'media/images/Functions.gif';
- tree_function.icon = 'media/images/Functions.gif';
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title}', '{$info[p].functions[nonclass].link}');
- fic.openIcon = 'media/images/PublicMethod.gif';
- fic.icon = 'media/images/PublicMethod.gif';
- tree_function.add(fic);
- {/section}
- tree.add(tree_function);
-
- var tree_interface = new WebFXTreeItem('Interface(s)', '{$classtreepage}.html');
- tree_interface.openIcon = 'media/images/classFolder.gif';
- tree_interface.icon = 'media/images/classFolder.gif';
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title}', '{$info[p].classes[class].link}');
- classe.openIcon = 'media/images/Class.gif';
- classe.icon = 'media/images/Class.gif';
- tree_interface.add(classe);
- {/if}
- {/section}
- tree.add(tree_interface);
-
- var tree_classe = new WebFXTreeItem('Class(es)', '{$classtreepage}.html');
- tree_classe.openIcon = 'media/images/classFolder.gif';
- tree_classe.icon = 'media/images/classFolder.gif';
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title}', '{$info[p].classes[class].link}');
- classe.openIcon = 'media/images/Class.gif';
- classe.icon = 'media/images/Class.gif';
- tree_classe.add(classe);
- {/if}
- {/section}
- tree.add(tree_classe);
-
- var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc}');
- tree_file.openIcon = 'media/images/FolderOpened.gif';
- tree_file.icon = 'media/images/foldericon.png';
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title}', '{$info[p].files[nonclass].link}');
- file.openIcon = 'media/images/file.png';
- file.icon = 'media/images/file.png';
- tree_file.add(file);
- {/section}
- tree.add(tree_file);
-{else}
-{if $info[p].subpackagetutorial}
- var subpackagetree = new WebFXTreeItem('Subpackage : {$info[p].subpackagetutorialtitle|strip_tags}', '{$info[p].subpackagetutorialnoa}');
-{else}
- var subpackagetree = new WebFXTreeItem('Subpackage : {$info[p].subpackage}', '{$packagedoc}');
-{/if}
- subpackagetree.openIcon = 'media/images/Disk.gif';
- subpackagetree.icon = 'media/images/Disk.gif';
-
- var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
- subpackagetree_function.openIcon = 'media/images/Functions.gif';
- subpackagetree_function.icon = 'media/images/Functions.gif';
- {section name=nonclass loop=$info[p].functions}
- var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title}', '{$info[p].functions[nonclass].link}');
- fic.openIcon = 'media/images/PublicMethod.gif';
- fic.icon = 'media/images/PublicMethod.gif';
- subpackagetree_function.add(fic);
- {/section}
- subpackagetree.add(subpackagetree_function);
-
- var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$classtreepage}.html');
- subpackagetree_classe.openIcon = 'media/images/classFolder.gif';
- subpackagetree_classe.icon = 'media/images/classFolder.gif';
- {section name=class loop=$info[p].classes}
- var classe = new WebFXTreeItem('{$info[p].classes[class].title}', '{$info[p].classes[class].link}');
- classe.openIcon = 'media/images/Class.gif';
- classe.icon = 'media/images/Class.gif';
- subpackagetree_classe.add(classe);
- {/section}
- subpackagetree.add(subpackagetree_classe);
-
- var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc}');
- subpackagetree_file.openIcon = 'media/images/FolderOpened.gif';
- subpackagetree_file.icon = 'media/images/foldericon.png';
- {section name=nonclass loop=$info[p].files}
- var file = new WebFXTreeItem('{$info[p].files[nonclass].title}', '{$info[p].files[nonclass].link}');
- file.openIcon = 'media/images/file.png';
- file.icon = 'media/images/file.png';
- subpackagetree_file.add(file);
- {/section}
- subpackagetree.add(subpackagetree_file);
-
- tree.add(subpackagetree);
-{/if}
-{/section}
- document.write(tree);
-{rdelim}
-</script>
-<br />
-{if $hastutorials}
-<div class="tutorialist">
-{section name=p loop=$info}
-{if count($info[p].tutorials)}
-<h3>Tutorials/Manuals:{if $info[p].subpackage} {$info[p].subpackage}{/if}</h3>
-{if $info[p].tutorials.pkg}
-<strong>Package-level:</strong>
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=ext loop=$info[p].tutorials.pkg}
-{$info[p].tutorials.pkg[ext]}
-{/section}
-{rdelim}
-</script>
-{/if}
-{if $info[p].tutorials.cls}
-<strong>Class-level:</strong>
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=ext loop=$info[p].tutorials.cls}
-{$info[p].tutorials.cls[ext]}
-{/section}
-{rdelim}
-</script>
-{/if}
-{if $info[p].tutorials.proc}
-<strong>Procedural-level:</strong>
-<script language="Javascript">
-if (document.getElementById) {ldelim}
-{section name=ext loop=$info[p].tutorials.proc}
-{$info[p].tutorials.proc[ext]}
-{/section}
-{rdelim}
-{/if}
-</script>
-{/if}
-{/section}
-{/if}
-</div>
-<br />
-<span CLASS="small"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <b>{$phpdocversion}</b></a><br />
-<br />
-<i>HTML layout inspired by </i><a href="http://www.phpedit.com" target="right">PHPEdit</a></span>
-</body>
-</html>
+{include file="header.tpl" top2=true}
+{if $hastodos}
+<div id="todolist">
+<p><a href="{$todolink}" target="right">Todo List</a></p>
+</div>
+{/if}
+<h3>Navigation: {$info.0.package}</h3>
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=p loop=$info}
+{if $info[p].subpackage == ""}
+{if $info[p].packagetutorial}
+ var tree = new WebFXTree('Help : {$info[p].packagetutorialtitle|strip_tags}', '{$info[p].packagetutorialnoa}');
+{else}
+ var tree = new WebFXTree('Help : {$info[p].package}', '{$info[p].packagedoc}.html');
+{/if}
+ tree.setBehavior('classic');
+ tree.openIcon = 'media/images/Disk.gif';
+ tree.icon = 'media/images/Disk.gif';
+
+ var elements = new WebFXTreeItem('Index of elements', '{$elementindex}.html');
+ elements.openIcon = 'media/images/file.png';
+ elements.icon = 'media/images/file.png';
+ tree.add(elements);
+
+ var tree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
+ tree_function.openIcon = 'media/images/Functions.gif';
+ tree_function.icon = 'media/images/Functions.gif';
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title}', '{$info[p].functions[nonclass].link}');
+ fic.openIcon = 'media/images/PublicMethod.gif';
+ fic.icon = 'media/images/PublicMethod.gif';
+ tree_function.add(fic);
+ {/section}
+ tree.add(tree_function);
+
+ var tree_interface = new WebFXTreeItem('Interface(s)', '{$classtreepage}.html');
+ tree_interface.openIcon = 'media/images/classFolder.gif';
+ tree_interface.icon = 'media/images/classFolder.gif';
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title}', '{$info[p].classes[class].link}');
+ classe.openIcon = 'media/images/Class.gif';
+ classe.icon = 'media/images/Class.gif';
+ tree_interface.add(classe);
+ {/if}
+ {/section}
+ tree.add(tree_interface);
+
+ var tree_classe = new WebFXTreeItem('Class(es)', '{$classtreepage}.html');
+ tree_classe.openIcon = 'media/images/classFolder.gif';
+ tree_classe.icon = 'media/images/classFolder.gif';
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title}', '{$info[p].classes[class].link}');
+ classe.openIcon = 'media/images/Class.gif';
+ classe.icon = 'media/images/Class.gif';
+ tree_classe.add(classe);
+ {/if}
+ {/section}
+ tree.add(tree_classe);
+
+ var tree_file = new WebFXTreeItem('File(s)', '{$packagedoc}');
+ tree_file.openIcon = 'media/images/FolderOpened.gif';
+ tree_file.icon = 'media/images/foldericon.png';
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title}', '{$info[p].files[nonclass].link}');
+ file.openIcon = 'media/images/file.png';
+ file.icon = 'media/images/file.png';
+ tree_file.add(file);
+ {/section}
+ tree.add(tree_file);
+{else}
+{if $info[p].subpackagetutorial}
+ var subpackagetree = new WebFXTreeItem('Subpackage : {$info[p].subpackagetutorialtitle|strip_tags}', '{$info[p].subpackagetutorialnoa}');
+{else}
+ var subpackagetree = new WebFXTreeItem('Subpackage : {$info[p].subpackage}', '{$packagedoc}');
+{/if}
+ subpackagetree.openIcon = 'media/images/Disk.gif';
+ subpackagetree.icon = 'media/images/Disk.gif';
+
+ var subpackagetree_function = new WebFXTreeItem('Function(s)', '{$packagedoc}');
+ subpackagetree_function.openIcon = 'media/images/Functions.gif';
+ subpackagetree_function.icon = 'media/images/Functions.gif';
+ {section name=nonclass loop=$info[p].functions}
+ var fic = new WebFXTreeItem('{$info[p].functions[nonclass].title}', '{$info[p].functions[nonclass].link}');
+ fic.openIcon = 'media/images/PublicMethod.gif';
+ fic.icon = 'media/images/PublicMethod.gif';
+ subpackagetree_function.add(fic);
+ {/section}
+ subpackagetree.add(subpackagetree_function);
+
+ var subpackagetree_classe = new WebFXTreeItem('Class(es)', '{$classtreepage}.html');
+ subpackagetree_classe.openIcon = 'media/images/classFolder.gif';
+ subpackagetree_classe.icon = 'media/images/classFolder.gif';
+ {section name=class loop=$info[p].classes}
+ var classe = new WebFXTreeItem('{$info[p].classes[class].title}', '{$info[p].classes[class].link}');
+ classe.openIcon = 'media/images/Class.gif';
+ classe.icon = 'media/images/Class.gif';
+ subpackagetree_classe.add(classe);
+ {/section}
+ subpackagetree.add(subpackagetree_classe);
+
+ var subpackagetree_file = new WebFXTreeItem('File(s)', '{$packagedoc}');
+ subpackagetree_file.openIcon = 'media/images/FolderOpened.gif';
+ subpackagetree_file.icon = 'media/images/foldericon.png';
+ {section name=nonclass loop=$info[p].files}
+ var file = new WebFXTreeItem('{$info[p].files[nonclass].title}', '{$info[p].files[nonclass].link}');
+ file.openIcon = 'media/images/file.png';
+ file.icon = 'media/images/file.png';
+ subpackagetree_file.add(file);
+ {/section}
+ subpackagetree.add(subpackagetree_file);
+
+ tree.add(subpackagetree);
+{/if}
+{/section}
+ document.write(tree);
+{rdelim}
+</script>
+<br />
+{if $hastutorials}
+<div class="tutorialist">
+{section name=p loop=$info}
+{if count($info[p].tutorials)}
+<h3>Tutorials/Manuals:{if $info[p].subpackage} {$info[p].subpackage}{/if}</h3>
+{if $info[p].tutorials.pkg}
+<strong>Package-level:</strong>
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=ext loop=$info[p].tutorials.pkg}
+{$info[p].tutorials.pkg[ext]}
+{/section}
+{rdelim}
+</script>
+{/if}
+{if $info[p].tutorials.cls}
+<strong>Class-level:</strong>
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=ext loop=$info[p].tutorials.cls}
+{$info[p].tutorials.cls[ext]}
+{/section}
+{rdelim}
+</script>
+{/if}
+{if $info[p].tutorials.proc}
+<strong>Procedural-level:</strong>
+<script language="Javascript">
+if (document.getElementById) {ldelim}
+{section name=ext loop=$info[p].tutorials.proc}
+{$info[p].tutorials.proc[ext]}
+{/section}
+{rdelim}
+{/if}
+</script>
+{/if}
+{/section}
+{/if}
+</div>
+<br />
+<span CLASS="small"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <b>{$phpdocversion}</b></a><br />
+<br />
+<i>HTML layout inspired by </i><a href="http://www.phpedit.com" target="right">PHPEdit</a></span>
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/classTree.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/classTree.js
index e1f94e658a..7f57c474fa 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/classTree.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/classTree.js
@@ -1,454 +1,454 @@
-/*----------------------------------------\
-| Cross Browser Tree Widget 1.1 |
-|-----------------------------------------|
-| Created by Emil A. Eklund (eae@eae.net) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------|
-| This script is provided as is without |
-| any warranty whatsoever. It may be used |
-| free of charge for non commerical sites |
-| For commerical use contact the author |
-| of this script for further details. |
-|-----------------------------------------|
-| Created 2000-12-11 | Updated 2001-09-06 |
-\----------------------------------------*/
-
-var webFXTreeConfig = {
- rootIcon : 'media/images/Class.gif',
- openRootIcon : 'media/images/Class.gif',
- folderIcon : 'media/images/Class.gif',
- openFolderIcon : 'media/images/Class.gif',
- fileIcon : 'media/images/Class.gif',
- iIcon : 'media/images/I.png',
- lIcon : 'media/images/L.png',
- lMinusIcon : 'media/images/Lminus.png',
- lPlusIcon : 'media/images/Lplus.png',
- tIcon : 'media/images/T.png',
- tMinusIcon : 'media/images/Tminus.png',
- tPlusIcon : 'media/images/Tplus.png',
- blankIcon : 'media/images/blank.png',
- defaultText : 'Tree Item',
- defaultAction : 'javascript:void(0);',
- defaultTarget : 'right',
- defaultBehavior : 'classic'
-};
-
-var webFXTreeHandler = {
- idCounter : 0,
- idPrefix : "webfx-tree-object-",
- all : {},
- behavior : null,
- selected : null,
- getId : function() { return this.idPrefix + this.idCounter++; },
- toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
- select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
- focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
- blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
- keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
- cookies : new WebFXCookie()
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
- if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
- document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
- if (this.cookies) {
- var start = this.cookies.indexOf(' ' + key + '=');
- if (start == -1) { return null; }
- var end = this.cookies.indexOf(";", start);
- if (end == -1) { end = this.cookies.length; }
- end -= start;
- var cookie = this.cookies.substr(start,end);
- return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
- }
- else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction, sTarget) {
- this.childNodes = [];
- this.id = webFXTreeHandler.getId();
- this.text = sText || webFXTreeConfig.defaultText;
- this.action = sAction || webFXTreeConfig.defaultAction;
- this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
- this._last = false;
- webFXTreeHandler.all[this.id] = this;
-}
-
-WebFXTreeAbstractNode.prototype.add = function (node) {
- node.parentNode = this;
- this.childNodes[this.childNodes.length] = node;
- var root = this;
- if (this.childNodes.length >=2) {
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- while (root.parentNode) { root = root.parentNode; }
- if (root.rendered) {
- if (this.childNodes.length >= 2) {
- document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
- if (this.childNodes[this.childNodes.length -2].folder) {
- this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
- this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
- }
- this.childNodes[this.childNodes.length -2]._last = false;
- }
- this._last = true;
- var foo = this;
- while (foo.parentNode) {
- for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
- if (foo.id == foo.parentNode.childNodes[i].id) { break; }
- }
- if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
- else { foo.parentNode._last = false; }
- foo = foo.parentNode;
- }
- document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
- if ((!this.folder) && (!this.openIcon)) {
- this.icon = webFXTreeConfig.folderIcon;
- this.openIcon = webFXTreeConfig.openFolderIcon;
- }
- this.folder = true;
- this.indent();
- this.expand();
- }
- return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
- if (this.folder) {
- if (this.open) { this.collapse(); }
- else { this.expand(); }
- }
-}
-
-WebFXTreeAbstractNode.prototype.select = function() {
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
- webFXTreeHandler.selected = this;
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
- document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
- document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
- document.getElementById(this.id + '-anchor').style.color = 'menutext';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
- this.open = true;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-}
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
- this.open = false;
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-}
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
- this.expandChildren();
- if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
- if ((this.folder) && (this.open)) { this.collapse(); }
- this.collapseChildren();
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
- /*
- * Since we only want to modify items one level below ourself,
- * and since the rightmost indentation position is occupied by
- * the plus icon we set this to -2
- */
- if (lvl == null) { lvl = -2; }
- var state = 0;
- for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
- state = this.childNodes[i].indent(lvl + 1, del, last, level);
- if (state) { return; }
- }
- if (del) {
- if (level >= this._level) {
- if (this.folder) {
- document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
- this.plusIcon = webFXTreeConfig.lPlusIcon;
- this.minusIcon = webFXTreeConfig.lMinusIcon;
- }
- else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
- return 1;
- }
- }
- var foo = document.getElementById(this.id + '-indent-' + lvl);
- if (foo) {
- if ((del) && (last)) { foo._last = true; }
- if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
- else { foo.src = webFXTreeConfig.iIcon; }
- }
- return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- this.icon = sIcon || webFXTreeConfig.rootIcon;
- this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
- /* Defaults to open */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
- this.folder = true;
- this.rendered = false;
- if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
- this.targetWindow = 'right';
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
- webFXTreeHandler.behavior = sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
- return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
- if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
- else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
- this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
- return null;
-}
-
-WebFXTree.prototype.getLast = function() {
- return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
- if (key == 39) { this.expand(); return false; }
- if (key == 37) { this.collapse(); return false; }
- if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
- return true;
-}
-
-WebFXTree.prototype.toString = function() {
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i, this.childNodes.length);
- }
- str += "</div>";
- this.rendered = true;
- return str;
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- /* Defaults to close */
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
- if (eParent) { eParent.add(this); }
- if (sIcon) { this.icon = sIcon; }
- if (sOpenIcon) { this.openIcon = sOpenIcon; }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
- var parentNode = this.parentNode;
- var prevSibling = this.getPreviousSibling(true);
- var nextSibling = this.getNextSibling(true);
- var folder = this.parentNode.folder;
- var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
- this.getPreviousSibling().focus();
- this._remove();
- if (parentNode.childNodes.length == 0) {
- parentNode.folder = false;
- parentNode.open = false;
- }
- if (last) {
- if (parentNode.id == prevSibling.id) {
- document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
- }
- else { }
- }
- if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
- parentNode.indent(null, true, last, this._level);
- }
- if (document.getElementById(prevSibling.id + '-plus')) {
- if (nextSibling) {
- if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
- else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
- else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
- }
-}
-
-WebFXTreeItem.prototype._remove = function() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
- this.childNodes[i]._remove();
- }
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this.id == this.parentNode.childNodes[i].id) {
- for (var j = i; j < this.parentNode.childNodes.length; j++) {
- this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
- }
- this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
- if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
- }
- }
- webFXTreeHandler.all[this.id] = null;
- if (document.getElementById(this.id)) {
- document.getElementById(this.id).innerHTML = "";
- document.getElementById(this.id).removeNode();
- }
-}
-
-WebFXTreeItem.prototype.expand = function() {
- this.doExpand();
- document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function() {
- this.focus();
- this.doCollapse();
- document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
- return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
- if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
- else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
- else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (i == 0) { return this.parentNode; }
- else {
- if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
- else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
- if ((key == 39) && (this.folder)) {
- if (!this.open) { this.expand(); return false; }
- else { this.getFirst().select(); return false; }
- }
- else if (key == 37) {
- if (this.open) { this.collapse(); return false; }
- else { this.parentNode.select(); return false; }
- }
- else if (key == 40) {
- if (this.open) { this.getFirst().select(); return false; }
- else {
- var sib = this.getNextSibling();
- if (sib) { sib.select(); return false; }
- } }
- else if (key == 38) { this.getPreviousSibling().select(); return false; }
- return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
- var foo = this.parentNode;
- var indent = '';
- if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
- var i = 0;
- while (foo.parentNode) {
- foo = foo.parentNode;
- indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
- i++;
- }
- this._level = i;
- if (this.childNodes.length) { this.folder = 1; }
- else { this.open = false; }
- if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
- if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
- if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
- }
- else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
- var label = this.text;
- label = label.replace('<', '<');
- label = label.replace('>', '>');
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
- str += indent;
- str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
- str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
- str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- for (var i = 0; i < this.childNodes.length; i++) {
- str += this.childNodes[i].toString(i,this.childNodes.length);
- }
- str += "</div>";
- this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
- this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
- return str;
+/*----------------------------------------\
+| Cross Browser Tree Widget 1.1 |
+|-----------------------------------------|
+| Created by Emil A. Eklund (eae@eae.net) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------|
+| This script is provided as is without |
+| any warranty whatsoever. It may be used |
+| free of charge for non commerical sites |
+| For commerical use contact the author |
+| of this script for further details. |
+|-----------------------------------------|
+| Created 2000-12-11 | Updated 2001-09-06 |
+\----------------------------------------*/
+
+var webFXTreeConfig = {
+ rootIcon : 'media/images/Class.gif',
+ openRootIcon : 'media/images/Class.gif',
+ folderIcon : 'media/images/Class.gif',
+ openFolderIcon : 'media/images/Class.gif',
+ fileIcon : 'media/images/Class.gif',
+ iIcon : 'media/images/I.png',
+ lIcon : 'media/images/L.png',
+ lMinusIcon : 'media/images/Lminus.png',
+ lPlusIcon : 'media/images/Lplus.png',
+ tIcon : 'media/images/T.png',
+ tMinusIcon : 'media/images/Tminus.png',
+ tPlusIcon : 'media/images/Tplus.png',
+ blankIcon : 'media/images/blank.png',
+ defaultText : 'Tree Item',
+ defaultAction : 'javascript:void(0);',
+ defaultTarget : 'right',
+ defaultBehavior : 'classic'
+};
+
+var webFXTreeHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-tree-object-",
+ all : {},
+ behavior : null,
+ selected : null,
+ getId : function() { return this.idPrefix + this.idCounter++; },
+ toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+ select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+ focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+ blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+ keydown : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
+ cookies : new WebFXCookie()
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+ if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+ document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+ if (this.cookies) {
+ var start = this.cookies.indexOf(' ' + key + '=');
+ if (start == -1) { return null; }
+ var end = this.cookies.indexOf(";", start);
+ if (end == -1) { end = this.cookies.length; }
+ end -= start;
+ var cookie = this.cookies.substr(start,end);
+ return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+ }
+ else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction, sTarget) {
+ this.childNodes = [];
+ this.id = webFXTreeHandler.getId();
+ this.text = sText || webFXTreeConfig.defaultText;
+ this.action = sAction || webFXTreeConfig.defaultAction;
+ this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
+ this._last = false;
+ webFXTreeHandler.all[this.id] = this;
+}
+
+WebFXTreeAbstractNode.prototype.add = function (node) {
+ node.parentNode = this;
+ this.childNodes[this.childNodes.length] = node;
+ var root = this;
+ if (this.childNodes.length >=2) {
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ while (root.parentNode) { root = root.parentNode; }
+ if (root.rendered) {
+ if (this.childNodes.length >= 2) {
+ document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
+ if (this.childNodes[this.childNodes.length -2].folder) {
+ this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
+ this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
+ }
+ this.childNodes[this.childNodes.length -2]._last = false;
+ }
+ this._last = true;
+ var foo = this;
+ while (foo.parentNode) {
+ for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+ if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+ }
+ if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
+ else { foo.parentNode._last = false; }
+ foo = foo.parentNode;
+ }
+ document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
+ if ((!this.folder) && (!this.openIcon)) {
+ this.icon = webFXTreeConfig.folderIcon;
+ this.openIcon = webFXTreeConfig.openFolderIcon;
+ }
+ this.folder = true;
+ this.indent();
+ this.expand();
+ }
+ return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+ if (this.folder) {
+ if (this.open) { this.collapse(); }
+ else { this.expand(); }
+ }
+}
+
+WebFXTreeAbstractNode.prototype.select = function() {
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+ webFXTreeHandler.selected = this;
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
+ document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+ document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
+ document.getElementById(this.id + '-anchor').style.color = 'menutext';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
+ this.open = true;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+}
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+ this.open = false;
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+}
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+ this.expandChildren();
+ if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+ if ((this.folder) && (this.open)) { this.collapse(); }
+ this.collapseChildren();
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
+ /*
+ * Since we only want to modify items one level below ourself,
+ * and since the rightmost indentation position is occupied by
+ * the plus icon we set this to -2
+ */
+ if (lvl == null) { lvl = -2; }
+ var state = 0;
+ for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+ state = this.childNodes[i].indent(lvl + 1, del, last, level);
+ if (state) { return; }
+ }
+ if (del) {
+ if (level >= this._level) {
+ if (this.folder) {
+ document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+ this.plusIcon = webFXTreeConfig.lPlusIcon;
+ this.minusIcon = webFXTreeConfig.lMinusIcon;
+ }
+ else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+ return 1;
+ }
+ }
+ var foo = document.getElementById(this.id + '-indent-' + lvl);
+ if (foo) {
+ if ((del) && (last)) { foo._last = true; }
+ if (foo._last) { foo.src = webFXTreeConfig.blankIcon; }
+ else { foo.src = webFXTreeConfig.iIcon; }
+ }
+ return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ this.icon = sIcon || webFXTreeConfig.rootIcon;
+ this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
+ /* Defaults to open */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+ this.folder = true;
+ this.rendered = false;
+ if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+ this.targetWindow = 'right';
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+ webFXTreeHandler.behavior = sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+ return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+ if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+ else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+ this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+ return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+ return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+ if (key == 39) { this.expand(); return false; }
+ if (key == 37) { this.collapse(); return false; }
+ if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
+ return true;
+}
+
+WebFXTree.prototype.toString = function() {
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i, this.childNodes.length);
+ }
+ str += "</div>";
+ this.rendered = true;
+ return str;
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ /* Defaults to close */
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+ if (eParent) { eParent.add(this); }
+ if (sIcon) { this.icon = sIcon; }
+ if (sOpenIcon) { this.openIcon = sOpenIcon; }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+ var parentNode = this.parentNode;
+ var prevSibling = this.getPreviousSibling(true);
+ var nextSibling = this.getNextSibling(true);
+ var folder = this.parentNode.folder;
+ var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+ this.getPreviousSibling().focus();
+ this._remove();
+ if (parentNode.childNodes.length == 0) {
+ parentNode.folder = false;
+ parentNode.open = false;
+ }
+ if (last) {
+ if (parentNode.id == prevSibling.id) {
+ document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
+ }
+ else { }
+ }
+ if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
+ parentNode.indent(null, true, last, this._level);
+ }
+ if (document.getElementById(prevSibling.id + '-plus')) {
+ if (nextSibling) {
+ if ((parentNode == prevSibling) && (parentNode.getNextSibling)) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
+ else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+ else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+ }
+}
+
+WebFXTreeItem.prototype._remove = function() {
+ for (var i = this.childNodes.length - 1; i >= 0; i--) {
+ this.childNodes[i]._remove();
+ }
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this.id == this.parentNode.childNodes[i].id) {
+ for (var j = i; j < this.parentNode.childNodes.length; j++) {
+ this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
+ }
+ this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
+ if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+ }
+ }
+ webFXTreeHandler.all[this.id] = null;
+ if (document.getElementById(this.id)) {
+ document.getElementById(this.id).innerHTML = "";
+ document.getElementById(this.id).removeNode();
+ }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+ this.doExpand();
+ document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function() {
+ this.focus();
+ this.doCollapse();
+ document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+ return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+ if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+ else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+ else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (i == 0) { return this.parentNode; }
+ else {
+ if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+ else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+ if ((key == 39) && (this.folder)) {
+ if (!this.open) { this.expand(); return false; }
+ else { this.getFirst().select(); return false; }
+ }
+ else if (key == 37) {
+ if (this.open) { this.collapse(); return false; }
+ else { this.parentNode.select(); return false; }
+ }
+ else if (key == 40) {
+ if (this.open) { this.getFirst().select(); return false; }
+ else {
+ var sib = this.getNextSibling();
+ if (sib) { sib.select(); return false; }
+ } }
+ else if (key == 38) { this.getPreviousSibling().select(); return false; }
+ return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+ var foo = this.parentNode;
+ var indent = '';
+ if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+ var i = 0;
+ while (foo.parentNode) {
+ foo = foo.parentNode;
+ indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+ i++;
+ }
+ this._level = i;
+ if (this.childNodes.length) { this.folder = 1; }
+ else { this.open = false; }
+ if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+ if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+ if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+ }
+ else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+ var label = this.text;
+ label = label.replace('<', '<');
+ label = label.replace('>', '>');
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+ str += indent;
+ str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
+ str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
+ str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ for (var i = 0; i < this.childNodes.length; i++) {
+ str += this.childNodes[i].toString(i,this.childNodes.length);
+ }
+ str += "</div>";
+ this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+ this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+ return str;
} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tab.webfx.css b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tab.webfx.css
index 8acc16c580..94a95f5220 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tab.webfx.css
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tab.webfx.css
@@ -1,9 +1,9 @@
-/*
-
-bright: rgb(234,242,255);
-normal: rgb(120,172,255);
-dark: rgb(0,66,174);
-
+/*
+
+bright: rgb(234,242,255);
+normal: rgb(120,172,255);
+dark: rgb(0,66,174);
+
*/
.dynamic-tab-pane-control.tab-pane {
position: relative;
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tabpane.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tabpane.js
index 4f504738bd..f1418bee6c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tabpane.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/tabpane.js
@@ -1,308 +1,308 @@
-/*
- * Tab Pane
- *
- * This script was created by Erik Arvidsson (erik(at)eae.net)
- * for WebFX (http://webfx.eae.net)
- * Copyright 2002
- *
- * For usage see license at http://webfx.eae.net/license.html
- *
- * Version: 1.0
- * Created: 2002-01-?? First working version
- * Updated: 2002-02-17 Cleaned up for 1.0 public version
- *
- * Dependencies: *.css - a css file to define the layout
- *
- */
-
-
-// This function is used to define if the browser supports the needed
-// features
-function hasSupport() {
-
- if (typeof hasSupport.support != "undefined")
- return hasSupport.support;
-
- var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
-
- hasSupport.support = ( typeof document.implementation != "undefined" &&
- document.implementation.hasFeature( "html", "1.0" ) || ie55 )
-
- // IE55 has a serious DOM1 bug... Patch it!
- if ( ie55 ) {
- document._getElementsByTagName = document.getElementsByTagName;
- document.getElementsByTagName = function ( sTagName ) {
- if ( sTagName == "*" )
- return document.all;
- else
- return document._getElementsByTagName( sTagName );
- };
- }
-
- return hasSupport.support;
-}
-
-///////////////////////////////////////////////////////////////////////////////////
-// The constructor for tab panes
-//
-// el : HTMLElement The html element used to represent the tab pane
-// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us
-// persistance using cookies or not
-//
-function WebFXTabPane( el, bUseCookie ) {
- if ( !hasSupport() || el == null ) return;
-
- this.element = el;
- this.element.tabPane = this;
- this.pages = [];
- this.selectedIndex = null;
- this.useCookie = bUseCookie != null ? bUseCookie : false;
-
- // add class name tag to class name
- this.element.className = this.classNameTag + " " + this.element.className;
-
- // add tab row
- this.tabRow = document.createElement( "div" );
- this.tabRow.className = "tab-row";
- el.insertBefore( this.tabRow, el.firstChild );
-
- var tabIndex = 0;
- if ( this.useCookie ) {
- tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) );
- if ( isNaN( tabIndex ) )
- tabIndex = 0;
- }
-
- this.selectedIndex = tabIndex;
-
- // loop through child nodes and add them
- var cs = el.childNodes;
- var n;
- for (var i = 0; i < cs.length; i++) {
- if (cs[i].nodeType == 1 && cs[i].className == "tab-page") {
- this.addTabPage( cs[i] );
- }
- }
-}
-
-WebFXTabPane.prototype = {
-
- classNameTag: "dynamic-tab-pane-control",
-
- setSelectedIndex: function ( n ) {
- if (this.selectedIndex != n) {
- if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
- this.pages[ this.selectedIndex ].hide();
- this.selectedIndex = n;
- this.pages[ this.selectedIndex ].show();
-
- if ( this.useCookie )
- WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie
- }
- },
-
- getSelectedIndex: function () {
- return this.selectedIndex;
- },
-
- addTabPage: function ( oElement ) {
- if ( !hasSupport() ) return;
-
- if ( oElement.tabPage == this ) // already added
- return oElement.tabPage;
-
- var n = this.pages.length;
- var tp = this.pages[n] = new WebFXTabPage( oElement, this, n );
- tp.tabPane = this;
-
- // move the tab out of the box
- this.tabRow.appendChild( tp.tab );
-
- if ( n == this.selectedIndex )
- tp.show();
- else
- tp.hide();
-
- return tp;
- }
-};
-
-// Cookie handling
-WebFXTabPane.setCookie = function ( sName, sValue, nDays ) {
- var expires = "";
- if ( nDays ) {
- var d = new Date();
- d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
- expires = "; expires=" + d.toGMTString();
- }
-
- document.cookie = sName + "=" + sValue + expires + "; path=/";
-};
-
-WebFXTabPane.getCookie = function (sName) {
- var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
- var res = re.exec( document.cookie );
- return res != null ? res[3] : null;
-};
-
-WebFXTabPane.removeCookie = function ( name ) {
- setCookie( name, "", -1 );
-};
-
-
-
-
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////
-// The constructor for tab pages. This one should not be used.
-// Use WebFXTabPage.addTabPage instead
-//
-// el : HTMLElement The html element used to represent the tab pane
-// tabPane : WebFXTabPane The parent tab pane
-// nindex : Number The index of the page in the parent pane page array
-//
-function WebFXTabPage( el, tabPane, nIndex ) {
- if ( !hasSupport() || el == null ) return;
-
- this.element = el;
- this.element.tabPage = this;
- this.index = nIndex;
-
- var cs = el.childNodes;
- for (var i = 0; i < cs.length; i++) {
- if (cs[i].nodeType == 1 && cs[i].className == "tab") {
- this.tab = cs[i];
- break;
- }
- }
-
- // insert a tag around content to support keyboard navigation
- var a = document.createElement( "A" );
- a.href = "javascript:void 0;";
- while ( this.tab.hasChildNodes() )
- a.appendChild( this.tab.firstChild );
- this.tab.appendChild( a );
-
-
- anchor = '';
- if ( document.URL.indexOf( '#' ) != -1 ) {
- anchor = document.URL.substr( document.URL.indexOf( '#' ) + 1);
- }
- j = 0;
- if ( anchor.length > 0 ) {
- finalList = new Array();
- listOfAnchors = el.getElementsByTagName('A');
- for (i=0; i<listOfAnchors.length; i++) {
- if (listOfAnchors[i].name.length) {
- finalList[j++] = listOfAnchors[i].name;
- }
- }
- for(i=0; i<finalList.length; i++) {
- if ( anchor == finalList[i] ) {
- if (tabPane.selectedIndex != nIndex) tabPane.pages[ tabPane.selectedIndex ].hide();
- tabPane.selectedIndex = nIndex ;
- }
- }
- }
-
- // hook up events, using DOM0
- var oThis = this;
- this.tab.onclick = function () { oThis.select(); };
- this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis ); };
- this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis ); };
-}
-
-WebFXTabPage.prototype = {
- show: function () {
- var el = this.tab;
- var s = el.className + " selected";
- s = s.replace(/ +/g, " ");
- el.className = s;
-
- this.element.style.display = "block";
- },
-
- hide: function () {
- var el = this.tab;
- var s = el.className;
- s = s.replace(/ selected/g, "");
- el.className = s;
-
- this.element.style.display = "none";
- },
-
- select: function () {
- this.tabPane.setSelectedIndex( this.index );
- }
-};
-
-WebFXTabPage.tabOver = function ( tabpage ) {
- var el = tabpage.tab;
- var s = el.className + " hover";
- s = s.replace(/ +/g, " ");
- el.className = s;
-};
-
-WebFXTabPage.tabOut = function ( tabpage ) {
- var el = tabpage.tab;
- var s = el.className;
- s = s.replace(/ hover/g, "");
- el.className = s;
-};
-
-
-// This function initializes all uninitialized tab panes and tab pages
-function setupAllTabs() {
- if ( !hasSupport() ) return;
-
- var all = document.getElementsByTagName( "*" );
- var l = all.length;
- var tabPaneRe = /tab\-pane/;
- var tabPageRe = /tab\-page/;
- var cn, el;
- var parentTabPane;
-
- for ( var i = 0; i < l; i++ ) {
- el = all[i]
- cn = el.className;
-
- // no className
- if ( cn == "" ) continue;
-
- // uninitiated tab pane
- if ( tabPaneRe.test( cn ) && !el.tabPane )
- new WebFXTabPane( el );
-
- // unitiated tab page wit a valid tab pane parent
- else if ( tabPageRe.test( cn ) && !el.tabPage &&
- tabPaneRe.test( el.parentNode.className ) ) {
- el.parentNode.tabPane.addTabPage( el );
- }
- }
-}
-
-
-// initialization hook up
-
-// DOM2
-if ( typeof window.addEventListener != "undefined" )
- window.addEventListener( "load", setupAllTabs, false );
-
-// IE
-else if ( typeof window.attachEvent != "undefined" )
- window.attachEvent( "onload", setupAllTabs );
-
-else {
- if ( window.onload != null ) {
- var oldOnload = window.onload;
- window.onload = function ( e ) {
- oldOnload( e );
- setupAllTabs();
- };
- }
- else
- window.onload = setupAllTabs;
+/*
+ * Tab Pane
+ *
+ * This script was created by Erik Arvidsson (erik(at)eae.net)
+ * for WebFX (http://webfx.eae.net)
+ * Copyright 2002
+ *
+ * For usage see license at http://webfx.eae.net/license.html
+ *
+ * Version: 1.0
+ * Created: 2002-01-?? First working version
+ * Updated: 2002-02-17 Cleaned up for 1.0 public version
+ *
+ * Dependencies: *.css - a css file to define the layout
+ *
+ */
+
+
+// This function is used to define if the browser supports the needed
+// features
+function hasSupport() {
+
+ if (typeof hasSupport.support != "undefined")
+ return hasSupport.support;
+
+ var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
+
+ hasSupport.support = ( typeof document.implementation != "undefined" &&
+ document.implementation.hasFeature( "html", "1.0" ) || ie55 )
+
+ // IE55 has a serious DOM1 bug... Patch it!
+ if ( ie55 ) {
+ document._getElementsByTagName = document.getElementsByTagName;
+ document.getElementsByTagName = function ( sTagName ) {
+ if ( sTagName == "*" )
+ return document.all;
+ else
+ return document._getElementsByTagName( sTagName );
+ };
+ }
+
+ return hasSupport.support;
+}
+
+///////////////////////////////////////////////////////////////////////////////////
+// The constructor for tab panes
+//
+// el : HTMLElement The html element used to represent the tab pane
+// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us
+// persistance using cookies or not
+//
+function WebFXTabPane( el, bUseCookie ) {
+ if ( !hasSupport() || el == null ) return;
+
+ this.element = el;
+ this.element.tabPane = this;
+ this.pages = [];
+ this.selectedIndex = null;
+ this.useCookie = bUseCookie != null ? bUseCookie : false;
+
+ // add class name tag to class name
+ this.element.className = this.classNameTag + " " + this.element.className;
+
+ // add tab row
+ this.tabRow = document.createElement( "div" );
+ this.tabRow.className = "tab-row";
+ el.insertBefore( this.tabRow, el.firstChild );
+
+ var tabIndex = 0;
+ if ( this.useCookie ) {
+ tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) );
+ if ( isNaN( tabIndex ) )
+ tabIndex = 0;
+ }
+
+ this.selectedIndex = tabIndex;
+
+ // loop through child nodes and add them
+ var cs = el.childNodes;
+ var n;
+ for (var i = 0; i < cs.length; i++) {
+ if (cs[i].nodeType == 1 && cs[i].className == "tab-page") {
+ this.addTabPage( cs[i] );
+ }
+ }
+}
+
+WebFXTabPane.prototype = {
+
+ classNameTag: "dynamic-tab-pane-control",
+
+ setSelectedIndex: function ( n ) {
+ if (this.selectedIndex != n) {
+ if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
+ this.pages[ this.selectedIndex ].hide();
+ this.selectedIndex = n;
+ this.pages[ this.selectedIndex ].show();
+
+ if ( this.useCookie )
+ WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie
+ }
+ },
+
+ getSelectedIndex: function () {
+ return this.selectedIndex;
+ },
+
+ addTabPage: function ( oElement ) {
+ if ( !hasSupport() ) return;
+
+ if ( oElement.tabPage == this ) // already added
+ return oElement.tabPage;
+
+ var n = this.pages.length;
+ var tp = this.pages[n] = new WebFXTabPage( oElement, this, n );
+ tp.tabPane = this;
+
+ // move the tab out of the box
+ this.tabRow.appendChild( tp.tab );
+
+ if ( n == this.selectedIndex )
+ tp.show();
+ else
+ tp.hide();
+
+ return tp;
+ }
+};
+
+// Cookie handling
+WebFXTabPane.setCookie = function ( sName, sValue, nDays ) {
+ var expires = "";
+ if ( nDays ) {
+ var d = new Date();
+ d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
+ expires = "; expires=" + d.toGMTString();
+ }
+
+ document.cookie = sName + "=" + sValue + expires + "; path=/";
+};
+
+WebFXTabPane.getCookie = function (sName) {
+ var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
+ var res = re.exec( document.cookie );
+ return res != null ? res[3] : null;
+};
+
+WebFXTabPane.removeCookie = function ( name ) {
+ setCookie( name, "", -1 );
+};
+
+
+
+
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////////
+// The constructor for tab pages. This one should not be used.
+// Use WebFXTabPage.addTabPage instead
+//
+// el : HTMLElement The html element used to represent the tab pane
+// tabPane : WebFXTabPane The parent tab pane
+// nindex : Number The index of the page in the parent pane page array
+//
+function WebFXTabPage( el, tabPane, nIndex ) {
+ if ( !hasSupport() || el == null ) return;
+
+ this.element = el;
+ this.element.tabPage = this;
+ this.index = nIndex;
+
+ var cs = el.childNodes;
+ for (var i = 0; i < cs.length; i++) {
+ if (cs[i].nodeType == 1 && cs[i].className == "tab") {
+ this.tab = cs[i];
+ break;
+ }
+ }
+
+ // insert a tag around content to support keyboard navigation
+ var a = document.createElement( "A" );
+ a.href = "javascript:void 0;";
+ while ( this.tab.hasChildNodes() )
+ a.appendChild( this.tab.firstChild );
+ this.tab.appendChild( a );
+
+
+ anchor = '';
+ if ( document.URL.indexOf( '#' ) != -1 ) {
+ anchor = document.URL.substr( document.URL.indexOf( '#' ) + 1);
+ }
+ j = 0;
+ if ( anchor.length > 0 ) {
+ finalList = new Array();
+ listOfAnchors = el.getElementsByTagName('A');
+ for (i=0; i<listOfAnchors.length; i++) {
+ if (listOfAnchors[i].name.length) {
+ finalList[j++] = listOfAnchors[i].name;
+ }
+ }
+ for(i=0; i<finalList.length; i++) {
+ if ( anchor == finalList[i] ) {
+ if (tabPane.selectedIndex != nIndex) tabPane.pages[ tabPane.selectedIndex ].hide();
+ tabPane.selectedIndex = nIndex ;
+ }
+ }
+ }
+
+ // hook up events, using DOM0
+ var oThis = this;
+ this.tab.onclick = function () { oThis.select(); };
+ this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis ); };
+ this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis ); };
+}
+
+WebFXTabPage.prototype = {
+ show: function () {
+ var el = this.tab;
+ var s = el.className + " selected";
+ s = s.replace(/ +/g, " ");
+ el.className = s;
+
+ this.element.style.display = "block";
+ },
+
+ hide: function () {
+ var el = this.tab;
+ var s = el.className;
+ s = s.replace(/ selected/g, "");
+ el.className = s;
+
+ this.element.style.display = "none";
+ },
+
+ select: function () {
+ this.tabPane.setSelectedIndex( this.index );
+ }
+};
+
+WebFXTabPage.tabOver = function ( tabpage ) {
+ var el = tabpage.tab;
+ var s = el.className + " hover";
+ s = s.replace(/ +/g, " ");
+ el.className = s;
+};
+
+WebFXTabPage.tabOut = function ( tabpage ) {
+ var el = tabpage.tab;
+ var s = el.className;
+ s = s.replace(/ hover/g, "");
+ el.className = s;
+};
+
+
+// This function initializes all uninitialized tab panes and tab pages
+function setupAllTabs() {
+ if ( !hasSupport() ) return;
+
+ var all = document.getElementsByTagName( "*" );
+ var l = all.length;
+ var tabPaneRe = /tab\-pane/;
+ var tabPageRe = /tab\-page/;
+ var cn, el;
+ var parentTabPane;
+
+ for ( var i = 0; i < l; i++ ) {
+ el = all[i]
+ cn = el.className;
+
+ // no className
+ if ( cn == "" ) continue;
+
+ // uninitiated tab pane
+ if ( tabPaneRe.test( cn ) && !el.tabPane )
+ new WebFXTabPane( el );
+
+ // unitiated tab page wit a valid tab pane parent
+ else if ( tabPageRe.test( cn ) && !el.tabPage &&
+ tabPaneRe.test( el.parentNode.className ) ) {
+ el.parentNode.tabPane.addTabPage( el );
+ }
+ }
+}
+
+
+// initialization hook up
+
+// DOM2
+if ( typeof window.addEventListener != "undefined" )
+ window.addEventListener( "load", setupAllTabs, false );
+
+// IE
+else if ( typeof window.attachEvent != "undefined" )
+ window.attachEvent( "onload", setupAllTabs );
+
+else {
+ if ( window.onload != null ) {
+ var oldOnload = window.onload;
+ window.onload = function ( e ) {
+ oldOnload( e );
+ setupAllTabs();
+ };
+ }
+ else
+ window.onload = setupAllTabs;
} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/ua.js b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/ua.js
index 94e83c1498..c06fa31320 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/ua.js
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/lib/ua.js
@@ -1,111 +1,111 @@
-/*
-ua.js revision 0.200 2001-12-03
-
-Contributor(s): Bob Clary, Netscape Communications, Copyright 2001
-
-Netscape grants you a royalty free license to use, modify and
-distribute this software provided that this copyright notice
-appears on all copies. This software is provided "AS IS,"
-without a warranty of any kind.
-*/
-
-function xbDetectBrowser()
-{
- var oldOnError = window.onerror;
- var element = null;
-
- window.onerror = null;
-
- // work around bug in xpcdom Mozilla 0.9.1
- window.saveNavigator = window.navigator;
-
- navigator.OS = '';
- navigator.version = parseFloat(navigator.appVersion);
- navigator.org = '';
- navigator.family = '';
-
- var platform;
- if (typeof(window.navigator.platform) != 'undefined')
- {
- platform = window.navigator.platform.toLowerCase();
- if (platform.indexOf('win') != -1)
- navigator.OS = 'win';
- else if (platform.indexOf('mac') != -1)
- navigator.OS = 'mac';
- else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)
- navigator.OS = 'nix';
- }
-
- var i = 0;
- var ua = window.navigator.userAgent.toLowerCase();
- if (ua.indexOf('opera') != -1)
- {
- i = ua.indexOf('opera');
- navigator.family = 'opera';
- navigator.org = 'opera';
- navigator.version = parseFloat('0' + ua.substr(i+6), 10);
- }
- else if ((i = ua.indexOf('msie')) != -1)
- {
- navigator.org = 'microsoft';
- navigator.version = parseFloat('0' + ua.substr(i+5), 10);
-
- if (navigator.version < 4)
- navigator.family = 'ie3';
- else
- navigator.family = 'ie4'
- }
- else if (ua.indexOf('gecko') != -1)
- {
- navigator.family = 'gecko';
- var rvStart = navigator.userAgent.indexOf('rv:') + 3;
- var rvEnd = navigator.userAgent.indexOf(')', rvStart);
- var rv = navigator.userAgent.substring(rvStart, rvEnd);
- var decIndex = rv.indexOf('.');
- if (decIndex != -1)
- {
- rv = rv.replace(/\./g, '')
- rv = rv.substring(0, decIndex-1) + '.' + rv.substr(decIndex)
- }
- navigator.version = parseFloat(rv);
-
- if (ua.indexOf('netscape') != -1)
- navigator.org = 'netscape';
- else if (ua.indexOf('compuserve') != -1)
- navigator.org = 'compuserve';
- else
- navigator.org = 'mozilla';
- }
- else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))
- {
- var is_major = parseFloat(navigator.appVersion);
-
- if (is_major < 4)
- navigator.version = is_major;
- else
- {
- i = ua.lastIndexOf('/')
- navigator.version = parseFloat('0' + ua.substr(i+1), 10);
- }
- navigator.org = 'netscape';
- navigator.family = 'nn' + parseInt(navigator.appVersion);
- }
- else if ((i = ua.indexOf('aol')) != -1 )
- {
- // aol
- navigator.family = 'aol';
- navigator.org = 'aol';
- navigator.version = parseFloat('0' + ua.substr(i+4), 10);
- }
- else if ((i = ua.indexOf('hotjava')) != -1 )
- {
- // hotjava
- navigator.family = 'hotjava';
- navigator.org = 'sun';
- navigator.version = parseFloat(navigator.appVersion);
- }
-
- window.onerror = oldOnError;
-}
-
-xbDetectBrowser();
+/*
+ua.js revision 0.200 2001-12-03
+
+Contributor(s): Bob Clary, Netscape Communications, Copyright 2001
+
+Netscape grants you a royalty free license to use, modify and
+distribute this software provided that this copyright notice
+appears on all copies. This software is provided "AS IS,"
+without a warranty of any kind.
+*/
+
+function xbDetectBrowser()
+{
+ var oldOnError = window.onerror;
+ var element = null;
+
+ window.onerror = null;
+
+ // work around bug in xpcdom Mozilla 0.9.1
+ window.saveNavigator = window.navigator;
+
+ navigator.OS = '';
+ navigator.version = parseFloat(navigator.appVersion);
+ navigator.org = '';
+ navigator.family = '';
+
+ var platform;
+ if (typeof(window.navigator.platform) != 'undefined')
+ {
+ platform = window.navigator.platform.toLowerCase();
+ if (platform.indexOf('win') != -1)
+ navigator.OS = 'win';
+ else if (platform.indexOf('mac') != -1)
+ navigator.OS = 'mac';
+ else if (platform.indexOf('unix') != -1 || platform.indexOf('linux') != -1 || platform.indexOf('sun') != -1)
+ navigator.OS = 'nix';
+ }
+
+ var i = 0;
+ var ua = window.navigator.userAgent.toLowerCase();
+ if (ua.indexOf('opera') != -1)
+ {
+ i = ua.indexOf('opera');
+ navigator.family = 'opera';
+ navigator.org = 'opera';
+ navigator.version = parseFloat('0' + ua.substr(i+6), 10);
+ }
+ else if ((i = ua.indexOf('msie')) != -1)
+ {
+ navigator.org = 'microsoft';
+ navigator.version = parseFloat('0' + ua.substr(i+5), 10);
+
+ if (navigator.version < 4)
+ navigator.family = 'ie3';
+ else
+ navigator.family = 'ie4'
+ }
+ else if (ua.indexOf('gecko') != -1)
+ {
+ navigator.family = 'gecko';
+ var rvStart = navigator.userAgent.indexOf('rv:') + 3;
+ var rvEnd = navigator.userAgent.indexOf(')', rvStart);
+ var rv = navigator.userAgent.substring(rvStart, rvEnd);
+ var decIndex = rv.indexOf('.');
+ if (decIndex != -1)
+ {
+ rv = rv.replace(/\./g, '')
+ rv = rv.substring(0, decIndex-1) + '.' + rv.substr(decIndex)
+ }
+ navigator.version = parseFloat(rv);
+
+ if (ua.indexOf('netscape') != -1)
+ navigator.org = 'netscape';
+ else if (ua.indexOf('compuserve') != -1)
+ navigator.org = 'compuserve';
+ else
+ navigator.org = 'mozilla';
+ }
+ else if ((ua.indexOf('mozilla') !=-1) && (ua.indexOf('spoofer')==-1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera')==-1)&& (ua.indexOf('webtv')==-1) && (ua.indexOf('hotjava')==-1))
+ {
+ var is_major = parseFloat(navigator.appVersion);
+
+ if (is_major < 4)
+ navigator.version = is_major;
+ else
+ {
+ i = ua.lastIndexOf('/')
+ navigator.version = parseFloat('0' + ua.substr(i+1), 10);
+ }
+ navigator.org = 'netscape';
+ navigator.family = 'nn' + parseInt(navigator.appVersion);
+ }
+ else if ((i = ua.indexOf('aol')) != -1 )
+ {
+ // aol
+ navigator.family = 'aol';
+ navigator.org = 'aol';
+ navigator.version = parseFloat('0' + ua.substr(i+4), 10);
+ }
+ else if ((i = ua.indexOf('hotjava')) != -1 )
+ {
+ // hotjava
+ navigator.family = 'hotjava';
+ navigator.org = 'sun';
+ navigator.version = parseFloat(navigator.appVersion);
+ }
+
+ window.onerror = oldOnError;
+}
+
+xbDetectBrowser();
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/stylesheet.css b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/stylesheet.css
index ca89277266..843be73230 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/stylesheet.css
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/media/stylesheet.css
@@ -124,8 +124,8 @@ div.maintutorial {
margin-left: 20px;
}
-/*------------------------------------------------------------------------------
- Show/Hide blocks
+/*------------------------------------------------------------------------------
+ Show/Hide blocks
------------------------------------------------------------------------------*/
.shown {
display: inline;
@@ -262,8 +262,8 @@ pre.depreciated {
padding: 5px;
}
-/*------------------------------------------------------------------------------
- webfx-tree
+/*------------------------------------------------------------------------------
+ webfx-tree
------------------------------------------------------------------------------*/
.webfx-tree-container {
margin: 0px;
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/method.tpl
index 698e754b00..4c96f2f20e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/method.tpl
@@ -1,126 +1,126 @@
-<h2 class="tab">Method Detail</h2>
-<!-- ============ METHOD DETAIL =========== -->
-<strong>Summary:</strong><br />
-<div class="method-summary">
-{section name=methods loop=$methods}
-{if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].method_dest}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].method_dest}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-{/if}
-{/section}
-</div>
-<hr />
-<A NAME='method_detail'></A>
-
-
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="{$methods[methods].method_dest}" id="{$methods[methods].method_dest}"><!-- --></a>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'"><h4>
-<img src="{$subdir}media/images/PublicMethod.gif" border="0" /> <strong class="method">Static Method {$methods[methods].function_name}</strong> (line <span class="linenumber">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </h4>
-<h4><i>{$methods[methods].function_return}</i> <strong>{if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if})</strong></h4>
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-
-{if $methods[methods].method_overrides}
-<p><strong>Overrides :</strong> {$methods[methods].method_overrides.link} {$methods[methods].method_overrides.sdesc|default:"parent method not documented"}</p>
-{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="{$methods[methods].method_dest}" id="{$methods[methods].method_dest}"><!-- --></a>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'"><h4>
-<img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{else}PublicMethod{/if}.gif" border="0" /> <strong class="method">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {else}Method {/if}{$methods[methods].function_name}</strong> (line <span class="linenumber">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </h4>
-<h4><i>{$methods[methods].function_return}</i> <strong>{if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
-{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
-{/section}
-{/if})</strong></h4>
-{if $methods[methods].descmethod}
- <p>Overridden in child classes as:<br />
- {section name=dm loop=$methods[methods].descmethod}
- <dl>
- <dt>{$methods[methods].descmethod[dm].link}</dt>
- <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
- </dl>
- {/section}</p>
-{/if}
-
-{if $methods[methods].method_overrides}
-<p><strong>Overrides :</strong> {$methods[methods].method_overrides.link} {$methods[methods].method_overrides.sdesc|default:"parent method not documented"}</p>
-{/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
-</div>
-{/if}
-{/section}
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage2" ) );</script>
+<h2 class="tab">Method Detail</h2>
+<!-- ============ METHOD DETAIL =========== -->
+<strong>Summary:</strong><br />
+<div class="method-summary">
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].method_dest}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].method_dest}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+{/if}
+{/section}
+</div>
+<hr />
+<A NAME='method_detail'></A>
+
+
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="{$methods[methods].method_dest}" id="{$methods[methods].method_dest}"><!-- --></a>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'"><h4>
+<img src="{$subdir}media/images/PublicMethod.gif" border="0" /> <strong class="method">Static Method {$methods[methods].function_name}</strong> (line <span class="linenumber">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </h4>
+<h4><i>{$methods[methods].function_return}</i> <strong>{if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if})</strong></h4>
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+
+{if $methods[methods].method_overrides}
+<p><strong>Overrides :</strong> {$methods[methods].method_overrides.link} {$methods[methods].method_overrides.sdesc|default:"parent method not documented"}</p>
+{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="{$methods[methods].method_dest}" id="{$methods[methods].method_dest}"><!-- --></a>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'"><h4>
+<img src="{$subdir}media/images/{if $methods[methods].ifunction_call.constructor}Constructor{elseif $methods[methods].ifunction_call.destructor}Destructor{else}PublicMethod{/if}.gif" border="0" /> <strong class="method">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {else}Method {/if}{$methods[methods].function_name}</strong> (line <span class="linenumber">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </h4>
+<h4><i>{$methods[methods].function_return}</i> <strong>{if $methods[methods].ifunction_call.returnsref}&amp;{/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].hasdefault}[{/if}{$methods[methods].ifunction_call.params[params].type}
+{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].hasdefault} = {$methods[methods].ifunction_call.params[params].default}]{/if}
+{/section}
+{/if})</strong></h4>
+{if $methods[methods].descmethod}
+ <p>Overridden in child classes as:<br />
+ {section name=dm loop=$methods[methods].descmethod}
+ <dl>
+ <dt>{$methods[methods].descmethod[dm].link}</dt>
+ <dd>{$methods[methods].descmethod[dm].sdesc}</dd>
+ </dl>
+ {/section}</p>
+{/if}
+
+{if $methods[methods].method_overrides}
+<p><strong>Overrides :</strong> {$methods[methods].method_overrides.link} {$methods[methods].method_overrides.sdesc|default:"parent method not documented"}</p>
+{/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=true}
+</div>
+{/if}
+{/section}
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage2" ) );</script>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/page.tpl
index ac2ccb2b6f..5a9da0e49b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/page.tpl
@@ -1,53 +1,53 @@
-{include file="header.tpl" top3=true}
-<h2>File: {$source_location}</h2>
-<div class="tab-pane" id="tabPane1">
-<script type="text/javascript">
-tp1 = new WebFXTabPane( document.getElementById( "tabPane1" ) );
-</script>
-
-<div class="tab-page" id="Description">
-<h2 class="tab">Description</h2>
-{if $tutorial}
-<div class="maintutorial">Main Tutorial: {$tutorial}</div>
-{/if}
-{include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-<!-- =========== Used Classes =========== -->
-<A NAME='classes_summary'><!-- --></A>
-<h3>Classes defined in this file</h3>
-
-<TABLE CELLPADDING='3' CELLSPACING='0' WIDTH='100%' CLASS="border">
- <THEAD>
- <TR><TD STYLE="width:20%"><h4>CLASS NAME</h4></TD><TD STYLE="width: 80%"><h4>DESCRIPTION</h4></TD></TR>
- </THEAD>
- <TBODY>
- {section name=classes loop=$classes}
- <TR BGCOLOR='white' CLASS='TableRowColor'>
- <TD>{$classes[classes].link}</TD>
- <TD>{$classes[classes].sdesc}</TD>
- </TR>
- {/section}
- </TBODY>
-</TABLE>
-</div>
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "Description" ) );</script>
-<div class="tab-page" id="tabPage1">
-{include file="include.tpl"}
-</div>
-<div class="tab-page" id="tabPage2">
-{include file="global.tpl"}
-</div>
-<div class="tab-page" id="tabPage3">
-{include file="define.tpl"}
-</div>
-<div class="tab-page" id="tabPage4">
-{include file="function.tpl"}
-</div>
-</div>
-<script type="text/javascript">
-//<![CDATA[
-
-setupAllTabs();
-
-//]]>
-</script>
+{include file="header.tpl" top3=true}
+<h2>File: {$source_location}</h2>
+<div class="tab-pane" id="tabPane1">
+<script type="text/javascript">
+tp1 = new WebFXTabPane( document.getElementById( "tabPane1" ) );
+</script>
+
+<div class="tab-page" id="Description">
+<h2 class="tab">Description</h2>
+{if $tutorial}
+<div class="maintutorial">Main Tutorial: {$tutorial}</div>
+{/if}
+{include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+<!-- =========== Used Classes =========== -->
+<A NAME='classes_summary'><!-- --></A>
+<h3>Classes defined in this file</h3>
+
+<TABLE CELLPADDING='3' CELLSPACING='0' WIDTH='100%' CLASS="border">
+ <THEAD>
+ <TR><TD STYLE="width:20%"><h4>CLASS NAME</h4></TD><TD STYLE="width: 80%"><h4>DESCRIPTION</h4></TD></TR>
+ </THEAD>
+ <TBODY>
+ {section name=classes loop=$classes}
+ <TR BGCOLOR='white' CLASS='TableRowColor'>
+ <TD>{$classes[classes].link}</TD>
+ <TD>{$classes[classes].sdesc}</TD>
+ </TR>
+ {/section}
+ </TBODY>
+</TABLE>
+</div>
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "Description" ) );</script>
+<div class="tab-page" id="tabPage1">
+{include file="include.tpl"}
+</div>
+<div class="tab-page" id="tabPage2">
+{include file="global.tpl"}
+</div>
+<div class="tab-page" id="tabPage3">
+{include file="define.tpl"}
+</div>
+<div class="tab-page" id="tabPage4">
+{include file="function.tpl"}
+</div>
+</div>
+<script type="text/javascript">
+//<![CDATA[
+
+setupAllTabs();
+
+//]]>
+</script>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/pkgelementindex.tpl
index 66709b8aed..c29ea98259 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>Element Index, Package {$package}</h2>
-{if count($packageindex) > 1}
-<strong>Indexes by package:</strong><br>
-{/if}
-<ul>
-{section name=p loop=$packageindex}
-{if $packageindex[p].title != $package}
-<li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/if}
-{/section}
-</ul>
-<a href="elementindex.html"><strong>Index of all elements</strong></a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>Element Index, Package {$package}</h2>
+{if count($packageindex) > 1}
+<strong>Indexes by package:</strong><br>
+{/if}
+<ul>
+{section name=p loop=$packageindex}
+{if $packageindex[p].title != $package}
+<li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/if}
+{/section}
+</ul>
+<a href="elementindex.html"><strong>Index of all elements</strong></a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/ric.tpl
index 9d0ef3e114..ad792475fd 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<div align="center"><h1>{$name}</h1></div>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<div align="center"><h1>{$name}</h1></div>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/top_frame.tpl
index 3271631cda..806283f447 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/top_frame.tpl
@@ -1,16 +1,16 @@
-{include file="header.tpl" top1=true}
-{if count($ric) >= 1}
-<ul>
-{section name=ric loop=$ric}
- <li><a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a></li>
-{/section}
-</ul>
-{/if}
-<h1>Packages</h1>
-<ul>
-{section name=p loop=$packages}
- <li><a class="package" href='{$packages[p].link}' target='left_bottom'>{$packages[p].title}</a></li>
-{/section}
-</ul>
-</body>
+{include file="header.tpl" top1=true}
+{if count($ric) >= 1}
+<ul>
+{section name=ric loop=$ric}
+ <li><a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a></li>
+{/section}
+</ul>
+{/if}
+<h1>Packages</h1>
+<ul>
+{section name=p loop=$packages}
+ <li><a class="package" href='{$packages[p].link}' target='left_bottom'>{$packages[p].title}</a></li>
+{/section}
+</ul>
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial.tpl
index 22c71c3b9a..a943522c24 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial.tpl
@@ -1,32 +1,32 @@
-{include file="header.tpl" title=$title}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="10%" align="left" valign="bottom">{if $prev}<a href=
-"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
-<td width="80%" align="center" valign="bottom"></td>
-<td width="10%" align="right" valign="bottom">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-</table>
-{/if}
-{$contents}
-{if $nav}
-<table width="100%" border="0" cellpadding="0" cellspacing="0">
-<tr>
-<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
-Prev{if $prev}</a>{/if}</td>
-<td width="34%" align="center" valign="top">{if $up}<a href=
-"{$up}">Up</a>{else}&nbsp;{/if}</td>
-<td width="33%" align="right" valign="top">{if $next}<a href=
-"{$next}">{/if}Next{if $next}</a>{/if}</td>
-</tr>
-
-<tr>
-<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
-<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
-<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
-</tr>
-</table>
-{/if}
+{include file="header.tpl" title=$title}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="10%" align="left" valign="bottom">{if $prev}<a href=
+"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
+<td width="80%" align="center" valign="bottom"></td>
+<td width="10%" align="right" valign="bottom">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+</table>
+{/if}
+{$contents}
+{if $nav}
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr>
+<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
+Prev{if $prev}</a>{/if}</td>
+<td width="34%" align="center" valign="top">{if $up}<a href=
+"{$up}">Up</a>{else}&nbsp;{/if}</td>
+<td width="33%" align="right" valign="top">{if $next}<a href=
+"{$next}">{/if}Next{if $next}</a>{/if}</td>
+</tr>
+
+<tr>
+<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
+<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
+<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
+</tr>
+</table>
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_toc.tpl
index 1db3443844..3d22d403b4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_toc.tpl
@@ -1,29 +1,29 @@
-{if count($toc)}
-<h1 align="center">Table of Contents</h1>
-<ul>
-{section name=toc loop=$toc}
-{if $toc[toc].tagname == 'refsect1'}
-{assign var="context" value="refsect1"}
-{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect2'}
-{assign var="context" value="refsect2"}
-&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'refsect3'}
-{assign var="context" value="refsect3"}
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
-{/if}
-{if $toc[toc].tagname == 'table'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{if $toc[toc].tagname == 'example'}
-{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
-{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
-Table: {$toc[toc].link}
-{/if}
-{/section}
-</ul>
+{if count($toc)}
+<h1 align="center">Table of Contents</h1>
+<ul>
+{section name=toc loop=$toc}
+{if $toc[toc].tagname == 'refsect1'}
+{assign var="context" value="refsect1"}
+{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect2'}
+{assign var="context" value="refsect2"}
+&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'refsect3'}
+{assign var="context" value="refsect3"}
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$toc[toc].link}<br />
+{/if}
+{if $toc[toc].tagname == 'table'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{if $toc[toc].tagname == 'example'}
+{if $context == 'refsect2'}&nbsp;&nbsp;&nbsp;{/if}
+{if $context == 'refsect3'}&nbsp;&nbsp;&nbsp;{/if}
+Table: {$toc[toc].link}
+{/if}
+{/section}
+</ul>
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_tree.tpl
index fd9113c8a6..23459a96d4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/tutorial_tree.tpl
@@ -1,13 +1,13 @@
- var {$name}tree = new WebFXTree{if $subtree}Item{/if}('{$main.title|strip_tags}','{$main.link}');
-{if !$subtree} {$name}tree.setBehavior('classic');
-{/if} {$name}tree.openIcon = 'media/images/msgInformation.gif';
- {$name}tree.icon = 'media/images/{if $subtree}msgInformation.gif{else}FolderClosed.gif{/if}';
-{if $kids}
-{$kids}
-
-{/if}{if $subtree} {$parent}tree.add({$name}tree);
-{else}
- document.write({$name}tree);
-{/if}
-
-
+ var {$name}tree = new WebFXTree{if $subtree}Item{/if}('{$main.title|strip_tags}','{$main.link}');
+{if !$subtree} {$name}tree.setBehavior('classic');
+{/if} {$name}tree.openIcon = 'media/images/msgInformation.gif';
+ {$name}tree.icon = 'media/images/{if $subtree}msgInformation.gif{else}FolderClosed.gif{/if}';
+{if $kids}
+{$kids}
+
+{/if}{if $subtree} {$parent}tree.add({$name}tree);
+{else}
+ document.write({$name}tree);
+{/if}
+
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/var.tpl
index 8135df35ee..7b2933517e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phpedit/templates/var.tpl
@@ -1,49 +1,49 @@
-
-<h2 class="tab">Class Variables</h2>
-<!-- ============ VARIABLE DETAIL =========== -->
-<strong>Summary:</strong><br />
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_dest}" title="details" class="property"><strong>{$vars[vars].var_name}</strong></a>
-</div>
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_dest}" title="details" class="property"><strong>{$vars[vars].var_name}</strong></a>
-</div>
-{/if}
-{/section}
-<hr />
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="{$vars[vars].var_dest}" id="{$vars[vars].var_dest}"><!-- --></A>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'">
-<h4>
-<img src="{$subdir}media/images/PublicProperty.gif" border="0" /> <strong class="property">static {$vars[vars].var_name}{if $vars[vars].var_default} = {$vars[vars].var_default|replace:"\n":"<br />"}{/if}</strong> (line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </h4>
-<h4>Data type : {$vars[vars].var_type}</h4>
-{if $vars[vars].var_overrides}<p><strong>Overrides:</strong> {$vars[vars].var_overrides}<br></p>{/if}
-{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-</div>
-{/if}
-{/section}
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="{$vars[vars].var_dest}" id="{$vars[vars].var_dest}"><!-- --></A>
-<div style="background='{cycle values="#ffffff,#eeeeee"}'">
-<h4>
-<img src="{$subdir}media/images/PublicProperty.gif" border="0" /> <strong class="property">{$vars[vars].var_name}{if $vars[vars].var_default} = {$vars[vars].var_default|replace:"\n":"<br />"}{/if}</strong> (line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </h4>
-<h4>Data type : {$vars[vars].var_type}</h4>
-{if $vars[vars].var_overrides}<p><strong>Overrides:</strong> {$vars[vars].var_overrides}<br></p>{/if}
-{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-</div>
-{/if}
-{/section}
-<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage1" ) );</script>
-
+
+<h2 class="tab">Class Variables</h2>
+<!-- ============ VARIABLE DETAIL =========== -->
+<strong>Summary:</strong><br />
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_dest}" title="details" class="property"><strong>{$vars[vars].var_name}</strong></a>
+</div>
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_dest}" title="details" class="property"><strong>{$vars[vars].var_name}</strong></a>
+</div>
+{/if}
+{/section}
+<hr />
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="{$vars[vars].var_dest}" id="{$vars[vars].var_dest}"><!-- --></A>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'">
+<h4>
+<img src="{$subdir}media/images/PublicProperty.gif" border="0" /> <strong class="property">static {$vars[vars].var_name}{if $vars[vars].var_default} = {$vars[vars].var_default|replace:"\n":"<br />"}{/if}</strong> (line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </h4>
+<h4>Data type : {$vars[vars].var_type}</h4>
+{if $vars[vars].var_overrides}<p><strong>Overrides:</strong> {$vars[vars].var_overrides}<br></p>{/if}
+{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+</div>
+{/if}
+{/section}
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="{$vars[vars].var_dest}" id="{$vars[vars].var_dest}"><!-- --></A>
+<div style="background='{cycle values="#ffffff,#eeeeee"}'">
+<h4>
+<img src="{$subdir}media/images/PublicProperty.gif" border="0" /> <strong class="property">{$vars[vars].var_name}{if $vars[vars].var_default} = {$vars[vars].var_default|replace:"\n":"<br />"}{/if}</strong> (line <span class="linenumber">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </h4>
+<h4>Data type : {$vars[vars].var_type}</h4>
+{if $vars[vars].var_overrides}<p><strong>Overrides:</strong> {$vars[vars].var_overrides}<br></p>{/if}
+{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+</div>
+{/if}
+{/section}
+<script type="text/javascript">tp1.addTabPage( document.getElementById( "tabPage1" ) );</script>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/options.ini
index 57b2500df1..084809beea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/options.ini
@@ -1,577 +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 = <span class="src-inc">
-/T_INCLUDE = </span>
-T_INCLUDE_ONCE = <span class="src-inc">
-/T_INCLUDE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-T_REQUIRE_ONCE = <span class="src-inc">
-/T_REQUIRE_ONCE = </span>
-
-T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
-/T_CONSTANT_ENCAPSED_STRING = </span>
-T_STRING_VARNAME = <span class="src-str">
-/T_STRING_VARNAME = </span>
-
-T_STRING = <span class="src-id">
-/T_STRING = </span>
-
-T_DNUMBER = <span class="src-num">
-/T_DNUMBER = </span>
-T_LNUMBER = <span class="src-num">
-/T_LNUMBER = </span>
-
-T_VARIABLE = <span class="src-var">
-/T_VARIABLE = </span>
-
-T_COMMENT = <span class="src-comm">
-/T_COMMENT = </span>
-T_ML_COMMENT = <span class="src-comm">
-/T_ML_COMMENT = </span>
-
-T_OBJECT_OPERATOR = <span class="src-sym">
-/T_OBJECT_OPERATOR = </span>
-
-T_ABSTRACT = <span class="src-key">
-/T_ABSTRACT = </span>
-T_CLONE = <span class="src-key">
-/T_CLONE = </span>
-T_HALT_COMPILER = <span class="src-key">
-/T_HALT_COMPILER = </span>
-T_ARRAY = <span class="src-key">
-/T_ARRAY = </span>
-T_AS = <span class="src-key">
-/T_AS = </span>
-T_BREAK = <span class="src-key">
-/T_BREAK = </span>
-T_CLASS = <span class="src-key">
-/T_CLASS = </span>
-T_CASE = <span class="src-key">
-/T_CASE = </span>
-T_CONST = <span class="src-key">
-/T_CONST = </span>
-T_CONTINUE = <span class="src-key">
-/T_CONTINUE = </span>
-T_DECLARE = <span class="src-key">
-/T_DECLARE = </span>
-T_DEFAULT = <span class="src-key">
-/T_DEFAULT = </span>
-T_ELSE = <span class="src-key">
-/T_ELSE = </span>
-T_ELSEIF = <span class="src-key">
-/T_ELSEIF = </span>
-T_EMPTY = <span class="src-key">
-/T_EMPTY = </span>
-T_ENDDECLARE = <span class="src-key">
-/T_ENDDECLARE = </span>
-T_ENDFOR = <span class="src-key">
-/T_ENDFOR = </span>
-T_ENDSWITCH = <span class="src-key">
-/T_ENDSWITCH = </span>
-T_ENDFOREACH = <span class="src-key">
-/T_ENDFOREACH = </span>
-T_ENDIF = <span class="src-key">
-/T_ENDIF = </span>
-T_ENDWHILE = <span class="src-key">
-/T_ENDWHILE = </span>
-T_EXIT = <span class="src-key">
-/T_EXIT = </span>
-T_EXTENDS = <span class="src-key">
-/T_EXTENDS = </span>
-T_FINAL = <span class="src-key">
-/T_FINAL = </span>
-T_FOR = <span class="src-key">
-/T_FOR = </span>
-T_FOREACH = <span class="src-key">
-/T_FOREACH = </span>
-T_FUNCTION = <span class="src-key">
-/T_FUNCTION = </span>
-T_GLOBAL = <span class="src-key">
-/T_GLOBAL = </span>
-T_IF = <span class="src-key">
-/T_IF = </span>
-T_IMPLEMENTS = <span class="src-key">
-/T_IMPLEMENTS = </span>
-T_INTERFACE = <span class="src-key">
-/T_INTERFACE = </span>
-T_LOGICAL_AND = <span class="src-key">
-/T_LOGICAL_AND = </span>
-T_LOGICAL_OR = <span class="src-key">
-/T_LOGICAL_OR = </span>
-T_LOGICAL_XOR = <span class="src-key">
-/T_LOGICAL_XOR = </span>
-T_NEW = <span class="src-key">
-/T_NEW = </span>
-T_PRIVATE = <span class="src-key">
-/T_PRIVATE = </span>
-T_PROTECTED = <span class="src-key">
-/T_PROTECTED = </span>
-T_PUBLIC = <span class="src-key">
-/T_PUBLIC = </span>
-T_RETURN = <span class="src-key">
-/T_RETURN = </span>
-T_STATIC = <span class="src-key">
-/T_STATIC = </span>
-T_SWITCH = <span class="src-key">
-/T_SWITCH = </span>
-T_VAR = <span class="src-key">
-/T_VAR = </span>
-T_WHILE = <span class="src-key">
-/T_WHILE = </span>
-
-T_DOUBLE_COLON = <span class="src-sym">
-/T_DOUBLE_COLON = </span>
-
-T_OPEN_TAG = <span class="src-php">
-/T_OPEN_TAG = </span>
-T_OPEN_TAG_WITH_ECHO = <span class="src-php">
-/T_OPEN_TAG_WITH_ECHO = </span>
-T_CLOSE_TAG = <span class="src-php">
-/T_CLOSE_TAG = </span>
-
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-@ = <span class="src-sym">
-/@ = </span>
-& = <span class="src-sym">
-/& = </span>
-[ = <span class="src-sym">
-/[ = </span>
-] = <span class="src-sym">
-/] = </span>
-! = <span class="src-sym">
-/! = </span>
-";" = <span class="src-sym">
-/; = </span>
-( = <span class="src-sym">
-/( = </span>
-) = <span class="src-sym">
-/) = </span>
-, = <span class="src-sym">
-/, = </span>
-{ = <span class="src-sym">
-/{ = </span>
-} = <span class="src-sym">
-/} = </span>
-""" = <span class="src-str">
-/" = </span>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <span class="src-doc">
-/docblock = </span>
-tagphptype = <span class="src-doc-type">
-/tagphptype = </span>
-tagvarname = <span class="src-doc-var">
-/tagvarname = </span>
-coretag = <span class="src-doc-coretag">
-/coretag = </span>
-tag = <span class="src-doc-tag">
-/tag = </span>
-inlinetag = <span class="src-doc-inlinetag">
-/inlinetag = </span>
-internal = <span class="src-doc-internal">
-/internal = </span>
-closetemplate = <span class="src-doc-close-template">
-/closetemplate = </span>
-docblocktemplate = <span class="src-doc-template">
-/docblocktemplate = </span>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <span class="tute-tag">
-/opentag = </span>
-;; </tag>
-closetag = <span class="tute-tag">
-/closetag = </span>
-;; <tag attribute="value">
-attribute = <span class="tute-attribute-name">
-/attribute = </span>
-;; <tag attribute="value">
-attributevalue = <span class="tute-attribute-value">
-/attributevalue = </span>
-;; &entity;
-entity = <span class="tute-entity">
-/entity = </span>
-;; <!-- comment -->
-comment = <span class="tute-comment">
-/comment = </span>
-;; {@inline tag}
-itag = <span class="tute-inline-tag">
-/itag = </span>
-
-;; used for translation of html in DocBlocks
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code =
-/code =
-var = <var>
-/var = </var>
-samp = <samp>
-/samp = </samp>
-kbd = <kbd>
-/kbd = </kbd>
-pre = <pre>
-/pre = </pre>
-p = <p>
-/p = </p>
-b = <strong>
-/b = </strong>
-i = <em>
-/i = </em>
-br = <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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 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
-;; <tagname attr1="value1" attr2="value2"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 7)
-;; tagname = newtagname
-;; tagname/ = 1
-;;
-;; here, the tag will be translated as a single tag with no closing tag, and all
-;; attributes
-;; <tagname attr="val">{text text}</tagname> will become
-;; <newtagname attr="val" />
-;;
-;; 8)
-;; tagname = <starttaginfo />
-;; /tagname = closetagtext
-;;
-;; in this case, the text <starttaginfo> will be inserted exactly as entered for
-;; <tagname> and closetagtext for </tagname>
-;; <tagname attr="val"></tagname> will become
-;; <starttaginfo />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
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = &nbsp;
-&quot; = &quot;
-&rdquo; = &rdquo;
-&ldquo; = &ldquo;
-&amp; = &amp;
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-
-$attr$role = class
-
-abbrev = abbr
-
-blockquote = blockquote
-
-arg = span
-arg->choice = class
-
-author = <span class="author">
-/author = </span>
-author! = 0
-
-authorblurb = <div class="author-blurb">
-/authorblurb = </div>
-
-authorgroup = <div class="authors"><h2 class="title">Authors</h2>
-/authorgroup = </div>
-authorgroup! = 0
-
-caution = <span class="warning">
-/caution = </span>
-caution! = 0
-
-cmdsynopsis = <div class="cmd-synopsis">
-/cmdsynopsis = </div>
-
-command = <span class="cmd-title">
-/command = </span>
-
-copyright = <div class="notes">
-/copyright = </div>
-
-emphasis = em
-
-example = <div class="src-code">
-/example = </div>
-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 = <div class="src-code">
-/programlisting = </div>
-programlisting! = 0
-
-refentry = div
-
-refnamediv = <div class="ref-title-box">
-/refnamediv = </div>
-refnamediv! = 0
-
-refname = <h1 class="ref-title">
-/refname = </h1>
-
-refpurpose = <h2 class="ref-purpose">
-/refpurpose = </h2>
-
-refsynopsisdiv = <div class="ref-synopsis">
-/refsynopsisdiv = </div>
-refsynopsisdiv! = 0
-
-refsect1 = span
-
-refsect2 = span
-
-refsect3 =
-/refsect3 = <br />
-
-releaseinfo = <div class="release-info">(
-/releaseinfo = )</div>
-
-simpara =
-/simpara = <br />
-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 = <span class="warning">
-/warning = </span>
-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 <title>
-[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>
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+
+T_INCLUDE = <span class="src-inc">
+/T_INCLUDE = </span>
+T_INCLUDE_ONCE = <span class="src-inc">
+/T_INCLUDE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+T_REQUIRE_ONCE = <span class="src-inc">
+/T_REQUIRE_ONCE = </span>
+
+T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
+/T_CONSTANT_ENCAPSED_STRING = </span>
+T_STRING_VARNAME = <span class="src-str">
+/T_STRING_VARNAME = </span>
+
+T_STRING = <span class="src-id">
+/T_STRING = </span>
+
+T_DNUMBER = <span class="src-num">
+/T_DNUMBER = </span>
+T_LNUMBER = <span class="src-num">
+/T_LNUMBER = </span>
+
+T_VARIABLE = <span class="src-var">
+/T_VARIABLE = </span>
+
+T_COMMENT = <span class="src-comm">
+/T_COMMENT = </span>
+T_ML_COMMENT = <span class="src-comm">
+/T_ML_COMMENT = </span>
+
+T_OBJECT_OPERATOR = <span class="src-sym">
+/T_OBJECT_OPERATOR = </span>
+
+T_ABSTRACT = <span class="src-key">
+/T_ABSTRACT = </span>
+T_CLONE = <span class="src-key">
+/T_CLONE = </span>
+T_HALT_COMPILER = <span class="src-key">
+/T_HALT_COMPILER = </span>
+T_ARRAY = <span class="src-key">
+/T_ARRAY = </span>
+T_AS = <span class="src-key">
+/T_AS = </span>
+T_BREAK = <span class="src-key">
+/T_BREAK = </span>
+T_CLASS = <span class="src-key">
+/T_CLASS = </span>
+T_CASE = <span class="src-key">
+/T_CASE = </span>
+T_CONST = <span class="src-key">
+/T_CONST = </span>
+T_CONTINUE = <span class="src-key">
+/T_CONTINUE = </span>
+T_DECLARE = <span class="src-key">
+/T_DECLARE = </span>
+T_DEFAULT = <span class="src-key">
+/T_DEFAULT = </span>
+T_ELSE = <span class="src-key">
+/T_ELSE = </span>
+T_ELSEIF = <span class="src-key">
+/T_ELSEIF = </span>
+T_EMPTY = <span class="src-key">
+/T_EMPTY = </span>
+T_ENDDECLARE = <span class="src-key">
+/T_ENDDECLARE = </span>
+T_ENDFOR = <span class="src-key">
+/T_ENDFOR = </span>
+T_ENDSWITCH = <span class="src-key">
+/T_ENDSWITCH = </span>
+T_ENDFOREACH = <span class="src-key">
+/T_ENDFOREACH = </span>
+T_ENDIF = <span class="src-key">
+/T_ENDIF = </span>
+T_ENDWHILE = <span class="src-key">
+/T_ENDWHILE = </span>
+T_EXIT = <span class="src-key">
+/T_EXIT = </span>
+T_EXTENDS = <span class="src-key">
+/T_EXTENDS = </span>
+T_FINAL = <span class="src-key">
+/T_FINAL = </span>
+T_FOR = <span class="src-key">
+/T_FOR = </span>
+T_FOREACH = <span class="src-key">
+/T_FOREACH = </span>
+T_FUNCTION = <span class="src-key">
+/T_FUNCTION = </span>
+T_GLOBAL = <span class="src-key">
+/T_GLOBAL = </span>
+T_IF = <span class="src-key">
+/T_IF = </span>
+T_IMPLEMENTS = <span class="src-key">
+/T_IMPLEMENTS = </span>
+T_INTERFACE = <span class="src-key">
+/T_INTERFACE = </span>
+T_LOGICAL_AND = <span class="src-key">
+/T_LOGICAL_AND = </span>
+T_LOGICAL_OR = <span class="src-key">
+/T_LOGICAL_OR = </span>
+T_LOGICAL_XOR = <span class="src-key">
+/T_LOGICAL_XOR = </span>
+T_NEW = <span class="src-key">
+/T_NEW = </span>
+T_PRIVATE = <span class="src-key">
+/T_PRIVATE = </span>
+T_PROTECTED = <span class="src-key">
+/T_PROTECTED = </span>
+T_PUBLIC = <span class="src-key">
+/T_PUBLIC = </span>
+T_RETURN = <span class="src-key">
+/T_RETURN = </span>
+T_STATIC = <span class="src-key">
+/T_STATIC = </span>
+T_SWITCH = <span class="src-key">
+/T_SWITCH = </span>
+T_VAR = <span class="src-key">
+/T_VAR = </span>
+T_WHILE = <span class="src-key">
+/T_WHILE = </span>
+
+T_DOUBLE_COLON = <span class="src-sym">
+/T_DOUBLE_COLON = </span>
+
+T_OPEN_TAG = <span class="src-php">
+/T_OPEN_TAG = </span>
+T_OPEN_TAG_WITH_ECHO = <span class="src-php">
+/T_OPEN_TAG_WITH_ECHO = </span>
+T_CLOSE_TAG = <span class="src-php">
+/T_CLOSE_TAG = </span>
+
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+@ = <span class="src-sym">
+/@ = </span>
+& = <span class="src-sym">
+/& = </span>
+[ = <span class="src-sym">
+/[ = </span>
+] = <span class="src-sym">
+/] = </span>
+! = <span class="src-sym">
+/! = </span>
+";" = <span class="src-sym">
+/; = </span>
+( = <span class="src-sym">
+/( = </span>
+) = <span class="src-sym">
+/) = </span>
+, = <span class="src-sym">
+/, = </span>
+{ = <span class="src-sym">
+/{ = </span>
+} = <span class="src-sym">
+/} = </span>
+""" = <span class="src-str">
+/" = </span>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <span class="src-doc">
+/docblock = </span>
+tagphptype = <span class="src-doc-type">
+/tagphptype = </span>
+tagvarname = <span class="src-doc-var">
+/tagvarname = </span>
+coretag = <span class="src-doc-coretag">
+/coretag = </span>
+tag = <span class="src-doc-tag">
+/tag = </span>
+inlinetag = <span class="src-doc-inlinetag">
+/inlinetag = </span>
+internal = <span class="src-doc-internal">
+/internal = </span>
+closetemplate = <span class="src-doc-close-template">
+/closetemplate = </span>
+docblocktemplate = <span class="src-doc-template">
+/docblocktemplate = </span>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <span class="tute-tag">
+/opentag = </span>
+;; </tag>
+closetag = <span class="tute-tag">
+/closetag = </span>
+;; <tag attribute="value">
+attribute = <span class="tute-attribute-name">
+/attribute = </span>
+;; <tag attribute="value">
+attributevalue = <span class="tute-attribute-value">
+/attributevalue = </span>
+;; &entity;
+entity = <span class="tute-entity">
+/entity = </span>
+;; <!-- comment -->
+comment = <span class="tute-comment">
+/comment = </span>
+;; {@inline tag}
+itag = <span class="tute-inline-tag">
+/itag = </span>
+
+;; used for translation of html in DocBlocks
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code =
+/code =
+var = <var>
+/var = </var>
+samp = <samp>
+/samp = </samp>
+kbd = <kbd>
+/kbd = </kbd>
+pre = <pre>
+/pre = </pre>
+p = <p>
+/p = </p>
+b = <strong>
+/b = </strong>
+i = <em>
+/i = </em>
+br = <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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 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
+;; <tagname attr1="value1" attr2="value2"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 7)
+;; tagname = newtagname
+;; tagname/ = 1
+;;
+;; here, the tag will be translated as a single tag with no closing tag, and all
+;; attributes
+;; <tagname attr="val">{text text}</tagname> will become
+;; <newtagname attr="val" />
+;;
+;; 8)
+;; tagname = <starttaginfo />
+;; /tagname = closetagtext
+;;
+;; in this case, the text <starttaginfo> will be inserted exactly as entered for
+;; <tagname> and closetagtext for </tagname>
+;; <tagname attr="val"></tagname> will become
+;; <starttaginfo />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
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = &nbsp;
+&quot; = &quot;
+&rdquo; = &rdquo;
+&ldquo; = &ldquo;
+&amp; = &amp;
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+
+$attr$role = class
+
+abbrev = abbr
+
+blockquote = blockquote
+
+arg = span
+arg->choice = class
+
+author = <span class="author">
+/author = </span>
+author! = 0
+
+authorblurb = <div class="author-blurb">
+/authorblurb = </div>
+
+authorgroup = <div class="authors"><h2 class="title">Authors</h2>
+/authorgroup = </div>
+authorgroup! = 0
+
+caution = <span class="warning">
+/caution = </span>
+caution! = 0
+
+cmdsynopsis = <div class="cmd-synopsis">
+/cmdsynopsis = </div>
+
+command = <span class="cmd-title">
+/command = </span>
+
+copyright = <div class="notes">
+/copyright = </div>
+
+emphasis = em
+
+example = <div class="src-code">
+/example = </div>
+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 = <div class="src-code">
+/programlisting = </div>
+programlisting! = 0
+
+refentry = div
+
+refnamediv = <div class="ref-title-box">
+/refnamediv = </div>
+refnamediv! = 0
+
+refname = <h1 class="ref-title">
+/refname = </h1>
+
+refpurpose = <h2 class="ref-purpose">
+/refpurpose = </h2>
+
+refsynopsisdiv = <div class="ref-synopsis">
+/refsynopsisdiv = </div>
+refsynopsisdiv! = 0
+
+refsect1 = span
+
+refsect2 = span
+
+refsect3 =
+/refsect3 = <br />
+
+releaseinfo = <div class="release-info">(
+/releaseinfo = )</div>
+
+simpara =
+/simpara = <br />
+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 = <span class="warning">
+/warning = </span>
+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 <title>
+[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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/basicindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/basicindex.tpl
index 711e1d2e86..951ee26457 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/basicindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/basicindex.tpl
@@ -1,47 +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>
+<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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/blank.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/blank.tpl
index 1fbaca2ff9..6a05f27e1e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/blank.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/blank.tpl
@@ -1,13 +1,13 @@
-<html>
-<head>
- <title>{$maintitle}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<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 />
-</body>
+<html>
+<head>
+ <title>{$maintitle}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<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 />
+</body>
</html> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/class.tpl
index c60f4e425b..9ab7c45513 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/class.tpl
@@ -1,429 +1,429 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
- <span class="disabled">Description</span> |
- {/if}
- {if $children}
- <a href="#sec-descendents">Descendents</a>
- {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {if $implements}
- <p class="implements">
- Implements interfaces:
- <ul>
- {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
- </ul>
- </p>
- {/if}
- {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
- <p class="notes">
- Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
- </p>
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
- {/if}
-
- <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
-
- {if $conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with classes:</span><br />
- {section name=me loop=$conflicts.conflicts}
- {$conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
- </div>
-</div>
-
-{if $children}
- <a name="sec-descendents"></a>
- <div class="info-box">
- <div class="info-box-title">Direct descendents</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Descendents</span>
- {if $vars || $ivars || $methods || $imethods}|{/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {if $methods || $imethods}|{/if}
- {/if}
- {if $methods || $imethods}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=kids loop=$children}
- <tr>
- <td style="padding-right: 2em">{$children[kids].link}</td>
- <td>
- {if $children[kids].sdesc}
- {$children[kids].sdesc}
- {else}
- {$children[kids].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $consts}
- <a name="sec-const-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constant Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="const-summary">
- {section name=consts loop=$consts}
- <div class="const-title">
- <img src="{$subdir}media/images/Constant.png" alt=" " />
- <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
-
- </div>
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars}
- <a name="sec-var-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Variable Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- <div class="var-summary">
- {section name=vars loop=$vars}
- {if $vars[vars].static}
- <div class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- {section name=vars loop=$vars}
- {if !$vars[vars].static}
- <div class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $methods}
- <a name="sec-method-summary"></a>
- <div class="info-box">
- <div class="info-box-title">Method Summary</span></div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- |
- {/if}
- <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
- </div>
- <div class="info-box-body">
- <div class="method-summary">
- {section name=methods loop=$methods}
- {if $methods[methods].static}
- <div class="method-definition">
- static {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- {section name=methods loop=$methods}
- {if !$methods[methods].static}
- <div class="method-definition">
- {if $methods[methods].function_return}
- <span class="method-result">{$methods[methods].function_return}</span>
- {/if}
- <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
- {/if}
- {/section}
- </div>
- </div>
- </div>
-{/if}
-
-{if $vars || $ivars}
- <a name="sec-vars"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Vars</span>
- {/if}
-
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="var.tpl"}
- {if $ivars}
- <h4>Inherited Variables</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=ivars loop=$ivars}
- <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
- <blockquote>
- {section name=ivars2 loop=$ivars[ivars].ivars}
- <span class="var-title">
- <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $methods || $imethods}
- <a name="sec-methods"></a>
- <div class="info-box">
- <div class="info-box-title">Methods</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendents</a> |
- {/if}
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $consts || $iconsts}
- {if $consts}
- <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
- {else}
- <a href="#sec-consts">Constants</a>
- {/if}
- {/if}
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Methods</span>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="method.tpl"}
- {if $imethods}
- <h4>Inherited Methods</h4>
- <a name='inherited_methods'><!-- --></a>
- {section name=imethods loop=$imethods}
- <!-- =========== Summary =========== -->
- <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
- <blockquote>
- {section name=im2 loop=$imethods[imethods].imethods}
- <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{if $consts || $iconsts}
- <a name="sec-consts"></a>
- <div class="info-box">
- <div class="info-box-title">Class Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $children}
- <a href="#sec-descendents">Descendants</a> |
- {/if}
- {if $methods}
- <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
- {else}
- <span class="disabled">Constants</span>
- {/if}
-
- {if $vars || $ivars}
- {if $vars}
- <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
- {else}
- <a href="#sec-vars">Vars</a>
- {/if}
- {/if}
- {if $methods || $imethods}
- |
- {if $methods}
- <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
- {else}
- <a href="#sec-methods">Methods</a>
- {/if}
- {/if}
- </div>
- <div class="info-box-body">
- {include file="const.tpl"}
- {if $iconsts}
- <h4>Inherited Constants</h4>
- <A NAME='inherited_vars'><!-- --></A>
- {section name=iconsts loop=$iconsts}
- <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
- <blockquote>
- {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
- <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
- </span>
- {/section}
- </blockquote>
- {/section}
- {/if}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $children}
+ <a href="#sec-descendents">Descendents</a>
+ {if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {if $implements}
+ <p class="implements">
+ Implements interfaces:
+ <ul>
+ {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
+ </ul>
+ </p>
+ {/if}
+ {include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
+ <p class="notes">
+ Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
+ </p>
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
+ {/if}
+
+ <pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
+
+ {if $conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with classes:</span><br />
+ {section name=me loop=$conflicts.conflicts}
+ {$conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+ </div>
+</div>
+
+{if $children}
+ <a name="sec-descendents"></a>
+ <div class="info-box">
+ <div class="info-box-title">Direct descendents</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Descendents</span>
+ {if $vars || $ivars || $methods || $imethods}|{/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {if $methods || $imethods}|{/if}
+ {/if}
+ {if $methods || $imethods}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=kids loop=$children}
+ <tr>
+ <td style="padding-right: 2em">{$children[kids].link}</td>
+ <td>
+ {if $children[kids].sdesc}
+ {$children[kids].sdesc}
+ {else}
+ {$children[kids].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $consts}
+ <a name="sec-const-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constant Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ <span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="const-summary">
+ {section name=consts loop=$consts}
+ <div class="const-title">
+ <img src="{$subdir}media/images/Constant.png" alt=" " />
+ <a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = <span class="var-type">{$consts[consts].const_value}</span>
+
+ </div>
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars}
+ <a name="sec-var-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variable Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <div class="var-summary">
+ {section name=vars loop=$vars}
+ {if $vars[vars].static}
+ <div class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ {section name=vars loop=$vars}
+ {if !$vars[vars].static}
+ <div class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $methods}
+ <a name="sec-method-summary"></a>
+ <div class="info-box">
+ <div class="info-box-title">Method Summary</span></div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ |
+ {/if}
+ <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+ </div>
+ <div class="info-box-body">
+ <div class="method-summary">
+ {section name=methods loop=$methods}
+ {if $methods[methods].static}
+ <div class="method-definition">
+ static {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ {section name=methods loop=$methods}
+ {if !$methods[methods].static}
+ <div class="method-definition">
+ {if $methods[methods].function_return}
+ <span class="method-result">{$methods[methods].function_return}</span>
+ {/if}
+ <a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}</a>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+ {/if}
+ {/section}
+ </div>
+ </div>
+ </div>
+{/if}
+
+{if $vars || $ivars}
+ <a name="sec-vars"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Vars</span>
+ {/if}
+
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="var.tpl"}
+ {if $ivars}
+ <h4>Inherited Variables</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=ivars loop=$ivars}
+ <p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
+ <blockquote>
+ {section name=ivars2 loop=$ivars[ivars].ivars}
+ <span class="var-title">
+ <span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $methods || $imethods}
+ <a name="sec-methods"></a>
+ <div class="info-box">
+ <div class="info-box-title">Methods</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendents</a> |
+ {/if}
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $consts || $iconsts}
+ {if $consts}
+ <a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
+ {else}
+ <a href="#sec-consts">Constants</a>
+ {/if}
+ {/if}
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Methods</span>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="method.tpl"}
+ {if $imethods}
+ <h4>Inherited Methods</h4>
+ <a name='inherited_methods'><!-- --></a>
+ {section name=imethods loop=$imethods}
+ <!-- =========== Summary =========== -->
+ <p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
+ <blockquote>
+ {section name=im2 loop=$imethods[imethods].imethods}
+ <span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{if $consts || $iconsts}
+ <a name="sec-consts"></a>
+ <div class="info-box">
+ <div class="info-box-title">Class Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $children}
+ <a href="#sec-descendents">Descendants</a> |
+ {/if}
+ {if $methods}
+ <a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
+ {else}
+ <span class="disabled">Constants</span>
+ {/if}
+
+ {if $vars || $ivars}
+ {if $vars}
+ <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
+ {else}
+ <a href="#sec-vars">Vars</a>
+ {/if}
+ {/if}
+ {if $methods || $imethods}
+ |
+ {if $methods}
+ <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+ {else}
+ <a href="#sec-methods">Methods</a>
+ {/if}
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="const.tpl"}
+ {if $iconsts}
+ <h4>Inherited Constants</h4>
+ <A NAME='inherited_vars'><!-- --></A>
+ {section name=iconsts loop=$iconsts}
+ <p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
+ <blockquote>
+ {section name=iconsts2 loop=$iconsts[iconsts].iconsts}
+ <img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
+ </span>
+ {/section}
+ </blockquote>
+ {/section}
+ {/if}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/classtrees.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/classtrees.tpl
index ac14d5455a..952e6d500e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/classtrees.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/classtrees.tpl
@@ -1,19 +1,19 @@
-{include file="header.tpl" top1=true}
-
-<!-- Start of Class Data -->
-<H2>
- {$smarty.capture.title}
-</H2>
-{if $interfaces}
-{section name=classtrees loop=$interfaces}
-<h2>Root interface {$interfaces[classtrees].class}</h2>
-{$interfaces[classtrees].class_tree}
-{/section}
-{/if}
-{if $classtrees}
-{section name=classtrees loop=$classtrees}
-<h2>Root class {$classtrees[classtrees].class}</h2>
-{$classtrees[classtrees].class_tree}
-{/section}
-{/if}
+{include file="header.tpl" top1=true}
+
+<!-- Start of Class Data -->
+<H2>
+ {$smarty.capture.title}
+</H2>
+{if $interfaces}
+{section name=classtrees loop=$interfaces}
+<h2>Root interface {$interfaces[classtrees].class}</h2>
+{$interfaces[classtrees].class_tree}
+{/section}
+{/if}
+{if $classtrees}
+{section name=classtrees loop=$classtrees}
+<h2>Root class {$classtrees[classtrees].class}</h2>
+{$classtrees[classtrees].class_tree}
+{/section}
+{/if}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/const.tpl
index 4157488f5c..c26ff92d7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/const.tpl
@@ -1,18 +1,18 @@
-{section name=consts loop=$consts}
-<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="const-header">
- <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
- <span class="const-title">
- <span class="const-name">{$consts[consts].const_name}</span>
- = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
- (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
-
-</div>
-{/section}
-
+{section name=consts loop=$consts}
+<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="const-header">
+ <img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
+ <span class="const-title">
+ <span class="const-name">{$consts[consts].const_name}</span>
+ = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
+ (line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
+
+</div>
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/define.tpl
index ab76faa234..0da5d86403 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/define.tpl
@@ -1,24 +1,24 @@
-{section name=def loop=$defines}
-<a name="{$defines[def].define_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="const-title">
- <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
- (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with constants:</span><br />
- {section name=me loop=$defines[def].define_conflicts.conflicts}
- {$defines[def].define_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=def loop=$defines}
+<a name="{$defines[def].define_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="const-title">
+ <span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
+ (line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with constants:</span><br />
+ {section name=me loop=$defines[def].define_conflicts.conflicts}
+ {$defines[def].define_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/docblock.tpl
index 8a87c9b7bf..783d527171 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/docblock.tpl
@@ -1,14 +1,14 @@
-<!-- ========== Info from phpDoc block ========= -->
-{if $sdesc}
-<p class="short-description">{$sdesc}</p>
-{/if}
-{if $desc}
-<p class="description">{$desc}</p>
-{/if}
-{if $tags}
- <ul class="tags">
- {section name=tags loop=$tags}
- <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
- {/section}
- </ul>
-{/if}
+<!-- ========== Info from phpDoc block ========= -->
+{if $sdesc}
+<p class="short-description">{$sdesc}</p>
+{/if}
+{if $desc}
+<p class="description">{$desc}</p>
+{/if}
+{if $tags}
+ <ul class="tags">
+ {section name=tags loop=$tags}
+ <li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
+ {/section}
+ </ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/elementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/elementindex.tpl
index 6e651db1e6..d5964f99c3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/elementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/elementindex.tpl
@@ -1,12 +1,12 @@
-{include file="header.tpl" noleftindex=true}
-<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-{section name=p loop=$packageindex}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
-{/section}
-</ul>
-<br />
-{include file="basicindex.tpl" indexname="elementindex"}
-{include file="footer.tpl"}
+{include file="header.tpl" noleftindex=true}
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+{section name=p loop=$packageindex}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+{/section}
+</ul>
+<br />
+{include file="basicindex.tpl" indexname="elementindex"}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/examplesource.tpl
index c813280bde..8abf74ce23 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/examplesource.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl" title=$title}
-<h1>{$title}</h1>
-<div class="listing">
-{$source}
-</div>
+{include file="header.tpl" title=$title}
+<h1>{$title}</h1>
+<div class="listing">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/filesource.tpl
index 4fd821a2f3..239f7b41f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/filesource.tpl
@@ -1,8 +1,8 @@
-{capture name="tutle"}File Source for {$name}{/capture}
-{include file="header.tpl" title=$smarty.capture.tutle}
-<h1>Source for file {$name}</h1>
-<p>Documentation is available at {$docs}</p>
-<div class="src-code">
-{$source}
-</div>
+{capture name="tutle"}File Source for {$name}{/capture}
+{include file="header.tpl" title=$smarty.capture.tutle}
+<h1>Source for file {$name}</h1>
+<p>Documentation is available at {$docs}</p>
+<div class="src-code">
+{$source}
+</div>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/footer.tpl
index 424ebbe243..8d0f79dbc7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/footer.tpl
@@ -1,8 +1,8 @@
-{if !$index}
- <p class="notes" id="credit">
- Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
- </p>
-{/if}
- {if $top3}</div>{/if}
-</body>
-</html>
+{if !$index}
+ <p class="notes" id="credit">
+ Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
+ </p>
+{/if}
+ {if $top3}</div>{/if}
+</body>
+</html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/function.tpl
index 2750a97e7e..b688005964 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/function.tpl
@@ -1,44 +1,44 @@
-{section name=func loop=$functions}
-<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$functions[func].function_return}</span>
- <span class="method-name">
- {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
- </span>
- {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $functions[func].params}
- <ul class="parameters">
- {section name=params loop=$functions[func].params}
- <li>
- <span class="var-type">{$functions[func].params[params].datatype}</span>
- <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $functions[func].function_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with functions:</span><br />
- {section name=me loop=$functions[func].function_conflicts.conflicts}
- {$functions[func].function_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
-{/section}
+{section name=func loop=$functions}
+<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$functions[func].function_return}</span>
+ <span class="method-name">
+ {if $functions[func].ifunction_call.returnsref}&amp;{/if}{$functions[func].function_name}
+ </span>
+ {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}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $functions[func].params}
+ <ul class="parameters">
+ {section name=params loop=$functions[func].params}
+ <li>
+ <span class="var-type">{$functions[func].params[params].datatype}</span>
+ <span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $functions[func].function_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with functions:</span><br />
+ {section name=me loop=$functions[func].function_conflicts.conflicts}
+ {$functions[func].function_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/global.tpl
index 3c89ddfc40..eab7e0b0ea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/global.tpl
@@ -1,26 +1,26 @@
-{section name=glob loop=$globals}
-<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="var-title">
- <span class="var-type">{$globals[glob].global_type}</span>
- <span class="var-name">{$globals[glob].global_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
-
- {if $globals[glob].global_conflicts.conflict_type}
- <hr class="separator" />
- <div><span class="warning">Conflicts with global variables:</span><br />
- {section name=me loop=$globals[glob].global_conflicts.conflicts}
- {$globals[glob].global_conflicts.conflicts[me]}<br />
- {/section}
- </div>
- {/if}
-
-</div>
+{section name=glob loop=$globals}
+<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="var-title">
+ <span class="var-type">{$globals[glob].global_type}</span>
+ <span class="var-name">{$globals[glob].global_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
+
+ {if $globals[glob].global_conflicts.conflict_type}
+ <hr class="separator" />
+ <div><span class="warning">Conflicts with global variables:</span><br />
+ {section name=me loop=$globals[glob].global_conflicts.conflicts}
+ {$globals[glob].global_conflicts.conflicts[me]}<br />
+ {/section}
+ </div>
+ {/if}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/header.tpl
index d5e26dfab7..c22ba37ddf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/header.tpl
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- {if $top3}<div class="page-body">{/if}
-
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ {if $top3}<div class="page-body">{/if}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/include.tpl
index bd408aff7d..c2419e5fd9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/include.tpl
@@ -1,16 +1,16 @@
-{section name=includes loop=$includes}
-<a name="{$includes[includes].include_file}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div>
- <span class="include-title">
- <span class="include-type">{$includes[includes].include_name}</span>
- (<span class="include-name">{$includes[includes].include_value}</span>)
- (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
-
-</div>
+{section name=includes loop=$includes}
+<a name="{$includes[includes].include_file}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div>
+ <span class="include-title">
+ <span class="include-type">{$includes[includes].include_name}</span>
+ (<span class="include-name">{$includes[includes].include_value}</span>)
+ (line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
+
+</div>
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/index.tpl
index 477d2b17c5..7cd610946c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/index.tpl
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <!-- Generated by phpDocumentor on {$date} -->
- <title>{$title}</title>
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
- <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
- <FRAMESET cols='25%,*'>
- <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
- <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
- </FRAMESET>
- <NOFRAMES>
- <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>
- </NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <!-- Generated by phpDocumentor on {$date} -->
+ <title>{$title}</title>
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+ <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+ <FRAMESET cols='25%,*'>
+ <FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
+ <FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
+ </FRAMESET>
+ <NOFRAMES>
+ <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>
+ </NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/left_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/left_frame.tpl
index c30b76be8e..0a06fba6cf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/left_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/left_frame.tpl
@@ -1,159 +1,159 @@
-{include file="header.tpl" top2=true}
-<div class="package-title">{$package}</div>
-<div class="package-details">
-
- <dl class="tree">
-
- <dt class="folder-title">Description</dt>
- <dd>
- <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
- <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
- {if $hastodos}
- <a href="{$todolink}" target="right">Todo List</a><br />
- {/if}
- </dd>
-
- {section name=p loop=$info}
-
- {if $info[p].subpackage == ""}
-
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
- {if $info[p].hasinterfaces}
- <dt class="folder-title">Interfaces</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_interface}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].hasclasses}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- {if $info[p].classes[class].is_class}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/if}
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
-
- {else}
- {if $info[p].tutorials}
- <dt class="folder-title">Tutorials/Manuals</dt>
- <dd>
- {if $info[p].tutorials.pkg}
- <dl class="tree">
- <dt class="folder-title">Package-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.pkg}
- {$info[p].tutorials.pkg[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.cls}
- <dl class="tree">
- <dt class="folder-title">Class-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.cls}
- {$info[p].tutorials.cls[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
-
- {if $info[p].tutorials.proc}
- <dl class="tree">
- <dt class="folder-title">Function-level</dt>
- <dd>
- {section name=ext loop=$info[p].tutorials.proc}
- {$info[p].tutorials.proc[ext]}
- {/section}
- </dd>
- </dl>
- {/if}
- </dd>
- {/if}
-
- <dt class="sub-package">{$info[p].subpackage}</dt>
- <dd>
- <dl class="tree">
- {if $info[p].subpackagetutorial}
- <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
- {/if}
- {if $info[p].classes}
- <dt class="folder-title">Classes</dt>
- {section name=class loop=$info[p].classes}
- <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].functions}
- <dt class="folder-title">Functions</dt>
- {section name=f loop=$info[p].functions}
- <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
- {/section}
- {/if}
- {if $info[p].files}
- <dt class="folder-title">Files</dt>
- {section name=nonclass loop=$info[p].files}
- <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
- {/section}
- {/if}
- </dl>
- </dd>
-
- {/if}
-
- {/section}
- </dl>
-</div>
-<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
-</BODY>
-</HTML>
+{include file="header.tpl" top2=true}
+<div class="package-title">{$package}</div>
+<div class="package-details">
+
+ <dl class="tree">
+
+ <dt class="folder-title">Description</dt>
+ <dd>
+ <a href='{$classtreepage}.html' target='right'>Class trees</a><br />
+ <a href='{$elementindex}.html' target='right'>Index of elements</a><br />
+ {if $hastodos}
+ <a href="{$todolink}" target="right">Todo List</a><br />
+ {/if}
+ </dd>
+
+ {section name=p loop=$info}
+
+ {if $info[p].subpackage == ""}
+
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+ {if $info[p].hasinterfaces}
+ <dt class="folder-title">Interfaces</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_interface}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].hasclasses}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ {if $info[p].classes[class].is_class}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/if}
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+
+ {else}
+ {if $info[p].tutorials}
+ <dt class="folder-title">Tutorials/Manuals</dt>
+ <dd>
+ {if $info[p].tutorials.pkg}
+ <dl class="tree">
+ <dt class="folder-title">Package-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.pkg}
+ {$info[p].tutorials.pkg[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.cls}
+ <dl class="tree">
+ <dt class="folder-title">Class-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.cls}
+ {$info[p].tutorials.cls[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+
+ {if $info[p].tutorials.proc}
+ <dl class="tree">
+ <dt class="folder-title">Function-level</dt>
+ <dd>
+ {section name=ext loop=$info[p].tutorials.proc}
+ {$info[p].tutorials.proc[ext]}
+ {/section}
+ </dd>
+ </dl>
+ {/if}
+ </dd>
+ {/if}
+
+ <dt class="sub-package">{$info[p].subpackage}</dt>
+ <dd>
+ <dl class="tree">
+ {if $info[p].subpackagetutorial}
+ <div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
+ {/if}
+ {if $info[p].classes}
+ <dt class="folder-title">Classes</dt>
+ {section name=class loop=$info[p].classes}
+ <dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].functions}
+ <dt class="folder-title">Functions</dt>
+ {section name=f loop=$info[p].functions}
+ <dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
+ {/section}
+ {/if}
+ {if $info[p].files}
+ <dt class="folder-title">Files</dt>
+ {section name=nonclass loop=$info[p].files}
+ <dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
+ {/section}
+ {/if}
+ </dl>
+ </dd>
+
+ {/if}
+
+ {/section}
+ </dl>
+</div>
+<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
+</BODY>
+</HTML>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/method.tpl
index df271c8d82..06d57a1202 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/method.tpl
@@ -1,149 +1,149 @@
-<A NAME='method_detail'></A>
-{section name=methods loop=$methods}
-{if $methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- static <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
-{section name=methods loop=$methods}
-{if !$methods[methods].static}
-<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="method-header">
- <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
- </div>
-
- {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
-
- <div class="method-signature">
- <span class="method-result">{$methods[methods].function_return}</span>
- <span class="method-name">
- {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
- </span>
- {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
- {else}
- ()
- {/if}
- </div>
-
- {if $methods[methods].params}
- <ul class="parameters">
- {section name=params loop=$methods[methods].params}
- <li>
- <span class="var-type">{$methods[methods].params[params].datatype}</span>
- <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
- </li>
- {/section}
- </ul>
- {/if}
-
- {if $methods[methods].method_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$methods[methods].method_overrides.link}</dt>
- {if $methods[methods].method_overrides.sdesc}
- <dd>{$methods[methods].method_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
- {if $methods[methods].method_implements}
- <hr class="separator" />
- <div class="notes">Implementation of:</div>
- {section name=imp loop=$methods[methods].method_implements}
- <dl>
- <dt>{$methods[methods].method_implements[imp].link}</dt>
- {if $methods[methods].method_implements[imp].sdesc}
- <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
- {/if}
- </dl>
- {/section}
- {/if}
-
- {if $methods[methods].descmethod}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=dm loop=$methods[methods].descmethod}
- <li>
- {$methods[methods].descmethod[dm].link}
- {if $methods[methods].descmethod[dm].sdesc}
- : {$methods[methods].descmethod[dm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-</div>
-{/if}
-{/section}
+<A NAME='method_detail'></A>
+{section name=methods loop=$methods}
+{if $methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">static {$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ static <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
+{section name=methods loop=$methods}
+{if !$methods[methods].static}
+<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="method-header">
+ <span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
+ </div>
+
+ {include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
+
+ <div class="method-signature">
+ <span class="method-result">{$methods[methods].function_return}</span>
+ <span class="method-name">
+ {if $methods[methods].ifunction_call.returnsref}&amp;{/if}{$methods[methods].function_name}
+ </span>
+ {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].hasdefault}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span>&nbsp;<span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].hasdefault} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
+ {else}
+ ()
+ {/if}
+ </div>
+
+ {if $methods[methods].params}
+ <ul class="parameters">
+ {section name=params loop=$methods[methods].params}
+ <li>
+ <span class="var-type">{$methods[methods].params[params].datatype}</span>
+ <span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+ {if $methods[methods].method_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$methods[methods].method_overrides.link}</dt>
+ {if $methods[methods].method_overrides.sdesc}
+ <dd>{$methods[methods].method_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+ {if $methods[methods].method_implements}
+ <hr class="separator" />
+ <div class="notes">Implementation of:</div>
+ {section name=imp loop=$methods[methods].method_implements}
+ <dl>
+ <dt>{$methods[methods].method_implements[imp].link}</dt>
+ {if $methods[methods].method_implements[imp].sdesc}
+ <dd>{$methods[methods].method_implements[imp].sdesc}</dd>
+ {/if}
+ </dl>
+ {/section}
+ {/if}
+
+ {if $methods[methods].descmethod}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=dm loop=$methods[methods].descmethod}
+ <li>
+ {$methods[methods].descmethod[dm].link}
+ {if $methods[methods].descmethod[dm].sdesc}
+ : {$methods[methods].descmethod[dm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+</div>
+{/if}
+{/section}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/page.tpl
index eea2bf72b5..b59802362b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/page.tpl
@@ -1,211 +1,211 @@
-{include file="header.tpl" top3=true}
-
-<h2 class="file-name">{$source_location}</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
- <div class="info-box-title">Description</div>
- <div class="nav-bar">
- {if $classes || $includes || $defines || $globals || $functions}
- <span class="disabled">Description</span> |
- {/if}
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
-
- {if $tutorial}
- <hr class="separator" />
- <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
- {/if}
- </div>
-</div>
-
-{if $classes}
- <a name="sec-classes"></a>
- <div class="info-box">
- <div class="info-box-title">Classes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- <span class="disabled">Classes</span>
- {if $includes || $defines || $globals || $functions}|{/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- <table cellpadding="2" cellspacing="0" class="class-table">
- <tr>
- <th class="class-table-header">Class</th>
- <th class="class-table-header">Description</th>
- </tr>
- {section name=classes loop=$classes}
- <tr>
- <td style="padding-right: 2em; vertical-align: top">
- {$classes[classes].link}
- </td>
- <td>
- {if $classes[classes].sdesc}
- {$classes[classes].sdesc}
- {else}
- {$classes[classes].desc}
- {/if}
- </td>
- </tr>
- {/section}
- </table>
- </div>
- </div>
-{/if}
-
-{if $includes}
- <a name="sec-includes"></a>
- <div class="info-box">
- <div class="info-box-title">Includes</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Includes</span>
- {if $defines || $globals || $functions}|{/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="include.tpl"}
- </div>
- </div>
-{/if}
-
-{if $defines}
- <a name="sec-constants"></a>
- <div class="info-box">
- <div class="info-box-title">Constants</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Constants</span>
- {if $globals || $functions}|{/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="define.tpl"}
- </div>
- </div>
-{/if}
-
-{if $globals}
- <a name="sec-variables"></a>
- <div class="info-box">
- <div class="info-box-title">Variables</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- <span class="disabled">Variables</span>
- {if $functions}|{/if}
- {if $functions}
- <a href="#sec-functions">Functions</a>
- {/if}
- </div>
- <div class="info-box-body">
- {include file="global.tpl"}
- </div>
- </div>
-{/if}
-
-{if $functions}
- <a name="sec-functions"></a>
- <div class="info-box">
- <div class="info-box-title">Functions</div>
- <div class="nav-bar">
- <a href="#sec-description">Description</a> |
- {if $classes}
- <a href="#sec-classes">Classes</a>
- {if $includes || $defines || $globals || $functions}|{/if}
- {/if}
- {if $includes}
- <a href="#sec-includes">Includes</a>
- {if $defines || $globals || $functions}|{/if}
- {/if}
- {if $defines}
- <a href="#sec-constants">Constants</a>
- {if $globals || $functions}|{/if}
- {/if}
- {if $globals}
- <a href="#sec-variables">Variables</a>
- {if $functions}|{/if}
- {/if}
- <span class="disabled">Functions</span>
- </div>
- <div class="info-box-body">
- {include file="function.tpl"}
- </div>
- </div>
-{/if}
-
-{include file="footer.tpl" top3=true}
+{include file="header.tpl" top3=true}
+
+<h2 class="file-name">{$source_location}</h2>
+
+<a name="sec-description"></a>
+<div class="info-box">
+ <div class="info-box-title">Description</div>
+ <div class="nav-bar">
+ {if $classes || $includes || $defines || $globals || $functions}
+ <span class="disabled">Description</span> |
+ {/if}
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
+
+ {if $tutorial}
+ <hr class="separator" />
+ <div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
+ {/if}
+ </div>
+</div>
+
+{if $classes}
+ <a name="sec-classes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Classes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ <span class="disabled">Classes</span>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ <table cellpadding="2" cellspacing="0" class="class-table">
+ <tr>
+ <th class="class-table-header">Class</th>
+ <th class="class-table-header">Description</th>
+ </tr>
+ {section name=classes loop=$classes}
+ <tr>
+ <td style="padding-right: 2em; vertical-align: top">
+ {$classes[classes].link}
+ </td>
+ <td>
+ {if $classes[classes].sdesc}
+ {$classes[classes].sdesc}
+ {else}
+ {$classes[classes].desc}
+ {/if}
+ </td>
+ </tr>
+ {/section}
+ </table>
+ </div>
+ </div>
+{/if}
+
+{if $includes}
+ <a name="sec-includes"></a>
+ <div class="info-box">
+ <div class="info-box-title">Includes</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Includes</span>
+ {if $defines || $globals || $functions}|{/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="include.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $defines}
+ <a name="sec-constants"></a>
+ <div class="info-box">
+ <div class="info-box-title">Constants</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Constants</span>
+ {if $globals || $functions}|{/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="define.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $globals}
+ <a name="sec-variables"></a>
+ <div class="info-box">
+ <div class="info-box-title">Variables</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ <span class="disabled">Variables</span>
+ {if $functions}|{/if}
+ {if $functions}
+ <a href="#sec-functions">Functions</a>
+ {/if}
+ </div>
+ <div class="info-box-body">
+ {include file="global.tpl"}
+ </div>
+ </div>
+{/if}
+
+{if $functions}
+ <a name="sec-functions"></a>
+ <div class="info-box">
+ <div class="info-box-title">Functions</div>
+ <div class="nav-bar">
+ <a href="#sec-description">Description</a> |
+ {if $classes}
+ <a href="#sec-classes">Classes</a>
+ {if $includes || $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $includes}
+ <a href="#sec-includes">Includes</a>
+ {if $defines || $globals || $functions}|{/if}
+ {/if}
+ {if $defines}
+ <a href="#sec-constants">Constants</a>
+ {if $globals || $functions}|{/if}
+ {/if}
+ {if $globals}
+ <a href="#sec-variables">Variables</a>
+ {if $functions}|{/if}
+ {/if}
+ <span class="disabled">Functions</span>
+ </div>
+ <div class="info-box-body">
+ {include file="function.tpl"}
+ </div>
+ </div>
+{/if}
+
+{include file="footer.tpl" top3=true}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/pkgelementindex.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/pkgelementindex.tpl
index 542af8edb3..dc283ad0ad 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/pkgelementindex.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/pkgelementindex.tpl
@@ -1,17 +1,17 @@
-{include file="header.tpl"}
-<a name="top"></a>
-<h2>[{$package}] element index</h2>
-{if count($packageindex) > 1}
- <h3>Package indexes</h3>
- <ul>
- {section name=p loop=$packageindex}
- {if $packageindex[p].title != $package}
- <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
- {/if}
- {/section}
- </ul>
-{/if}
-<a href="elementindex.html">All elements</a>
-<br />
-{include file="basicindex.tpl" indexname=elementindex_$package}
-{include file="footer.tpl"}
+{include file="header.tpl"}
+<a name="top"></a>
+<h2>[{$package}] element index</h2>
+{if count($packageindex) > 1}
+ <h3>Package indexes</h3>
+ <ul>
+ {section name=p loop=$packageindex}
+ {if $packageindex[p].title != $package}
+ <li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
+ {/if}
+ {/section}
+ </ul>
+{/if}
+<a href="elementindex.html">All elements</a>
+<br />
+{include file="basicindex.tpl" indexname=elementindex_$package}
+{include file="footer.tpl"}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/ric.tpl
index c4cb83f913..eff734c1d5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/ric.tpl
@@ -1,6 +1,6 @@
-{include file="header.tpl"}
-<h1 align="center">{$name}</h1>
-<pre>
-{$contents|htmlentities}
-</pre>
+{include file="header.tpl"}
+<h1 align="center">{$name}</h1>
+<pre>
+{$contents|htmlentities}
+</pre>
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/todolist.tpl
index 5ab0bca2e7..f929ccdb3e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/todolist.tpl
@@ -1,14 +1,14 @@
-{include file="header.tpl" title="Todo List"}
-<div align="center"><h1>Todo List</h1></div>
-{foreach from=$todos key=todopackage item=todo}
-<h2>{$todopackage}</h2>
-{section name=todo loop=$todo}
-<h3>{$todo[todo].link}</h3>
-<ul>
-{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>
-{/section}
-</ul>
-{/section}
-{/foreach}
+{include file="header.tpl" title="Todo List"}
+<div align="center"><h1>Todo List</h1></div>
+{foreach from=$todos key=todopackage item=todo}
+<h2>{$todopackage}</h2>
+{section name=todo loop=$todo}
+<h3>{$todo[todo].link}</h3>
+<ul>
+{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>
+{/section}
+</ul>
+{/section}
+{/foreach}
{include file="footer.tpl"} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/top_frame.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/top_frame.tpl
index 086ee32a95..36d1e5a108 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/top_frame.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/top_frame.tpl
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>{$title}</title>
- <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
- <link rel="stylesheet" href="{$subdir}media/banner.css" />
- <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
- </head>
- <body>
- <div class="banner">
- <div class="banner-title">{$package}</div>
- <div class="banner-menu">
- <form>
- <table cellpadding="0" cellspacing="0" style="width: 100%">
- <tr>
- <td>
- {if count($ric) >= 1}
- {assign var="last_ric_name" value=""}
- {section name=ric loop=$ric}
- {if $last_ric_name != ""} | {/if}
- <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
- {assign var="last_ric_name" value=$ric[ric].name}
- {/section}
- {/if}
- </td>
- <td style="width: 2em">&nbsp;</td>
- <td style="text-align: right">
- {if count($packages) > 1}
- <span class="field">Packages</span>
- <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
- {section name=p loop=$packages}
- <option value="{$packages[p].link}">{$packages[p].title}</option>
- {/section}
- </select>
- {/if}
- </td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- </body>
- </html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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">
+ <head>
+ <!-- template designed by Marco Von Ballmoos -->
+ <title>{$title}</title>
+ <link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
+ <link rel="stylesheet" href="{$subdir}media/banner.css" />
+ <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+ </head>
+ <body>
+ <div class="banner">
+ <div class="banner-title">{$package}</div>
+ <div class="banner-menu">
+ <form>
+ <table cellpadding="0" cellspacing="0" style="width: 100%">
+ <tr>
+ <td>
+ {if count($ric) >= 1}
+ {assign var="last_ric_name" value=""}
+ {section name=ric loop=$ric}
+ {if $last_ric_name != ""} | {/if}
+ <a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
+ {assign var="last_ric_name" value=$ric[ric].name}
+ {/section}
+ {/if}
+ </td>
+ <td style="width: 2em">&nbsp;</td>
+ <td style="text-align: right">
+ {if count($packages) > 1}
+ <span class="field">Packages</span>
+ <select class="package-selector" onchange="window.parent.left_bottom.location=this[selectedIndex].value">
+ {section name=p loop=$packages}
+ <option value="{$packages[p].link}">{$packages[p].title}</option>
+ {/section}
+ </select>
+ {/if}
+ </td>
+ </tr>
+ </table>
+ </form>
+ </div>
+ </div>
+ </body>
+ </html>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial.tpl
index deb1ee0452..3b9109d18e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial.tpl
@@ -1,13 +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="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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_nav.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_nav.tpl
index 9b42fec8da..8995230130 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_nav.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_nav.tpl
@@ -1,41 +1,41 @@
-<table class="tutorial-nav-box">
- <tr>
- <td style="width: 30%">
- {if $prev}
- <a href="{$prev}" class="nav-button">Previous</a>
- {else}
- <span class="nav-button-disabled">Previous</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $up}
- <a href="{$up}" class="nav-button">Up</a>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $next}
- <a href="{$next}" class="nav-button">Next</a>
- {else}
- <span class="nav-button-disabled">Next</span>
- {/if}
- </td>
- </tr>
- <tr>
- <td style="width: 30%">
- {if $prevtitle}
- <span class="detail">{$prevtitle}</span>
- {/if}
- </td>
- <td style="text-align: center">
- {if $uptitle}
- <span class="detail">{$uptitle}</span>
- {/if}
- </td>
- <td style="text-align: right; width: 30%">
- {if $nexttitle}
- <span class="detail">{$nexttitle}</span>
- {/if}
- </td>
- </tr>
-</table>
+<table class="tutorial-nav-box">
+ <tr>
+ <td style="width: 30%">
+ {if $prev}
+ <a href="{$prev}" class="nav-button">Previous</a>
+ {else}
+ <span class="nav-button-disabled">Previous</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $up}
+ <a href="{$up}" class="nav-button">Up</a>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $next}
+ <a href="{$next}" class="nav-button">Next</a>
+ {else}
+ <span class="nav-button-disabled">Next</span>
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 30%">
+ {if $prevtitle}
+ <span class="detail">{$prevtitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: center">
+ {if $uptitle}
+ <span class="detail">{$uptitle}</span>
+ {/if}
+ </td>
+ <td style="text-align: right; width: 30%">
+ {if $nexttitle}
+ <span class="detail">{$nexttitle}</span>
+ {/if}
+ </td>
+ </tr>
+</table>
\ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_toc.tpl
index 314ebd8124..ebdef6e360 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_toc.tpl
@@ -1,39 +1,39 @@
-{if count($toc)}
-<h1 class="title">Table of Contents</h1>
-<ul class="toc">
- {assign var="lastcontext" value='refsect1'}
- {section name=toc loop=$toc}
-
- {if $toc[toc].tagname != $lastcontext}
- {if $lastcontext == 'refsect1'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {else}
- {if $lastcontext == 'refsect2'}
- {if $toc[toc].tagname == 'refsect1'}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {if $toc[toc].tagname == 'refsect3'}
- <ul class="toc">
- <li>{$toc[toc].link}</li>
- {/if}
- {else}
- </ul>
- <li>{$toc[toc].link}</li>
- {/if}
- {/if}
- {assign var="lastcontext" value=$toc[toc].tagname}
- {else}
- <li>{$toc[toc].link}</li>
- {/if}
- {/section}
- {if $lastcontext == 'refsect2'}
- </ul>
- {/if}
- {if $lastcontext == 'refsect3'}
- </ul>
- </ul>
- {/if}
-</ul>
-{/if}
+{if count($toc)}
+<h1 class="title">Table of Contents</h1>
+<ul class="toc">
+ {assign var="lastcontext" value='refsect1'}
+ {section name=toc loop=$toc}
+
+ {if $toc[toc].tagname != $lastcontext}
+ {if $lastcontext == 'refsect1'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {else}
+ {if $lastcontext == 'refsect2'}
+ {if $toc[toc].tagname == 'refsect1'}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {if $toc[toc].tagname == 'refsect3'}
+ <ul class="toc">
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {else}
+ </ul>
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/if}
+ {assign var="lastcontext" value=$toc[toc].tagname}
+ {else}
+ <li>{$toc[toc].link}</li>
+ {/if}
+ {/section}
+ {if $lastcontext == 'refsect2'}
+ </ul>
+ {/if}
+ {if $lastcontext == 'refsect3'}
+ </ul>
+ </ul>
+ {/if}
+</ul>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_tree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_tree.tpl
index d5a1835594..617b565411 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_tree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/tutorial_tree.tpl
@@ -1,6 +1,6 @@
-<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
-{if $haskids}
-<div style="margin-left: 1em">
- {$kids}
-</div>
-{/if}
+<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
+{if $haskids}
+<div style="margin-left: 1em">
+ {$kids}
+</div>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/var.tpl
index f11f3be974..fccf689213 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/HTML/frames/templates/phphtmllib/templates/var.tpl
@@ -1,92 +1,92 @@
-{section name=vars loop=$vars}
-{if $vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- static <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
-{section name=vars loop=$vars}
-{if !$vars[vars].static}
-<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
-<div class="{cycle values="evenrow,oddrow"}">
-
- <div class="var-header">
- <span class="var-title">
- <span class="var-type">{$vars[vars].var_type}</span>
- <span class="var-name">{$vars[vars].var_name}</span>
- {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
- (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
- </span>
- </div>
-
- {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
-
- {if $vars[vars].var_overrides}
- <hr class="separator" />
- <div class="notes">Redefinition of:</div>
- <dl>
- <dt>{$vars[vars].var_overrides.link}</dt>
- {if $vars[vars].var_overrides.sdesc}
- <dd>{$vars[vars].var_overrides.sdesc}</dd>
- {/if}
- </dl>
- {/if}
-
- {if $vars[vars].descvar}
- <hr class="separator" />
- <div class="notes">Redefined in descendants as:</div>
- <ul class="redefinitions">
- {section name=vm loop=$vars[vars].descvar}
- <li>
- {$vars[vars].descvar[vm].link}
- {if $vars[vars].descvar[vm].sdesc}
- : {$vars[vars].descvar[vm].sdesc}
- {/if}
- </li>
- {/section}
- </ul>
- {/if}
-
-</div>
-{/if}
-{/section}
-
+{section name=vars loop=$vars}
+{if $vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ static <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
+{section name=vars loop=$vars}
+{if !$vars[vars].static}
+<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
+<div class="{cycle values="evenrow,oddrow"}">
+
+ <div class="var-header">
+ <span class="var-title">
+ <span class="var-type">{$vars[vars].var_type}</span>
+ <span class="var-name">{$vars[vars].var_name}</span>
+ {if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
+ (line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
+ </span>
+ </div>
+
+ {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
+
+ {if $vars[vars].var_overrides}
+ <hr class="separator" />
+ <div class="notes">Redefinition of:</div>
+ <dl>
+ <dt>{$vars[vars].var_overrides.link}</dt>
+ {if $vars[vars].var_overrides.sdesc}
+ <dd>{$vars[vars].var_overrides.sdesc}</dd>
+ {/if}
+ </dl>
+ {/if}
+
+ {if $vars[vars].descvar}
+ <hr class="separator" />
+ <div class="notes">Redefined in descendants as:</div>
+ <ul class="redefinitions">
+ {section name=vm loop=$vars[vars].descvar}
+ <li>
+ {$vars[vars].descvar[vm].link}
+ {if $vars[vars].descvar[vm].sdesc}
+ : {$vars[vars].descvar[vm].sdesc}
+ {/if}
+ </li>
+ {/section}
+ </ul>
+ {/if}
+
+</div>
+{/if}
+{/section}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.ezpdf.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.ezpdf.php
index 86bebb772f..f94fe330c9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.ezpdf.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.ezpdf.php
@@ -1,1571 +1,1571 @@
-<?php
-/**
- * @package Cpdf
- */
-/**
- * Cpdf class
- */
-include_once('phpDocumentor/Converters/PDF/default/class.pdf.php');
-
-/**
- * This class will take the basic interaction facilities of the Cpdf class
- * and make more useful functions so that the user does not have to
- * know all the ins and outs of pdf presentation to produce something pretty.
- *
- * IMPORTANT NOTE
- * there is no warranty, implied or otherwise with this software.
- *
- * @version 009 (versioning is linked to class.pdf.php)
- * released under a public domain licence.
- * @author Wayne Munro, R&OS Ltd, {@link http://www.ros.co.nz/pdf}
- * @package Cpdf
- */
-class Cezpdf extends Cpdf {
-//==============================================================================
-// this class will take the basic interaction facilities of the Cpdf class
-// and make more useful functions so that the user does not have to
-// know all the ins and outs of pdf presentation to produce something pretty.
-//
-// IMPORTANT NOTE
-// there is no warranty, implied or otherwise with this software.
-//
-// version 009 (versioning is linked to class.pdf.php)
-//
-// released under a public domain licence.
-//
-// Wayne Munro, R&OS Ltd, http://www.ros.co.nz/pdf
-//==============================================================================
-
-var $ez=array('fontSize'=>10); // used for storing most of the page configuration parameters
-var $y; // this is the current vertical positon on the page of the writing point, very important
-var $ezPages=array(); // keep an array of the ids of the pages, making it easy to go back and add page numbers etc.
-var $ezPageCount=0;
-
-// ------------------------------------------------------------------------------
-
-function Cezpdf($paper='a4',$orientation='portrait'){
- // Assuming that people don't want to specify the paper size using the absolute coordinates
- // allow a couple of options:
- // orientation can be 'portrait' or 'landscape'
- // or, to actually set the coordinates, then pass an array in as the first parameter.
- // the defaults are as shown.
- //
- // -------------------------
- // 2002-07-24 - Nicola Asuni (info@tecnick.com):
- // Added new page formats (45 standard ISO paper formats and 4 american common formats)
- // paper cordinates are calculated in this way: (inches * 72) where 1 inch = 2.54 cm
- //
- // Now you may also pass a 2 values array containing the page width and height in centimeters
- // -------------------------
-
- if (!is_array($paper)){
- switch (strtoupper($paper)){
- case '4A0': {$size = array(0,0,4767.87,6740.79); break;}
- case '2A0': {$size = array(0,0,3370.39,4767.87); break;}
- case 'A0': {$size = array(0,0,2383.94,3370.39); break;}
- case 'A1': {$size = array(0,0,1683.78,2383.94); break;}
- case 'A2': {$size = array(0,0,1190.55,1683.78); break;}
- case 'A3': {$size = array(0,0,841.89,1190.55); break;}
- case 'A4': default: {$size = array(0,0,595.28,841.89); break;}
- case 'A5': {$size = array(0,0,419.53,595.28); break;}
- case 'A6': {$size = array(0,0,297.64,419.53); break;}
- case 'A7': {$size = array(0,0,209.76,297.64); break;}
- case 'A8': {$size = array(0,0,147.40,209.76); break;}
- case 'A9': {$size = array(0,0,104.88,147.40); break;}
- case 'A10': {$size = array(0,0,73.70,104.88); break;}
- case 'B0': {$size = array(0,0,2834.65,4008.19); break;}
- case 'B1': {$size = array(0,0,2004.09,2834.65); break;}
- case 'B2': {$size = array(0,0,1417.32,2004.09); break;}
- case 'B3': {$size = array(0,0,1000.63,1417.32); break;}
- case 'B4': {$size = array(0,0,708.66,1000.63); break;}
- case 'B5': {$size = array(0,0,498.90,708.66); break;}
- case 'B6': {$size = array(0,0,354.33,498.90); break;}
- case 'B7': {$size = array(0,0,249.45,354.33); break;}
- case 'B8': {$size = array(0,0,175.75,249.45); break;}
- case 'B9': {$size = array(0,0,124.72,175.75); break;}
- case 'B10': {$size = array(0,0,87.87,124.72); break;}
- case 'C0': {$size = array(0,0,2599.37,3676.54); break;}
- case 'C1': {$size = array(0,0,1836.85,2599.37); break;}
- case 'C2': {$size = array(0,0,1298.27,1836.85); break;}
- case 'C3': {$size = array(0,0,918.43,1298.27); break;}
- case 'C4': {$size = array(0,0,649.13,918.43); break;}
- case 'C5': {$size = array(0,0,459.21,649.13); break;}
- case 'C6': {$size = array(0,0,323.15,459.21); break;}
- case 'C7': {$size = array(0,0,229.61,323.15); break;}
- case 'C8': {$size = array(0,0,161.57,229.61); break;}
- case 'C9': {$size = array(0,0,113.39,161.57); break;}
- case 'C10': {$size = array(0,0,79.37,113.39); break;}
- case 'RA0': {$size = array(0,0,2437.80,3458.27); break;}
- case 'RA1': {$size = array(0,0,1729.13,2437.80); break;}
- case 'RA2': {$size = array(0,0,1218.90,1729.13); break;}
- case 'RA3': {$size = array(0,0,864.57,1218.90); break;}
- case 'RA4': {$size = array(0,0,609.45,864.57); break;}
- case 'SRA0': {$size = array(0,0,2551.18,3628.35); break;}
- case 'SRA1': {$size = array(0,0,1814.17,2551.18); break;}
- case 'SRA2': {$size = array(0,0,1275.59,1814.17); break;}
- case 'SRA3': {$size = array(0,0,907.09,1275.59); break;}
- case 'SRA4': {$size = array(0,0,637.80,907.09); break;}
- case 'LETTER': {$size = array(0,0,612.00,792.00); break;}
- case 'LEGAL': {$size = array(0,0,612.00,1008.00); break;}
- case 'EXECUTIVE': {$size = array(0,0,521.86,756.00); break;}
- case 'FOLIO': {$size = array(0,0,612.00,936.00); break;}
- }
- switch (strtolower($orientation)){
- case 'landscape':
- $a=$size[3];
- $size[3]=$size[2];
- $size[2]=$a;
- break;
- }
- } else {
- if (count($paper)>2) {
- // then an array was sent it to set the size
- $size = $paper;
- }
- else { //size in centimeters has been passed
- $size[0] = 0;
- $size[1] = 0;
- $size[2] = ( $paper[0] / 2.54 ) * 72;
- $size[3] = ( $paper[1] / 2.54 ) * 72;
- }
- }
- $this->Cpdf($size);
- $this->ez['pageWidth']=$size[2];
- $this->ez['pageHeight']=$size[3];
-
- // also set the margins to some reasonable defaults
- $this->ez['topMargin']=30;
- $this->ez['bottomMargin']=30;
- $this->ez['leftMargin']=30;
- $this->ez['rightMargin']=30;
-
- // set the current writing position to the top of the first page
- $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
- // and get the ID of the page that was created during the instancing process.
- $this->ezPages[1]=$this->getFirstPageId();
- $this->ezPageCount=1;
-}
-
-// ------------------------------------------------------------------------------
-// 2002-07-24: Nicola Asuni (info@tecnick.com)
-// Set Margins in centimeters
-function ezSetCmMargins($top,$bottom,$left,$right){
- $top = ( $top / 2.54 ) * 72;
- $bottom = ( $bottom / 2.54 ) * 72;
- $left = ( $left / 2.54 ) * 72;
- $right = ( $right / 2.54 ) * 72;
- $this->ezSetMargins($top,$bottom,$left,$right);
-}
-// ------------------------------------------------------------------------------
-
-
-function ezColumnsStart($options=array()){
- // start from the current y-position, make the set number of columne
- if (isset($this->ez['columns']) && $this->ez['columns']==1){
- // if we are already in a column mode then just return.
- return;
- }
- $def=array('gap'=>10,'num'=>2);
- foreach($def as $k=>$v){
- if (!isset($options[$k])){
- $options[$k]=$v;
- }
- }
- // setup the columns
- $this->ez['columns']=array('on'=>1,'colNum'=>1);
-
- // store the current margins
- $this->ez['columns']['margins']=array(
- $this->ez['leftMargin']
- ,$this->ez['rightMargin']
- ,$this->ez['topMargin']
- ,$this->ez['bottomMargin']
- );
- // and store the settings for the columns
- $this->ez['columns']['options']=$options;
- // then reset the margins to suit the new columns
- // safe enough to assume the first column here, but start from the current y-position
- $this->ez['topMargin']=$this->ez['pageHeight']-$this->y;
- $width=($this->ez['pageWidth']-$this->ez['leftMargin']-$this->ez['rightMargin']-($options['num']-1)*$options['gap'])/$options['num'];
- $this->ez['columns']['width']=$width;
- $this->ez['rightMargin']=$this->ez['pageWidth']-$this->ez['leftMargin']-$width;
-
-}
-// ------------------------------------------------------------------------------
-function ezColumnsStop(){
- if (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
- $this->ez['columns']['on']=0;
- $this->ez['leftMargin']=$this->ez['columns']['margins'][0];
- $this->ez['rightMargin']=$this->ez['columns']['margins'][1];
- $this->ez['topMargin']=$this->ez['columns']['margins'][2];
- $this->ez['bottomMargin']=$this->ez['columns']['margins'][3];
- }
-}
-// ------------------------------------------------------------------------------
-function ezInsertMode($status=1,$pageNum=1,$pos='before'){
- // puts the document into insert mode. new pages are inserted until this is re-called with status=0
- // by default pages wil be inserted at the start of the document
- switch($status){
- case '1':
- if (isset($this->ezPages[$pageNum])){
- $this->ez['insertMode']=1;
- $this->ez['insertOptions']=array('id'=>$this->ezPages[$pageNum],'pos'=>$pos);
- }
- break;
- case '0':
- $this->ez['insertMode']=0;
- break;
- }
-}
-// ------------------------------------------------------------------------------
-
-function ezNewPage(){
- $pageRequired=1;
- if (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
- // check if this is just going to a new column
- // increment the column number
-//echo 'HERE<br>';
- $this->ez['columns']['colNum']++;
-//echo $this->ez['columns']['colNum'].'<br>';
- if ($this->ez['columns']['colNum'] <= $this->ez['columns']['options']['num']){
- // then just reset to the top of the next column
- $pageRequired=0;
- } else {
- $this->ez['columns']['colNum']=1;
- $this->ez['topMargin']=$this->ez['columns']['margins'][2];
- }
-
- $width = $this->ez['columns']['width'];
- $this->ez['leftMargin']=$this->ez['columns']['margins'][0]+($this->ez['columns']['colNum']-1)*($this->ez['columns']['options']['gap']+$width);
- $this->ez['rightMargin']=$this->ez['pageWidth']-$this->ez['leftMargin']-$width;
- }
-//echo 'left='.$this->ez['leftMargin'].' right='.$this->ez['rightMargin'].'<br>';
-
- if ($pageRequired){
- // make a new page, setting the writing point back to the top
- $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
- // make the new page with a call to the basic class.
- $this->ezPageCount++;
- if (isset($this->ez['insertMode']) && $this->ez['insertMode']==1){
- $id = $this->ezPages[$this->ezPageCount] = $this->newPage(1,$this->ez['insertOptions']['id'],$this->ez['insertOptions']['pos']);
- // then manipulate the insert options so that inserted pages follow each other
- $this->ez['insertOptions']['id']=$id;
- $this->ez['insertOptions']['pos']='after';
- } else {
- $this->ezPages[$this->ezPageCount] = $this->newPage();
- }
- } else {
- $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function ezSetMargins($top,$bottom,$left,$right){
- // sets the margins to new values
- $this->ez['topMargin']=$top;
- $this->ez['bottomMargin']=$bottom;
- $this->ez['leftMargin']=$left;
- $this->ez['rightMargin']=$right;
- // check to see if this means that the current writing position is outside the
- // writable area
- if ($this->y > $this->ez['pageHeight']-$top){
- // then move y down
- $this->y = $this->ez['pageHeight']-$top;
- }
- if ( $this->y < $bottom){
- // then make a new page
- $this->ezNewPage();
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function ezGetCurrentPageNumber(){
- // return the strict numbering (1,2,3,4..) number of the current page
- return $this->ezPageCount;
-}
-
-// ------------------------------------------------------------------------------
-
-function ezStartPageNumbers($x,$y,$size,$pos='left',$pattern='{PAGENUM} of {TOTALPAGENUM}',$num=''){
- // put page numbers on the pages from here.
- // place then on the 'pos' side of the coordinates (x,y).
- // pos can be 'left' or 'right'
- // use the given 'pattern' for display, where (PAGENUM} and {TOTALPAGENUM} are replaced
- // as required.
- // if $num is set, then make the first page this number, the number of total pages will
- // be adjusted to account for this.
- // Adjust this function so that each time you 'start' page numbers then you effectively start a different batch
- // return the number of the batch, so that they can be stopped in a different order if required.
- if (!$pos || !strlen($pos)){
- $pos='left';
- }
- if (!$pattern || !strlen($pattern)){
- $pattern='{PAGENUM} of {TOTALPAGENUM}';
- }
- if (!isset($this->ez['pageNumbering'])){
- $this->ez['pageNumbering']=array();
- }
- $i = count($this->ez['pageNumbering']);
- $this->ez['pageNumbering'][$i][$this->ezPageCount]=array('x'=>$x,'y'=>$y,'pos'=>$pos,'pattern'=>$pattern,'num'=>$num,'size'=>$size);
- return $i;
-}
-
-// ------------------------------------------------------------------------------
-
-function ezWhatPageNumber($pageNum,$i=0){
- // given a particular generic page number (ie, document numbered sequentially from beginning),
- // return the page number under a particular page numbering scheme ($i)
- $num=0;
- $start=1;
- $startNum=1;
- if (!isset($this->ez['pageNumbering']))
- {
- $this->addMessage('WARNING: page numbering called for and wasn\'t started with ezStartPageNumbers');
- return 0;
- }
- foreach($this->ez['pageNumbering'][$i] as $k=>$v){
- if ($k<=$pageNum){
- if (is_array($v)){
- // start block
- if (strlen($v['num'])){
- // a start was specified
- $start=$v['num'];
- $startNum=$k;
- $num=$pageNum-$startNum+$start;
- }
- } else {
- // stop block
- $num=0;
- }
- }
- }
- return $num;
-}
-
-// ------------------------------------------------------------------------------
-
-function ezStopPageNumbers($stopTotal=0,$next=0,$i=0){
- // if stopTotal=1 then the totalling of pages for this number will stop too
- // if $next=1, then do this page, but not the next, else do not do this page either
- // if $i is set, then stop that particular pagenumbering sequence.
- if (!isset($this->ez['pageNumbering'])){
- $this->ez['pageNumbering']=array();
- }
- if ($next && isset($this->ez['pageNumbering'][$i][$this->ezPageCount]) && is_array($this->ez['pageNumbering'][$i][$this->ezPageCount])){
- // then this has only just been started, this will over-write the start, and nothing will appear
- // add a special command to the start block, telling it to stop as well
- if ($stopTotal){
- $this->ez['pageNumbering'][$i][$this->ezPageCount]['stoptn']=1;
- } else {
- $this->ez['pageNumbering'][$i][$this->ezPageCount]['stopn']=1;
- }
- } else {
- if ($stopTotal){
- $this->ez['pageNumbering'][$i][$this->ezPageCount]='stopt';
- } else {
- $this->ez['pageNumbering'][$i][$this->ezPageCount]='stop';
- }
- if ($next){
- $this->ez['pageNumbering'][$i][$this->ezPageCount].='n';
- }
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function ezPRVTpageNumberSearch($lbl,&$tmp){
- foreach($tmp as $i=>$v){
- if (is_array($v)){
- if (isset($v[$lbl])){
- return $i;
- }
- } else {
- if ($v==$lbl){
- return $i;
- }
- }
- }
- return 0;
-}
-
-// ------------------------------------------------------------------------------
-
-function ezPRVTaddPageNumbers(){
- // this will go through the pageNumbering array and add the page numbers are required
- if (isset($this->ez['pageNumbering'])){
- $totalPages1 = $this->ezPageCount;
- $tmp1=$this->ez['pageNumbering'];
- $status=0;
- foreach($tmp1 as $i=>$tmp){
- // do each of the page numbering systems
- // firstly, find the total pages for this one
- $k = $this->ezPRVTpageNumberSearch('stopt',$tmp);
- if ($k && $k>0){
- $totalPages = $k-1;
- } else {
- $l = $this->ezPRVTpageNumberSearch('stoptn',$tmp);
- if ($l && $l>0){
- $totalPages = $l;
- } else {
- $totalPages = $totalPages1;
- }
- }
- foreach ($this->ezPages as $pageNum=>$id){
- if (isset($tmp[$pageNum])){
- if (is_array($tmp[$pageNum])){
- // then this must be starting page numbers
- $status=1;
- $info = $tmp[$pageNum];
- $info['dnum']=$info['num']-$pageNum;
- // also check for the special case of the numbering stopping and starting on the same page
- if (isset($info['stopn']) || isset($info['stoptn']) ){
- $status=2;
- }
- } else if ($tmp[$pageNum]=='stop' || $tmp[$pageNum]=='stopt'){
- // then we are stopping page numbers
- $status=0;
- } else if ($status==1 && ($tmp[$pageNum]=='stoptn' || $tmp[$pageNum]=='stopn')){
- // then we are stopping page numbers
- $status=2;
- }
- }
- if ($status){
- // then add the page numbering to this page
- if (strlen($info['num'])){
- $num=$pageNum+$info['dnum'];
- } else {
- $num=$pageNum;
- }
- $total = $totalPages+$num-$pageNum;
- $pat = str_replace('{PAGENUM}',$num,$info['pattern']);
- $pat = str_replace('{TOTALPAGENUM}',$total,$pat);
- $this->reopenObject($id);
- switch($info['pos']){
- case 'right':
- $this->addText($info['x'],$info['y'],$info['size'],$pat);
- break;
- default:
- $w=$this->getTextWidth($info['size'],$pat);
- $this->addText($info['x']-$w,$info['y'],$info['size'],$pat);
- break;
- }
- $this->closeObject();
- }
- if ($status==2){
- $status=0;
- }
- }
- }
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function ezPRVTcleanUp(){
- $this->ezPRVTaddPageNumbers();
-}
-
-// ------------------------------------------------------------------------------
-
-function ezStream($options=''){
- $this->ezPRVTcleanUp();
- $this->stream($options);
-}
-
-// ------------------------------------------------------------------------------
-
-function ezOutput($options=0){
- $this->ezPRVTcleanUp();
- return $this->output($options);
-}
-
-// ------------------------------------------------------------------------------
-
-function ezSetY($y){
- // used to change the vertical position of the writing point.
- $this->y = $y;
- if ( $this->y < $this->ez['bottomMargin']){
- // then make a new page
- $this->ezNewPage();
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function ezSetDy($dy,$mod=''){
- // used to change the vertical position of the writing point.
- // changes up by a positive increment, so enter a negative number to go
- // down the page
- // if $mod is set to 'makeSpace' and a new page is forced, then the pointed will be moved
- // down on the new page, this will allow space to be reserved for graphics etc.
- $this->y += $dy;
- if ( $this->y < $this->ez['bottomMargin']){
- // then make a new page
- $this->ezNewPage();
- if ($mod=='makeSpace'){
- $this->y += $dy;
- }
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function ezPrvtTableDrawLines($pos,$gap,$x0,$x1,$y0,$y1,$y2,$col,$inner,$outer,$opt=1){
- $x0=1000;
- $x1=0;
- $this->setStrokeColor($col[0],$col[1],$col[2]);
- $cnt=0;
- $n = count($pos);
- foreach($pos as $x){
- $cnt++;
- if ($cnt==1 || $cnt==$n){
- $this->setLineStyle($outer);
- } else {
- $this->setLineStyle($inner);
- }
- $this->line($x-$gap/2,$y0,$x-$gap/2,$y2);
- if ($x>$x1){ $x1=$x; };
- if ($x<$x0){ $x0=$x; };
- }
- $this->setLineStyle($outer);
- $this->line($x0-$gap/2-$outer/2,$y0,$x1-$gap/2+$outer/2,$y0);
- // only do the second line if it is different to the first, AND each row does not have
- // a line on it.
- if ($y0!=$y1 && $opt<2){
- $this->line($x0-$gap/2,$y1,$x1-$gap/2,$y1);
- }
- $this->line($x0-$gap/2-$outer/2,$y2,$x1-$gap/2+$outer/2,$y2);
-}
-
-// ------------------------------------------------------------------------------
-
-function ezPrvtTableColumnHeadings($cols,$pos,$maxWidth,$height,$decender,$gap,$size,&$y,$optionsAll=array()){
- // uses ezText to add the text, and returns the height taken by the largest heading
- // this page will move the headings to a new page if they will not fit completely on this one
- // transaction support will be used to implement this
-
- if (isset($optionsAll['cols'])){
- $options = $optionsAll['cols'];
- } else {
- $options = array();
- }
-
- $mx=0;
- $startPage = $this->ezPageCount;
- $secondGo=0;
-
- // $y is the position at which the top of the table should start, so the base
- // of the first text, is $y-$height-$gap-$decender, but ezText starts by dropping $height
-
- // the return from this function is the total cell height, including gaps, and $y is adjusted
- // to be the postion of the bottom line
-
- // begin the transaction
- $this->transaction('start');
- $ok=0;
-// $y-=$gap-$decender;
- $y-=$gap;
- while ($ok==0){
- foreach($cols as $colName=>$colHeading){
- $this->ezSetY($y);
- if (isset($options[$colName]) && isset($options[$colName]['justification'])){
- $justification = $options[$colName]['justification'];
- } else {
- $justification = 'left';
- }
- $this->ezText($colHeading,$size,array('aleft'=> $pos[$colName],'aright'=>($maxWidth[$colName]+$pos[$colName]),'justification'=>$justification));
- $dy = $y-$this->y;
- if ($dy>$mx){
- $mx=$dy;
- }
- }
- $y = $y - $mx - $gap + $decender;
-// $y -= $mx-$gap+$decender;
-
- // now, if this has moved to a new page, then abort the transaction, move to a new page, and put it there
- // do not check on the second time around, to avoid an infinite loop
- if ($this->ezPageCount != $startPage && $secondGo==0){
- $this->transaction('rewind');
- $this->ezNewPage();
- $y = $this->y - $gap-$decender;
- $ok=0;
- $secondGo=1;
-// $y = $store_y;
- $mx=0;
-
- } else {
- $this->transaction('commit');
- $ok=1;
- }
- }
-
- return $mx+$gap*2-$decender;
-}
-
-// ------------------------------------------------------------------------------
-
-function ezPrvtGetTextWidth($size,$text){
- // will calculate the maximum width, taking into account that the text may be broken
- // by line breaks.
- $mx=0;
- $lines = explode("\n",$text);
- foreach ($lines as $line){
- $w = $this->getTextWidth($size,$line);
- if ($w>$mx){
- $mx=$w;
- }
- }
- return $mx;
-}
-
-// ------------------------------------------------------------------------------
-
-function ezTable(&$data,$cols='',$title='',$options=''){
- // add a table of information to the pdf document
- // $data is a two dimensional array
- // $cols (optional) is an associative array, the keys are the names of the columns from $data
- // to be presented (and in that order), the values are the titles to be given to the columns
- // $title (optional) is the title to be put on the top of the table
- //
- // $options is an associative array which can contain:
- // 'showLines'=> 0,1,2, default is 1 (show outside and top lines only), 2=> lines on each row
- // 'showHeadings' => 0 or 1
- // 'shaded'=> 0,1,2,3 default is 1 (1->alternate lines are shaded, 0->no shading, 2-> both shaded, second uses shadeCol2)
- // 'shadeCol' => (r,g,b) array, defining the colour of the shading, default is (0.8,0.8,0.8)
- // 'shadeCol2' => (r,g,b) array, defining the colour of the shading of the other blocks, default is (0.7,0.7,0.7)
- // 'fontSize' => 10
- // 'textCol' => (r,g,b) array, text colour
- // 'titleFontSize' => 12
- // 'rowGap' => 2 , the space added at the top and bottom of each row, between the text and the lines
- // 'colGap' => 5 , the space on the left and right sides of each cell
- // 'lineCol' => (r,g,b) array, defining the colour of the lines, default, black.
- // 'xPos' => 'left','right','center','centre',or coordinate, reference coordinate in the x-direction
- // 'xOrientation' => 'left','right','center','centre', position of the table w.r.t 'xPos'
- // 'width'=> <number> which will specify the width of the table, if it turns out to not be this
- // wide, then it will stretch the table to fit, if it is wider then each cell will be made
- // proportionalty smaller, and the content may have to wrap.
- // 'maxWidth'=> <number> similar to 'width', but will only make table smaller than it wants to be
- // 'options' => array(<colname>=>array('justification'=>'left','width'=>100,'link'=>linkDataName),<colname>=>....)
- // allow the setting of other paramaters for the individual columns
- // 'minRowSpace'=> the minimum space between the bottom of each row and the bottom margin, in which a new row will be started
- // if it is less, then a new page would be started, default=-100
- // 'innerLineThickness'=>1
- // 'outerLineThickness'=>1
- // 'splitRows'=>0, 0 or 1, whether or not to allow the rows to be split across page boundaries
- // 'protectRows'=>number, the number of rows to hold with the heading on page, ie, if there less than this number of
- // rows on the page, then move the whole lot onto the next page, default=1
- //
- // note that the user will have had to make a font selection already or this will not
- // produce a valid pdf file.
-
- if (!is_array($data)){
- return;
- }
-
- if (!is_array($cols)){
- // take the columns from the first row of the data set
- reset($data);
- list($k,$v)=each($data);
- if (!is_array($v)){
- return;
- }
- $cols=array();
- foreach($v as $k1=>$v1){
- $cols[$k1]=$k1;
- }
- }
-
- if (!is_array($options)){
- $options=array();
- }
-
- $defaults = array(
- 'shaded'=>1,'showLines'=>1,'shadeCol'=>array(0.8,0.8,0.8),'shadeCol2'=>array(0.7,0.7,0.7),'fontSize'=>10,'titleFontSize'=>12
- ,'titleGap'=>5,'lineCol'=>array(0,0,0),'gap'=>5,'xPos'=>'centre','xOrientation'=>'centre'
- ,'showHeadings'=>1,'textCol'=>array(0,0,0),'width'=>0,'maxWidth'=>0,'cols'=>array(),'minRowSpace'=>-100,'rowGap'=>2,'colGap'=>5
- ,'innerLineThickness'=>1,'outerLineThickness'=>1,'splitRows'=>0,'protectRows'=>1
- );
-
- foreach($defaults as $key=>$value){
- if (is_array($value)){
- if (!isset($options[$key]) || !is_array($options[$key])){
- $options[$key]=$value;
- }
- } else {
- if (!isset($options[$key])){
- $options[$key]=$value;
- }
- }
- }
- $options['gap']=2*$options['colGap'];
-
- $middle = ($this->ez['pageWidth']-$this->ez['rightMargin'])/2+($this->ez['leftMargin'])/2;
- // figure out the maximum widths of the text within each column
- $maxWidth=array();
- foreach($cols as $colName=>$colHeading){
- $maxWidth[$colName]=0;
- }
- // find the maximum cell widths based on the data
- foreach($data as $row){
- foreach($cols as $colName=>$colHeading){
- $w = $this->ezPrvtGetTextWidth($options['fontSize'],(string)$row[$colName])*1.01;
- if ($w > $maxWidth[$colName]){
- $maxWidth[$colName]=$w;
- }
- }
- }
- // and the maximum widths to fit in the headings
- foreach($cols as $colName=>$colTitle){
- $w = $this->ezPrvtGetTextWidth($options['fontSize'],(string)$colTitle)*1.01;
- if ($w > $maxWidth[$colName]){
- $maxWidth[$colName]=$w;
- }
- }
-
- // calculate the start positions of each of the columns
- $pos=array();
- $x=0;
- $t=$x;
- $adjustmentWidth=0;
- $setWidth=0;
- foreach($maxWidth as $colName => $w){
- $pos[$colName]=$t;
- // if the column width has been specified then set that here, also total the
- // width avaliable for adjustment
- if (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['width']) && $options['cols'][$colName]['width']>0){
- $t=$t+$options['cols'][$colName]['width'];
- $maxWidth[$colName] = $options['cols'][$colName]['width']-$options['gap'];
- $setWidth += $options['cols'][$colName]['width'];
- } else {
- $t=$t+$w+$options['gap'];
- $adjustmentWidth += $w;
- $setWidth += $options['gap'];
- }
- }
- $pos['_end_']=$t;
-
- // if maxWidth is specified, and the table is too wide, and the width has not been set,
- // then set the width.
- if ($options['width']==0 && $options['maxWidth'] && ($t-$x)>$options['maxWidth']){
- // then need to make this one smaller
- $options['width']=$options['maxWidth'];
- }
-
- if ($options['width'] && $adjustmentWidth>0 && $setWidth<$options['width']){
- // first find the current widths of the columns involved in this mystery
- $cols0 = array();
- $cols1 = array();
- $xq=0;
- $presentWidth=0;
- $last='';
- foreach($pos as $colName=>$p){
- if (!isset($options['cols'][$last]) || !isset($options['cols'][$last]['width']) || $options['cols'][$last]['width']<=0){
- if (strlen($last)){
- $cols0[$last]=$p-$xq -$options['gap'];
- $presentWidth += ($p-$xq - $options['gap']);
- }
- } else {
- $cols1[$last]=$p-$xq;
- }
- $last=$colName;
- $xq=$p;
- }
- // $cols0 contains the widths of all the columns which are not set
- $neededWidth = $options['width']-$setWidth;
- // if needed width is negative then add it equally to each column, else get more tricky
- if ($presentWidth<$neededWidth){
- foreach($cols0 as $colName=>$w){
- $cols0[$colName]+= ($neededWidth-$presentWidth)/count($cols0);
- }
- } else {
-
- $cnt=0;
- while ($presentWidth>$neededWidth && $cnt<100){
- $cnt++; // insurance policy
- // find the widest columns, and the next to widest width
- $aWidest = array();
- $nWidest=0;
- $widest=0;
- foreach($cols0 as $colName=>$w){
- if ($w>$widest){
- $aWidest=array($colName);
- $nWidest = $widest;
- $widest=$w;
- } else if ($w==$widest){
- $aWidest[]=$colName;
- }
- }
- // then figure out what the width of the widest columns would have to be to take up all the slack
- $newWidestWidth = $widest - ($presentWidth-$neededWidth)/count($aWidest);
- if ($newWidestWidth > $nWidest){
- // then there is space to set them to this
- foreach($aWidest as $colName){
- $cols0[$colName] = $newWidestWidth;
- }
- $presentWidth=$neededWidth;
- } else {
- // there is not space, reduce the size of the widest ones down to the next size down, and we
- // will go round again
- foreach($aWidest as $colName){
- $cols0[$colName] = $nWidest;
- }
- $presentWidth=$presentWidth-($widest-$nWidest)*count($aWidest);
- }
- }
- }
- // $cols0 now contains the new widths of the constrained columns.
- // now need to update the $pos and $maxWidth arrays
- $xq=0;
- foreach($pos as $colName=>$p){
- $pos[$colName]=$xq;
- if (!isset($options['cols'][$colName]) || !isset($options['cols'][$colName]['width']) || $options['cols'][$colName]['width']<=0){
- if (isset($cols0[$colName])){
- $xq += $cols0[$colName] + $options['gap'];
- $maxWidth[$colName]=$cols0[$colName];
- }
- } else {
- if (isset($cols1[$colName])){
- $xq += $cols1[$colName];
- }
- }
- }
-
- $t=$x+$options['width'];
- $pos['_end_']=$t;
- }
-
- // now adjust the table to the correct location across the page
- switch ($options['xPos']){
- case 'left':
- $xref = $this->ez['leftMargin'];
- break;
- case 'right':
- $xref = $this->ez['pageWidth'] - $this->ez['rightMargin'];
- break;
- case 'centre':
- case 'center':
- $xref = $middle;
- break;
- default:
- $xref = $options['xPos'];
- break;
- }
- switch ($options['xOrientation']){
- case 'left':
- $dx = $xref-$t;
- break;
- case 'right':
- $dx = $xref;
- break;
- case 'centre':
- case 'center':
- $dx = $xref-$t/2;
- break;
- }
-
-
- foreach($pos as $k=>$v){
- $pos[$k]=$v+$dx;
- }
- $x0=$x+$dx;
- $x1=$t+$dx;
-
- $baseLeftMargin = $this->ez['leftMargin'];
- $basePos = $pos;
- $baseX0 = $x0;
- $baseX1 = $x1;
-
- // ok, just about ready to make me a table
- $this->setColor($options['textCol'][0],$options['textCol'][1],$options['textCol'][2]);
- $this->setStrokeColor($options['shadeCol'][0],$options['shadeCol'][1],$options['shadeCol'][2]);
-
- $middle = ($x1+$x0)/2;
-
- // start a transaction which will be used to regress the table, if there are not enough rows protected
- if ($options['protectRows']>0){
- $this->transaction('start');
- $movedOnce=0;
- }
- $abortTable = 1;
- while ($abortTable){
- $abortTable=0;
-
- $dm = $this->ez['leftMargin']-$baseLeftMargin;
- foreach($basePos as $k=>$v){
- $pos[$k]=$v+$dm;
- }
- $x0=$baseX0+$dm;
- $x1=$baseX1+$dm;
- $middle = ($x1+$x0)/2;
-
-
- // if the title is set, then do that
- if (strlen($title)){
- $w = $this->getTextWidth($options['titleFontSize'],$title);
- $this->y -= $this->getFontHeight($options['titleFontSize']);
- if ($this->y < $this->ez['bottomMargin']){
- $this->ezNewPage();
- // margins may have changed on the newpage
- $dm = $this->ez['leftMargin']-$baseLeftMargin;
- foreach($basePos as $k=>$v){
- $pos[$k]=$v+$dm;
- }
- $x0=$baseX0+$dm;
- $x1=$baseX1+$dm;
- $middle = ($x1+$x0)/2;
- $this->y -= $this->getFontHeight($options['titleFontSize']);
- }
- $this->addText($middle-$w/2,$this->y,$options['titleFontSize'],$title);
- $this->y -= $options['titleGap'];
- }
-
- // margins may have changed on the newpage
- $dm = $this->ez['leftMargin']-$baseLeftMargin;
- foreach($basePos as $k=>$v){
- $pos[$k]=$v+$dm;
- }
- $x0=$baseX0+$dm;
- $x1=$baseX1+$dm;
-
- $y=$this->y; // to simplify the code a bit
-
- // make the table
- $height = $this->getFontHeight($options['fontSize']);
- $decender = $this->getFontDecender($options['fontSize']);
-
-
-
- $y0=$y+$decender;
- $dy=0;
- if ($options['showHeadings']){
- // this function will move the start of the table to a new page if it does not fit on this one
- $headingHeight = $this->ezPrvtTableColumnHeadings($cols,$pos,$maxWidth,$height,$decender,$options['rowGap'],$options['fontSize'],$y,$options);
- $y0 = $y+$headingHeight;
- $y1 = $y;
-
-
- $dm = $this->ez['leftMargin']-$baseLeftMargin;
- foreach($basePos as $k=>$v){
- $pos[$k]=$v+$dm;
- }
- $x0=$baseX0+$dm;
- $x1=$baseX1+$dm;
-
- } else {
- $y1 = $y0;
- }
- $firstLine=1;
-
-
- // open an object here so that the text can be put in over the shading
- if ($options['shaded']){
- $this->saveState();
- $textObjectId = $this->openObject();
- $this->closeObject();
- $this->addObject($textObjectId);
- $this->reopenObject($textObjectId);
- }
-
- $cnt=0;
- $newPage=0;
- foreach($data as $row){
- $cnt++;
- // the transaction support will be used to prevent rows being split
- if ($options['splitRows']==0){
- $pageStart = $this->ezPageCount;
- if (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
- $columnStart = $this->ez['columns']['colNum'];
- }
- $this->transaction('start');
- $row_orig = $row;
- $y_orig = $y;
- $y0_orig = $y0;
- $y1_orig = $y1;
- }
- $ok=0;
- $secondTurn=0;
- while(!$abortTable && $ok == 0){
-
- $mx=0;
- $newRow=1;
- while(!$abortTable && ($newPage || $newRow)){
-
- $y-=$height;
- if ($newPage || $y<$this->ez['bottomMargin'] || (isset($options['minRowSpace']) && $y<($this->ez['bottomMargin']+$options['minRowSpace'])) ){
- // check that enough rows are with the heading
- if ($options['protectRows']>0 && $movedOnce==0 && $cnt<=$options['protectRows']){
- // then we need to move the whole table onto the next page
- $movedOnce = 1;
- $abortTable = 1;
- }
-
- $y2=$y-$mx+2*$height+$decender-$newRow*$height;
- if ($options['showLines']){
- if (!$options['showHeadings']){
- $y0=$y1;
- }
- $this->ezPrvtTableDrawLines($pos,$options['gap'],$x0,$x1,$y0,$y1,$y2,$options['lineCol'],$options['innerLineThickness'],$options['outerLineThickness'],$options['showLines']);
- }
- if ($options['shaded']){
- $this->closeObject();
- $this->restoreState();
- }
- $this->ezNewPage();
- // and the margins may have changed, this is due to the possibility of the columns being turned on
- // as the columns are managed by manipulating the margins
-
- $dm = $this->ez['leftMargin']-$baseLeftMargin;
- foreach($basePos as $k=>$v){
- $pos[$k]=$v+$dm;
- }
-// $x0=$x0+$dm;
-// $x1=$x1+$dm;
- $x0=$baseX0+$dm;
- $x1=$baseX1+$dm;
-
- if ($options['shaded']){
- $this->saveState();
- $textObjectId = $this->openObject();
- $this->closeObject();
- $this->addObject($textObjectId);
- $this->reopenObject($textObjectId);
- }
- $this->setColor($options['textCol'][0],$options['textCol'][1],$options['textCol'][2],1);
- $y = $this->ez['pageHeight']-$this->ez['topMargin'];
- $y0=$y+$decender;
- $mx=0;
- if ($options['showHeadings']){
- $this->ezPrvtTableColumnHeadings($cols,$pos,$maxWidth,$height,$decender,$options['rowGap'],$options['fontSize'],$y,$options);
- $y1=$y;
- } else {
- $y1=$y0;
- }
- $firstLine=1;
- $y -= $height;
- }
- $newRow=0;
- // write the actual data
- // if these cells need to be split over a page, then $newPage will be set, and the remaining
- // text will be placed in $leftOvers
- $newPage=0;
- $leftOvers=array();
-
- foreach($cols as $colName=>$colTitle){
- $this->ezSetY($y+$height);
- $colNewPage=0;
- if (isset($row[$colName])){
- if (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['link']) && strlen($options['cols'][$colName]['link'])){
-
- $lines = explode("\n",$row[$colName]);
- if (isset($row[$options['cols'][$colName]['link']]) && strlen($row[$options['cols'][$colName]['link']])){
- foreach($lines as $k=>$v){
- $lines[$k]='<c:alink:'.$row[$options['cols'][$colName]['link']].'>'.$v.'</c:alink>';
- }
- }
- } else {
- $lines = explode("\n",$row[$colName]);
- }
- } else {
- $lines = array();
- }
- $this->y -= $options['rowGap'];
- foreach ($lines as $line){
- $line = $this->ezProcessText($line);
- $start=1;
-
- while (strlen($line) || $start){
- $start=0;
- if (!$colNewPage){
- $this->y=$this->y-$height;
- }
- if ($this->y < $this->ez['bottomMargin']){
- // $this->ezNewPage();
- $newPage=1; // whether a new page is required for any of the columns
- $colNewPage=1; // whether a new page is required for this column
- }
- if ($colNewPage){
- if (isset($leftOvers[$colName])){
- $leftOvers[$colName].="\n".$line;
- } else {
- $leftOvers[$colName] = $line;
- }
- $line='';
- } else {
- if (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['justification']) ){
- $just = $options['cols'][$colName]['justification'];
- } else {
- $just='left';
- }
-
- $line=$this->addTextWrap($pos[$colName],$this->y,$maxWidth[$colName],$options['fontSize'],$line,$just);
- }
- }
- }
-
- $dy=$y+$height-$this->y+$options['rowGap'];
- if ($dy-$height*$newPage>$mx){
- $mx=$dy-$height*$newPage;
- }
- }
- // set $row to $leftOvers so that they will be processed onto the new page
- $row = $leftOvers;
- // now add the shading underneath
- if ($options['shaded'] && $cnt%2==0){
- $this->closeObject();
- $this->setColor($options['shadeCol'][0],$options['shadeCol'][1],$options['shadeCol'][2],1);
- $this->filledRectangle($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
- $this->reopenObject($textObjectId);
- }
-
- if ($options['shaded']==2 && $cnt%2==1){
- $this->closeObject();
- $this->setColor($options['shadeCol2'][0],$options['shadeCol2'][1],$options['shadeCol2'][2],1);
- $this->filledRectangle($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
- $this->reopenObject($textObjectId);
- }
-
- if ($options['showLines']>1){
- // then draw a line on the top of each block
-// $this->closeObject();
- $this->saveState();
- $this->setStrokeColor($options['lineCol'][0],$options['lineCol'][1],$options['lineCol'][2],1);
-// $this->line($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
- if ($firstLine){
- $this->setLineStyle($options['outerLineThickness']);
- $firstLine=0;
- } else {
- $this->setLineStyle($options['innerLineThickness']);
- }
- $this->line($x0-$options['gap']/2,$y+$decender+$height,$x1-$options['gap']/2,$y+$decender+$height);
- $this->restoreState();
-// $this->reopenObject($textObjectId);
- }
- } // end of while
- $y=$y-$mx+$height;
-
- // checking row split over pages
- if ($options['splitRows']==0){
- if ( ( ($this->ezPageCount != $pageStart) || (isset($this->ez['columns']) && $this->ez['columns']['on']==1 && $columnStart != $this->ez['columns']['colNum'] )) && $secondTurn==0){
- // then we need to go back and try that again !
- $newPage=1;
- $secondTurn=1;
- $this->transaction('rewind');
- $row = $row_orig;
- $y = $y_orig;
- $y0 = $y0_orig;
- $y1 = $y1_orig;
- $ok=0;
-
- $dm = $this->ez['leftMargin']-$baseLeftMargin;
- foreach($basePos as $k=>$v){
- $pos[$k]=$v+$dm;
- }
- $x0=$baseX0+$dm;
- $x1=$baseX1+$dm;
-
- } else {
- $this->transaction('commit');
- $ok=1;
- }
- } else {
- $ok=1; // don't go round the loop if splitting rows is allowed
- }
-
- } // end of while to check for row splitting
- if ($abortTable){
- if ($ok==0){
- $this->transaction('abort');
- }
- // only the outer transaction should be operational
- $this->transaction('rewind');
- $this->ezNewPage();
- break;
- }
-
- } // end of foreach ($data as $row)
-
- } // end of while ($abortTable)
-
- // table has been put on the page, the rows guarded as required, commit.
- $this->transaction('commit');
-
- $y2=$y+$decender;
- if ($options['showLines']){
- if (!$options['showHeadings']){
- $y0=$y1;
- }
- $this->ezPrvtTableDrawLines($pos,$options['gap'],$x0,$x1,$y0,$y1,$y2,$options['lineCol'],$options['innerLineThickness'],$options['outerLineThickness'],$options['showLines']);
- }
-
- // close the object for drawing the text on top
- if ($options['shaded']){
- $this->closeObject();
- $this->restoreState();
- }
-
- $this->y=$y;
- return $y;
-}
-
-// ------------------------------------------------------------------------------
-function ezProcessText($text){
- // this function will intially be used to implement underlining support, but could be used for a range of other
- // purposes
- $search = array('<u>','<U>','</u>','</U>');
- $replace = array('<c:uline>','<c:uline>','</c:uline>','</c:uline>');
- return str_replace($search,$replace,$text);
-}
-
-// ------------------------------------------------------------------------------
-
-function ezText($text,$size=0,$options=array(),$test=0){
- // this will add a string of text to the document, starting at the current drawing
- // position.
- // it will wrap to keep within the margins, including optional offsets from the left
- // and the right, if $size is not specified, then it will be the last one used, or
- // the default value (12 I think).
- // the text will go to the start of the next line when a return code "\n" is found.
- // possible options are:
- // 'left'=> number, gap to leave from the left margin
- // 'right'=> number, gap to leave from the right margin
- // 'aleft'=> number, absolute left position (overrides 'left')
- // 'aright'=> number, absolute right position (overrides 'right')
- // 'justification' => 'left','right','center','centre','full'
-
- // only set one of the next two items (leading overrides spacing)
- // 'leading' => number, defines the total height taken by the line, independent of the font height.
- // 'spacing' => a real number, though usually set to one of 1, 1.5, 2 (line spacing as used in word processing)
-
- // if $test is set then this should just check if the text is going to flow onto a new page or not, returning true or false
-
- // apply the filtering which will make the underlining function.
- $text = $this->ezProcessText($text);
-
- $newPage=false;
- $store_y = $this->y;
-
- if (is_array($options) && isset($options['aleft'])){
- $left=$options['aleft'];
- } else {
- $left = $this->ez['leftMargin'] + ((is_array($options) && isset($options['left']))?$options['left']:0);
- }
- if (is_array($options) && isset($options['aright'])){
- $right=$options['aright'];
- } else {
- $right = $this->ez['pageWidth'] - $this->ez['rightMargin'] - ((is_array($options) && isset($options['right']))?$options['right']:0);
- }
- if ($size<=0){
- $size = $this->ez['fontSize'];
- } else {
- $this->ez['fontSize']=$size;
- }
-
- if (is_array($options) && isset($options['justification'])){
- $just = $options['justification'];
- } else {
- $just = 'left';
- }
-
- // modifications to give leading and spacing based on those given by Craig Heydenburg 1/1/02
- if (is_array($options) && isset($options['leading'])) { ## use leading instead of spacing
- $height = $options['leading'];
- } else if (is_array($options) && isset($options['spacing'])) {
- $height = $this->getFontHeight($size) * $options['spacing'];
- } else {
- $height = $this->getFontHeight($size);
- }
-
-
- $lines = explode("\n",$text);
- foreach ($lines as $line){
- $start=1;
- while (strlen($line) || $start){
- $start=0;
- $this->y=$this->y-$height;
- if ($this->y < $this->ez['bottomMargin']){
- if ($test){
- $newPage=true;
- } else {
- $this->ezNewPage();
- // and then re-calc the left and right, in case they have changed due to columns
- }
- }
- if (is_array($options) && isset($options['aleft'])){
- $left=$options['aleft'];
- } else {
- $left = $this->ez['leftMargin'] + ((is_array($options) && isset($options['left']))?$options['left']:0);
- }
- if (is_array($options) && isset($options['aright'])){
- $right=$options['aright'];
- } else {
- $right = $this->ez['pageWidth'] - $this->ez['rightMargin'] - ((is_array($options) && isset($options['right']))?$options['right']:0);
- }
- $line=$this->addTextWrap($left,$this->y,$right-$left,$size,$line,$just,0,$test);
- }
- }
-
- if ($test){
- $this->y=$store_y;
- return $newPage;
- } else {
- return $this->y;
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function ezImage($image,$pad = 5,$width = 0,$resize = 'full',$just = 'center',$border = ''){
- //beta ezimage function
- if (stristr($image,'://'))//copy to temp file
- {
- $fp = @fopen($image,"rb");
- while(!feof($fp))
- {
- $cont.= fread($fp,1024);
- }
- fclose($fp);
- $image = tempnam ("/tmp", "php-pdf");
- $fp2 = @fopen($image,"w");
- fwrite($fp2,$cont);
- fclose($fp2);
- $temp = true;
- }
-
- if (!(file_exists($image))) return false; //return immediately if image file does not exist
- $imageInfo = getimagesize($image);
- switch ($imageInfo[2]){
- case 2:
- $type = "jpeg";
- break;
- case 3:
- $type = "png";
- break;
- default:
- return false; //return if file is not jpg or png
- }
- if ($width == 0) $width = $imageInfo[0]; //set width
- $ratio = $imageInfo[0]/$imageInfo[1];
-
- //get maximum width of image
- if (isset($this->ez['columns']) && $this->ez['columns']['on'] == 1)
- {
- $bigwidth = $this->ez['columns']['width'] - ($pad * 2);
- }
- else
- {
- $bigwidth = $this->ez['pageWidth'] - ($pad * 2);
- }
- //fix width if larger than maximum or if $resize=full
- if ($resize == 'full' || $resize == 'width' || $width > $bigwidth)
- {
- $width = $bigwidth;
-
- }
-
- $height = ($width/$ratio); //set height
-
- //fix size if runs off page
- if ($height > ($this->y - $this->ez['bottomMargin'] - ($pad * 2)))
- {
- if ($resize != 'full')
- {
- $this->ezNewPage();
- }
- else
- {
- $height = ($this->y - $this->ez['bottomMargin'] - ($pad * 2)); //shrink height
- $width = ($height*$ratio); //fix width
- }
- }
-
- //fix x-offset if image smaller than bigwidth
- if ($width < $bigwidth)
- {
- //center if justification=center
- if ($just == 'center')
- {
- $offset = ($bigwidth - $width) / 2;
- }
- //move to right if justification=right
- if ($just == 'right')
- {
- $offset = ($bigwidth - $width);
- }
- //leave at left if justification=left
- if ($just == 'left')
- {
- $offset = 0;
- }
- }
-
-
- //call appropriate function
- if ($type == "jpeg"){
- $this->addJpegFromFile($image,$this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - $height,$width);
- }
-
- if ($type == "png"){
- $this->addPngFromFile($image,$this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - $height,$width);
- }
- //draw border
- if ($border != '')
- {
- if (!(isset($border['color'])))
- {
- $border['color']['red'] = .5;
- $border['color']['blue'] = .5;
- $border['color']['green'] = .5;
- }
- if (!(isset($border['width']))) $border['width'] = 1;
- if (!(isset($border['cap']))) $border['cap'] = 'round';
- if (!(isset($border['join']))) $border['join'] = 'round';
-
-
- $this->setStrokeColor($border['color']['red'],$border['color']['green'],$border['color']['blue']);
- $this->setLineStyle($border['width'],$border['cap'],$border['join']);
- $this->rectangle($this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - $height,$width,$height);
-
- }
- // move y below image
- $this->y = $this->y - $pad - $height;
- //remove tempfile for remote images
- if ($temp == true) unlink($image);
-
-}
-// ------------------------------------------------------------------------------
-
-// note that templating code is still considered developmental - have not really figured
-// out a good way of doing this yet.
-function loadTemplate($templateFile){
- // this function will load the requested template ($file includes full or relative pathname)
- // the code for the template will be modified to make it name safe, and then stored in
- // an array for later use
- // The id of the template will be returned for the user to operate on it later
- if (!file_exists($templateFile)){
- return -1;
- }
-
- $code = implode('',file($templateFile));
- if (!strlen($code)){
- return;
- }
-
- $code = trim($code);
- if (substr($code,0,5)=='<?php'){
- $code = substr($code,5);
- }
- if (substr($code,-2)=='?>'){
- $code = substr($code,0,strlen($code)-2);
- }
- if (isset($this->ez['numTemplates'])){
- $newNum = $this->ez['numTemplates'];
- $this->ez['numTemplates']++;
- } else {
- $newNum=0;
- $this->ez['numTemplates']=1;
- $this->ez['templates']=array();
- }
-
- $this->ez['templates'][$newNum]['code']=$code;
-
- return $newNum;
-}
-
-// ------------------------------------------------------------------------------
-
-function execTemplate($id,$data=array(),$options=array()){
- // execute the given template on the current document.
- if (!isset($this->ez['templates'][$id])){
- return;
- }
- eval($this->ez['templates'][$id]['code']);
-}
-
-// ------------------------------------------------------------------------------
-function ilink($info){
- $this->alink($info,1);
-}
-
-function alink($info,$internal=0){
- // a callback function to support the formation of clickable links within the document
- $lineFactor=0.05; // the thickness of the line as a proportion of the height. also the drop of the line.
- switch($info['status']){
- case 'start':
- case 'sol':
- // the beginning of the link
- // this should contain the URl for the link as the 'p' entry, and will also contain the value of 'nCallback'
- if (!isset($this->ez['links'])){
- $this->ez['links']=array();
- }
- $i = $info['nCallback'];
- $this->ez['links'][$i] = array('x'=>$info['x'],'y'=>$info['y'],'angle'=>$info['angle'],'decender'=>$info['decender'],'height'=>$info['height'],'url'=>$info['p']);
- $this->saveState();
- $this->setColor(0,0,1);
- $this->setStrokeColor(0,0,1);
- $thick = $info['height']*$lineFactor;
- $this->setLineStyle($thick);
- break;
- case 'end':
- case 'eol':
- // the end of the link
- // assume that it is the most recent opening which has closed
- $i = $info['nCallback'];
- $start = $this->ez['links'][$i];
- // add underlining
- $a = deg2rad((float)$start['angle']-90.0);
- $drop = $start['height']*$lineFactor*1.5;
- $dropx = cos($a)*$drop;
- $dropy = -sin($a)*$drop;
- $this->line($start['x']-$dropx,$start['y']-$dropy,$info['x']-$dropx,$info['y']-$dropy);
- if ($internal) {
- $this->addInternalLink($start['url'],$start['x'],$start['y']+$start['decender'],$info['x'],$start['y']+$start['decender']+$start['height']);
- } else {
- $this->addLink($start['url'],$start['x'],$start['y']+$start['decender'],$info['x'],$start['y']+$start['decender']+$start['height']);
- }
- $this->restoreState();
- break;
- }
-}
-
-// ------------------------------------------------------------------------------
-
-function uline($info){
- // a callback function to support underlining
- $lineFactor=0.05; // the thickness of the line as a proportion of the height. also the drop of the line.
- switch($info['status']){
- case 'start':
- case 'sol':
-
- // the beginning of the underline zone
- if (!isset($this->ez['links'])){
- $this->ez['links']=array();
- }
- $i = $info['nCallback'];
- $this->ez['links'][$i] = array('x'=>$info['x'],'y'=>$info['y'],'angle'=>$info['angle'],'decender'=>$info['decender'],'height'=>$info['height']);
- $this->saveState();
- $thick = $info['height']*$lineFactor;
- $this->setLineStyle($thick);
- break;
- case 'end':
- case 'eol':
- // the end of the link
- // assume that it is the most recent opening which has closed
- $i = $info['nCallback'];
- $start = $this->ez['links'][$i];
- // add underlining
- $a = deg2rad((float)$start['angle']-90.0);
- $drop = $start['height']*$lineFactor*1.5;
- $dropx = cos($a)*$drop;
- $dropy = -sin($a)*$drop;
- $this->line($start['x']-$dropx,$start['y']-$dropy,$info['x']-$dropx,$info['y']-$dropy);
- $this->restoreState();
- break;
- }
-}
-
-// ------------------------------------------------------------------------------
-
-}
+<?php
+/**
+ * @package Cpdf
+ */
+/**
+ * Cpdf class
+ */
+include_once('phpDocumentor/Converters/PDF/default/class.pdf.php');
+
+/**
+ * This class will take the basic interaction facilities of the Cpdf class
+ * and make more useful functions so that the user does not have to
+ * know all the ins and outs of pdf presentation to produce something pretty.
+ *
+ * IMPORTANT NOTE
+ * there is no warranty, implied or otherwise with this software.
+ *
+ * @version 009 (versioning is linked to class.pdf.php)
+ * released under a public domain licence.
+ * @author Wayne Munro, R&OS Ltd, {@link http://www.ros.co.nz/pdf}
+ * @package Cpdf
+ */
+class Cezpdf extends Cpdf {
+//==============================================================================
+// this class will take the basic interaction facilities of the Cpdf class
+// and make more useful functions so that the user does not have to
+// know all the ins and outs of pdf presentation to produce something pretty.
+//
+// IMPORTANT NOTE
+// there is no warranty, implied or otherwise with this software.
+//
+// version 009 (versioning is linked to class.pdf.php)
+//
+// released under a public domain licence.
+//
+// Wayne Munro, R&OS Ltd, http://www.ros.co.nz/pdf
+//==============================================================================
+
+var $ez=array('fontSize'=>10); // used for storing most of the page configuration parameters
+var $y; // this is the current vertical positon on the page of the writing point, very important
+var $ezPages=array(); // keep an array of the ids of the pages, making it easy to go back and add page numbers etc.
+var $ezPageCount=0;
+
+// ------------------------------------------------------------------------------
+
+function Cezpdf($paper='a4',$orientation='portrait'){
+ // Assuming that people don't want to specify the paper size using the absolute coordinates
+ // allow a couple of options:
+ // orientation can be 'portrait' or 'landscape'
+ // or, to actually set the coordinates, then pass an array in as the first parameter.
+ // the defaults are as shown.
+ //
+ // -------------------------
+ // 2002-07-24 - Nicola Asuni (info@tecnick.com):
+ // Added new page formats (45 standard ISO paper formats and 4 american common formats)
+ // paper cordinates are calculated in this way: (inches * 72) where 1 inch = 2.54 cm
+ //
+ // Now you may also pass a 2 values array containing the page width and height in centimeters
+ // -------------------------
+
+ if (!is_array($paper)){
+ switch (strtoupper($paper)){
+ case '4A0': {$size = array(0,0,4767.87,6740.79); break;}
+ case '2A0': {$size = array(0,0,3370.39,4767.87); break;}
+ case 'A0': {$size = array(0,0,2383.94,3370.39); break;}
+ case 'A1': {$size = array(0,0,1683.78,2383.94); break;}
+ case 'A2': {$size = array(0,0,1190.55,1683.78); break;}
+ case 'A3': {$size = array(0,0,841.89,1190.55); break;}
+ case 'A4': default: {$size = array(0,0,595.28,841.89); break;}
+ case 'A5': {$size = array(0,0,419.53,595.28); break;}
+ case 'A6': {$size = array(0,0,297.64,419.53); break;}
+ case 'A7': {$size = array(0,0,209.76,297.64); break;}
+ case 'A8': {$size = array(0,0,147.40,209.76); break;}
+ case 'A9': {$size = array(0,0,104.88,147.40); break;}
+ case 'A10': {$size = array(0,0,73.70,104.88); break;}
+ case 'B0': {$size = array(0,0,2834.65,4008.19); break;}
+ case 'B1': {$size = array(0,0,2004.09,2834.65); break;}
+ case 'B2': {$size = array(0,0,1417.32,2004.09); break;}
+ case 'B3': {$size = array(0,0,1000.63,1417.32); break;}
+ case 'B4': {$size = array(0,0,708.66,1000.63); break;}
+ case 'B5': {$size = array(0,0,498.90,708.66); break;}
+ case 'B6': {$size = array(0,0,354.33,498.90); break;}
+ case 'B7': {$size = array(0,0,249.45,354.33); break;}
+ case 'B8': {$size = array(0,0,175.75,249.45); break;}
+ case 'B9': {$size = array(0,0,124.72,175.75); break;}
+ case 'B10': {$size = array(0,0,87.87,124.72); break;}
+ case 'C0': {$size = array(0,0,2599.37,3676.54); break;}
+ case 'C1': {$size = array(0,0,1836.85,2599.37); break;}
+ case 'C2': {$size = array(0,0,1298.27,1836.85); break;}
+ case 'C3': {$size = array(0,0,918.43,1298.27); break;}
+ case 'C4': {$size = array(0,0,649.13,918.43); break;}
+ case 'C5': {$size = array(0,0,459.21,649.13); break;}
+ case 'C6': {$size = array(0,0,323.15,459.21); break;}
+ case 'C7': {$size = array(0,0,229.61,323.15); break;}
+ case 'C8': {$size = array(0,0,161.57,229.61); break;}
+ case 'C9': {$size = array(0,0,113.39,161.57); break;}
+ case 'C10': {$size = array(0,0,79.37,113.39); break;}
+ case 'RA0': {$size = array(0,0,2437.80,3458.27); break;}
+ case 'RA1': {$size = array(0,0,1729.13,2437.80); break;}
+ case 'RA2': {$size = array(0,0,1218.90,1729.13); break;}
+ case 'RA3': {$size = array(0,0,864.57,1218.90); break;}
+ case 'RA4': {$size = array(0,0,609.45,864.57); break;}
+ case 'SRA0': {$size = array(0,0,2551.18,3628.35); break;}
+ case 'SRA1': {$size = array(0,0,1814.17,2551.18); break;}
+ case 'SRA2': {$size = array(0,0,1275.59,1814.17); break;}
+ case 'SRA3': {$size = array(0,0,907.09,1275.59); break;}
+ case 'SRA4': {$size = array(0,0,637.80,907.09); break;}
+ case 'LETTER': {$size = array(0,0,612.00,792.00); break;}
+ case 'LEGAL': {$size = array(0,0,612.00,1008.00); break;}
+ case 'EXECUTIVE': {$size = array(0,0,521.86,756.00); break;}
+ case 'FOLIO': {$size = array(0,0,612.00,936.00); break;}
+ }
+ switch (strtolower($orientation)){
+ case 'landscape':
+ $a=$size[3];
+ $size[3]=$size[2];
+ $size[2]=$a;
+ break;
+ }
+ } else {
+ if (count($paper)>2) {
+ // then an array was sent it to set the size
+ $size = $paper;
+ }
+ else { //size in centimeters has been passed
+ $size[0] = 0;
+ $size[1] = 0;
+ $size[2] = ( $paper[0] / 2.54 ) * 72;
+ $size[3] = ( $paper[1] / 2.54 ) * 72;
+ }
+ }
+ $this->Cpdf($size);
+ $this->ez['pageWidth']=$size[2];
+ $this->ez['pageHeight']=$size[3];
+
+ // also set the margins to some reasonable defaults
+ $this->ez['topMargin']=30;
+ $this->ez['bottomMargin']=30;
+ $this->ez['leftMargin']=30;
+ $this->ez['rightMargin']=30;
+
+ // set the current writing position to the top of the first page
+ $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
+ // and get the ID of the page that was created during the instancing process.
+ $this->ezPages[1]=$this->getFirstPageId();
+ $this->ezPageCount=1;
+}
+
+// ------------------------------------------------------------------------------
+// 2002-07-24: Nicola Asuni (info@tecnick.com)
+// Set Margins in centimeters
+function ezSetCmMargins($top,$bottom,$left,$right){
+ $top = ( $top / 2.54 ) * 72;
+ $bottom = ( $bottom / 2.54 ) * 72;
+ $left = ( $left / 2.54 ) * 72;
+ $right = ( $right / 2.54 ) * 72;
+ $this->ezSetMargins($top,$bottom,$left,$right);
+}
+// ------------------------------------------------------------------------------
+
+
+function ezColumnsStart($options=array()){
+ // start from the current y-position, make the set number of columne
+ if (isset($this->ez['columns']) && $this->ez['columns']==1){
+ // if we are already in a column mode then just return.
+ return;
+ }
+ $def=array('gap'=>10,'num'=>2);
+ foreach($def as $k=>$v){
+ if (!isset($options[$k])){
+ $options[$k]=$v;
+ }
+ }
+ // setup the columns
+ $this->ez['columns']=array('on'=>1,'colNum'=>1);
+
+ // store the current margins
+ $this->ez['columns']['margins']=array(
+ $this->ez['leftMargin']
+ ,$this->ez['rightMargin']
+ ,$this->ez['topMargin']
+ ,$this->ez['bottomMargin']
+ );
+ // and store the settings for the columns
+ $this->ez['columns']['options']=$options;
+ // then reset the margins to suit the new columns
+ // safe enough to assume the first column here, but start from the current y-position
+ $this->ez['topMargin']=$this->ez['pageHeight']-$this->y;
+ $width=($this->ez['pageWidth']-$this->ez['leftMargin']-$this->ez['rightMargin']-($options['num']-1)*$options['gap'])/$options['num'];
+ $this->ez['columns']['width']=$width;
+ $this->ez['rightMargin']=$this->ez['pageWidth']-$this->ez['leftMargin']-$width;
+
+}
+// ------------------------------------------------------------------------------
+function ezColumnsStop(){
+ if (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
+ $this->ez['columns']['on']=0;
+ $this->ez['leftMargin']=$this->ez['columns']['margins'][0];
+ $this->ez['rightMargin']=$this->ez['columns']['margins'][1];
+ $this->ez['topMargin']=$this->ez['columns']['margins'][2];
+ $this->ez['bottomMargin']=$this->ez['columns']['margins'][3];
+ }
+}
+// ------------------------------------------------------------------------------
+function ezInsertMode($status=1,$pageNum=1,$pos='before'){
+ // puts the document into insert mode. new pages are inserted until this is re-called with status=0
+ // by default pages wil be inserted at the start of the document
+ switch($status){
+ case '1':
+ if (isset($this->ezPages[$pageNum])){
+ $this->ez['insertMode']=1;
+ $this->ez['insertOptions']=array('id'=>$this->ezPages[$pageNum],'pos'=>$pos);
+ }
+ break;
+ case '0':
+ $this->ez['insertMode']=0;
+ break;
+ }
+}
+// ------------------------------------------------------------------------------
+
+function ezNewPage(){
+ $pageRequired=1;
+ if (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
+ // check if this is just going to a new column
+ // increment the column number
+//echo 'HERE<br>';
+ $this->ez['columns']['colNum']++;
+//echo $this->ez['columns']['colNum'].'<br>';
+ if ($this->ez['columns']['colNum'] <= $this->ez['columns']['options']['num']){
+ // then just reset to the top of the next column
+ $pageRequired=0;
+ } else {
+ $this->ez['columns']['colNum']=1;
+ $this->ez['topMargin']=$this->ez['columns']['margins'][2];
+ }
+
+ $width = $this->ez['columns']['width'];
+ $this->ez['leftMargin']=$this->ez['columns']['margins'][0]+($this->ez['columns']['colNum']-1)*($this->ez['columns']['options']['gap']+$width);
+ $this->ez['rightMargin']=$this->ez['pageWidth']-$this->ez['leftMargin']-$width;
+ }
+//echo 'left='.$this->ez['leftMargin'].' right='.$this->ez['rightMargin'].'<br>';
+
+ if ($pageRequired){
+ // make a new page, setting the writing point back to the top
+ $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
+ // make the new page with a call to the basic class.
+ $this->ezPageCount++;
+ if (isset($this->ez['insertMode']) && $this->ez['insertMode']==1){
+ $id = $this->ezPages[$this->ezPageCount] = $this->newPage(1,$this->ez['insertOptions']['id'],$this->ez['insertOptions']['pos']);
+ // then manipulate the insert options so that inserted pages follow each other
+ $this->ez['insertOptions']['id']=$id;
+ $this->ez['insertOptions']['pos']='after';
+ } else {
+ $this->ezPages[$this->ezPageCount] = $this->newPage();
+ }
+ } else {
+ $this->y = $this->ez['pageHeight']-$this->ez['topMargin'];
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function ezSetMargins($top,$bottom,$left,$right){
+ // sets the margins to new values
+ $this->ez['topMargin']=$top;
+ $this->ez['bottomMargin']=$bottom;
+ $this->ez['leftMargin']=$left;
+ $this->ez['rightMargin']=$right;
+ // check to see if this means that the current writing position is outside the
+ // writable area
+ if ($this->y > $this->ez['pageHeight']-$top){
+ // then move y down
+ $this->y = $this->ez['pageHeight']-$top;
+ }
+ if ( $this->y < $bottom){
+ // then make a new page
+ $this->ezNewPage();
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function ezGetCurrentPageNumber(){
+ // return the strict numbering (1,2,3,4..) number of the current page
+ return $this->ezPageCount;
+}
+
+// ------------------------------------------------------------------------------
+
+function ezStartPageNumbers($x,$y,$size,$pos='left',$pattern='{PAGENUM} of {TOTALPAGENUM}',$num=''){
+ // put page numbers on the pages from here.
+ // place then on the 'pos' side of the coordinates (x,y).
+ // pos can be 'left' or 'right'
+ // use the given 'pattern' for display, where (PAGENUM} and {TOTALPAGENUM} are replaced
+ // as required.
+ // if $num is set, then make the first page this number, the number of total pages will
+ // be adjusted to account for this.
+ // Adjust this function so that each time you 'start' page numbers then you effectively start a different batch
+ // return the number of the batch, so that they can be stopped in a different order if required.
+ if (!$pos || !strlen($pos)){
+ $pos='left';
+ }
+ if (!$pattern || !strlen($pattern)){
+ $pattern='{PAGENUM} of {TOTALPAGENUM}';
+ }
+ if (!isset($this->ez['pageNumbering'])){
+ $this->ez['pageNumbering']=array();
+ }
+ $i = count($this->ez['pageNumbering']);
+ $this->ez['pageNumbering'][$i][$this->ezPageCount]=array('x'=>$x,'y'=>$y,'pos'=>$pos,'pattern'=>$pattern,'num'=>$num,'size'=>$size);
+ return $i;
+}
+
+// ------------------------------------------------------------------------------
+
+function ezWhatPageNumber($pageNum,$i=0){
+ // given a particular generic page number (ie, document numbered sequentially from beginning),
+ // return the page number under a particular page numbering scheme ($i)
+ $num=0;
+ $start=1;
+ $startNum=1;
+ if (!isset($this->ez['pageNumbering']))
+ {
+ $this->addMessage('WARNING: page numbering called for and wasn\'t started with ezStartPageNumbers');
+ return 0;
+ }
+ foreach($this->ez['pageNumbering'][$i] as $k=>$v){
+ if ($k<=$pageNum){
+ if (is_array($v)){
+ // start block
+ if (strlen($v['num'])){
+ // a start was specified
+ $start=$v['num'];
+ $startNum=$k;
+ $num=$pageNum-$startNum+$start;
+ }
+ } else {
+ // stop block
+ $num=0;
+ }
+ }
+ }
+ return $num;
+}
+
+// ------------------------------------------------------------------------------
+
+function ezStopPageNumbers($stopTotal=0,$next=0,$i=0){
+ // if stopTotal=1 then the totalling of pages for this number will stop too
+ // if $next=1, then do this page, but not the next, else do not do this page either
+ // if $i is set, then stop that particular pagenumbering sequence.
+ if (!isset($this->ez['pageNumbering'])){
+ $this->ez['pageNumbering']=array();
+ }
+ if ($next && isset($this->ez['pageNumbering'][$i][$this->ezPageCount]) && is_array($this->ez['pageNumbering'][$i][$this->ezPageCount])){
+ // then this has only just been started, this will over-write the start, and nothing will appear
+ // add a special command to the start block, telling it to stop as well
+ if ($stopTotal){
+ $this->ez['pageNumbering'][$i][$this->ezPageCount]['stoptn']=1;
+ } else {
+ $this->ez['pageNumbering'][$i][$this->ezPageCount]['stopn']=1;
+ }
+ } else {
+ if ($stopTotal){
+ $this->ez['pageNumbering'][$i][$this->ezPageCount]='stopt';
+ } else {
+ $this->ez['pageNumbering'][$i][$this->ezPageCount]='stop';
+ }
+ if ($next){
+ $this->ez['pageNumbering'][$i][$this->ezPageCount].='n';
+ }
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function ezPRVTpageNumberSearch($lbl,&$tmp){
+ foreach($tmp as $i=>$v){
+ if (is_array($v)){
+ if (isset($v[$lbl])){
+ return $i;
+ }
+ } else {
+ if ($v==$lbl){
+ return $i;
+ }
+ }
+ }
+ return 0;
+}
+
+// ------------------------------------------------------------------------------
+
+function ezPRVTaddPageNumbers(){
+ // this will go through the pageNumbering array and add the page numbers are required
+ if (isset($this->ez['pageNumbering'])){
+ $totalPages1 = $this->ezPageCount;
+ $tmp1=$this->ez['pageNumbering'];
+ $status=0;
+ foreach($tmp1 as $i=>$tmp){
+ // do each of the page numbering systems
+ // firstly, find the total pages for this one
+ $k = $this->ezPRVTpageNumberSearch('stopt',$tmp);
+ if ($k && $k>0){
+ $totalPages = $k-1;
+ } else {
+ $l = $this->ezPRVTpageNumberSearch('stoptn',$tmp);
+ if ($l && $l>0){
+ $totalPages = $l;
+ } else {
+ $totalPages = $totalPages1;
+ }
+ }
+ foreach ($this->ezPages as $pageNum=>$id){
+ if (isset($tmp[$pageNum])){
+ if (is_array($tmp[$pageNum])){
+ // then this must be starting page numbers
+ $status=1;
+ $info = $tmp[$pageNum];
+ $info['dnum']=$info['num']-$pageNum;
+ // also check for the special case of the numbering stopping and starting on the same page
+ if (isset($info['stopn']) || isset($info['stoptn']) ){
+ $status=2;
+ }
+ } else if ($tmp[$pageNum]=='stop' || $tmp[$pageNum]=='stopt'){
+ // then we are stopping page numbers
+ $status=0;
+ } else if ($status==1 && ($tmp[$pageNum]=='stoptn' || $tmp[$pageNum]=='stopn')){
+ // then we are stopping page numbers
+ $status=2;
+ }
+ }
+ if ($status){
+ // then add the page numbering to this page
+ if (strlen($info['num'])){
+ $num=$pageNum+$info['dnum'];
+ } else {
+ $num=$pageNum;
+ }
+ $total = $totalPages+$num-$pageNum;
+ $pat = str_replace('{PAGENUM}',$num,$info['pattern']);
+ $pat = str_replace('{TOTALPAGENUM}',$total,$pat);
+ $this->reopenObject($id);
+ switch($info['pos']){
+ case 'right':
+ $this->addText($info['x'],$info['y'],$info['size'],$pat);
+ break;
+ default:
+ $w=$this->getTextWidth($info['size'],$pat);
+ $this->addText($info['x']-$w,$info['y'],$info['size'],$pat);
+ break;
+ }
+ $this->closeObject();
+ }
+ if ($status==2){
+ $status=0;
+ }
+ }
+ }
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function ezPRVTcleanUp(){
+ $this->ezPRVTaddPageNumbers();
+}
+
+// ------------------------------------------------------------------------------
+
+function ezStream($options=''){
+ $this->ezPRVTcleanUp();
+ $this->stream($options);
+}
+
+// ------------------------------------------------------------------------------
+
+function ezOutput($options=0){
+ $this->ezPRVTcleanUp();
+ return $this->output($options);
+}
+
+// ------------------------------------------------------------------------------
+
+function ezSetY($y){
+ // used to change the vertical position of the writing point.
+ $this->y = $y;
+ if ( $this->y < $this->ez['bottomMargin']){
+ // then make a new page
+ $this->ezNewPage();
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function ezSetDy($dy,$mod=''){
+ // used to change the vertical position of the writing point.
+ // changes up by a positive increment, so enter a negative number to go
+ // down the page
+ // if $mod is set to 'makeSpace' and a new page is forced, then the pointed will be moved
+ // down on the new page, this will allow space to be reserved for graphics etc.
+ $this->y += $dy;
+ if ( $this->y < $this->ez['bottomMargin']){
+ // then make a new page
+ $this->ezNewPage();
+ if ($mod=='makeSpace'){
+ $this->y += $dy;
+ }
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function ezPrvtTableDrawLines($pos,$gap,$x0,$x1,$y0,$y1,$y2,$col,$inner,$outer,$opt=1){
+ $x0=1000;
+ $x1=0;
+ $this->setStrokeColor($col[0],$col[1],$col[2]);
+ $cnt=0;
+ $n = count($pos);
+ foreach($pos as $x){
+ $cnt++;
+ if ($cnt==1 || $cnt==$n){
+ $this->setLineStyle($outer);
+ } else {
+ $this->setLineStyle($inner);
+ }
+ $this->line($x-$gap/2,$y0,$x-$gap/2,$y2);
+ if ($x>$x1){ $x1=$x; };
+ if ($x<$x0){ $x0=$x; };
+ }
+ $this->setLineStyle($outer);
+ $this->line($x0-$gap/2-$outer/2,$y0,$x1-$gap/2+$outer/2,$y0);
+ // only do the second line if it is different to the first, AND each row does not have
+ // a line on it.
+ if ($y0!=$y1 && $opt<2){
+ $this->line($x0-$gap/2,$y1,$x1-$gap/2,$y1);
+ }
+ $this->line($x0-$gap/2-$outer/2,$y2,$x1-$gap/2+$outer/2,$y2);
+}
+
+// ------------------------------------------------------------------------------
+
+function ezPrvtTableColumnHeadings($cols,$pos,$maxWidth,$height,$decender,$gap,$size,&$y,$optionsAll=array()){
+ // uses ezText to add the text, and returns the height taken by the largest heading
+ // this page will move the headings to a new page if they will not fit completely on this one
+ // transaction support will be used to implement this
+
+ if (isset($optionsAll['cols'])){
+ $options = $optionsAll['cols'];
+ } else {
+ $options = array();
+ }
+
+ $mx=0;
+ $startPage = $this->ezPageCount;
+ $secondGo=0;
+
+ // $y is the position at which the top of the table should start, so the base
+ // of the first text, is $y-$height-$gap-$decender, but ezText starts by dropping $height
+
+ // the return from this function is the total cell height, including gaps, and $y is adjusted
+ // to be the postion of the bottom line
+
+ // begin the transaction
+ $this->transaction('start');
+ $ok=0;
+// $y-=$gap-$decender;
+ $y-=$gap;
+ while ($ok==0){
+ foreach($cols as $colName=>$colHeading){
+ $this->ezSetY($y);
+ if (isset($options[$colName]) && isset($options[$colName]['justification'])){
+ $justification = $options[$colName]['justification'];
+ } else {
+ $justification = 'left';
+ }
+ $this->ezText($colHeading,$size,array('aleft'=> $pos[$colName],'aright'=>($maxWidth[$colName]+$pos[$colName]),'justification'=>$justification));
+ $dy = $y-$this->y;
+ if ($dy>$mx){
+ $mx=$dy;
+ }
+ }
+ $y = $y - $mx - $gap + $decender;
+// $y -= $mx-$gap+$decender;
+
+ // now, if this has moved to a new page, then abort the transaction, move to a new page, and put it there
+ // do not check on the second time around, to avoid an infinite loop
+ if ($this->ezPageCount != $startPage && $secondGo==0){
+ $this->transaction('rewind');
+ $this->ezNewPage();
+ $y = $this->y - $gap-$decender;
+ $ok=0;
+ $secondGo=1;
+// $y = $store_y;
+ $mx=0;
+
+ } else {
+ $this->transaction('commit');
+ $ok=1;
+ }
+ }
+
+ return $mx+$gap*2-$decender;
+}
+
+// ------------------------------------------------------------------------------
+
+function ezPrvtGetTextWidth($size,$text){
+ // will calculate the maximum width, taking into account that the text may be broken
+ // by line breaks.
+ $mx=0;
+ $lines = explode("\n",$text);
+ foreach ($lines as $line){
+ $w = $this->getTextWidth($size,$line);
+ if ($w>$mx){
+ $mx=$w;
+ }
+ }
+ return $mx;
+}
+
+// ------------------------------------------------------------------------------
+
+function ezTable(&$data,$cols='',$title='',$options=''){
+ // add a table of information to the pdf document
+ // $data is a two dimensional array
+ // $cols (optional) is an associative array, the keys are the names of the columns from $data
+ // to be presented (and in that order), the values are the titles to be given to the columns
+ // $title (optional) is the title to be put on the top of the table
+ //
+ // $options is an associative array which can contain:
+ // 'showLines'=> 0,1,2, default is 1 (show outside and top lines only), 2=> lines on each row
+ // 'showHeadings' => 0 or 1
+ // 'shaded'=> 0,1,2,3 default is 1 (1->alternate lines are shaded, 0->no shading, 2-> both shaded, second uses shadeCol2)
+ // 'shadeCol' => (r,g,b) array, defining the colour of the shading, default is (0.8,0.8,0.8)
+ // 'shadeCol2' => (r,g,b) array, defining the colour of the shading of the other blocks, default is (0.7,0.7,0.7)
+ // 'fontSize' => 10
+ // 'textCol' => (r,g,b) array, text colour
+ // 'titleFontSize' => 12
+ // 'rowGap' => 2 , the space added at the top and bottom of each row, between the text and the lines
+ // 'colGap' => 5 , the space on the left and right sides of each cell
+ // 'lineCol' => (r,g,b) array, defining the colour of the lines, default, black.
+ // 'xPos' => 'left','right','center','centre',or coordinate, reference coordinate in the x-direction
+ // 'xOrientation' => 'left','right','center','centre', position of the table w.r.t 'xPos'
+ // 'width'=> <number> which will specify the width of the table, if it turns out to not be this
+ // wide, then it will stretch the table to fit, if it is wider then each cell will be made
+ // proportionalty smaller, and the content may have to wrap.
+ // 'maxWidth'=> <number> similar to 'width', but will only make table smaller than it wants to be
+ // 'options' => array(<colname>=>array('justification'=>'left','width'=>100,'link'=>linkDataName),<colname>=>....)
+ // allow the setting of other paramaters for the individual columns
+ // 'minRowSpace'=> the minimum space between the bottom of each row and the bottom margin, in which a new row will be started
+ // if it is less, then a new page would be started, default=-100
+ // 'innerLineThickness'=>1
+ // 'outerLineThickness'=>1
+ // 'splitRows'=>0, 0 or 1, whether or not to allow the rows to be split across page boundaries
+ // 'protectRows'=>number, the number of rows to hold with the heading on page, ie, if there less than this number of
+ // rows on the page, then move the whole lot onto the next page, default=1
+ //
+ // note that the user will have had to make a font selection already or this will not
+ // produce a valid pdf file.
+
+ if (!is_array($data)){
+ return;
+ }
+
+ if (!is_array($cols)){
+ // take the columns from the first row of the data set
+ reset($data);
+ list($k,$v)=each($data);
+ if (!is_array($v)){
+ return;
+ }
+ $cols=array();
+ foreach($v as $k1=>$v1){
+ $cols[$k1]=$k1;
+ }
+ }
+
+ if (!is_array($options)){
+ $options=array();
+ }
+
+ $defaults = array(
+ 'shaded'=>1,'showLines'=>1,'shadeCol'=>array(0.8,0.8,0.8),'shadeCol2'=>array(0.7,0.7,0.7),'fontSize'=>10,'titleFontSize'=>12
+ ,'titleGap'=>5,'lineCol'=>array(0,0,0),'gap'=>5,'xPos'=>'centre','xOrientation'=>'centre'
+ ,'showHeadings'=>1,'textCol'=>array(0,0,0),'width'=>0,'maxWidth'=>0,'cols'=>array(),'minRowSpace'=>-100,'rowGap'=>2,'colGap'=>5
+ ,'innerLineThickness'=>1,'outerLineThickness'=>1,'splitRows'=>0,'protectRows'=>1
+ );
+
+ foreach($defaults as $key=>$value){
+ if (is_array($value)){
+ if (!isset($options[$key]) || !is_array($options[$key])){
+ $options[$key]=$value;
+ }
+ } else {
+ if (!isset($options[$key])){
+ $options[$key]=$value;
+ }
+ }
+ }
+ $options['gap']=2*$options['colGap'];
+
+ $middle = ($this->ez['pageWidth']-$this->ez['rightMargin'])/2+($this->ez['leftMargin'])/2;
+ // figure out the maximum widths of the text within each column
+ $maxWidth=array();
+ foreach($cols as $colName=>$colHeading){
+ $maxWidth[$colName]=0;
+ }
+ // find the maximum cell widths based on the data
+ foreach($data as $row){
+ foreach($cols as $colName=>$colHeading){
+ $w = $this->ezPrvtGetTextWidth($options['fontSize'],(string)$row[$colName])*1.01;
+ if ($w > $maxWidth[$colName]){
+ $maxWidth[$colName]=$w;
+ }
+ }
+ }
+ // and the maximum widths to fit in the headings
+ foreach($cols as $colName=>$colTitle){
+ $w = $this->ezPrvtGetTextWidth($options['fontSize'],(string)$colTitle)*1.01;
+ if ($w > $maxWidth[$colName]){
+ $maxWidth[$colName]=$w;
+ }
+ }
+
+ // calculate the start positions of each of the columns
+ $pos=array();
+ $x=0;
+ $t=$x;
+ $adjustmentWidth=0;
+ $setWidth=0;
+ foreach($maxWidth as $colName => $w){
+ $pos[$colName]=$t;
+ // if the column width has been specified then set that here, also total the
+ // width avaliable for adjustment
+ if (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['width']) && $options['cols'][$colName]['width']>0){
+ $t=$t+$options['cols'][$colName]['width'];
+ $maxWidth[$colName] = $options['cols'][$colName]['width']-$options['gap'];
+ $setWidth += $options['cols'][$colName]['width'];
+ } else {
+ $t=$t+$w+$options['gap'];
+ $adjustmentWidth += $w;
+ $setWidth += $options['gap'];
+ }
+ }
+ $pos['_end_']=$t;
+
+ // if maxWidth is specified, and the table is too wide, and the width has not been set,
+ // then set the width.
+ if ($options['width']==0 && $options['maxWidth'] && ($t-$x)>$options['maxWidth']){
+ // then need to make this one smaller
+ $options['width']=$options['maxWidth'];
+ }
+
+ if ($options['width'] && $adjustmentWidth>0 && $setWidth<$options['width']){
+ // first find the current widths of the columns involved in this mystery
+ $cols0 = array();
+ $cols1 = array();
+ $xq=0;
+ $presentWidth=0;
+ $last='';
+ foreach($pos as $colName=>$p){
+ if (!isset($options['cols'][$last]) || !isset($options['cols'][$last]['width']) || $options['cols'][$last]['width']<=0){
+ if (strlen($last)){
+ $cols0[$last]=$p-$xq -$options['gap'];
+ $presentWidth += ($p-$xq - $options['gap']);
+ }
+ } else {
+ $cols1[$last]=$p-$xq;
+ }
+ $last=$colName;
+ $xq=$p;
+ }
+ // $cols0 contains the widths of all the columns which are not set
+ $neededWidth = $options['width']-$setWidth;
+ // if needed width is negative then add it equally to each column, else get more tricky
+ if ($presentWidth<$neededWidth){
+ foreach($cols0 as $colName=>$w){
+ $cols0[$colName]+= ($neededWidth-$presentWidth)/count($cols0);
+ }
+ } else {
+
+ $cnt=0;
+ while ($presentWidth>$neededWidth && $cnt<100){
+ $cnt++; // insurance policy
+ // find the widest columns, and the next to widest width
+ $aWidest = array();
+ $nWidest=0;
+ $widest=0;
+ foreach($cols0 as $colName=>$w){
+ if ($w>$widest){
+ $aWidest=array($colName);
+ $nWidest = $widest;
+ $widest=$w;
+ } else if ($w==$widest){
+ $aWidest[]=$colName;
+ }
+ }
+ // then figure out what the width of the widest columns would have to be to take up all the slack
+ $newWidestWidth = $widest - ($presentWidth-$neededWidth)/count($aWidest);
+ if ($newWidestWidth > $nWidest){
+ // then there is space to set them to this
+ foreach($aWidest as $colName){
+ $cols0[$colName] = $newWidestWidth;
+ }
+ $presentWidth=$neededWidth;
+ } else {
+ // there is not space, reduce the size of the widest ones down to the next size down, and we
+ // will go round again
+ foreach($aWidest as $colName){
+ $cols0[$colName] = $nWidest;
+ }
+ $presentWidth=$presentWidth-($widest-$nWidest)*count($aWidest);
+ }
+ }
+ }
+ // $cols0 now contains the new widths of the constrained columns.
+ // now need to update the $pos and $maxWidth arrays
+ $xq=0;
+ foreach($pos as $colName=>$p){
+ $pos[$colName]=$xq;
+ if (!isset($options['cols'][$colName]) || !isset($options['cols'][$colName]['width']) || $options['cols'][$colName]['width']<=0){
+ if (isset($cols0[$colName])){
+ $xq += $cols0[$colName] + $options['gap'];
+ $maxWidth[$colName]=$cols0[$colName];
+ }
+ } else {
+ if (isset($cols1[$colName])){
+ $xq += $cols1[$colName];
+ }
+ }
+ }
+
+ $t=$x+$options['width'];
+ $pos['_end_']=$t;
+ }
+
+ // now adjust the table to the correct location across the page
+ switch ($options['xPos']){
+ case 'left':
+ $xref = $this->ez['leftMargin'];
+ break;
+ case 'right':
+ $xref = $this->ez['pageWidth'] - $this->ez['rightMargin'];
+ break;
+ case 'centre':
+ case 'center':
+ $xref = $middle;
+ break;
+ default:
+ $xref = $options['xPos'];
+ break;
+ }
+ switch ($options['xOrientation']){
+ case 'left':
+ $dx = $xref-$t;
+ break;
+ case 'right':
+ $dx = $xref;
+ break;
+ case 'centre':
+ case 'center':
+ $dx = $xref-$t/2;
+ break;
+ }
+
+
+ foreach($pos as $k=>$v){
+ $pos[$k]=$v+$dx;
+ }
+ $x0=$x+$dx;
+ $x1=$t+$dx;
+
+ $baseLeftMargin = $this->ez['leftMargin'];
+ $basePos = $pos;
+ $baseX0 = $x0;
+ $baseX1 = $x1;
+
+ // ok, just about ready to make me a table
+ $this->setColor($options['textCol'][0],$options['textCol'][1],$options['textCol'][2]);
+ $this->setStrokeColor($options['shadeCol'][0],$options['shadeCol'][1],$options['shadeCol'][2]);
+
+ $middle = ($x1+$x0)/2;
+
+ // start a transaction which will be used to regress the table, if there are not enough rows protected
+ if ($options['protectRows']>0){
+ $this->transaction('start');
+ $movedOnce=0;
+ }
+ $abortTable = 1;
+ while ($abortTable){
+ $abortTable=0;
+
+ $dm = $this->ez['leftMargin']-$baseLeftMargin;
+ foreach($basePos as $k=>$v){
+ $pos[$k]=$v+$dm;
+ }
+ $x0=$baseX0+$dm;
+ $x1=$baseX1+$dm;
+ $middle = ($x1+$x0)/2;
+
+
+ // if the title is set, then do that
+ if (strlen($title)){
+ $w = $this->getTextWidth($options['titleFontSize'],$title);
+ $this->y -= $this->getFontHeight($options['titleFontSize']);
+ if ($this->y < $this->ez['bottomMargin']){
+ $this->ezNewPage();
+ // margins may have changed on the newpage
+ $dm = $this->ez['leftMargin']-$baseLeftMargin;
+ foreach($basePos as $k=>$v){
+ $pos[$k]=$v+$dm;
+ }
+ $x0=$baseX0+$dm;
+ $x1=$baseX1+$dm;
+ $middle = ($x1+$x0)/2;
+ $this->y -= $this->getFontHeight($options['titleFontSize']);
+ }
+ $this->addText($middle-$w/2,$this->y,$options['titleFontSize'],$title);
+ $this->y -= $options['titleGap'];
+ }
+
+ // margins may have changed on the newpage
+ $dm = $this->ez['leftMargin']-$baseLeftMargin;
+ foreach($basePos as $k=>$v){
+ $pos[$k]=$v+$dm;
+ }
+ $x0=$baseX0+$dm;
+ $x1=$baseX1+$dm;
+
+ $y=$this->y; // to simplify the code a bit
+
+ // make the table
+ $height = $this->getFontHeight($options['fontSize']);
+ $decender = $this->getFontDecender($options['fontSize']);
+
+
+
+ $y0=$y+$decender;
+ $dy=0;
+ if ($options['showHeadings']){
+ // this function will move the start of the table to a new page if it does not fit on this one
+ $headingHeight = $this->ezPrvtTableColumnHeadings($cols,$pos,$maxWidth,$height,$decender,$options['rowGap'],$options['fontSize'],$y,$options);
+ $y0 = $y+$headingHeight;
+ $y1 = $y;
+
+
+ $dm = $this->ez['leftMargin']-$baseLeftMargin;
+ foreach($basePos as $k=>$v){
+ $pos[$k]=$v+$dm;
+ }
+ $x0=$baseX0+$dm;
+ $x1=$baseX1+$dm;
+
+ } else {
+ $y1 = $y0;
+ }
+ $firstLine=1;
+
+
+ // open an object here so that the text can be put in over the shading
+ if ($options['shaded']){
+ $this->saveState();
+ $textObjectId = $this->openObject();
+ $this->closeObject();
+ $this->addObject($textObjectId);
+ $this->reopenObject($textObjectId);
+ }
+
+ $cnt=0;
+ $newPage=0;
+ foreach($data as $row){
+ $cnt++;
+ // the transaction support will be used to prevent rows being split
+ if ($options['splitRows']==0){
+ $pageStart = $this->ezPageCount;
+ if (isset($this->ez['columns']) && $this->ez['columns']['on']==1){
+ $columnStart = $this->ez['columns']['colNum'];
+ }
+ $this->transaction('start');
+ $row_orig = $row;
+ $y_orig = $y;
+ $y0_orig = $y0;
+ $y1_orig = $y1;
+ }
+ $ok=0;
+ $secondTurn=0;
+ while(!$abortTable && $ok == 0){
+
+ $mx=0;
+ $newRow=1;
+ while(!$abortTable && ($newPage || $newRow)){
+
+ $y-=$height;
+ if ($newPage || $y<$this->ez['bottomMargin'] || (isset($options['minRowSpace']) && $y<($this->ez['bottomMargin']+$options['minRowSpace'])) ){
+ // check that enough rows are with the heading
+ if ($options['protectRows']>0 && $movedOnce==0 && $cnt<=$options['protectRows']){
+ // then we need to move the whole table onto the next page
+ $movedOnce = 1;
+ $abortTable = 1;
+ }
+
+ $y2=$y-$mx+2*$height+$decender-$newRow*$height;
+ if ($options['showLines']){
+ if (!$options['showHeadings']){
+ $y0=$y1;
+ }
+ $this->ezPrvtTableDrawLines($pos,$options['gap'],$x0,$x1,$y0,$y1,$y2,$options['lineCol'],$options['innerLineThickness'],$options['outerLineThickness'],$options['showLines']);
+ }
+ if ($options['shaded']){
+ $this->closeObject();
+ $this->restoreState();
+ }
+ $this->ezNewPage();
+ // and the margins may have changed, this is due to the possibility of the columns being turned on
+ // as the columns are managed by manipulating the margins
+
+ $dm = $this->ez['leftMargin']-$baseLeftMargin;
+ foreach($basePos as $k=>$v){
+ $pos[$k]=$v+$dm;
+ }
+// $x0=$x0+$dm;
+// $x1=$x1+$dm;
+ $x0=$baseX0+$dm;
+ $x1=$baseX1+$dm;
+
+ if ($options['shaded']){
+ $this->saveState();
+ $textObjectId = $this->openObject();
+ $this->closeObject();
+ $this->addObject($textObjectId);
+ $this->reopenObject($textObjectId);
+ }
+ $this->setColor($options['textCol'][0],$options['textCol'][1],$options['textCol'][2],1);
+ $y = $this->ez['pageHeight']-$this->ez['topMargin'];
+ $y0=$y+$decender;
+ $mx=0;
+ if ($options['showHeadings']){
+ $this->ezPrvtTableColumnHeadings($cols,$pos,$maxWidth,$height,$decender,$options['rowGap'],$options['fontSize'],$y,$options);
+ $y1=$y;
+ } else {
+ $y1=$y0;
+ }
+ $firstLine=1;
+ $y -= $height;
+ }
+ $newRow=0;
+ // write the actual data
+ // if these cells need to be split over a page, then $newPage will be set, and the remaining
+ // text will be placed in $leftOvers
+ $newPage=0;
+ $leftOvers=array();
+
+ foreach($cols as $colName=>$colTitle){
+ $this->ezSetY($y+$height);
+ $colNewPage=0;
+ if (isset($row[$colName])){
+ if (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['link']) && strlen($options['cols'][$colName]['link'])){
+
+ $lines = explode("\n",$row[$colName]);
+ if (isset($row[$options['cols'][$colName]['link']]) && strlen($row[$options['cols'][$colName]['link']])){
+ foreach($lines as $k=>$v){
+ $lines[$k]='<c:alink:'.$row[$options['cols'][$colName]['link']].'>'.$v.'</c:alink>';
+ }
+ }
+ } else {
+ $lines = explode("\n",$row[$colName]);
+ }
+ } else {
+ $lines = array();
+ }
+ $this->y -= $options['rowGap'];
+ foreach ($lines as $line){
+ $line = $this->ezProcessText($line);
+ $start=1;
+
+ while (strlen($line) || $start){
+ $start=0;
+ if (!$colNewPage){
+ $this->y=$this->y-$height;
+ }
+ if ($this->y < $this->ez['bottomMargin']){
+ // $this->ezNewPage();
+ $newPage=1; // whether a new page is required for any of the columns
+ $colNewPage=1; // whether a new page is required for this column
+ }
+ if ($colNewPage){
+ if (isset($leftOvers[$colName])){
+ $leftOvers[$colName].="\n".$line;
+ } else {
+ $leftOvers[$colName] = $line;
+ }
+ $line='';
+ } else {
+ if (isset($options['cols'][$colName]) && isset($options['cols'][$colName]['justification']) ){
+ $just = $options['cols'][$colName]['justification'];
+ } else {
+ $just='left';
+ }
+
+ $line=$this->addTextWrap($pos[$colName],$this->y,$maxWidth[$colName],$options['fontSize'],$line,$just);
+ }
+ }
+ }
+
+ $dy=$y+$height-$this->y+$options['rowGap'];
+ if ($dy-$height*$newPage>$mx){
+ $mx=$dy-$height*$newPage;
+ }
+ }
+ // set $row to $leftOvers so that they will be processed onto the new page
+ $row = $leftOvers;
+ // now add the shading underneath
+ if ($options['shaded'] && $cnt%2==0){
+ $this->closeObject();
+ $this->setColor($options['shadeCol'][0],$options['shadeCol'][1],$options['shadeCol'][2],1);
+ $this->filledRectangle($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
+ $this->reopenObject($textObjectId);
+ }
+
+ if ($options['shaded']==2 && $cnt%2==1){
+ $this->closeObject();
+ $this->setColor($options['shadeCol2'][0],$options['shadeCol2'][1],$options['shadeCol2'][2],1);
+ $this->filledRectangle($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
+ $this->reopenObject($textObjectId);
+ }
+
+ if ($options['showLines']>1){
+ // then draw a line on the top of each block
+// $this->closeObject();
+ $this->saveState();
+ $this->setStrokeColor($options['lineCol'][0],$options['lineCol'][1],$options['lineCol'][2],1);
+// $this->line($x0-$options['gap']/2,$y+$decender+$height-$mx,$x1-$x0,$mx);
+ if ($firstLine){
+ $this->setLineStyle($options['outerLineThickness']);
+ $firstLine=0;
+ } else {
+ $this->setLineStyle($options['innerLineThickness']);
+ }
+ $this->line($x0-$options['gap']/2,$y+$decender+$height,$x1-$options['gap']/2,$y+$decender+$height);
+ $this->restoreState();
+// $this->reopenObject($textObjectId);
+ }
+ } // end of while
+ $y=$y-$mx+$height;
+
+ // checking row split over pages
+ if ($options['splitRows']==0){
+ if ( ( ($this->ezPageCount != $pageStart) || (isset($this->ez['columns']) && $this->ez['columns']['on']==1 && $columnStart != $this->ez['columns']['colNum'] )) && $secondTurn==0){
+ // then we need to go back and try that again !
+ $newPage=1;
+ $secondTurn=1;
+ $this->transaction('rewind');
+ $row = $row_orig;
+ $y = $y_orig;
+ $y0 = $y0_orig;
+ $y1 = $y1_orig;
+ $ok=0;
+
+ $dm = $this->ez['leftMargin']-$baseLeftMargin;
+ foreach($basePos as $k=>$v){
+ $pos[$k]=$v+$dm;
+ }
+ $x0=$baseX0+$dm;
+ $x1=$baseX1+$dm;
+
+ } else {
+ $this->transaction('commit');
+ $ok=1;
+ }
+ } else {
+ $ok=1; // don't go round the loop if splitting rows is allowed
+ }
+
+ } // end of while to check for row splitting
+ if ($abortTable){
+ if ($ok==0){
+ $this->transaction('abort');
+ }
+ // only the outer transaction should be operational
+ $this->transaction('rewind');
+ $this->ezNewPage();
+ break;
+ }
+
+ } // end of foreach ($data as $row)
+
+ } // end of while ($abortTable)
+
+ // table has been put on the page, the rows guarded as required, commit.
+ $this->transaction('commit');
+
+ $y2=$y+$decender;
+ if ($options['showLines']){
+ if (!$options['showHeadings']){
+ $y0=$y1;
+ }
+ $this->ezPrvtTableDrawLines($pos,$options['gap'],$x0,$x1,$y0,$y1,$y2,$options['lineCol'],$options['innerLineThickness'],$options['outerLineThickness'],$options['showLines']);
+ }
+
+ // close the object for drawing the text on top
+ if ($options['shaded']){
+ $this->closeObject();
+ $this->restoreState();
+ }
+
+ $this->y=$y;
+ return $y;
+}
+
+// ------------------------------------------------------------------------------
+function ezProcessText($text){
+ // this function will intially be used to implement underlining support, but could be used for a range of other
+ // purposes
+ $search = array('<u>','<U>','</u>','</U>');
+ $replace = array('<c:uline>','<c:uline>','</c:uline>','</c:uline>');
+ return str_replace($search,$replace,$text);
+}
+
+// ------------------------------------------------------------------------------
+
+function ezText($text,$size=0,$options=array(),$test=0){
+ // this will add a string of text to the document, starting at the current drawing
+ // position.
+ // it will wrap to keep within the margins, including optional offsets from the left
+ // and the right, if $size is not specified, then it will be the last one used, or
+ // the default value (12 I think).
+ // the text will go to the start of the next line when a return code "\n" is found.
+ // possible options are:
+ // 'left'=> number, gap to leave from the left margin
+ // 'right'=> number, gap to leave from the right margin
+ // 'aleft'=> number, absolute left position (overrides 'left')
+ // 'aright'=> number, absolute right position (overrides 'right')
+ // 'justification' => 'left','right','center','centre','full'
+
+ // only set one of the next two items (leading overrides spacing)
+ // 'leading' => number, defines the total height taken by the line, independent of the font height.
+ // 'spacing' => a real number, though usually set to one of 1, 1.5, 2 (line spacing as used in word processing)
+
+ // if $test is set then this should just check if the text is going to flow onto a new page or not, returning true or false
+
+ // apply the filtering which will make the underlining function.
+ $text = $this->ezProcessText($text);
+
+ $newPage=false;
+ $store_y = $this->y;
+
+ if (is_array($options) && isset($options['aleft'])){
+ $left=$options['aleft'];
+ } else {
+ $left = $this->ez['leftMargin'] + ((is_array($options) && isset($options['left']))?$options['left']:0);
+ }
+ if (is_array($options) && isset($options['aright'])){
+ $right=$options['aright'];
+ } else {
+ $right = $this->ez['pageWidth'] - $this->ez['rightMargin'] - ((is_array($options) && isset($options['right']))?$options['right']:0);
+ }
+ if ($size<=0){
+ $size = $this->ez['fontSize'];
+ } else {
+ $this->ez['fontSize']=$size;
+ }
+
+ if (is_array($options) && isset($options['justification'])){
+ $just = $options['justification'];
+ } else {
+ $just = 'left';
+ }
+
+ // modifications to give leading and spacing based on those given by Craig Heydenburg 1/1/02
+ if (is_array($options) && isset($options['leading'])) { ## use leading instead of spacing
+ $height = $options['leading'];
+ } else if (is_array($options) && isset($options['spacing'])) {
+ $height = $this->getFontHeight($size) * $options['spacing'];
+ } else {
+ $height = $this->getFontHeight($size);
+ }
+
+
+ $lines = explode("\n",$text);
+ foreach ($lines as $line){
+ $start=1;
+ while (strlen($line) || $start){
+ $start=0;
+ $this->y=$this->y-$height;
+ if ($this->y < $this->ez['bottomMargin']){
+ if ($test){
+ $newPage=true;
+ } else {
+ $this->ezNewPage();
+ // and then re-calc the left and right, in case they have changed due to columns
+ }
+ }
+ if (is_array($options) && isset($options['aleft'])){
+ $left=$options['aleft'];
+ } else {
+ $left = $this->ez['leftMargin'] + ((is_array($options) && isset($options['left']))?$options['left']:0);
+ }
+ if (is_array($options) && isset($options['aright'])){
+ $right=$options['aright'];
+ } else {
+ $right = $this->ez['pageWidth'] - $this->ez['rightMargin'] - ((is_array($options) && isset($options['right']))?$options['right']:0);
+ }
+ $line=$this->addTextWrap($left,$this->y,$right-$left,$size,$line,$just,0,$test);
+ }
+ }
+
+ if ($test){
+ $this->y=$store_y;
+ return $newPage;
+ } else {
+ return $this->y;
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function ezImage($image,$pad = 5,$width = 0,$resize = 'full',$just = 'center',$border = ''){
+ //beta ezimage function
+ if (stristr($image,'://'))//copy to temp file
+ {
+ $fp = @fopen($image,"rb");
+ while(!feof($fp))
+ {
+ $cont.= fread($fp,1024);
+ }
+ fclose($fp);
+ $image = tempnam ("/tmp", "php-pdf");
+ $fp2 = @fopen($image,"w");
+ fwrite($fp2,$cont);
+ fclose($fp2);
+ $temp = true;
+ }
+
+ if (!(file_exists($image))) return false; //return immediately if image file does not exist
+ $imageInfo = getimagesize($image);
+ switch ($imageInfo[2]){
+ case 2:
+ $type = "jpeg";
+ break;
+ case 3:
+ $type = "png";
+ break;
+ default:
+ return false; //return if file is not jpg or png
+ }
+ if ($width == 0) $width = $imageInfo[0]; //set width
+ $ratio = $imageInfo[0]/$imageInfo[1];
+
+ //get maximum width of image
+ if (isset($this->ez['columns']) && $this->ez['columns']['on'] == 1)
+ {
+ $bigwidth = $this->ez['columns']['width'] - ($pad * 2);
+ }
+ else
+ {
+ $bigwidth = $this->ez['pageWidth'] - ($pad * 2);
+ }
+ //fix width if larger than maximum or if $resize=full
+ if ($resize == 'full' || $resize == 'width' || $width > $bigwidth)
+ {
+ $width = $bigwidth;
+
+ }
+
+ $height = ($width/$ratio); //set height
+
+ //fix size if runs off page
+ if ($height > ($this->y - $this->ez['bottomMargin'] - ($pad * 2)))
+ {
+ if ($resize != 'full')
+ {
+ $this->ezNewPage();
+ }
+ else
+ {
+ $height = ($this->y - $this->ez['bottomMargin'] - ($pad * 2)); //shrink height
+ $width = ($height*$ratio); //fix width
+ }
+ }
+
+ //fix x-offset if image smaller than bigwidth
+ if ($width < $bigwidth)
+ {
+ //center if justification=center
+ if ($just == 'center')
+ {
+ $offset = ($bigwidth - $width) / 2;
+ }
+ //move to right if justification=right
+ if ($just == 'right')
+ {
+ $offset = ($bigwidth - $width);
+ }
+ //leave at left if justification=left
+ if ($just == 'left')
+ {
+ $offset = 0;
+ }
+ }
+
+
+ //call appropriate function
+ if ($type == "jpeg"){
+ $this->addJpegFromFile($image,$this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - $height,$width);
+ }
+
+ if ($type == "png"){
+ $this->addPngFromFile($image,$this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - $height,$width);
+ }
+ //draw border
+ if ($border != '')
+ {
+ if (!(isset($border['color'])))
+ {
+ $border['color']['red'] = .5;
+ $border['color']['blue'] = .5;
+ $border['color']['green'] = .5;
+ }
+ if (!(isset($border['width']))) $border['width'] = 1;
+ if (!(isset($border['cap']))) $border['cap'] = 'round';
+ if (!(isset($border['join']))) $border['join'] = 'round';
+
+
+ $this->setStrokeColor($border['color']['red'],$border['color']['green'],$border['color']['blue']);
+ $this->setLineStyle($border['width'],$border['cap'],$border['join']);
+ $this->rectangle($this->ez['leftMargin'] + $pad + $offset, $this->y + $this->getFontHeight($this->ez['fontSize']) - $pad - $height,$width,$height);
+
+ }
+ // move y below image
+ $this->y = $this->y - $pad - $height;
+ //remove tempfile for remote images
+ if ($temp == true) unlink($image);
+
+}
+// ------------------------------------------------------------------------------
+
+// note that templating code is still considered developmental - have not really figured
+// out a good way of doing this yet.
+function loadTemplate($templateFile){
+ // this function will load the requested template ($file includes full or relative pathname)
+ // the code for the template will be modified to make it name safe, and then stored in
+ // an array for later use
+ // The id of the template will be returned for the user to operate on it later
+ if (!file_exists($templateFile)){
+ return -1;
+ }
+
+ $code = implode('',file($templateFile));
+ if (!strlen($code)){
+ return;
+ }
+
+ $code = trim($code);
+ if (substr($code,0,5)=='<?php'){
+ $code = substr($code,5);
+ }
+ if (substr($code,-2)=='?>'){
+ $code = substr($code,0,strlen($code)-2);
+ }
+ if (isset($this->ez['numTemplates'])){
+ $newNum = $this->ez['numTemplates'];
+ $this->ez['numTemplates']++;
+ } else {
+ $newNum=0;
+ $this->ez['numTemplates']=1;
+ $this->ez['templates']=array();
+ }
+
+ $this->ez['templates'][$newNum]['code']=$code;
+
+ return $newNum;
+}
+
+// ------------------------------------------------------------------------------
+
+function execTemplate($id,$data=array(),$options=array()){
+ // execute the given template on the current document.
+ if (!isset($this->ez['templates'][$id])){
+ return;
+ }
+ eval($this->ez['templates'][$id]['code']);
+}
+
+// ------------------------------------------------------------------------------
+function ilink($info){
+ $this->alink($info,1);
+}
+
+function alink($info,$internal=0){
+ // a callback function to support the formation of clickable links within the document
+ $lineFactor=0.05; // the thickness of the line as a proportion of the height. also the drop of the line.
+ switch($info['status']){
+ case 'start':
+ case 'sol':
+ // the beginning of the link
+ // this should contain the URl for the link as the 'p' entry, and will also contain the value of 'nCallback'
+ if (!isset($this->ez['links'])){
+ $this->ez['links']=array();
+ }
+ $i = $info['nCallback'];
+ $this->ez['links'][$i] = array('x'=>$info['x'],'y'=>$info['y'],'angle'=>$info['angle'],'decender'=>$info['decender'],'height'=>$info['height'],'url'=>$info['p']);
+ $this->saveState();
+ $this->setColor(0,0,1);
+ $this->setStrokeColor(0,0,1);
+ $thick = $info['height']*$lineFactor;
+ $this->setLineStyle($thick);
+ break;
+ case 'end':
+ case 'eol':
+ // the end of the link
+ // assume that it is the most recent opening which has closed
+ $i = $info['nCallback'];
+ $start = $this->ez['links'][$i];
+ // add underlining
+ $a = deg2rad((float)$start['angle']-90.0);
+ $drop = $start['height']*$lineFactor*1.5;
+ $dropx = cos($a)*$drop;
+ $dropy = -sin($a)*$drop;
+ $this->line($start['x']-$dropx,$start['y']-$dropy,$info['x']-$dropx,$info['y']-$dropy);
+ if ($internal) {
+ $this->addInternalLink($start['url'],$start['x'],$start['y']+$start['decender'],$info['x'],$start['y']+$start['decender']+$start['height']);
+ } else {
+ $this->addLink($start['url'],$start['x'],$start['y']+$start['decender'],$info['x'],$start['y']+$start['decender']+$start['height']);
+ }
+ $this->restoreState();
+ break;
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+function uline($info){
+ // a callback function to support underlining
+ $lineFactor=0.05; // the thickness of the line as a proportion of the height. also the drop of the line.
+ switch($info['status']){
+ case 'start':
+ case 'sol':
+
+ // the beginning of the underline zone
+ if (!isset($this->ez['links'])){
+ $this->ez['links']=array();
+ }
+ $i = $info['nCallback'];
+ $this->ez['links'][$i] = array('x'=>$info['x'],'y'=>$info['y'],'angle'=>$info['angle'],'decender'=>$info['decender'],'height'=>$info['height']);
+ $this->saveState();
+ $thick = $info['height']*$lineFactor;
+ $this->setLineStyle($thick);
+ break;
+ case 'end':
+ case 'eol':
+ // the end of the link
+ // assume that it is the most recent opening which has closed
+ $i = $info['nCallback'];
+ $start = $this->ez['links'][$i];
+ // add underlining
+ $a = deg2rad((float)$start['angle']-90.0);
+ $drop = $start['height']*$lineFactor*1.5;
+ $dropx = cos($a)*$drop;
+ $dropy = -sin($a)*$drop;
+ $this->line($start['x']-$dropx,$start['y']-$dropy,$info['x']-$dropx,$info['y']-$dropy);
+ $this->restoreState();
+ break;
+ }
+}
+
+// ------------------------------------------------------------------------------
+
+}
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.pdf.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.pdf.php
index 5de35874b2..a76e42b118 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.pdf.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.pdf.php
@@ -1,3075 +1,3075 @@
-<?php
-/**
-* Cpdf
-*
-*
-* A PHP class to provide the basic functionality to create a pdf document without
-* any requirement for additional modules.
-*
-* Note that they companion class CezPdf can be used to extend this class and dramatically
-* simplify the creation of documents.
-*
-* IMPORTANT NOTE
-* there is no warranty, implied or otherwise with this software.
-*
-* LICENCE
-* This code has been placed in the Public Domain for all to enjoy.
-*
-* @author Wayne Munro <pdf@ros.co.nz>
-* @version 009
-* @package Cpdf
-* @link http://www.ros.co.nz/pdf
-*/
-class Cpdf {
-
-/**
-* the current number of pdf objects in the document
-*/
-var $numObj=0;
-/**
-* this array contains all of the pdf objects, ready for final assembly
-*/
-var $objects = array();
-/**
-* the objectId (number within the objects array) of the document catalog
-*/
-var $catalogId;
-/**
-* array carrying information about the fonts that the system currently knows about
-* used to ensure that a font is not loaded twice, among other things
-*/
-var $fonts=array();
-/**
-* a record of the current font
-*/
-var $currentFont='';
-/**
-* the current base font
-*/
-var $currentBaseFont='';
-/**
-* the number of the current font within the font array
-*/
-var $currentFontNum=0;
-/**
-*
-*/
-var $currentNode;
-/**
-* object number of the current page
-*/
-var $currentPage;
-/**
-* object number of the currently active contents block
-*/
-var $currentContents;
-/**
-* number of fonts within the system
-*/
-var $numFonts=0;
-/**
-* current colour for fill operations, defaults to inactive value, all three components should be between 0 and 1 inclusive when active
-*/
-var $currentColour=array('r'=>-1,'g'=>-1,'b'=>-1);
-/**
-* current colour for stroke operations (lines etc.)
-*/
-var $currentStrokeColour=array('r'=>-1,'g'=>-1,'b'=>-1);
-/**
-* current style that lines are drawn in
-*/
-var $currentLineStyle='';
-/**
-* an array which is used to save the state of the document, mainly the colours and styles
-* it is used to temporarily change to another state, the change back to what it was before
-*/
-var $stateStack = array();
-/**
-* number of elements within the state stack
-*/
-var $nStateStack = 0;
-/**
-* number of page objects within the document
-*/
-var $numPages=0;
-/**
-* object Id storage stack
-*/
-var $stack=array();
-/**
-* number of elements within the object Id storage stack
-*/
-var $nStack=0;
-/**
-* an array which contains information about the objects which are not firmly attached to pages
-* these have been added with the addObject function
-*/
-var $looseObjects=array();
-/**
-* array contains infomation about how the loose objects are to be added to the document
-*/
-var $addLooseObjects=array();
-/**
-* the objectId of the information object for the document
-* this contains authorship, title etc.
-*/
-var $infoObject=0;
-/**
-* number of images being tracked within the document
-*/
-var $numImages=0;
-/**
-* an array containing options about the document
-* it defaults to turning on the compression of the objects
-*/
-var $options=array('compression'=>1);
-/**
-* the objectId of the first page of the document
-*/
-var $firstPageId;
-/**
-* used to track the last used value of the inter-word spacing, this is so that it is known
-* when the spacing is changed.
-*/
-var $wordSpaceAdjust=0;
-/**
-* the object Id of the procset object
-*/
-var $procsetObjectId;
-/**
-* store the information about the relationship between font families
-* this used so that the code knows which font is the bold version of another font, etc.
-* the value of this array is initialised in the constuctor function.
-*/
-var $fontFamilies = array();
-/**
-* track if the current font is bolded or italicised
-*/
-var $currentTextState = '';
-/**
-* messages are stored here during processing, these can be selected afterwards to give some useful debug information
-*/
-var $messages='';
-/**
-* the ancryption array for the document encryption is stored here
-*/
-var $arc4='';
-/**
-* the object Id of the encryption information
-*/
-var $arc4_objnum=0;
-/**
-* the file identifier, used to uniquely identify a pdf document
-*/
-var $fileIdentifier='';
-/**
-* a flag to say if a document is to be encrypted or not
-*/
-var $encrypted=0;
-/**
-* the ancryption key for the encryption of all the document content (structure is not encrypted)
-*/
-var $encryptionKey='';
-/**
-* array which forms a stack to keep track of nested callback functions
-*/
-var $callback = array();
-/**
-* the number of callback functions in the callback array
-*/
-var $nCallback = 0;
-/**
-* store label->id pairs for named destinations, these will be used to replace internal links
-* done this way so that destinations can be defined after the location that links to them
-*/
-var $destinations = array();
-/**
-* store the stack for the transaction commands, each item in here is a record of the values of all the
-* variables within the class, so that the user can rollback at will (from each 'start' command)
-* note that this includes the objects array, so these can be large.
-*/
-var $checkpoint = '';
-/**
-* class constructor
-* this will start a new document
-* @var array array of 4 numbers, defining the bottom left and upper right corner of the page. first two are normally zero.
-*/
-function Cpdf ($pageSize=array(0,0,612,792)){
- $this->newDocument($pageSize);
-
- // also initialize the font families that are known about already
- $this->setFontFamily('init');
-// $this->fileIdentifier = md5('xxxxxxxx'.time());
-
-}
-
-/**
-* Document object methods (internal use only)
-*
-* There is about one object method for each type of object in the pdf document
-* Each function has the same call list ($id,$action,$options).
-* $id = the object ID of the object, or what it is to be if it is being created
-* $action = a string specifying the action to be performed, though ALL must support:
-* 'new' - create the object with the id $id
-* 'out' - produce the output for the pdf object
-* $options = optional, a string or array containing the various parameters for the object
-*
-* These, in conjunction with the output function are the ONLY way for output to be produced
-* within the pdf 'file'.
-*/
-
-/**
-*destination object, used to specify the location for the user to jump to, presently on opening
-*/
-function o_destination($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch($action){
- case 'new':
- $this->objects[$id]=array('t'=>'destination','info'=>array());
- $tmp = '';
- switch ($options['type']){
- case 'XYZ':
- case 'FitR':
- $tmp = ' '.$options['p3'].$tmp;
- case 'FitH':
- case 'FitV':
- case 'FitBH':
- case 'FitBV':
- $tmp = ' '.$options['p1'].' '.$options['p2'].$tmp;
- case 'Fit':
- case 'FitB':
- $tmp = $options['type'].$tmp;
- $this->objects[$id]['info']['string']=$tmp;
- $this->objects[$id]['info']['page']=$options['page'];
- }
- break;
- case 'out':
- $tmp = $o['info'];
- $res="\n".$id." 0 obj\n".'['.$tmp['page'].' 0 R /'.$tmp['string']."]\nendobj\n";
- return $res;
- break;
- }
-}
-
-/**
-* set the viewer preferences
-*/
-function o_viewerPreferences($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'viewerPreferences','info'=>array());
- break;
- case 'add':
- foreach($options as $k=>$v){
- switch ($k){
- case 'HideToolbar':
- case 'HideMenubar':
- case 'HideWindowUI':
- case 'FitWindow':
- case 'CenterWindow':
- case 'NonFullScreenPageMode':
- case 'Direction':
- $o['info'][$k]=$v;
- break;
- }
- }
- break;
- case 'out':
-
- $res="\n".$id." 0 obj\n".'<< ';
- foreach($o['info'] as $k=>$v){
- $res.="\n/".$k.' '.$v;
- }
- $res.="\n>>\n";
- return $res;
- break;
- }
-}
-
-/**
-* define the document catalog, the overall controller for the document
-*/
-function o_catalog($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'catalog','info'=>array());
- $this->catalogId=$id;
- break;
- case 'outlines':
- case 'pages':
- case 'openHere':
- $o['info'][$action]=$options;
- break;
- case 'viewerPreferences':
- if (!isset($o['info']['viewerPreferences'])){
- $this->numObj++;
- $this->o_viewerPreferences($this->numObj,'new');
- $o['info']['viewerPreferences']=$this->numObj;
- }
- $vp = $o['info']['viewerPreferences'];
- $this->o_viewerPreferences($vp,'add',$options);
- break;
- case 'out':
- $res="\n".$id." 0 obj\n".'<< /Type /Catalog';
- foreach($o['info'] as $k=>$v){
- switch($k){
- case 'outlines':
- $res.="\n".'/Outlines '.$v.' 0 R';
- break;
- case 'pages':
- $res.="\n".'/Pages '.$v.' 0 R';
- break;
- case 'viewerPreferences':
- $res.="\n".'/ViewerPreferences '.$o['info']['viewerPreferences'].' 0 R';
- break;
- case 'openHere':
- $res.="\n".'/OpenAction '.$o['info']['openHere'].' 0 R';
- break;
- }
- }
- $res.=" >>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* object which is a parent to the pages in the document
-*/
-function o_pages($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'pages','info'=>array());
- $this->o_catalog($this->catalogId,'pages',$id);
- break;
- case 'page':
- if (!is_array($options)){
- // then it will just be the id of the new page
- $o['info']['pages'][]=$options;
- } else {
- // then it should be an array having 'id','rid','pos', where rid=the page to which this one will be placed relative
- // and pos is either 'before' or 'after', saying where this page will fit.
- if (isset($options['id']) && isset($options['rid']) && isset($options['pos'])){
- $i = array_search($options['rid'],$o['info']['pages']);
- if (isset($o['info']['pages'][$i]) && $o['info']['pages'][$i]==$options['rid']){
- // then there is a match
- // make a space
- switch ($options['pos']){
- case 'before':
- $k = $i;
- break;
- case 'after':
- $k=$i+1;
- break;
- default:
- $k=-1;
- break;
- }
- if ($k>=0){
- for ($j=count($o['info']['pages'])-1;$j>=$k;$j--){
- $o['info']['pages'][$j+1]=$o['info']['pages'][$j];
- }
- $o['info']['pages'][$k]=$options['id'];
- }
- }
- }
- }
- break;
- case 'procset':
- $o['info']['procset']=$options;
- break;
- case 'mediaBox':
- $o['info']['mediaBox']=$options; // which should be an array of 4 numbers
- break;
- case 'font':
- $o['info']['fonts'][]=array('objNum'=>$options['objNum'],'fontNum'=>$options['fontNum']);
- break;
- case 'xObject':
- $o['info']['xObjects'][]=array('objNum'=>$options['objNum'],'label'=>$options['label']);
- break;
- case 'out':
- if (count($o['info']['pages'])){
- $res="\n".$id." 0 obj\n<< /Type /Pages\n/Kids [";
- foreach($o['info']['pages'] as $k=>$v){
- $res.=$v." 0 R\n";
- }
- $res.="]\n/Count ".count($this->objects[$id]['info']['pages']);
- if ((isset($o['info']['fonts']) && count($o['info']['fonts'])) || isset($o['info']['procset'])){
- $res.="\n/Resources <<";
- if (isset($o['info']['procset'])){
- $res.="\n/ProcSet ".$o['info']['procset']." 0 R";
- }
- if (isset($o['info']['fonts']) && count($o['info']['fonts'])){
- $res.="\n/Font << ";
- foreach($o['info']['fonts'] as $finfo){
- $res.="\n/F".$finfo['fontNum']." ".$finfo['objNum']." 0 R";
- }
- $res.=" >>";
- }
- if (isset($o['info']['xObjects']) && count($o['info']['xObjects'])){
- $res.="\n/XObject << ";
- foreach($o['info']['xObjects'] as $finfo){
- $res.="\n/".$finfo['label']." ".$finfo['objNum']." 0 R";
- }
- $res.=" >>";
- }
- $res.="\n>>";
- if (isset($o['info']['mediaBox'])){
- $tmp=$o['info']['mediaBox'];
- $res.="\n/MediaBox [".sprintf('%.3f',$tmp[0]).' '.sprintf('%.3f',$tmp[1]).' '.sprintf('%.3f',$tmp[2]).' '.sprintf('%.3f',$tmp[3]).']';
- }
- }
- $res.="\n >>\nendobj";
- } else {
- $res="\n".$id." 0 obj\n<< /Type /Pages\n/Count 0\n>>\nendobj";
- }
- return $res;
- break;
- }
-}
-
-/**
-* define the outlines in the doc, empty for now
-*/
-function o_outlines($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'outlines','info'=>array('outlines'=>array()));
- $this->o_catalog($this->catalogId,'outlines',$id);
- break;
- case 'outline':
- $o['info']['outlines'][]=$options;
- break;
- case 'out':
- if (count($o['info']['outlines'])){
- $res="\n".$id." 0 obj\n<< /Type /Outlines /Kids [";
- foreach($o['info']['outlines'] as $k=>$v){
- $res.=$v." 0 R ";
- }
- $res.="] /Count ".count($o['info']['outlines'])." >>\nendobj";
- } else {
- $res="\n".$id." 0 obj\n<< /Type /Outlines /Count 0 >>\nendobj";
- }
- return $res;
- break;
- }
-}
-
-/**
-* an object to hold the font description
-*/
-function o_font($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'font','info'=>array('name'=>$options['name'],'SubType'=>'Type1'));
- $fontNum=$this->numFonts;
- $this->objects[$id]['info']['fontNum']=$fontNum;
- // deal with the encoding and the differences
- if (isset($options['differences'])){
- // then we'll need an encoding dictionary
- $this->numObj++;
- $this->o_fontEncoding($this->numObj,'new',$options);
- $this->objects[$id]['info']['encodingDictionary']=$this->numObj;
- } else if (isset($options['encoding'])){
- // we can specify encoding here
- switch($options['encoding']){
- case 'WinAnsiEncoding':
- case 'MacRomanEncoding':
- case 'MacExpertEncoding':
- $this->objects[$id]['info']['encoding']=$options['encoding'];
- break;
- case 'none':
- break;
- default:
- $this->objects[$id]['info']['encoding']='WinAnsiEncoding';
- break;
- }
- } else {
- $this->objects[$id]['info']['encoding']='WinAnsiEncoding';
- }
- // also tell the pages node about the new font
- $this->o_pages($this->currentNode,'font',array('fontNum'=>$fontNum,'objNum'=>$id));
- break;
- case 'add':
- foreach ($options as $k=>$v){
- switch ($k){
- case 'BaseFont':
- $o['info']['name'] = $v;
- break;
- case 'FirstChar':
- case 'LastChar':
- case 'Widths':
- case 'FontDescriptor':
- case 'SubType':
- $this->addMessage('o_font '.$k." : ".$v);
- $o['info'][$k] = $v;
- break;
- }
- }
- break;
- case 'out':
- $res="\n".$id." 0 obj\n<< /Type /Font\n/Subtype /".$o['info']['SubType']."\n";
- $res.="/Name /F".$o['info']['fontNum']."\n";
- $res.="/BaseFont /".$o['info']['name']."\n";
- if (isset($o['info']['encodingDictionary'])){
- // then place a reference to the dictionary
- $res.="/Encoding ".$o['info']['encodingDictionary']." 0 R\n";
- } else if (isset($o['info']['encoding'])){
- // use the specified encoding
- $res.="/Encoding /".$o['info']['encoding']."\n";
- }
- if (isset($o['info']['FirstChar'])){
- $res.="/FirstChar ".$o['info']['FirstChar']."\n";
- }
- if (isset($o['info']['LastChar'])){
- $res.="/LastChar ".$o['info']['LastChar']."\n";
- }
- if (isset($o['info']['Widths'])){
- $res.="/Widths ".$o['info']['Widths']." 0 R\n";
- }
- if (isset($o['info']['FontDescriptor'])){
- $res.="/FontDescriptor ".$o['info']['FontDescriptor']." 0 R\n";
- }
- $res.=">>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* a font descriptor, needed for including additional fonts
-*/
-function o_fontDescriptor($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'fontDescriptor','info'=>$options);
- break;
- case 'out':
- $res="\n".$id." 0 obj\n<< /Type /FontDescriptor\n";
- foreach ($o['info'] as $label => $value){
- switch ($label){
- case 'Ascent':
- case 'CapHeight':
- case 'Descent':
- case 'Flags':
- case 'ItalicAngle':
- case 'StemV':
- case 'AvgWidth':
- case 'Leading':
- case 'MaxWidth':
- case 'MissingWidth':
- case 'StemH':
- case 'XHeight':
- case 'CharSet':
- if (strlen($value)){
- $res.='/'.$label.' '.$value."\n";
- }
- break;
- case 'FontFile':
- case 'FontFile2':
- case 'FontFile3':
- $res.='/'.$label.' '.$value." 0 R\n";
- break;
- case 'FontBBox':
- $res.='/'.$label.' ['.$value[0].' '.$value[1].' '.$value[2].' '.$value[3]."]\n";
- break;
- case 'FontName':
- $res.='/'.$label.' /'.$value."\n";
- break;
- }
- }
- $res.=">>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* the font encoding
-*/
-function o_fontEncoding($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- // the options array should contain 'differences' and maybe 'encoding'
- $this->objects[$id]=array('t'=>'fontEncoding','info'=>$options);
- break;
- case 'out':
- $res="\n".$id." 0 obj\n<< /Type /Encoding\n";
- if (!isset($o['info']['encoding'])){
- $o['info']['encoding']='WinAnsiEncoding';
- }
- if ($o['info']['encoding']!='none'){
- $res.="/BaseEncoding /".$o['info']['encoding']."\n";
- }
- $res.="/Differences \n[";
- $onum=-100;
- foreach($o['info']['differences'] as $num=>$label){
- if ($num!=$onum+1){
- // we cannot make use of consecutive numbering
- $res.= "\n".$num." /".$label;
- } else {
- $res.= " /".$label;
- }
- $onum=$num;
- }
- $res.="\n]\n>>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* the document procset, solves some problems with printing to old PS printers
-*/
-function o_procset($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'procset','info'=>array('PDF'=>1,'Text'=>1));
- $this->o_pages($this->currentNode,'procset',$id);
- $this->procsetObjectId=$id;
- break;
- case 'add':
- // this is to add new items to the procset list, despite the fact that this is considered
- // obselete, the items are required for printing to some postscript printers
- switch ($options) {
- case 'ImageB':
- case 'ImageC':
- case 'ImageI':
- $o['info'][$options]=1;
- break;
- }
- break;
- case 'out':
- $res="\n".$id." 0 obj\n[";
- foreach ($o['info'] as $label=>$val){
- $res.='/'.$label.' ';
- }
- $res.="]\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* define the document information
-*/
-function o_info($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->infoObject=$id;
- $date='D:'.date('Ymd');
- $this->objects[$id]=array('t'=>'info','info'=>array('Creator'=>'R and OS php pdf writer, http://www.ros.co.nz','CreationDate'=>$date));
- break;
- case 'Title':
- case 'Author':
- case 'Subject':
- case 'Keywords':
- case 'Creator':
- case 'Producer':
- case 'CreationDate':
- case 'ModDate':
- case 'Trapped':
- $o['info'][$action]=$options;
- break;
- case 'out':
- if ($this->encrypted){
- $this->encryptInit($id);
- }
- $res="\n".$id." 0 obj\n<<\n";
- foreach ($o['info'] as $k=>$v){
- $res.='/'.$k.' (';
- if ($this->encrypted){
- $res.=$this->filterText($this->ARC4($v));
- } else {
- $res.=$this->filterText($v);
- }
- $res.=")\n";
- }
- $res.=">>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* an action object, used to link to URLS initially
-*/
-function o_action($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- if (is_array($options)){
- $this->objects[$id]=array('t'=>'action','info'=>$options,'type'=>$options['type']);
- } else {
- // then assume a URI action
- $this->objects[$id]=array('t'=>'action','info'=>$options,'type'=>'URI');
- }
- break;
- case 'out':
- if ($this->encrypted){
- $this->encryptInit($id);
- }
- $res="\n".$id." 0 obj\n<< /Type /Action";
- switch($o['type']){
- case 'ilink':
- // there will be an 'label' setting, this is the name of the destination
- $res.="\n/S /GoTo\n/D ".$this->destinations[(string)$o['info']['label']]." 0 R";
- break;
- case 'URI':
- $res.="\n/S /URI\n/URI (";
- if ($this->encrypted){
- $res.=$this->filterText($this->ARC4($o['info']));
- } else {
- $res.=$this->filterText($o['info']);
- }
- $res.=")";
- break;
- }
- $res.="\n>>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* an annotation object, this will add an annotation to the current page.
-* initially will support just link annotations
-*/
-function o_annotation($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- // add the annotation to the current page
- $pageId = $this->currentPage;
- $this->o_page($pageId,'annot',$id);
- // and add the action object which is going to be required
- switch($options['type']){
- case 'link':
- $this->objects[$id]=array('t'=>'annotation','info'=>$options);
- $this->numObj++;
- $this->o_action($this->numObj,'new',$options['url']);
- $this->objects[$id]['info']['actionId']=$this->numObj;
- break;
- case 'ilink':
- // this is to a named internal link
- $label = $options['label'];
- $this->objects[$id]=array('t'=>'annotation','info'=>$options);
- $this->numObj++;
- $this->o_action($this->numObj,'new',array('type'=>'ilink','label'=>$label));
- $this->objects[$id]['info']['actionId']=$this->numObj;
- break;
- }
- break;
- case 'out':
- $res="\n".$id." 0 obj\n<< /Type /Annot";
- switch($o['info']['type']){
- case 'link':
- case 'ilink':
- $res.= "\n/Subtype /Link";
- break;
- }
- $res.="\n/A ".$o['info']['actionId']." 0 R";
- $res.="\n/Border [0 0 0]";
- $res.="\n/H /I";
- $res.="\n/Rect [ ";
- foreach($o['info']['rect'] as $v){
- $res.= sprintf("%.4f ",$v);
- }
- $res.="]";
- $res.="\n>>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* a page object, it also creates a contents object to hold its contents
-*/
-function o_page($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->numPages++;
- $this->objects[$id]=array('t'=>'page','info'=>array('parent'=>$this->currentNode,'pageNum'=>$this->numPages));
- if (is_array($options)){
- // then this must be a page insertion, array shoudl contain 'rid','pos'=[before|after]
- $options['id']=$id;
- $this->o_pages($this->currentNode,'page',$options);
- } else {
- $this->o_pages($this->currentNode,'page',$id);
- }
- $this->currentPage=$id;
- //make a contents object to go with this page
- $this->numObj++;
- $this->o_contents($this->numObj,'new',$id);
- $this->currentContents=$this->numObj;
- $this->objects[$id]['info']['contents']=array();
- $this->objects[$id]['info']['contents'][]=$this->numObj;
- $match = ($this->numPages%2 ? 'odd' : 'even');
- foreach($this->addLooseObjects as $oId=>$target){
- if ($target=='all' || $match==$target){
- $this->objects[$id]['info']['contents'][]=$oId;
- }
- }
- break;
- case 'content':
- $o['info']['contents'][]=$options;
- break;
- case 'annot':
- // add an annotation to this page
- if (!isset($o['info']['annot'])){
- $o['info']['annot']=array();
- }
- // $options should contain the id of the annotation dictionary
- $o['info']['annot'][]=$options;
- break;
- case 'out':
- $res="\n".$id." 0 obj\n<< /Type /Page";
- $res.="\n/Parent ".$o['info']['parent']." 0 R";
- if (isset($o['info']['annot'])){
- $res.="\n/Annots [";
- foreach($o['info']['annot'] as $aId){
- $res.=" ".$aId." 0 R";
- }
- $res.=" ]";
- }
- $count = count($o['info']['contents']);
- if ($count==1){
- $res.="\n/Contents ".$o['info']['contents'][0]." 0 R";
- } else if ($count>1){
- $res.="\n/Contents [\n";
- foreach ($o['info']['contents'] as $cId){
- $res.=$cId." 0 R\n";
- }
- $res.="]";
- }
- $res.="\n>>\nendobj";
- return $res;
- break;
- }
-}
-
-/**
-* the contents objects hold all of the content which appears on pages
-*/
-function o_contents($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch ($action){
- case 'new':
- $this->objects[$id]=array('t'=>'contents','c'=>'','info'=>array());
- if (strlen($options) && intval($options)){
- // then this contents is the primary for a page
- $this->objects[$id]['onPage']=$options;
- } else if ($options=='raw'){
- // then this page contains some other type of system object
- $this->objects[$id]['raw']=1;
- }
- break;
- case 'add':
- // add more options to the decleration
- foreach ($options as $k=>$v){
- $o['info'][$k]=$v;
- }
- case 'out':
- $tmp=$o['c'];
- $res= "\n".$id." 0 obj\n";
- if (isset($this->objects[$id]['raw'])){
- $res.=$tmp;
- } else {
- $res.= "<<";
- if (function_exists('gzcompress') && $this->options['compression']){
- // then implement ZLIB based compression on this content stream
- $res.=" /Filter /FlateDecode";
- $tmp = gzcompress($tmp);
- }
- if ($this->encrypted){
- $this->encryptInit($id);
- $tmp = $this->ARC4($tmp);
- }
- foreach($o['info'] as $k=>$v){
- $res .= "\n/".$k.' '.$v;
- }
- $res.="\n/Length ".strlen($tmp)." >>\nstream\n".$tmp."\nendstream";
- }
- $res.="\nendobj\n";
- return $res;
- break;
- }
-}
-
-/**
-* an image object, will be an XObject in the document, includes description and data
-*/
-function o_image($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch($action){
- case 'new':
- // make the new object
- $this->objects[$id]=array('t'=>'image','data'=>$options['data'],'info'=>array());
- $this->objects[$id]['info']['Type']='/XObject';
- $this->objects[$id]['info']['Subtype']='/Image';
- $this->objects[$id]['info']['Width']=$options['iw'];
- $this->objects[$id]['info']['Height']=$options['ih'];
- if (!isset($options['type']) || $options['type']=='jpg'){
- if (!isset($options['channels'])){
- $options['channels']=3;
- }
- switch($options['channels']){
- case 1:
- $this->objects[$id]['info']['ColorSpace']='/DeviceGray';
- break;
- default:
- $this->objects[$id]['info']['ColorSpace']='/DeviceRGB';
- break;
- }
- $this->objects[$id]['info']['Filter']='/DCTDecode';
- $this->objects[$id]['info']['BitsPerComponent']=8;
- } else if ($options['type']=='png'){
- $this->objects[$id]['info']['Filter']='/FlateDecode';
- $this->objects[$id]['info']['DecodeParms']='<< /Predictor 15 /Colors '.$options['ncolor'].' /Columns '.$options['iw'].' /BitsPerComponent '.$options['bitsPerComponent'].'>>';
- if (strlen($options['pdata'])){
- $tmp = ' [ /Indexed /DeviceRGB '.(strlen($options['pdata'])/3-1).' ';
- $this->numObj++;
- $this->o_contents($this->numObj,'new');
- $this->objects[$this->numObj]['c']=$options['pdata'];
- $tmp.=$this->numObj.' 0 R';
- $tmp .=' ]';
- $this->objects[$id]['info']['ColorSpace'] = $tmp;
- if (isset($options['transparency'])){
- switch($options['transparency']['type']){
- case 'indexed':
- $tmp=' [ '.$options['transparency']['data'].' '.$options['transparency']['data'].'] ';
- $this->objects[$id]['info']['Mask'] = $tmp;
- break;
- }
- }
- } else {
- $this->objects[$id]['info']['ColorSpace']='/'.$options['color'];
- }
- $this->objects[$id]['info']['BitsPerComponent']=$options['bitsPerComponent'];
- }
- // assign it a place in the named resource dictionary as an external object, according to
- // the label passed in with it.
- $this->o_pages($this->currentNode,'xObject',array('label'=>$options['label'],'objNum'=>$id));
- // also make sure that we have the right procset object for it.
- $this->o_procset($this->procsetObjectId,'add','ImageC');
- break;
- case 'out':
- $tmp=$o['data'];
- $res= "\n".$id." 0 obj\n<<";
- foreach($o['info'] as $k=>$v){
- $res.="\n/".$k.' '.$v;
- }
- if ($this->encrypted){
- $this->encryptInit($id);
- $tmp = $this->ARC4($tmp);
- }
- $res.="\n/Length ".strlen($tmp)." >>\nstream\n".$tmp."\nendstream\nendobj\n";
- return $res;
- break;
- }
-}
-
-/**
-* encryption object.
-*/
-function o_encryption($id,$action,$options=''){
- if ($action!='new'){
- $o =& $this->objects[$id];
- }
- switch($action){
- case 'new':
- // make the new object
- $this->objects[$id]=array('t'=>'encryption','info'=>$options);
- $this->arc4_objnum=$id;
- // figure out the additional paramaters required
- $pad = chr(0x28).chr(0xBF).chr(0x4E).chr(0x5E).chr(0x4E).chr(0x75).chr(0x8A).chr(0x41).chr(0x64).chr(0x00).chr(0x4E).chr(0x56).chr(0xFF).chr(0xFA).chr(0x01).chr(0x08).chr(0x2E).chr(0x2E).chr(0x00).chr(0xB6).chr(0xD0).chr(0x68).chr(0x3E).chr(0x80).chr(0x2F).chr(0x0C).chr(0xA9).chr(0xFE).chr(0x64).chr(0x53).chr(0x69).chr(0x7A);
- $len = strlen($options['owner']);
- if ($len>32){
- $owner = substr($options['owner'],0,32);
- } else if ($len<32){
- $owner = $options['owner'].substr($pad,0,32-$len);
- } else {
- $owner = $options['owner'];
- }
- $len = strlen($options['user']);
- if ($len>32){
- $user = substr($options['user'],0,32);
- } else if ($len<32){
- $user = $options['user'].substr($pad,0,32-$len);
- } else {
- $user = $options['user'];
- }
- $tmp = $this->md5_16($owner);
- $okey = substr($tmp,0,5);
- $this->ARC4_init($okey);
- $ovalue=$this->ARC4($user);
- $this->objects[$id]['info']['O']=$ovalue;
- // now make the u value, phew.
- $tmp = $this->md5_16($user.$ovalue.chr($options['p']).chr(255).chr(255).chr(255).$this->fileIdentifier);
- $ukey = substr($tmp,0,5);
-
- $this->ARC4_init($ukey);
- $this->encryptionKey = $ukey;
- $this->encrypted=1;
- $uvalue=$this->ARC4($pad);
-
- $this->objects[$id]['info']['U']=$uvalue;
- $this->encryptionKey=$ukey;
-
- // initialize the arc4 array
- break;
- case 'out':
- $res= "\n".$id." 0 obj\n<<";
- $res.="\n/Filter /Standard";
- $res.="\n/V 1";
- $res.="\n/R 2";
- $res.="\n/O (".$this->filterText($o['info']['O']).')';
- $res.="\n/U (".$this->filterText($o['info']['U']).')';
- // and the p-value needs to be converted to account for the twos-complement approach
- $o['info']['p'] = (($o['info']['p']^255)+1)*-1;
- $res.="\n/P ".($o['info']['p']);
- $res.="\n>>\nendobj\n";
-
- return $res;
- break;
- }
-}
-
-/**
-* ARC4 functions
-* A series of function to implement ARC4 encoding in PHP
-*/
-
-/**
-* calculate the 16 byte version of the 128 bit md5 digest of the string
-*/
-function md5_16($string){
- $tmp = md5($string);
- $out='';
- for ($i=0;$i<=30;$i=$i+2){
- $out.=chr(hexdec(substr($tmp,$i,2)));
- }
- return $out;
-}
-
-/**
-* initialize the encryption for processing a particular object
-*/
-function encryptInit($id){
- $tmp = $this->encryptionKey;
- $hex = dechex($id);
- if (strlen($hex)<6){
- $hex = substr('000000',0,6-strlen($hex)).$hex;
- }
- $tmp.= chr(hexdec(substr($hex,4,2))).chr(hexdec(substr($hex,2,2))).chr(hexdec(substr($hex,0,2))).chr(0).chr(0);
- $key = $this->md5_16($tmp);
- $this->ARC4_init(substr($key,0,10));
-}
-
-/**
-* initialize the ARC4 encryption
-*/
-function ARC4_init($key=''){
- $this->arc4 = '';
- // setup the control array
- if (strlen($key)==0){
- return;
- }
- $k = '';
- while(strlen($k)<256){
- $k.=$key;
- }
- $k=substr($k,0,256);
- for ($i=0;$i<256;$i++){
- $this->arc4 .= chr($i);
- }
- $j=0;
- for ($i=0;$i<256;$i++){
- $t = $this->arc4[$i];
- $j = ($j + ord($t) + ord($k[$i]))%256;
- $this->arc4[$i]=$this->arc4[$j];
- $this->arc4[$j]=$t;
- }
-}
-
-/**
-* ARC4 encrypt a text string
-*/
-function ARC4($text){
- $len=strlen($text);
- $a=0;
- $b=0;
- $c = $this->arc4;
- $out='';
- for ($i=0;$i<$len;$i++){
- $a = ($a+1)%256;
- $t= $c[$a];
- $b = ($b+ord($t))%256;
- $c[$a]=$c[$b];
- $c[$b]=$t;
- $k = ord($c[(ord($c[$a])+ord($c[$b]))%256]);
- $out.=chr(ord($text[$i]) ^ $k);
- }
-
- return $out;
-}
-
-/**
-* functions which can be called to adjust or add to the document
-*/
-
-/**
-* add a link in the document to an external URL
-*/
-function addLink($url,$x0,$y0,$x1,$y1){
- $this->numObj++;
- $info = array('type'=>'link','url'=>$url,'rect'=>array($x0,$y0,$x1,$y1));
- $this->o_annotation($this->numObj,'new',$info);
-}
-
-/**
-* add a link in the document to an internal destination (ie. within the document)
-*/
-function addInternalLink($label,$x0,$y0,$x1,$y1){
- $this->numObj++;
- $info = array('type'=>'ilink','label'=>$label,'rect'=>array($x0,$y0,$x1,$y1));
- $this->o_annotation($this->numObj,'new',$info);
-}
-
-/**
-* set the encryption of the document
-* can be used to turn it on and/or set the passwords which it will have.
-* also the functions that the user will have are set here, such as print, modify, add
-*/
-function setEncryption($userPass='',$ownerPass='',$pc=array()){
- $p=bindec(11000000);
-
- $options = array(
- 'print'=>4
- ,'modify'=>8
- ,'copy'=>16
- ,'add'=>32
- );
- foreach($pc as $k=>$v){
- if ($v && isset($options[$k])){
- $p+=$options[$k];
- } else if (isset($options[$v])){
- $p+=$options[$v];
- }
- }
- // implement encryption on the document
- if ($this->arc4_objnum == 0){
- // then the block does not exist already, add it.
- $this->numObj++;
- if (strlen($ownerPass)==0){
- $ownerPass=$userPass;
- }
- $this->o_encryption($this->numObj,'new',array('user'=>$userPass,'owner'=>$ownerPass,'p'=>$p));
- }
-}
-
-/**
-* should be used for internal checks, not implemented as yet
-*/
-function checkAllHere(){
-}
-
-/**
-* return the pdf stream as a string returned from the function
-*/
-function output($debug=0){
-
- if ($debug){
- // turn compression off
- $this->options['compression']=0;
- }
-
- if ($this->arc4_objnum){
- $this->ARC4_init($this->encryptionKey);
- }
-
- $this->checkAllHere();
-
- $xref=array();
- $content="%PDF-1.3\n%\n";
-// $content="%PDF-1.3\n";
- $pos=strlen($content);
- foreach($this->objects as $k=>$v){
- $tmp='o_'.$v['t'];
- $cont=$this->$tmp($k,'out');
- $content.=$cont;
- $xref[]=$pos;
- $pos+=strlen($cont);
- }
- $content.="\nxref\n0 ".(count($xref)+1)."\n0000000000 65535 f \n";
- foreach($xref as $p){
- $content.=substr('0000000000',0,10-strlen($p)).$p." 00000 n \n";
- }
- $content.="\ntrailer\n << /Size ".(count($xref)+1)."\n /Root 1 0 R\n /Info ".$this->infoObject." 0 R\n";
- // if encryption has been applied to this document then add the marker for this dictionary
- if ($this->arc4_objnum > 0){
- $content .= "/Encrypt ".$this->arc4_objnum." 0 R\n";
- }
- if (strlen($this->fileIdentifier)){
- $content .= "/ID[<".$this->fileIdentifier."><".$this->fileIdentifier.">]\n";
- }
- $content .= " >>\nstartxref\n".$pos."\n%%EOF\n";
- return $content;
-}
-
-/**
-* intialize a new document
-* if this is called on an existing document results may be unpredictable, but the existing document would be lost at minimum
-* this function is called automatically by the constructor function
-*
-* @access private
-*/
-function newDocument($pageSize=array(0,0,612,792)){
- $this->numObj=0;
- $this->objects = array();
-
- $this->numObj++;
- $this->o_catalog($this->numObj,'new');
-
- $this->numObj++;
- $this->o_outlines($this->numObj,'new');
-
- $this->numObj++;
- $this->o_pages($this->numObj,'new');
-
- $this->o_pages($this->numObj,'mediaBox',$pageSize);
- $this->currentNode = 3;
-
- $this->numObj++;
- $this->o_procset($this->numObj,'new');
-
- $this->numObj++;
- $this->o_info($this->numObj,'new');
-
- $this->numObj++;
- $this->o_page($this->numObj,'new');
-
- // need to store the first page id as there is no way to get it to the user during
- // startup
- $this->firstPageId = $this->currentContents;
-}
-
-/**
-* open the font file and return a php structure containing it.
-* first check if this one has been done before and saved in a form more suited to php
-* note that if a php serialized version does not exist it will try and make one, but will
-* require write access to the directory to do it... it is MUCH faster to have these serialized
-* files.
-*
-* @access private
-*/
-function openFont($font){
- // assume that $font contains both the path and perhaps the extension to the file, split them
- $pos=strrpos($font,'/');
- if ($pos===false){
- $dir = './';
- $name = $font;
- } else {
- $dir=substr($font,0,$pos+1);
- $name=substr($font,$pos+1);
- }
-
- if (substr($name,-4)=='.afm'){
- $name=substr($name,0,strlen($name)-4);
- }
- $this->addMessage('openFont: '.$font.' - '.$name);
- if (file_exists($dir.'php_'.$name.'.afm')){
- $this->addMessage('openFont: php file exists '.$dir.'php_'.$name.'.afm');
- $tmp = file($dir.'php_'.$name.'.afm');
- $this->fonts[$font]=unserialize($tmp[0]);
- if (!isset($this->fonts[$font]['_version_']) || $this->fonts[$font]['_version_']<1){
- // if the font file is old, then clear it out and prepare for re-creation
- $this->addMessage('openFont: clear out, make way for new version.');
- unset($this->fonts[$font]);
- }
- }
- if (!isset($this->fonts[$font]) && file_exists($dir.$name.'.afm')){
- // then rebuild the php_<font>.afm file from the <font>.afm file
- $this->addMessage('openFont: build php file from '.$dir.$name.'.afm');
- $data = array();
- $file = file($dir.$name.'.afm');
- foreach ($file as $rowA){
- $row=trim($rowA);
- $pos=strpos($row,' ');
- if ($pos){
- // then there must be some keyword
- $key = substr($row,0,$pos);
- switch ($key){
- case 'FontName':
- case 'FullName':
- case 'FamilyName':
- case 'Weight':
- case 'ItalicAngle':
- case 'IsFixedPitch':
- case 'CharacterSet':
- case 'UnderlinePosition':
- case 'UnderlineThickness':
- case 'Version':
- case 'EncodingScheme':
- case 'CapHeight':
- case 'XHeight':
- case 'Ascender':
- case 'Descender':
- case 'StdHW':
- case 'StdVW':
- case 'StartCharMetrics':
- $data[$key]=trim(substr($row,$pos));
- break;
- case 'FontBBox':
- $data[$key]=explode(' ',trim(substr($row,$pos)));
- break;
- case 'C':
- //C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ;
- $bits=explode(';',trim($row));
- $dtmp=array();
- foreach($bits as $bit){
- $bits2 = explode(' ',trim($bit));
- if (strlen($bits2[0])){
- if (count($bits2)>2){
- $dtmp[$bits2[0]]=array();
- for ($i=1;$i<count($bits2);$i++){
- $dtmp[$bits2[0]][]=$bits2[$i];
- }
- } else if (count($bits2)==2){
- $dtmp[$bits2[0]]=$bits2[1];
- }
- }
- }
- if ($dtmp['C']>=0){
- $data['C'][$dtmp['C']]=$dtmp;
- $data['C'][$dtmp['N']]=$dtmp;
- } else {
- $data['C'][$dtmp['N']]=$dtmp;
- }
- break;
- case 'KPX':
- //KPX Adieresis yacute -40
- $bits=explode(' ',trim($row));
- $data['KPX'][$bits[1]][$bits[2]]=$bits[3];
- break;
- }
- }
- }
- $data['_version_']=1;
- $this->fonts[$font]=$data;
- $fp = fopen($dir.'php_'.$name.'.afm','w');
- fwrite($fp,serialize($data));
- fclose($fp);
- } else if (!isset($this->fonts[$font])){
- $this->addMessage('openFont: no font file found');
-// echo 'Font not Found '.$font;
- }
-}
-
-/**
-* if the font is not loaded then load it and make the required object
-* else just make it the current font
-* the encoding array can contain 'encoding'=> 'none','WinAnsiEncoding','MacRomanEncoding' or 'MacExpertEncoding'
-* note that encoding='none' will need to be used for symbolic fonts
-* and 'differences' => an array of mappings between numbers 0->255 and character names.
-*
-*/
-function selectFont($fontName,$encoding='',$set=1){
- if (!isset($this->fonts[$fontName])){
- // load the file
- $this->openFont($fontName);
- if (isset($this->fonts[$fontName])){
- $this->numObj++;
- $this->numFonts++;
- $pos=strrpos($fontName,'/');
-// $dir=substr($fontName,0,$pos+1);
- $name=substr($fontName,$pos+1);
- if (substr($name,-4)=='.afm'){
- $name=substr($name,0,strlen($name)-4);
- }
- $options=array('name'=>$name);
- if (is_array($encoding)){
- // then encoding and differences might be set
- if (isset($encoding['encoding'])){
- $options['encoding']=$encoding['encoding'];
- }
- if (isset($encoding['differences'])){
- $options['differences']=$encoding['differences'];
- }
- } else if (strlen($encoding)){
- // then perhaps only the encoding has been set
- $options['encoding']=$encoding;
- }
- $fontObj = $this->numObj;
- $this->o_font($this->numObj,'new',$options);
- $this->fonts[$fontName]['fontNum']=$this->numFonts;
- // if this is a '.afm' font, and there is a '.pfa' file to go with it ( as there
- // should be for all non-basic fonts), then load it into an object and put the
- // references into the font object
- $basefile = substr($fontName,0,strlen($fontName)-4);
- if (file_exists($basefile.'.pfb')){
- $fbtype = 'pfb';
- } else if (file_exists($basefile.'.ttf')){
- $fbtype = 'ttf';
- } else {
- $fbtype='';
- }
- $fbfile = $basefile.'.'.$fbtype;
-
-// $pfbfile = substr($fontName,0,strlen($fontName)-4).'.pfb';
-// $ttffile = substr($fontName,0,strlen($fontName)-4).'.ttf';
- $this->addMessage('selectFont: checking for - '.$fbfile);
- if (substr($fontName,-4)=='.afm' && strlen($fbtype) ){
- $adobeFontName = $this->fonts[$fontName]['FontName'];
-// $fontObj = $this->numObj;
- $this->addMessage('selectFont: adding font file - '.$fbfile.' - '.$adobeFontName);
- // find the array of fond widths, and put that into an object.
- $firstChar = -1;
- $lastChar = 0;
- $widths = array();
- foreach ($this->fonts[$fontName]['C'] as $num=>$d){
- if (intval($num)>0 || $num=='0'){
- if ($lastChar>0 && $num>$lastChar+1){
- for($i=$lastChar+1;$i<$num;$i++){
- $widths[] = 0;
- }
- }
- $widths[] = $d['WX'];
- if ($firstChar==-1){
- $firstChar = $num;
- }
- $lastChar = $num;
- }
- }
- // also need to adjust the widths for the differences array
- if (isset($options['differences'])){
- foreach($options['differences'] as $charNum=>$charName){
- if ($charNum>$lastChar){
- for($i=$lastChar+1;$i<=$charNum;$i++){
- $widths[]=0;
- }
- $lastChar=$charNum;
- }
- if (isset($this->fonts[$fontName]['C'][$charName])){
- $widths[$charNum-$firstChar]=$this->fonts[$fontName]['C'][$charName]['WX'];
- }
- }
- }
- $this->addMessage('selectFont: FirstChar='.$firstChar);
- $this->addMessage('selectFont: LastChar='.$lastChar);
- $this->numObj++;
- $this->o_contents($this->numObj,'new','raw');
- $this->objects[$this->numObj]['c'].='[';
- foreach($widths as $width){
- $this->objects[$this->numObj]['c'].=' '.$width;
- }
- $this->objects[$this->numObj]['c'].=' ]';
- $widthid = $this->numObj;
-
- // load the pfb file, and put that into an object too.
- // note that pdf supports only binary format type 1 font files, though there is a
- // simple utility to convert them from pfa to pfb.
- $fp = fopen($fbfile,'rb');
- $tmp = get_magic_quotes_runtime();
- set_magic_quotes_runtime(0);
- $data = fread($fp,filesize($fbfile));
- set_magic_quotes_runtime($tmp);
- fclose($fp);
-
- // create the font descriptor
- $this->numObj++;
- $fontDescriptorId = $this->numObj;
- $this->numObj++;
- $pfbid = $this->numObj;
- // determine flags (more than a little flakey, hopefully will not matter much)
- $flags=0;
- if ($this->fonts[$fontName]['ItalicAngle']!=0){ $flags+=pow(2,6); }
- if ($this->fonts[$fontName]['IsFixedPitch']=='true'){ $flags+=1; }
- $flags+=pow(2,5); // assume non-sybolic
-
- $list = array('Ascent'=>'Ascender','CapHeight'=>'CapHeight','Descent'=>'Descender','FontBBox'=>'FontBBox','ItalicAngle'=>'ItalicAngle');
- $fdopt = array(
- 'Flags'=>$flags
- ,'FontName'=>$adobeFontName
- ,'StemV'=>100 // don't know what the value for this should be!
- );
- foreach($list as $k=>$v){
- if (isset($this->fonts[$fontName][$v])){
- $fdopt[$k]=$this->fonts[$fontName][$v];
- }
- }
-
- if ($fbtype=='pfb'){
- $fdopt['FontFile']=$pfbid;
- } else if ($fbtype=='ttf'){
- $fdopt['FontFile2']=$pfbid;
- }
- $this->o_fontDescriptor($fontDescriptorId,'new',$fdopt);
-
- // embed the font program
- $this->o_contents($this->numObj,'new');
- $this->objects[$pfbid]['c'].=$data;
- // determine the cruicial lengths within this file
- if ($fbtype=='pfb'){
- $l1 = strpos($data,'eexec')+6;
- $l2 = strpos($data,'00000000')-$l1;
- $l3 = strlen($data)-$l2-$l1;
- $this->o_contents($this->numObj,'add',array('Length1'=>$l1,'Length2'=>$l2,'Length3'=>$l3));
- } else if ($fbtype=='ttf'){
- $l1 = strlen($data);
- $this->o_contents($this->numObj,'add',array('Length1'=>$l1));
- }
-
-
- // tell the font object about all this new stuff
- $tmp = array('BaseFont'=>$adobeFontName,'Widths'=>$widthid
- ,'FirstChar'=>$firstChar,'LastChar'=>$lastChar
- ,'FontDescriptor'=>$fontDescriptorId);
- if ($fbtype=='ttf'){
- $tmp['SubType']='TrueType';
- }
- $this->addMessage('adding extra info to font.('.$fontObj.')');
- foreach($tmp as $fk=>$fv){
- $this->addMessage($fk." : ".$fv);
- }
- $this->o_font($fontObj,'add',$tmp);
-
- } else {
- $this->addMessage('selectFont: pfb or ttf file not found, ok if this is one of the 14 standard fonts');
- }
-
-
- // also set the differences here, note that this means that these will take effect only the
- //first time that a font is selected, else they are ignored
- if (isset($options['differences'])){
- $this->fonts[$fontName]['differences']=$options['differences'];
- }
- }
- }
- if ($set && isset($this->fonts[$fontName])){
- // so if for some reason the font was not set in the last one then it will not be selected
- $this->currentBaseFont=$fontName;
- // the next line means that if a new font is selected, then the current text state will be
- // applied to it as well.
- $this->setCurrentFont();
- }
- return $this->currentFontNum;
-}
-
-/**
-* sets up the current font, based on the font families, and the current text state
-* note that this system is quite flexible, a <<b>><<i>> font can be completely different to a
-* <<i>><<b>> font, and even <<b>><<b>> will have to be defined within the family to have meaning
-* This function is to be called whenever the currentTextState is changed, it will update
-* the currentFont setting to whatever the appropriatte family one is.
-* If the user calls selectFont themselves then that will reset the currentBaseFont, and the currentFont
-* This function will change the currentFont to whatever it should be, but will not change the
-* currentBaseFont.
-*
-* @access private
-*/
-function setCurrentFont(){
- if (strlen($this->currentBaseFont)==0){
- // then assume an initial font
- $this->selectFont('./fonts/Helvetica.afm');
- }
- $cf = substr($this->currentBaseFont,strrpos($this->currentBaseFont,'/')+1);
- if (strlen($this->currentTextState)
- && isset($this->fontFamilies[$cf])
- && isset($this->fontFamilies[$cf][$this->currentTextState])){
- // then we are in some state or another
- // and this font has a family, and the current setting exists within it
- // select the font, then return it
- $nf = substr($this->currentBaseFont,0,strrpos($this->currentBaseFont,'/')+1).$this->fontFamilies[$cf][$this->currentTextState];
- $this->selectFont($nf,'',0);
- $this->currentFont = $nf;
- $this->currentFontNum = $this->fonts[$nf]['fontNum'];
- } else {
- // the this font must not have the right family member for the current state
- // simply assume the base font
- $this->currentFont = $this->currentBaseFont;
- $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum'];
- }
-}
-
-/**
-* function for the user to find out what the ID is of the first page that was created during
-* startup - useful if they wish to add something to it later.
-*/
-function getFirstPageId(){
- return $this->firstPageId;
-}
-
-/**
-* add content to the currently active object
-*
-* @access private
-*/
-function addContent($content){
- $this->objects[$this->currentContents]['c'].=$content;
-}
-
-/**
-* sets the colour for fill operations
-*/
-function setColor($r,$g,$b,$force=0){
- if ($r>=0 && ($force || $r!=$this->currentColour['r'] || $g!=$this->currentColour['g'] || $b!=$this->currentColour['b'])){
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$r).' '.sprintf('%.3f',$g).' '.sprintf('%.3f',$b).' rg';
- $this->currentColour=array('r'=>$r,'g'=>$g,'b'=>$b);
- }
-}
-
-/**
-* sets the colour for stroke operations
-*/
-function setStrokeColor($r,$g,$b,$force=0){
- if ($r>=0 && ($force || $r!=$this->currentStrokeColour['r'] || $g!=$this->currentStrokeColour['g'] || $b!=$this->currentStrokeColour['b'])){
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$r).' '.sprintf('%.3f',$g).' '.sprintf('%.3f',$b).' RG';
- $this->currentStrokeColour=array('r'=>$r,'g'=>$g,'b'=>$b);
- }
-}
-
-/**
-* draw a line from one set of coordinates to another
-*/
-function line($x1,$y1,$x2,$y2){
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' m '.sprintf('%.3f',$x2).' '.sprintf('%.3f',$y2).' l S';
-}
-
-/**
-* draw a bezier curve based on 4 control points
-*/
-function curve($x0,$y0,$x1,$y1,$x2,$y2,$x3,$y3){
- // in the current line style, draw a bezier curve from (x0,y0) to (x3,y3) using the other two points
- // as the control points for the curve.
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x0).' '.sprintf('%.3f',$y0).' m '.sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1);
- $this->objects[$this->currentContents]['c'].= ' '.sprintf('%.3f',$x2).' '.sprintf('%.3f',$y2).' '.sprintf('%.3f',$x3).' '.sprintf('%.3f',$y3).' c S';
-}
-
-/**
-* draw a part of an ellipse
-*/
-function partEllipse($x0,$y0,$astart,$afinish,$r1,$r2=0,$angle=0,$nSeg=8){
- $this->ellipse($x0,$y0,$r1,$r2,$angle,$nSeg,$astart,$afinish,0);
-}
-
-/**
-* draw a filled ellipse
-*/
-function filledEllipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360){
- return $this->ellipse($x0,$y0,$r1,$r2=0,$angle,$nSeg,$astart,$afinish,1,1);
-}
-
-/**
-* draw an ellipse
-* note that the part and filled ellipse are just special cases of this function
-*
-* draws an ellipse in the current line style
-* centered at $x0,$y0, radii $r1,$r2
-* if $r2 is not set, then a circle is drawn
-* nSeg is not allowed to be less than 2, as this will simply draw a line (and will even draw a
-* pretty crappy shape at 2, as we are approximating with bezier curves.
-*/
-function ellipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360,$close=1,$fill=0){
- if ($r1==0){
- return;
- }
- if ($r2==0){
- $r2=$r1;
- }
- if ($nSeg<2){
- $nSeg=2;
- }
-
- $astart = deg2rad((float)$astart);
- $afinish = deg2rad((float)$afinish);
- $totalAngle =$afinish-$astart;
-
- $dt = $totalAngle/$nSeg;
- $dtm = $dt/3;
-
- if ($angle != 0){
- $a = -1*deg2rad((float)$angle);
- $tmp = "\n q ";
- $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';
- $tmp .= sprintf('%.3f',$x0).' '.sprintf('%.3f',$y0).' cm';
- $this->objects[$this->currentContents]['c'].= $tmp;
- $x0=0;
- $y0=0;
- }
-
- $t1 = $astart;
- $a0 = $x0+$r1*cos($t1);
- $b0 = $y0+$r2*sin($t1);
- $c0 = -$r1*sin($t1);
- $d0 = $r2*cos($t1);
-
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$a0).' '.sprintf('%.3f',$b0).' m ';
- for ($i=1;$i<=$nSeg;$i++){
- // draw this bit of the total curve
- $t1 = $i*$dt+$astart;
- $a1 = $x0+$r1*cos($t1);
- $b1 = $y0+$r2*sin($t1);
- $c1 = -$r1*sin($t1);
- $d1 = $r2*cos($t1);
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',($a0+$c0*$dtm)).' '.sprintf('%.3f',($b0+$d0*$dtm));
- $this->objects[$this->currentContents]['c'].= ' '.sprintf('%.3f',($a1-$c1*$dtm)).' '.sprintf('%.3f',($b1-$d1*$dtm)).' '.sprintf('%.3f',$a1).' '.sprintf('%.3f',$b1).' c';
- $a0=$a1;
- $b0=$b1;
- $c0=$c1;
- $d0=$d1;
- }
- if ($fill){
- $this->objects[$this->currentContents]['c'].=' f';
- } else {
- if ($close){
- $this->objects[$this->currentContents]['c'].=' s'; // small 's' signifies closing the path as well
- } else {
- $this->objects[$this->currentContents]['c'].=' S';
- }
- }
- if ($angle !=0){
- $this->objects[$this->currentContents]['c'].=' Q';
- }
-}
-
-/**
-* this sets the line drawing style.
-* width, is the thickness of the line in user units
-* cap is the type of cap to put on the line, values can be 'butt','round','square'
-* where the diffference between 'square' and 'butt' is that 'square' projects a flat end past the
-* end of the line.
-* join can be 'miter', 'round', 'bevel'
-* dash is an array which sets the dash pattern, is a series of length values, which are the lengths of the
-* on and off dashes.
-* (2) represents 2 on, 2 off, 2 on , 2 off ...
-* (2,1) is 2 on, 1 off, 2 on, 1 off.. etc
-* phase is a modifier on the dash pattern which is used to shift the point at which the pattern starts.
-*/
-function setLineStyle($width=1,$cap='',$join='',$dash='',$phase=0){
-
- // this is quite inefficient in that it sets all the parameters whenever 1 is changed, but will fix another day
- $string = '';
- if ($width>0){
- $string.= $width.' w';
- }
- $ca = array('butt'=>0,'round'=>1,'square'=>2);
- if (isset($ca[$cap])){
- $string.= ' '.$ca[$cap].' J';
- }
- $ja = array('miter'=>0,'round'=>1,'bevel'=>2);
- if (isset($ja[$join])){
- $string.= ' '.$ja[$join].' j';
- }
- if (is_array($dash)){
- $string.= ' [';
- foreach ($dash as $len){
- $string.=' '.$len;
- }
- $string.= ' ] '.$phase.' d';
- }
- $this->currentLineStyle = $string;
- $this->objects[$this->currentContents]['c'].="\n".$string;
-}
-
-/**
-* draw a polygon, the syntax for this is similar to the GD polygon command
-*/
-function polygon($p,$np,$f=0){
- $this->objects[$this->currentContents]['c'].="\n";
- $this->objects[$this->currentContents]['c'].=sprintf('%.3f',$p[0]).' '.sprintf('%.3f',$p[1]).' m ';
- for ($i=2;$i<$np*2;$i=$i+2){
- $this->objects[$this->currentContents]['c'].= sprintf('%.3f',$p[$i]).' '.sprintf('%.3f',$p[$i+1]).' l ';
- }
- if ($f==1){
- $this->objects[$this->currentContents]['c'].=' f';
- } else {
- $this->objects[$this->currentContents]['c'].=' S';
- }
-}
-
-/**
-* a filled rectangle, note that it is the width and height of the rectangle which are the secondary paramaters, not
-* the coordinates of the upper-right corner
-*/
-function filledRectangle($x1,$y1,$width,$height){
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' '.sprintf('%.3f',$width).' '.sprintf('%.3f',$height).' re f';
-}
-
-/**
-* draw a rectangle, note that it is the width and height of the rectangle which are the secondary paramaters, not
-* the coordinates of the upper-right corner
-*/
-function rectangle($x1,$y1,$width,$height){
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' '.sprintf('%.3f',$width).' '.sprintf('%.3f',$height).' re S';
-}
-
-/**
-* add a new page to the document
-* this also makes the new page the current active object
-*/
-function newPage($insert=0,$id=0,$pos='after'){
-
- // if there is a state saved, then go up the stack closing them
- // then on the new page, re-open them with the right setings
-
- if ($this->nStateStack){
- for ($i=$this->nStateStack;$i>=1;$i--){
- $this->restoreState($i);
- }
- }
-
- $this->numObj++;
- if ($insert){
- // the id from the ezPdf class is the od of the contents of the page, not the page object itself
- // query that object to find the parent
- $rid = $this->objects[$id]['onPage'];
- $opt= array('rid'=>$rid,'pos'=>$pos);
- $this->o_page($this->numObj,'new',$opt);
- } else {
- $this->o_page($this->numObj,'new');
- }
- // if there is a stack saved, then put that onto the page
- if ($this->nStateStack){
- for ($i=1;$i<=$this->nStateStack;$i++){
- $this->saveState($i);
- }
- }
- // and if there has been a stroke or fill colour set, then transfer them
- if ($this->currentColour['r']>=0){
- $this->setColor($this->currentColour['r'],$this->currentColour['g'],$this->currentColour['b'],1);
- }
- if ($this->currentStrokeColour['r']>=0){
- $this->setStrokeColor($this->currentStrokeColour['r'],$this->currentStrokeColour['g'],$this->currentStrokeColour['b'],1);
- }
-
- // if there is a line style set, then put this in too
- if (strlen($this->currentLineStyle)){
- $this->objects[$this->currentContents]['c'].="\n".$this->currentLineStyle;
- }
-
- // the call to the o_page object set currentContents to the present page, so this can be returned as the page id
- return $this->currentContents;
-}
-
-/**
-* output the pdf code, streaming it to the browser
-* the relevant headers are set so that hopefully the browser will recognise it
-*/
-function stream($options=''){
- // setting the options allows the adjustment of the headers
- // values at the moment are:
- // 'Content-Disposition'=>'filename' - sets the filename, though not too sure how well this will
- // work as in my trial the browser seems to use the filename of the php file with .pdf on the end
- // 'Accept-Ranges'=>1 or 0 - if this is not set to 1, then this header is not included, off by default
- // this header seems to have caused some problems despite tha fact that it is supposed to solve
- // them, so I am leaving it off by default.
- // 'compress'=> 1 or 0 - apply content stream compression, this is on (1) by default
- if (!is_array($options)){
- $options=array();
- }
- if ( isset($options['compress']) && $options['compress']==0){
- $tmp = $this->output(1);
- } else {
- $tmp = $this->output();
- }
- header("Content-type: application/pdf");
- header("Content-Length: ".strlen(ltrim($tmp)));
- $fileName = (isset($options['Content-Disposition'])?$options['Content-Disposition']:'file.pdf');
- header("Content-Disposition: inline; filename=".$fileName);
- if (isset($options['Accept-Ranges']) && $options['Accept-Ranges']==1){
- header("Accept-Ranges: ".strlen(ltrim($tmp)));
- }
- echo ltrim($tmp);
-}
-
-/**
-* return the height in units of the current font in the given size
-*/
-function getFontHeight($size){
- if (!$this->numFonts){
- $this->selectFont('./fonts/Helvetica');
- }
- // for the current font, and the given size, what is the height of the font in user units
- $h = $this->fonts[$this->currentFont]['FontBBox'][3]-$this->fonts[$this->currentFont]['FontBBox'][1];
- return $size*$h/1000;
-}
-
-/**
-* return the font decender, this will normally return a negative number
-* if you add this number to the baseline, you get the level of the bottom of the font
-* it is in the pdf user units
-*/
-function getFontDecender($size){
- // note that this will most likely return a negative value
- if (!$this->numFonts){
- $this->selectFont('./fonts/Helvetica');
- }
- $h = $this->fonts[$this->currentFont]['FontBBox'][1];
- return $size*$h/1000;
-}
-
-/**
-* filter the text, this is applied to all text just before being inserted into the pdf document
-* it escapes the various things that need to be escaped, and so on
-*
-* @access private
-*/
-function filterText($text){
- $text = str_replace('\\','\\\\',$text);
- $text = str_replace('(','\(',$text);
- $text = str_replace(')','\)',$text);
- $text = str_replace('&lt;','<',$text);
- $text = str_replace('&gt;','>',$text);
- $text = str_replace('&#039;','\'',$text);
- $text = str_replace('&quot;','"',$text);
- $text = str_replace('&amp;','&',$text);
-
- return $text;
-}
-
-/**
-* given a start position and information about how text is to be laid out, calculate where
-* on the page the text will end
-*
-* @access private
-*/
-function PRVTgetTextPosition($x,$y,$angle,$size,$wa,$text){
- // given this information return an array containing x and y for the end position as elements 0 and 1
- $w = $this->getTextWidth($size,$text);
- // need to adjust for the number of spaces in this text
- $words = explode(' ',$text);
- $nspaces=count($words)-1;
- $w += $wa*$nspaces;
- $a = deg2rad((float)$angle);
- return array(cos($a)*$w+$x,-sin($a)*$w+$y);
-}
-
-/**
-* wrapper function for PRVTcheckTextDirective1
-*
-* @access private
-*/
-function PRVTcheckTextDirective(&$text,$i,&$f){
- $x=0;
- $y=0;
- return $this->PRVTcheckTextDirective1($text,$i,$f,0,$x,$y);
-}
-
-/**
-* checks if the text stream contains a control directive
-* if so then makes some changes and returns the number of characters involved in the directive
-* this has been re-worked to include everything neccesary to fins the current writing point, so that
-* the location can be sent to the callback function if required
-* if the directive does not require a font change, then $f should be set to 0
-*
-* @access private
-*/
-function PRVTcheckTextDirective1(&$text,$i,&$f,$final,&$x,&$y,$size=0,$angle=0,$wordSpaceAdjust=0){
- $directive = 0;
- $j=$i;
- if ($text[$j]=='<'){
- $j++;
- switch($text[$j]){
- case '/':
- $j++;
- if (strlen($text) <= $j){
- return $directive;
- }
- switch($text[$j]){
- case 'b':
- case 'i':
- $j++;
- if ($text[$j]=='>'){
- $p = strrpos($this->currentTextState,$text[$j-1]);
- if ($p !== false){
- // then there is one to remove
- $this->currentTextState = substr($this->currentTextState,0,$p).substr($this->currentTextState,$p+1);
- }
- $directive=$j-$i+1;
- }
- break;
- case 'c':
- // this this might be a callback function
- $j++;
- $k = strpos($text,'>',$j);
- if ($k!==false && $text[$j]==':'){
- // then this will be treated as a callback directive
- $directive = $k-$i+1;
- $f=0;
- // split the remainder on colons to get the function name and the paramater
- $tmp = substr($text,$j+1,$k-$j-1);
- $b1 = strpos($tmp,':');
- if ($b1!==false){
- $func = substr($tmp,0,$b1);
- $parm = substr($tmp,$b1+1);
- } else {
- $func=$tmp;
- $parm='';
- }
- if (!isset($func) || !strlen(trim($func))){
- $directive=0;
- } else {
- // only call the function if this is the final call
- if ($final){
- // need to assess the text position, calculate the text width to this point
- // can use getTextWidth to find the text width I think
- $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i));
- $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'end','p'=>$parm,'nCallback'=>$this->nCallback);
- $x=$tmp[0];
- $y=$tmp[1];
- $ret = $this->$func($info);
- if (is_array($ret)){
- // then the return from the callback function could set the position, to start with, later will do font colour, and font
- foreach($ret as $rk=>$rv){
- switch($rk){
- case 'x':
- case 'y':
- $$rk=$rv;
- break;
- }
- }
- }
- // also remove from to the stack
- // for simplicity, just take from the end, fix this another day
- $this->nCallback--;
- if ($this->nCallback<0){
- $this->nCallBack=0;
- }
- }
- }
- }
- break;
- }
- break;
- case 'b':
- case 'i':
- $j++;
- if ($text[$j]=='>'){
- $this->currentTextState.=$text[$j-1];
- $directive=$j-$i+1;
- }
- break;
- case 'C':
- $noClose=1;
- case 'c':
- // this this might be a callback function
- $j++;
- $k = strpos($text,'>',$j);
- if ($k!==false && $text[$j]==':'){
- // then this will be treated as a callback directive
- $directive = $k-$i+1;
- $f=0;
- // split the remainder on colons to get the function name and the paramater
-// $bits = explode(':',substr($text,$j+1,$k-$j-1));
- $tmp = substr($text,$j+1,$k-$j-1);
- $b1 = strpos($tmp,':');
- if ($b1!==false){
- $func = substr($tmp,0,$b1);
- $parm = substr($tmp,$b1+1);
- } else {
- $func=$tmp;
- $parm='';
- }
- if (!isset($func) || !strlen(trim($func))){
- $directive=0;
- } else {
- // only call the function if this is the final call, ie, the one actually doing printing, not measurement
- if ($final){
- // need to assess the text position, calculate the text width to this point
- // can use getTextWidth to find the text width I think
- // also add the text height and decender
- $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i));
- $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'start','p'=>$parm,'f'=>$func,'height'=>$this->getFontHeight($size),'decender'=>$this->getFontDecender($size));
- $x=$tmp[0];
- $y=$tmp[1];
- if (!isset($noClose) || !$noClose){
- // only add to the stack if this is a small 'c', therefore is a start-stop pair
- $this->nCallback++;
- $info['nCallback']=$this->nCallback;
- $this->callback[$this->nCallback]=$info;
- }
- $ret = $this->$func($info);
- if (is_array($ret)){
- // then the return from the callback function could set the position, to start with, later will do font colour, and font
- foreach($ret as $rk=>$rv){
- switch($rk){
- case 'x':
- case 'y':
- $$rk=$rv;
- break;
- }
- }
- }
- }
- }
- }
- break;
- }
- }
- return $directive;
-}
-
-/**
-* add text to the document, at a specified location, size and angle on the page
-*/
-function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
- if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}
-
- // if there are any open callbacks, then they should be called, to show the start of the line
- if ($this->nCallback>0){
- for ($i=$this->nCallback;$i>0;$i--){
- // call each function
- $info = array('x'=>$x,'y'=>$y,'angle'=>$angle,'status'=>'sol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']);
- $func = $this->callback[$i]['f'];
- $this->$func($info);
- }
- }
- if ($angle==0){
- $this->objects[$this->currentContents]['c'].="\n".'BT '.sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Td';
- } else {
- $a = deg2rad((float)$angle);
- $tmp = "\n".'BT ';
- $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';
- $tmp .= sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Tm';
- $this->objects[$this->currentContents]['c'] .= $tmp;
- }
- if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){
- $this->wordSpaceAdjust=$wordSpaceAdjust;
- $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw';
- }
- $len=strlen($text);
- $start=0;
- for ($i=0;$i<$len;$i++){
- $f=1;
- $directive = $this->PRVTcheckTextDirective($text,$i,$f);
- if ($directive){
- // then we should write what we need to
- if ($i>$start){
- $part = substr($text,$start,$i-$start);
- $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf ';
- $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj';
- }
- if ($f){
- // then there was nothing drastic done here, restore the contents
- $this->setCurrentFont();
- } else {
- $this->objects[$this->currentContents]['c'] .= ' ET';
- $f=1;
- $xp=$x;
- $yp=$y;
- $directive = $this->PRVTcheckTextDirective1($text,$i,$f,1,$xp,$yp,$size,$angle,$wordSpaceAdjust);
-
- // restart the text object
- if ($angle==0){
- $this->objects[$this->currentContents]['c'].="\n".'BT '.sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Td';
- } else {
- $a = deg2rad((float)$angle);
- $tmp = "\n".'BT ';
- $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';
- $tmp .= sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Tm';
- $this->objects[$this->currentContents]['c'] .= $tmp;
- }
- if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){
- $this->wordSpaceAdjust=$wordSpaceAdjust;
- $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw';
- }
- }
- // and move the writing point to the next piece of text
- $i=$i+$directive-1;
- $start=$i+1;
- }
-
- }
- if ($start<$len){
- $part = substr($text,$start);
- $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf ';
- $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj';
- }
- $this->objects[$this->currentContents]['c'].=' ET';
-
- // if there are any open callbacks, then they should be called, to show the end of the line
- if ($this->nCallback>0){
- for ($i=$this->nCallback;$i>0;$i--){
- // call each function
- $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,$text);
- $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'eol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']);
- $func = $this->callback[$i]['f'];
- $this->$func($info);
- }
- }
-
-}
-
-/**
-* calculate how wide a given text string will be on a page, at a given size.
-* this can be called externally, but is alse used by the other class functions
-*/
-function getTextWidth($size,$text){
- // this function should not change any of the settings, though it will need to
- // track any directives which change during calculation, so copy them at the start
- // and put them back at the end.
- $store_currentTextState = $this->currentTextState;
-
- if (!$this->numFonts){
- $this->selectFont('./fonts/Helvetica');
- }
-
- // converts a number or a float to a string so it can get the width
- $text = "$text";
-
- // hmm, this is where it all starts to get tricky - use the font information to
- // calculate the width of each character, add them up and convert to user units
- $w=0;
- $len=strlen($text);
- $cf = $this->currentFont;
- for ($i=0;$i<$len;$i++){
- $f=1;
- $directive = $this->PRVTcheckTextDirective($text,$i,$f);
- if ($directive){
- if ($f){
- $this->setCurrentFont();
- $cf = $this->currentFont;
- }
- $i=$i+$directive-1;
- } else {
- $char=ord($text[$i]);
- if (isset($this->fonts[$cf]['differences'][$char])){
- // then this character is being replaced by another
- $name = $this->fonts[$cf]['differences'][$char];
- if (isset($this->fonts[$cf]['C'][$name]['WX'])){
- $w+=$this->fonts[$cf]['C'][$name]['WX'];
- }
- } else if (isset($this->fonts[$cf]['C'][$char]['WX'])){
- $w+=$this->fonts[$cf]['C'][$char]['WX'];
- }
- }
- }
-
- $this->currentTextState = $store_currentTextState;
- $this->setCurrentFont();
-
- return $w*$size/1000;
-}
-
-/**
-* do a part of the calculation for sorting out the justification of the text
-*
-* @access private
-*/
-function PRVTadjustWrapText($text,$actual,$width,&$x,&$adjust,$justification){
- switch ($justification){
- case 'left':
- return;
- break;
- case 'right':
- $x+=$width-$actual;
- break;
- case 'center':
- case 'centre':
- $x+=($width-$actual)/2;
- break;
- case 'full':
- // count the number of words
- $words = explode(' ',$text);
- $nspaces=count($words)-1;
- if ($nspaces>0){
- $adjust = ($width-$actual)/$nspaces;
- } else {
- $adjust=0;
- }
- break;
- }
-}
-
-/**
-* add text to the page, but ensure that it fits within a certain width
-* if it does not fit then put in as much as possible, splitting at word boundaries
-* and return the remainder.
-* justification and angle can also be specified for the text
-*/
-function addTextWrap($x,$y,$width,$size,$text,$justification='left',$angle=0,$test=0){
- // this will display the text, and if it goes beyond the width $width, will backtrack to the
- // previous space or hyphen, and return the remainder of the text.
-
- // $justification can be set to 'left','right','center','centre','full'
-
- // need to store the initial text state, as this will change during the width calculation
- // but will need to be re-set before printing, so that the chars work out right
- $store_currentTextState = $this->currentTextState;
-
- if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}
- if ($width<=0){
- // error, pretend it printed ok, otherwise risking a loop
- return '';
- }
- $w=0;
- $break=0;
- $breakWidth=0;
- $len=strlen($text);
- $cf = $this->currentFont;
- $tw = $width/$size*1000;
- for ($i=0;$i<$len;$i++){
- $f=1;
- $directive = $this->PRVTcheckTextDirective($text,$i,$f);
- if ($directive){
- if ($f){
- $this->setCurrentFont();
- $cf = $this->currentFont;
- }
- $i=$i+$directive-1;
- } else {
- $cOrd = ord($text[$i]);
- if (isset($this->fonts[$cf]['differences'][$cOrd])){
- // then this character is being replaced by another
- $cOrd2 = $this->fonts[$cf]['differences'][$cOrd];
- } else {
- $cOrd2 = $cOrd;
- }
-
- if (isset($this->fonts[$cf]['C'][$cOrd2]['WX'])){
- $w+=$this->fonts[$cf]['C'][$cOrd2]['WX'];
- }
- if ($w>$tw){
- // then we need to truncate this line
- if ($break>0){
- // then we have somewhere that we can split :)
- if ($text[$break]==' '){
- $tmp = substr($text,0,$break);
- } else {
- $tmp = substr($text,0,$break+1);
- }
- $adjust=0;
- $this->PRVTadjustWrapText($tmp,$breakWidth,$width,$x,$adjust,$justification);
-
- // reset the text state
- $this->currentTextState = $store_currentTextState;
- $this->setCurrentFont();
- if (!$test){
- $this->addText($x,$y,$size,$tmp,$angle,$adjust);
- }
- return substr($text,$break+1);
- } else {
- // just split before the current character
- $tmp = substr($text,0,$i);
- $adjust=0;
- $ctmp=ord($text[$i]);
- if (isset($this->fonts[$cf]['differences'][$ctmp])){
- $ctmp=$this->fonts[$cf]['differences'][$ctmp];
- }
- $tmpw=($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000;
- $this->PRVTadjustWrapText($tmp,$tmpw,$width,$x,$adjust,$justification);
- // reset the text state
- $this->currentTextState = $store_currentTextState;
- $this->setCurrentFont();
- if (!$test){
- $this->addText($x,$y,$size,$tmp,$angle,$adjust);
- }
- return substr($text,$i);
- }
- }
- if ($text[$i]=='-'){
- $break=$i;
- $breakWidth = $w*$size/1000;
- }
- if ($text[$i]==' '){
- $break=$i;
- $ctmp=ord($text[$i]);
- if (isset($this->fonts[$cf]['differences'][$ctmp])){
- $ctmp=$this->fonts[$cf]['differences'][$ctmp];
- }
- $breakWidth = ($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000;
- }
- }
- }
- // then there was no need to break this line
- if ($justification=='full'){
- $justification='left';
- }
- $adjust=0;
- $tmpw=$w*$size/1000;
- $this->PRVTadjustWrapText($text,$tmpw,$width,$x,$adjust,$justification);
- // reset the text state
- $this->currentTextState = $store_currentTextState;
- $this->setCurrentFont();
- if (!$test){
- $this->addText($x,$y,$size,$text,$angle,$adjust,$angle);
- }
- return '';
-}
-
-/**
-* this will be called at a new page to return the state to what it was on the
-* end of the previous page, before the stack was closed down
-* This is to get around not being able to have open 'q' across pages
-*
-*/
-function saveState($pageEnd=0){
- if ($pageEnd){
- // this will be called at a new page to return the state to what it was on the
- // end of the previous page, before the stack was closed down
- // This is to get around not being able to have open 'q' across pages
- $opt = $this->stateStack[$pageEnd]; // ok to use this as stack starts numbering at 1
- $this->setColor($opt['col']['r'],$opt['col']['g'],$opt['col']['b'],1);
- $this->setStrokeColor($opt['str']['r'],$opt['str']['g'],$opt['str']['b'],1);
- $this->objects[$this->currentContents]['c'].="\n".$opt['lin'];
-// $this->currentLineStyle = $opt['lin'];
- } else {
- $this->nStateStack++;
- $this->stateStack[$this->nStateStack]=array(
- 'col'=>$this->currentColour
- ,'str'=>$this->currentStrokeColour
- ,'lin'=>$this->currentLineStyle
- );
- }
- $this->objects[$this->currentContents]['c'].="\nq";
-}
-
-/**
-* restore a previously saved state
-*/
-function restoreState($pageEnd=0){
- if (!$pageEnd){
- $n = $this->nStateStack;
- $this->currentColour = $this->stateStack[$n]['col'];
- $this->currentStrokeColour = $this->stateStack[$n]['str'];
- $this->objects[$this->currentContents]['c'].="\n".$this->stateStack[$n]['lin'];
- $this->currentLineStyle = $this->stateStack[$n]['lin'];
- unset($this->stateStack[$n]);
- $this->nStateStack--;
- }
- $this->objects[$this->currentContents]['c'].="\nQ";
-}
-
-/**
-* make a loose object, the output will go into this object, until it is closed, then will revert to
-* the current one.
-* this object will not appear until it is included within a page.
-* the function will return the object number
-*/
-function openObject(){
- $this->nStack++;
- $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage);
- // add a new object of the content type, to hold the data flow
- $this->numObj++;
- $this->o_contents($this->numObj,'new');
- $this->currentContents=$this->numObj;
- $this->looseObjects[$this->numObj]=1;
-
- return $this->numObj;
-}
-
-/**
-* open an existing object for editing
-*/
-function reopenObject($id){
- $this->nStack++;
- $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage);
- $this->currentContents=$id;
- // also if this object is the primary contents for a page, then set the current page to its parent
- if (isset($this->objects[$id]['onPage'])){
- $this->currentPage = $this->objects[$id]['onPage'];
- }
-}
-
-/**
-* close an object
-*/
-function closeObject(){
- // close the object, as long as there was one open in the first place, which will be indicated by
- // an objectId on the stack.
- if ($this->nStack>0){
- $this->currentContents=$this->stack[$this->nStack]['c'];
- $this->currentPage=$this->stack[$this->nStack]['p'];
- $this->nStack--;
- // easier to probably not worry about removing the old entries, they will be overwritten
- // if there are new ones.
- }
-}
-
-/**
-* stop an object from appearing on pages from this point on
-*/
-function stopObject($id){
- // if an object has been appearing on pages up to now, then stop it, this page will
- // be the last one that could contian it.
- if (isset($this->addLooseObjects[$id])){
- $this->addLooseObjects[$id]='';
- }
-}
-
-/**
-* after an object has been created, it wil only show if it has been added, using this function.
-*/
-function addObject($id,$options='add'){
- // add the specified object to the page
- if (isset($this->looseObjects[$id]) && $this->currentContents!=$id){
- // then it is a valid object, and it is not being added to itself
- switch($options){
- case 'all':
- // then this object is to be added to this page (done in the next block) and
- // all future new pages.
- $this->addLooseObjects[$id]='all';
- case 'add':
- if (isset($this->objects[$this->currentContents]['onPage'])){
- // then the destination contents is the primary for the page
- // (though this object is actually added to that page)
- $this->o_page($this->objects[$this->currentContents]['onPage'],'content',$id);
- }
- break;
- case 'even':
- $this->addLooseObjects[$id]='even';
- $pageObjectId=$this->objects[$this->currentContents]['onPage'];
- if ($this->objects[$pageObjectId]['info']['pageNum']%2==0){
- $this->addObject($id); // hacky huh :)
- }
- break;
- case 'odd':
- $this->addLooseObjects[$id]='odd';
- $pageObjectId=$this->objects[$this->currentContents]['onPage'];
- if ($this->objects[$pageObjectId]['info']['pageNum']%2==1){
- $this->addObject($id); // hacky huh :)
- }
- break;
- case 'next':
- $this->addLooseObjects[$id]='all';
- break;
- case 'nexteven':
- $this->addLooseObjects[$id]='even';
- break;
- case 'nextodd':
- $this->addLooseObjects[$id]='odd';
- break;
- }
- }
-}
-
-/**
-* add content to the documents info object
-*/
-function addInfo($label,$value=0){
- // this will only work if the label is one of the valid ones.
- // modify this so that arrays can be passed as well.
- // if $label is an array then assume that it is key=>value pairs
- // else assume that they are both scalar, anything else will probably error
- if (is_array($label)){
- foreach ($label as $l=>$v){
- $this->o_info($this->infoObject,$l,$v);
- }
- } else {
- $this->o_info($this->infoObject,$label,$value);
- }
-}
-
-/**
-* set the viewer preferences of the document, it is up to the browser to obey these.
-*/
-function setPreferences($label,$value=0){
- // this will only work if the label is one of the valid ones.
- if (is_array($label)){
- foreach ($label as $l=>$v){
- $this->o_catalog($this->catalogId,'viewerPreferences',array($l=>$v));
- }
- } else {
- $this->o_catalog($this->catalogId,'viewerPreferences',array($label=>$value));
- }
-}
-
-/**
-* extract an integer from a position in a byte stream
-*
-* @access private
-*/
-function PRVT_getBytes(&$data,$pos,$num){
- // return the integer represented by $num bytes from $pos within $data
- $ret=0;
- for ($i=0;$i<$num;$i++){
- $ret=$ret*256;
- $ret+=ord($data[$pos+$i]);
- }
- return $ret;
-}
-
-/**
-* add a PNG image into the document, from a file
-* this should work with remote files
-*/
-function addPngFromFile($file,$x,$y,$w=0,$h=0){
- // read in a png file, interpret it, then add to the system
- $error=0;
- $tmp = get_magic_quotes_runtime();
- set_magic_quotes_runtime(0);
- $fp = @fopen($file,'rb');
- if ($fp){
- $data='';
- while(!feof($fp)){
- $data .= fread($fp,1024);
- }
- fclose($fp);
- } else {
- $error = 1;
- $errormsg = 'trouble opening file: '.$file;
- }
- set_magic_quotes_runtime($tmp);
-
- if (!$error){
- $header = chr(137).chr(80).chr(78).chr(71).chr(13).chr(10).chr(26).chr(10);
- if (substr($data,0,8)!=$header){
- $error=1;
- $errormsg = 'this file does not have a valid header';
- }
- }
-
- if (!$error){
- // set pointer
- $p = 8;
- $len = strlen($data);
- // cycle through the file, identifying chunks
- $haveHeader=0;
- $info=array();
- $idata='';
- $pdata='';
- while ($p<$len){
- $chunkLen = $this->PRVT_getBytes($data,$p,4);
- $chunkType = substr($data,$p+4,4);
-// echo $chunkType.' - '.$chunkLen.'<br>';
-
- switch($chunkType){
- case 'IHDR':
- // this is where all the file information comes from
- $info['width']=$this->PRVT_getBytes($data,$p+8,4);
- $info['height']=$this->PRVT_getBytes($data,$p+12,4);
- $info['bitDepth']=ord($data[$p+16]);
- $info['colorType']=ord($data[$p+17]);
- $info['compressionMethod']=ord($data[$p+18]);
- $info['filterMethod']=ord($data[$p+19]);
- $info['interlaceMethod']=ord($data[$p+20]);
-//print_r($info);
- $haveHeader=1;
- if ($info['compressionMethod']!=0){
- $error=1;
- $errormsg = 'unsupported compression method';
- }
- if ($info['filterMethod']!=0){
- $error=1;
- $errormsg = 'unsupported filter method';
- }
- break;
- case 'PLTE':
- $pdata.=substr($data,$p+8,$chunkLen);
- break;
- case 'IDAT':
- $idata.=substr($data,$p+8,$chunkLen);
- break;
- case 'tRNS':
- //this chunk can only occur once and it must occur after the PLTE chunk and before IDAT chunk
- //print "tRNS found, color type = ".$info['colorType']."<BR>";
- $transparency = array();
- if ($info['colorType'] == 3) { // indexed color, rbg
- /* corresponding to entries in the plte chunk
- Alpha for palette index 0: 1 byte
- Alpha for palette index 1: 1 byte
- ...etc...
- */
- // there will be one entry for each palette entry. up until the last non-opaque entry.
- // set up an array, stretching over all palette entries which will be o (opaque) or 1 (transparent)
- $transparency['type']='indexed';
- $numPalette = strlen($pdata)/3;
- $trans=0;
- for ($i=$chunkLen;$i>=0;$i--){
- if (ord($data[$p+8+$i])==0){
- $trans=$i;
- }
- }
- $transparency['data'] = $trans;
-
- } elseif($info['colorType'] == 0) { // grayscale
- /* corresponding to entries in the plte chunk
- Gray: 2 bytes, range 0 .. (2^bitdepth)-1
- */
-// $transparency['grayscale']=$this->PRVT_getBytes($data,$p+8,2); // g = grayscale
- $transparency['type']='indexed';
- $transparency['data'] = ord($data[$p+8+1]);
-
- } elseif($info['colorType'] == 2) { // truecolor
- /* corresponding to entries in the plte chunk
- Red: 2 bytes, range 0 .. (2^bitdepth)-1
- Green: 2 bytes, range 0 .. (2^bitdepth)-1
- Blue: 2 bytes, range 0 .. (2^bitdepth)-1
- */
- $transparency['r']=$this->PRVT_getBytes($data,$p+8,2); // r from truecolor
- $transparency['g']=$this->PRVT_getBytes($data,$p+10,2); // g from truecolor
- $transparency['b']=$this->PRVT_getBytes($data,$p+12,2); // b from truecolor
-
- } else {
- //unsupported transparency type
- }
- // KS End new code
- break;
- default:
- break;
- }
-
- $p += $chunkLen+12;
- }
-
- if(!$haveHeader){
- $error = 1;
- $errormsg = 'information header is missing';
- }
- if (isset($info['interlaceMethod']) && $info['interlaceMethod']){
- $error = 1;
- $errormsg = 'There appears to be no support for interlaced images in pdf.';
- }
- }
-
- if (!$error && $info['bitDepth'] > 8){
- $error = 1;
- $errormsg = 'only bit depth of 8 or less is supported';
- }
-
- if (!$error){
- if ($info['colorType']!=2 && $info['colorType']!=0 && $info['colorType']!=3){
- $error = 1;
- $errormsg = 'transparancey alpha channel not supported, transparency only supported for palette images.';
- } else {
- switch ($info['colorType']){
- case 3:
- $color = 'DeviceRGB';
- $ncolor=1;
- break;
- case 2:
- $color = 'DeviceRGB';
- $ncolor=3;
- break;
- case 0:
- $color = 'DeviceGray';
- $ncolor=1;
- break;
- }
- }
- }
- if ($error){
- $this->addMessage('PNG error - ('.$file.') '.$errormsg);
- return;
- }
- if ($w==0){
- $w=$h/$info['height']*$info['width'];
- }
- if ($h==0){
- $h=$w*$info['height']/$info['width'];
- }
-//print_r($info);
- // so this image is ok... add it in.
- $this->numImages++;
- $im=$this->numImages;
- $label='I'.$im;
- $this->numObj++;
-// $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$idata,'iw'=>$w,'ih'=>$h,'type'=>'png','ic'=>$info['width']));
- $options = array('label'=>$label,'data'=>$idata,'bitsPerComponent'=>$info['bitDepth'],'pdata'=>$pdata
- ,'iw'=>$info['width'],'ih'=>$info['height'],'type'=>'png','color'=>$color,'ncolor'=>$ncolor);
- if (isset($transparency)){
- $options['transparency']=$transparency;
- }
- $this->o_image($this->numObj,'new',$options);
-
- $this->objects[$this->currentContents]['c'].="\nq";
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$w)." 0 0 ".sprintf('%.3f',$h)." ".sprintf('%.3f',$x)." ".sprintf('%.3f',$y)." cm";
- $this->objects[$this->currentContents]['c'].="\n/".$label.' Do';
- $this->objects[$this->currentContents]['c'].="\nQ";
-}
-
-/**
-* add a JPEG image into the document, from a file
-*/
-function addJpegFromFile($img,$x,$y,$w=0,$h=0){
- // attempt to add a jpeg image straight from a file, using no GD commands
- // note that this function is unable to operate on a remote file.
-
- if (!file_exists($img)){
- return;
- }
-
- $tmp=getimagesize($img);
- $imageWidth=$tmp[0];
- $imageHeight=$tmp[1];
-
- if (isset($tmp['channels'])){
- $channels = $tmp['channels'];
- } else {
- $channels = 3;
- }
-
- if ($w<=0 && $h<=0){
- $w=$imageWidth;
- }
- if ($w==0){
- $w=$h/$imageHeight*$imageWidth;
- }
- if ($h==0){
- $h=$w*$imageHeight/$imageWidth;
- }
-
- $fp=fopen($img,'rb');
-
- $tmp = get_magic_quotes_runtime();
- set_magic_quotes_runtime(0);
- $data = fread($fp,filesize($img));
- set_magic_quotes_runtime($tmp);
-
- fclose($fp);
-
- $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight,$channels);
-}
-
-/**
-* add an image into the document, from a GD object
-* this function is not all that reliable, and I would probably encourage people to use
-* the file based functions
-*/
-function addImage(&$img,$x,$y,$w=0,$h=0,$quality=75){
- // add a new image into the current location, as an external object
- // add the image at $x,$y, and with width and height as defined by $w & $h
-
- // note that this will only work with full colour images and makes them jpg images for display
- // later versions could present lossless image formats if there is interest.
-
- // there seems to be some problem here in that images that have quality set above 75 do not appear
- // not too sure why this is, but in the meantime I have restricted this to 75.
- if ($quality>75){
- $quality=75;
- }
-
- // if the width or height are set to zero, then set the other one based on keeping the image
- // height/width ratio the same, if they are both zero, then give up :)
- $imageWidth=imagesx($img);
- $imageHeight=imagesy($img);
-
- if ($w<=0 && $h<=0){
- return;
- }
- if ($w==0){
- $w=$h/$imageHeight*$imageWidth;
- }
- if ($h==0){
- $h=$w*$imageHeight/$imageWidth;
- }
-
- // gotta get the data out of the img..
-
- // so I write to a temp file, and then read it back.. soo ugly, my apologies.
- $tmpDir='/tmp';
- $tmpName=tempnam($tmpDir,'img');
- imagejpeg($img,$tmpName,$quality);
- $fp=fopen($tmpName,'rb');
-
- $tmp = get_magic_quotes_runtime();
- set_magic_quotes_runtime(0);
- $fp = @fopen($tmpName,'rb');
- if ($fp){
- $data='';
- while(!feof($fp)){
- $data .= fread($fp,1024);
- }
- fclose($fp);
- } else {
- $error = 1;
- $errormsg = 'trouble opening file';
- }
-// $data = fread($fp,filesize($tmpName));
- set_magic_quotes_runtime($tmp);
-// fclose($fp);
- unlink($tmpName);
- $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight);
-}
-
-/**
-* common code used by the two JPEG adding functions
-*
-* @access private
-*/
-function addJpegImage_common(&$data,$x,$y,$w=0,$h=0,$imageWidth,$imageHeight,$channels=3){
- // note that this function is not to be called externally
- // it is just the common code between the GD and the file options
- $this->numImages++;
- $im=$this->numImages;
- $label='I'.$im;
- $this->numObj++;
- $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$data,'iw'=>$imageWidth,'ih'=>$imageHeight,'channels'=>$channels));
-
- $this->objects[$this->currentContents]['c'].="\nq";
- $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$w)." 0 0 ".sprintf('%.3f',$h)." ".sprintf('%.3f',$x)." ".sprintf('%.3f',$y)." cm";
- $this->objects[$this->currentContents]['c'].="\n/".$label.' Do';
- $this->objects[$this->currentContents]['c'].="\nQ";
-}
-
-/**
-* specify where the document should open when it first starts
-*/
-function openHere($style,$a=0,$b=0,$c=0){
- // this function will open the document at a specified page, in a specified style
- // the values for style, and the required paramters are:
- // 'XYZ' left, top, zoom
- // 'Fit'
- // 'FitH' top
- // 'FitV' left
- // 'FitR' left,bottom,right
- // 'FitB'
- // 'FitBH' top
- // 'FitBV' left
- $this->numObj++;
- $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c));
- $id = $this->catalogId;
- $this->o_catalog($id,'openHere',$this->numObj);
-}
-
-/**
-* create a labelled destination within the document
-*/
-function addDestination($label,$style,$a=0,$b=0,$c=0){
- // associates the given label with the destination, it is done this way so that a destination can be specified after
- // it has been linked to
- // styles are the same as the 'openHere' function
- $this->numObj++;
- $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c));
- $id = $this->numObj;
- // store the label->idf relationship, note that this means that labels can be used only once
- $this->destinations["$label"]=$id;
-}
-
-/**
-* define font families, this is used to initialize the font families for the default fonts
-* and for the user to add new ones for their fonts. The default bahavious can be overridden should
-* that be desired.
-*/
-function setFontFamily($family,$options=''){
- if (!is_array($options)){
- if ($family=='init'){
- // set the known family groups
- // these font families will be used to enable bold and italic markers to be included
- // within text streams. html forms will be used... <b></b> <i></i>
- $this->fontFamilies['Helvetica.afm']=array(
- 'b'=>'Helvetica-Bold.afm'
- ,'i'=>'Helvetica-Oblique.afm'
- ,'bi'=>'Helvetica-BoldOblique.afm'
- ,'ib'=>'Helvetica-BoldOblique.afm'
- );
- $this->fontFamilies['Courier.afm']=array(
- 'b'=>'Courier-Bold.afm'
- ,'i'=>'Courier-Oblique.afm'
- ,'bi'=>'Courier-BoldOblique.afm'
- ,'ib'=>'Courier-BoldOblique.afm'
- );
- $this->fontFamilies['Times-Roman.afm']=array(
- 'b'=>'Times-Bold.afm'
- ,'i'=>'Times-Italic.afm'
- ,'bi'=>'Times-BoldItalic.afm'
- ,'ib'=>'Times-BoldItalic.afm'
- );
- }
- } else {
- // the user is trying to set a font family
- // note that this can also be used to set the base ones to something else
- if (strlen($family)){
- $this->fontFamilies[$family] = $options;
- }
- }
-}
-
-/**
-* used to add messages for use in debugging
-*/
-function addMessage($message){
- $this->messages.=$message."\n";
-}
-
-/**
-* a few functions which should allow the document to be treated transactionally.
-*/
-function transaction($action){
- switch ($action){
- case 'start':
- // store all the data away into the checkpoint variable
- $data = get_object_vars($this);
- $this->checkpoint = $data;
- unset($data);
- break;
- case 'commit':
- if (is_array($this->checkpoint) && isset($this->checkpoint['checkpoint'])){
- $tmp = $this->checkpoint['checkpoint'];
- $this->checkpoint = $tmp;
- unset($tmp);
- } else {
- $this->checkpoint='';
- }
- break;
- case 'rewind':
- // do not destroy the current checkpoint, but move us back to the state then, so that we can try again
- if (is_array($this->checkpoint)){
- // can only abort if were inside a checkpoint
- $tmp = $this->checkpoint;
- foreach ($tmp as $k=>$v){
- if ($k != 'checkpoint'){
- $this->$k=$v;
- }
- }
- unset($tmp);
- }
- break;
- case 'abort':
- if (is_array($this->checkpoint)){
- // can only abort if were inside a checkpoint
- $tmp = $this->checkpoint;
- foreach ($tmp as $k=>$v){
- $this->$k=$v;
- }
- unset($tmp);
- }
- break;
- }
-
-}
-
-} // end of class
-
+<?php
+/**
+* Cpdf
+*
+*
+* A PHP class to provide the basic functionality to create a pdf document without
+* any requirement for additional modules.
+*
+* Note that they companion class CezPdf can be used to extend this class and dramatically
+* simplify the creation of documents.
+*
+* IMPORTANT NOTE
+* there is no warranty, implied or otherwise with this software.
+*
+* LICENCE
+* This code has been placed in the Public Domain for all to enjoy.
+*
+* @author Wayne Munro <pdf@ros.co.nz>
+* @version 009
+* @package Cpdf
+* @link http://www.ros.co.nz/pdf
+*/
+class Cpdf {
+
+/**
+* the current number of pdf objects in the document
+*/
+var $numObj=0;
+/**
+* this array contains all of the pdf objects, ready for final assembly
+*/
+var $objects = array();
+/**
+* the objectId (number within the objects array) of the document catalog
+*/
+var $catalogId;
+/**
+* array carrying information about the fonts that the system currently knows about
+* used to ensure that a font is not loaded twice, among other things
+*/
+var $fonts=array();
+/**
+* a record of the current font
+*/
+var $currentFont='';
+/**
+* the current base font
+*/
+var $currentBaseFont='';
+/**
+* the number of the current font within the font array
+*/
+var $currentFontNum=0;
+/**
+*
+*/
+var $currentNode;
+/**
+* object number of the current page
+*/
+var $currentPage;
+/**
+* object number of the currently active contents block
+*/
+var $currentContents;
+/**
+* number of fonts within the system
+*/
+var $numFonts=0;
+/**
+* current colour for fill operations, defaults to inactive value, all three components should be between 0 and 1 inclusive when active
+*/
+var $currentColour=array('r'=>-1,'g'=>-1,'b'=>-1);
+/**
+* current colour for stroke operations (lines etc.)
+*/
+var $currentStrokeColour=array('r'=>-1,'g'=>-1,'b'=>-1);
+/**
+* current style that lines are drawn in
+*/
+var $currentLineStyle='';
+/**
+* an array which is used to save the state of the document, mainly the colours and styles
+* it is used to temporarily change to another state, the change back to what it was before
+*/
+var $stateStack = array();
+/**
+* number of elements within the state stack
+*/
+var $nStateStack = 0;
+/**
+* number of page objects within the document
+*/
+var $numPages=0;
+/**
+* object Id storage stack
+*/
+var $stack=array();
+/**
+* number of elements within the object Id storage stack
+*/
+var $nStack=0;
+/**
+* an array which contains information about the objects which are not firmly attached to pages
+* these have been added with the addObject function
+*/
+var $looseObjects=array();
+/**
+* array contains infomation about how the loose objects are to be added to the document
+*/
+var $addLooseObjects=array();
+/**
+* the objectId of the information object for the document
+* this contains authorship, title etc.
+*/
+var $infoObject=0;
+/**
+* number of images being tracked within the document
+*/
+var $numImages=0;
+/**
+* an array containing options about the document
+* it defaults to turning on the compression of the objects
+*/
+var $options=array('compression'=>1);
+/**
+* the objectId of the first page of the document
+*/
+var $firstPageId;
+/**
+* used to track the last used value of the inter-word spacing, this is so that it is known
+* when the spacing is changed.
+*/
+var $wordSpaceAdjust=0;
+/**
+* the object Id of the procset object
+*/
+var $procsetObjectId;
+/**
+* store the information about the relationship between font families
+* this used so that the code knows which font is the bold version of another font, etc.
+* the value of this array is initialised in the constuctor function.
+*/
+var $fontFamilies = array();
+/**
+* track if the current font is bolded or italicised
+*/
+var $currentTextState = '';
+/**
+* messages are stored here during processing, these can be selected afterwards to give some useful debug information
+*/
+var $messages='';
+/**
+* the ancryption array for the document encryption is stored here
+*/
+var $arc4='';
+/**
+* the object Id of the encryption information
+*/
+var $arc4_objnum=0;
+/**
+* the file identifier, used to uniquely identify a pdf document
+*/
+var $fileIdentifier='';
+/**
+* a flag to say if a document is to be encrypted or not
+*/
+var $encrypted=0;
+/**
+* the ancryption key for the encryption of all the document content (structure is not encrypted)
+*/
+var $encryptionKey='';
+/**
+* array which forms a stack to keep track of nested callback functions
+*/
+var $callback = array();
+/**
+* the number of callback functions in the callback array
+*/
+var $nCallback = 0;
+/**
+* store label->id pairs for named destinations, these will be used to replace internal links
+* done this way so that destinations can be defined after the location that links to them
+*/
+var $destinations = array();
+/**
+* store the stack for the transaction commands, each item in here is a record of the values of all the
+* variables within the class, so that the user can rollback at will (from each 'start' command)
+* note that this includes the objects array, so these can be large.
+*/
+var $checkpoint = '';
+/**
+* class constructor
+* this will start a new document
+* @var array array of 4 numbers, defining the bottom left and upper right corner of the page. first two are normally zero.
+*/
+function Cpdf ($pageSize=array(0,0,612,792)){
+ $this->newDocument($pageSize);
+
+ // also initialize the font families that are known about already
+ $this->setFontFamily('init');
+// $this->fileIdentifier = md5('xxxxxxxx'.time());
+
+}
+
+/**
+* Document object methods (internal use only)
+*
+* There is about one object method for each type of object in the pdf document
+* Each function has the same call list ($id,$action,$options).
+* $id = the object ID of the object, or what it is to be if it is being created
+* $action = a string specifying the action to be performed, though ALL must support:
+* 'new' - create the object with the id $id
+* 'out' - produce the output for the pdf object
+* $options = optional, a string or array containing the various parameters for the object
+*
+* These, in conjunction with the output function are the ONLY way for output to be produced
+* within the pdf 'file'.
+*/
+
+/**
+*destination object, used to specify the location for the user to jump to, presently on opening
+*/
+function o_destination($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'destination','info'=>array());
+ $tmp = '';
+ switch ($options['type']){
+ case 'XYZ':
+ case 'FitR':
+ $tmp = ' '.$options['p3'].$tmp;
+ case 'FitH':
+ case 'FitV':
+ case 'FitBH':
+ case 'FitBV':
+ $tmp = ' '.$options['p1'].' '.$options['p2'].$tmp;
+ case 'Fit':
+ case 'FitB':
+ $tmp = $options['type'].$tmp;
+ $this->objects[$id]['info']['string']=$tmp;
+ $this->objects[$id]['info']['page']=$options['page'];
+ }
+ break;
+ case 'out':
+ $tmp = $o['info'];
+ $res="\n".$id." 0 obj\n".'['.$tmp['page'].' 0 R /'.$tmp['string']."]\nendobj\n";
+ return $res;
+ break;
+ }
+}
+
+/**
+* set the viewer preferences
+*/
+function o_viewerPreferences($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'viewerPreferences','info'=>array());
+ break;
+ case 'add':
+ foreach($options as $k=>$v){
+ switch ($k){
+ case 'HideToolbar':
+ case 'HideMenubar':
+ case 'HideWindowUI':
+ case 'FitWindow':
+ case 'CenterWindow':
+ case 'NonFullScreenPageMode':
+ case 'Direction':
+ $o['info'][$k]=$v;
+ break;
+ }
+ }
+ break;
+ case 'out':
+
+ $res="\n".$id." 0 obj\n".'<< ';
+ foreach($o['info'] as $k=>$v){
+ $res.="\n/".$k.' '.$v;
+ }
+ $res.="\n>>\n";
+ return $res;
+ break;
+ }
+}
+
+/**
+* define the document catalog, the overall controller for the document
+*/
+function o_catalog($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'catalog','info'=>array());
+ $this->catalogId=$id;
+ break;
+ case 'outlines':
+ case 'pages':
+ case 'openHere':
+ $o['info'][$action]=$options;
+ break;
+ case 'viewerPreferences':
+ if (!isset($o['info']['viewerPreferences'])){
+ $this->numObj++;
+ $this->o_viewerPreferences($this->numObj,'new');
+ $o['info']['viewerPreferences']=$this->numObj;
+ }
+ $vp = $o['info']['viewerPreferences'];
+ $this->o_viewerPreferences($vp,'add',$options);
+ break;
+ case 'out':
+ $res="\n".$id." 0 obj\n".'<< /Type /Catalog';
+ foreach($o['info'] as $k=>$v){
+ switch($k){
+ case 'outlines':
+ $res.="\n".'/Outlines '.$v.' 0 R';
+ break;
+ case 'pages':
+ $res.="\n".'/Pages '.$v.' 0 R';
+ break;
+ case 'viewerPreferences':
+ $res.="\n".'/ViewerPreferences '.$o['info']['viewerPreferences'].' 0 R';
+ break;
+ case 'openHere':
+ $res.="\n".'/OpenAction '.$o['info']['openHere'].' 0 R';
+ break;
+ }
+ }
+ $res.=" >>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* object which is a parent to the pages in the document
+*/
+function o_pages($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'pages','info'=>array());
+ $this->o_catalog($this->catalogId,'pages',$id);
+ break;
+ case 'page':
+ if (!is_array($options)){
+ // then it will just be the id of the new page
+ $o['info']['pages'][]=$options;
+ } else {
+ // then it should be an array having 'id','rid','pos', where rid=the page to which this one will be placed relative
+ // and pos is either 'before' or 'after', saying where this page will fit.
+ if (isset($options['id']) && isset($options['rid']) && isset($options['pos'])){
+ $i = array_search($options['rid'],$o['info']['pages']);
+ if (isset($o['info']['pages'][$i]) && $o['info']['pages'][$i]==$options['rid']){
+ // then there is a match
+ // make a space
+ switch ($options['pos']){
+ case 'before':
+ $k = $i;
+ break;
+ case 'after':
+ $k=$i+1;
+ break;
+ default:
+ $k=-1;
+ break;
+ }
+ if ($k>=0){
+ for ($j=count($o['info']['pages'])-1;$j>=$k;$j--){
+ $o['info']['pages'][$j+1]=$o['info']['pages'][$j];
+ }
+ $o['info']['pages'][$k]=$options['id'];
+ }
+ }
+ }
+ }
+ break;
+ case 'procset':
+ $o['info']['procset']=$options;
+ break;
+ case 'mediaBox':
+ $o['info']['mediaBox']=$options; // which should be an array of 4 numbers
+ break;
+ case 'font':
+ $o['info']['fonts'][]=array('objNum'=>$options['objNum'],'fontNum'=>$options['fontNum']);
+ break;
+ case 'xObject':
+ $o['info']['xObjects'][]=array('objNum'=>$options['objNum'],'label'=>$options['label']);
+ break;
+ case 'out':
+ if (count($o['info']['pages'])){
+ $res="\n".$id." 0 obj\n<< /Type /Pages\n/Kids [";
+ foreach($o['info']['pages'] as $k=>$v){
+ $res.=$v." 0 R\n";
+ }
+ $res.="]\n/Count ".count($this->objects[$id]['info']['pages']);
+ if ((isset($o['info']['fonts']) && count($o['info']['fonts'])) || isset($o['info']['procset'])){
+ $res.="\n/Resources <<";
+ if (isset($o['info']['procset'])){
+ $res.="\n/ProcSet ".$o['info']['procset']." 0 R";
+ }
+ if (isset($o['info']['fonts']) && count($o['info']['fonts'])){
+ $res.="\n/Font << ";
+ foreach($o['info']['fonts'] as $finfo){
+ $res.="\n/F".$finfo['fontNum']." ".$finfo['objNum']." 0 R";
+ }
+ $res.=" >>";
+ }
+ if (isset($o['info']['xObjects']) && count($o['info']['xObjects'])){
+ $res.="\n/XObject << ";
+ foreach($o['info']['xObjects'] as $finfo){
+ $res.="\n/".$finfo['label']." ".$finfo['objNum']." 0 R";
+ }
+ $res.=" >>";
+ }
+ $res.="\n>>";
+ if (isset($o['info']['mediaBox'])){
+ $tmp=$o['info']['mediaBox'];
+ $res.="\n/MediaBox [".sprintf('%.3f',$tmp[0]).' '.sprintf('%.3f',$tmp[1]).' '.sprintf('%.3f',$tmp[2]).' '.sprintf('%.3f',$tmp[3]).']';
+ }
+ }
+ $res.="\n >>\nendobj";
+ } else {
+ $res="\n".$id." 0 obj\n<< /Type /Pages\n/Count 0\n>>\nendobj";
+ }
+ return $res;
+ break;
+ }
+}
+
+/**
+* define the outlines in the doc, empty for now
+*/
+function o_outlines($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'outlines','info'=>array('outlines'=>array()));
+ $this->o_catalog($this->catalogId,'outlines',$id);
+ break;
+ case 'outline':
+ $o['info']['outlines'][]=$options;
+ break;
+ case 'out':
+ if (count($o['info']['outlines'])){
+ $res="\n".$id." 0 obj\n<< /Type /Outlines /Kids [";
+ foreach($o['info']['outlines'] as $k=>$v){
+ $res.=$v." 0 R ";
+ }
+ $res.="] /Count ".count($o['info']['outlines'])." >>\nendobj";
+ } else {
+ $res="\n".$id." 0 obj\n<< /Type /Outlines /Count 0 >>\nendobj";
+ }
+ return $res;
+ break;
+ }
+}
+
+/**
+* an object to hold the font description
+*/
+function o_font($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'font','info'=>array('name'=>$options['name'],'SubType'=>'Type1'));
+ $fontNum=$this->numFonts;
+ $this->objects[$id]['info']['fontNum']=$fontNum;
+ // deal with the encoding and the differences
+ if (isset($options['differences'])){
+ // then we'll need an encoding dictionary
+ $this->numObj++;
+ $this->o_fontEncoding($this->numObj,'new',$options);
+ $this->objects[$id]['info']['encodingDictionary']=$this->numObj;
+ } else if (isset($options['encoding'])){
+ // we can specify encoding here
+ switch($options['encoding']){
+ case 'WinAnsiEncoding':
+ case 'MacRomanEncoding':
+ case 'MacExpertEncoding':
+ $this->objects[$id]['info']['encoding']=$options['encoding'];
+ break;
+ case 'none':
+ break;
+ default:
+ $this->objects[$id]['info']['encoding']='WinAnsiEncoding';
+ break;
+ }
+ } else {
+ $this->objects[$id]['info']['encoding']='WinAnsiEncoding';
+ }
+ // also tell the pages node about the new font
+ $this->o_pages($this->currentNode,'font',array('fontNum'=>$fontNum,'objNum'=>$id));
+ break;
+ case 'add':
+ foreach ($options as $k=>$v){
+ switch ($k){
+ case 'BaseFont':
+ $o['info']['name'] = $v;
+ break;
+ case 'FirstChar':
+ case 'LastChar':
+ case 'Widths':
+ case 'FontDescriptor':
+ case 'SubType':
+ $this->addMessage('o_font '.$k." : ".$v);
+ $o['info'][$k] = $v;
+ break;
+ }
+ }
+ break;
+ case 'out':
+ $res="\n".$id." 0 obj\n<< /Type /Font\n/Subtype /".$o['info']['SubType']."\n";
+ $res.="/Name /F".$o['info']['fontNum']."\n";
+ $res.="/BaseFont /".$o['info']['name']."\n";
+ if (isset($o['info']['encodingDictionary'])){
+ // then place a reference to the dictionary
+ $res.="/Encoding ".$o['info']['encodingDictionary']." 0 R\n";
+ } else if (isset($o['info']['encoding'])){
+ // use the specified encoding
+ $res.="/Encoding /".$o['info']['encoding']."\n";
+ }
+ if (isset($o['info']['FirstChar'])){
+ $res.="/FirstChar ".$o['info']['FirstChar']."\n";
+ }
+ if (isset($o['info']['LastChar'])){
+ $res.="/LastChar ".$o['info']['LastChar']."\n";
+ }
+ if (isset($o['info']['Widths'])){
+ $res.="/Widths ".$o['info']['Widths']." 0 R\n";
+ }
+ if (isset($o['info']['FontDescriptor'])){
+ $res.="/FontDescriptor ".$o['info']['FontDescriptor']." 0 R\n";
+ }
+ $res.=">>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* a font descriptor, needed for including additional fonts
+*/
+function o_fontDescriptor($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'fontDescriptor','info'=>$options);
+ break;
+ case 'out':
+ $res="\n".$id." 0 obj\n<< /Type /FontDescriptor\n";
+ foreach ($o['info'] as $label => $value){
+ switch ($label){
+ case 'Ascent':
+ case 'CapHeight':
+ case 'Descent':
+ case 'Flags':
+ case 'ItalicAngle':
+ case 'StemV':
+ case 'AvgWidth':
+ case 'Leading':
+ case 'MaxWidth':
+ case 'MissingWidth':
+ case 'StemH':
+ case 'XHeight':
+ case 'CharSet':
+ if (strlen($value)){
+ $res.='/'.$label.' '.$value."\n";
+ }
+ break;
+ case 'FontFile':
+ case 'FontFile2':
+ case 'FontFile3':
+ $res.='/'.$label.' '.$value." 0 R\n";
+ break;
+ case 'FontBBox':
+ $res.='/'.$label.' ['.$value[0].' '.$value[1].' '.$value[2].' '.$value[3]."]\n";
+ break;
+ case 'FontName':
+ $res.='/'.$label.' /'.$value."\n";
+ break;
+ }
+ }
+ $res.=">>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* the font encoding
+*/
+function o_fontEncoding($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ // the options array should contain 'differences' and maybe 'encoding'
+ $this->objects[$id]=array('t'=>'fontEncoding','info'=>$options);
+ break;
+ case 'out':
+ $res="\n".$id." 0 obj\n<< /Type /Encoding\n";
+ if (!isset($o['info']['encoding'])){
+ $o['info']['encoding']='WinAnsiEncoding';
+ }
+ if ($o['info']['encoding']!='none'){
+ $res.="/BaseEncoding /".$o['info']['encoding']."\n";
+ }
+ $res.="/Differences \n[";
+ $onum=-100;
+ foreach($o['info']['differences'] as $num=>$label){
+ if ($num!=$onum+1){
+ // we cannot make use of consecutive numbering
+ $res.= "\n".$num." /".$label;
+ } else {
+ $res.= " /".$label;
+ }
+ $onum=$num;
+ }
+ $res.="\n]\n>>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* the document procset, solves some problems with printing to old PS printers
+*/
+function o_procset($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'procset','info'=>array('PDF'=>1,'Text'=>1));
+ $this->o_pages($this->currentNode,'procset',$id);
+ $this->procsetObjectId=$id;
+ break;
+ case 'add':
+ // this is to add new items to the procset list, despite the fact that this is considered
+ // obselete, the items are required for printing to some postscript printers
+ switch ($options) {
+ case 'ImageB':
+ case 'ImageC':
+ case 'ImageI':
+ $o['info'][$options]=1;
+ break;
+ }
+ break;
+ case 'out':
+ $res="\n".$id." 0 obj\n[";
+ foreach ($o['info'] as $label=>$val){
+ $res.='/'.$label.' ';
+ }
+ $res.="]\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* define the document information
+*/
+function o_info($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->infoObject=$id;
+ $date='D:'.date('Ymd');
+ $this->objects[$id]=array('t'=>'info','info'=>array('Creator'=>'R and OS php pdf writer, http://www.ros.co.nz','CreationDate'=>$date));
+ break;
+ case 'Title':
+ case 'Author':
+ case 'Subject':
+ case 'Keywords':
+ case 'Creator':
+ case 'Producer':
+ case 'CreationDate':
+ case 'ModDate':
+ case 'Trapped':
+ $o['info'][$action]=$options;
+ break;
+ case 'out':
+ if ($this->encrypted){
+ $this->encryptInit($id);
+ }
+ $res="\n".$id." 0 obj\n<<\n";
+ foreach ($o['info'] as $k=>$v){
+ $res.='/'.$k.' (';
+ if ($this->encrypted){
+ $res.=$this->filterText($this->ARC4($v));
+ } else {
+ $res.=$this->filterText($v);
+ }
+ $res.=")\n";
+ }
+ $res.=">>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* an action object, used to link to URLS initially
+*/
+function o_action($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ if (is_array($options)){
+ $this->objects[$id]=array('t'=>'action','info'=>$options,'type'=>$options['type']);
+ } else {
+ // then assume a URI action
+ $this->objects[$id]=array('t'=>'action','info'=>$options,'type'=>'URI');
+ }
+ break;
+ case 'out':
+ if ($this->encrypted){
+ $this->encryptInit($id);
+ }
+ $res="\n".$id." 0 obj\n<< /Type /Action";
+ switch($o['type']){
+ case 'ilink':
+ // there will be an 'label' setting, this is the name of the destination
+ $res.="\n/S /GoTo\n/D ".$this->destinations[(string)$o['info']['label']]." 0 R";
+ break;
+ case 'URI':
+ $res.="\n/S /URI\n/URI (";
+ if ($this->encrypted){
+ $res.=$this->filterText($this->ARC4($o['info']));
+ } else {
+ $res.=$this->filterText($o['info']);
+ }
+ $res.=")";
+ break;
+ }
+ $res.="\n>>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* an annotation object, this will add an annotation to the current page.
+* initially will support just link annotations
+*/
+function o_annotation($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ // add the annotation to the current page
+ $pageId = $this->currentPage;
+ $this->o_page($pageId,'annot',$id);
+ // and add the action object which is going to be required
+ switch($options['type']){
+ case 'link':
+ $this->objects[$id]=array('t'=>'annotation','info'=>$options);
+ $this->numObj++;
+ $this->o_action($this->numObj,'new',$options['url']);
+ $this->objects[$id]['info']['actionId']=$this->numObj;
+ break;
+ case 'ilink':
+ // this is to a named internal link
+ $label = $options['label'];
+ $this->objects[$id]=array('t'=>'annotation','info'=>$options);
+ $this->numObj++;
+ $this->o_action($this->numObj,'new',array('type'=>'ilink','label'=>$label));
+ $this->objects[$id]['info']['actionId']=$this->numObj;
+ break;
+ }
+ break;
+ case 'out':
+ $res="\n".$id." 0 obj\n<< /Type /Annot";
+ switch($o['info']['type']){
+ case 'link':
+ case 'ilink':
+ $res.= "\n/Subtype /Link";
+ break;
+ }
+ $res.="\n/A ".$o['info']['actionId']." 0 R";
+ $res.="\n/Border [0 0 0]";
+ $res.="\n/H /I";
+ $res.="\n/Rect [ ";
+ foreach($o['info']['rect'] as $v){
+ $res.= sprintf("%.4f ",$v);
+ }
+ $res.="]";
+ $res.="\n>>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* a page object, it also creates a contents object to hold its contents
+*/
+function o_page($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->numPages++;
+ $this->objects[$id]=array('t'=>'page','info'=>array('parent'=>$this->currentNode,'pageNum'=>$this->numPages));
+ if (is_array($options)){
+ // then this must be a page insertion, array shoudl contain 'rid','pos'=[before|after]
+ $options['id']=$id;
+ $this->o_pages($this->currentNode,'page',$options);
+ } else {
+ $this->o_pages($this->currentNode,'page',$id);
+ }
+ $this->currentPage=$id;
+ //make a contents object to go with this page
+ $this->numObj++;
+ $this->o_contents($this->numObj,'new',$id);
+ $this->currentContents=$this->numObj;
+ $this->objects[$id]['info']['contents']=array();
+ $this->objects[$id]['info']['contents'][]=$this->numObj;
+ $match = ($this->numPages%2 ? 'odd' : 'even');
+ foreach($this->addLooseObjects as $oId=>$target){
+ if ($target=='all' || $match==$target){
+ $this->objects[$id]['info']['contents'][]=$oId;
+ }
+ }
+ break;
+ case 'content':
+ $o['info']['contents'][]=$options;
+ break;
+ case 'annot':
+ // add an annotation to this page
+ if (!isset($o['info']['annot'])){
+ $o['info']['annot']=array();
+ }
+ // $options should contain the id of the annotation dictionary
+ $o['info']['annot'][]=$options;
+ break;
+ case 'out':
+ $res="\n".$id." 0 obj\n<< /Type /Page";
+ $res.="\n/Parent ".$o['info']['parent']." 0 R";
+ if (isset($o['info']['annot'])){
+ $res.="\n/Annots [";
+ foreach($o['info']['annot'] as $aId){
+ $res.=" ".$aId." 0 R";
+ }
+ $res.=" ]";
+ }
+ $count = count($o['info']['contents']);
+ if ($count==1){
+ $res.="\n/Contents ".$o['info']['contents'][0]." 0 R";
+ } else if ($count>1){
+ $res.="\n/Contents [\n";
+ foreach ($o['info']['contents'] as $cId){
+ $res.=$cId." 0 R\n";
+ }
+ $res.="]";
+ }
+ $res.="\n>>\nendobj";
+ return $res;
+ break;
+ }
+}
+
+/**
+* the contents objects hold all of the content which appears on pages
+*/
+function o_contents($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch ($action){
+ case 'new':
+ $this->objects[$id]=array('t'=>'contents','c'=>'','info'=>array());
+ if (strlen($options) && intval($options)){
+ // then this contents is the primary for a page
+ $this->objects[$id]['onPage']=$options;
+ } else if ($options=='raw'){
+ // then this page contains some other type of system object
+ $this->objects[$id]['raw']=1;
+ }
+ break;
+ case 'add':
+ // add more options to the decleration
+ foreach ($options as $k=>$v){
+ $o['info'][$k]=$v;
+ }
+ case 'out':
+ $tmp=$o['c'];
+ $res= "\n".$id." 0 obj\n";
+ if (isset($this->objects[$id]['raw'])){
+ $res.=$tmp;
+ } else {
+ $res.= "<<";
+ if (function_exists('gzcompress') && $this->options['compression']){
+ // then implement ZLIB based compression on this content stream
+ $res.=" /Filter /FlateDecode";
+ $tmp = gzcompress($tmp);
+ }
+ if ($this->encrypted){
+ $this->encryptInit($id);
+ $tmp = $this->ARC4($tmp);
+ }
+ foreach($o['info'] as $k=>$v){
+ $res .= "\n/".$k.' '.$v;
+ }
+ $res.="\n/Length ".strlen($tmp)." >>\nstream\n".$tmp."\nendstream";
+ }
+ $res.="\nendobj\n";
+ return $res;
+ break;
+ }
+}
+
+/**
+* an image object, will be an XObject in the document, includes description and data
+*/
+function o_image($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch($action){
+ case 'new':
+ // make the new object
+ $this->objects[$id]=array('t'=>'image','data'=>$options['data'],'info'=>array());
+ $this->objects[$id]['info']['Type']='/XObject';
+ $this->objects[$id]['info']['Subtype']='/Image';
+ $this->objects[$id]['info']['Width']=$options['iw'];
+ $this->objects[$id]['info']['Height']=$options['ih'];
+ if (!isset($options['type']) || $options['type']=='jpg'){
+ if (!isset($options['channels'])){
+ $options['channels']=3;
+ }
+ switch($options['channels']){
+ case 1:
+ $this->objects[$id]['info']['ColorSpace']='/DeviceGray';
+ break;
+ default:
+ $this->objects[$id]['info']['ColorSpace']='/DeviceRGB';
+ break;
+ }
+ $this->objects[$id]['info']['Filter']='/DCTDecode';
+ $this->objects[$id]['info']['BitsPerComponent']=8;
+ } else if ($options['type']=='png'){
+ $this->objects[$id]['info']['Filter']='/FlateDecode';
+ $this->objects[$id]['info']['DecodeParms']='<< /Predictor 15 /Colors '.$options['ncolor'].' /Columns '.$options['iw'].' /BitsPerComponent '.$options['bitsPerComponent'].'>>';
+ if (strlen($options['pdata'])){
+ $tmp = ' [ /Indexed /DeviceRGB '.(strlen($options['pdata'])/3-1).' ';
+ $this->numObj++;
+ $this->o_contents($this->numObj,'new');
+ $this->objects[$this->numObj]['c']=$options['pdata'];
+ $tmp.=$this->numObj.' 0 R';
+ $tmp .=' ]';
+ $this->objects[$id]['info']['ColorSpace'] = $tmp;
+ if (isset($options['transparency'])){
+ switch($options['transparency']['type']){
+ case 'indexed':
+ $tmp=' [ '.$options['transparency']['data'].' '.$options['transparency']['data'].'] ';
+ $this->objects[$id]['info']['Mask'] = $tmp;
+ break;
+ }
+ }
+ } else {
+ $this->objects[$id]['info']['ColorSpace']='/'.$options['color'];
+ }
+ $this->objects[$id]['info']['BitsPerComponent']=$options['bitsPerComponent'];
+ }
+ // assign it a place in the named resource dictionary as an external object, according to
+ // the label passed in with it.
+ $this->o_pages($this->currentNode,'xObject',array('label'=>$options['label'],'objNum'=>$id));
+ // also make sure that we have the right procset object for it.
+ $this->o_procset($this->procsetObjectId,'add','ImageC');
+ break;
+ case 'out':
+ $tmp=$o['data'];
+ $res= "\n".$id." 0 obj\n<<";
+ foreach($o['info'] as $k=>$v){
+ $res.="\n/".$k.' '.$v;
+ }
+ if ($this->encrypted){
+ $this->encryptInit($id);
+ $tmp = $this->ARC4($tmp);
+ }
+ $res.="\n/Length ".strlen($tmp)." >>\nstream\n".$tmp."\nendstream\nendobj\n";
+ return $res;
+ break;
+ }
+}
+
+/**
+* encryption object.
+*/
+function o_encryption($id,$action,$options=''){
+ if ($action!='new'){
+ $o =& $this->objects[$id];
+ }
+ switch($action){
+ case 'new':
+ // make the new object
+ $this->objects[$id]=array('t'=>'encryption','info'=>$options);
+ $this->arc4_objnum=$id;
+ // figure out the additional paramaters required
+ $pad = chr(0x28).chr(0xBF).chr(0x4E).chr(0x5E).chr(0x4E).chr(0x75).chr(0x8A).chr(0x41).chr(0x64).chr(0x00).chr(0x4E).chr(0x56).chr(0xFF).chr(0xFA).chr(0x01).chr(0x08).chr(0x2E).chr(0x2E).chr(0x00).chr(0xB6).chr(0xD0).chr(0x68).chr(0x3E).chr(0x80).chr(0x2F).chr(0x0C).chr(0xA9).chr(0xFE).chr(0x64).chr(0x53).chr(0x69).chr(0x7A);
+ $len = strlen($options['owner']);
+ if ($len>32){
+ $owner = substr($options['owner'],0,32);
+ } else if ($len<32){
+ $owner = $options['owner'].substr($pad,0,32-$len);
+ } else {
+ $owner = $options['owner'];
+ }
+ $len = strlen($options['user']);
+ if ($len>32){
+ $user = substr($options['user'],0,32);
+ } else if ($len<32){
+ $user = $options['user'].substr($pad,0,32-$len);
+ } else {
+ $user = $options['user'];
+ }
+ $tmp = $this->md5_16($owner);
+ $okey = substr($tmp,0,5);
+ $this->ARC4_init($okey);
+ $ovalue=$this->ARC4($user);
+ $this->objects[$id]['info']['O']=$ovalue;
+ // now make the u value, phew.
+ $tmp = $this->md5_16($user.$ovalue.chr($options['p']).chr(255).chr(255).chr(255).$this->fileIdentifier);
+ $ukey = substr($tmp,0,5);
+
+ $this->ARC4_init($ukey);
+ $this->encryptionKey = $ukey;
+ $this->encrypted=1;
+ $uvalue=$this->ARC4($pad);
+
+ $this->objects[$id]['info']['U']=$uvalue;
+ $this->encryptionKey=$ukey;
+
+ // initialize the arc4 array
+ break;
+ case 'out':
+ $res= "\n".$id." 0 obj\n<<";
+ $res.="\n/Filter /Standard";
+ $res.="\n/V 1";
+ $res.="\n/R 2";
+ $res.="\n/O (".$this->filterText($o['info']['O']).')';
+ $res.="\n/U (".$this->filterText($o['info']['U']).')';
+ // and the p-value needs to be converted to account for the twos-complement approach
+ $o['info']['p'] = (($o['info']['p']^255)+1)*-1;
+ $res.="\n/P ".($o['info']['p']);
+ $res.="\n>>\nendobj\n";
+
+ return $res;
+ break;
+ }
+}
+
+/**
+* ARC4 functions
+* A series of function to implement ARC4 encoding in PHP
+*/
+
+/**
+* calculate the 16 byte version of the 128 bit md5 digest of the string
+*/
+function md5_16($string){
+ $tmp = md5($string);
+ $out='';
+ for ($i=0;$i<=30;$i=$i+2){
+ $out.=chr(hexdec(substr($tmp,$i,2)));
+ }
+ return $out;
+}
+
+/**
+* initialize the encryption for processing a particular object
+*/
+function encryptInit($id){
+ $tmp = $this->encryptionKey;
+ $hex = dechex($id);
+ if (strlen($hex)<6){
+ $hex = substr('000000',0,6-strlen($hex)).$hex;
+ }
+ $tmp.= chr(hexdec(substr($hex,4,2))).chr(hexdec(substr($hex,2,2))).chr(hexdec(substr($hex,0,2))).chr(0).chr(0);
+ $key = $this->md5_16($tmp);
+ $this->ARC4_init(substr($key,0,10));
+}
+
+/**
+* initialize the ARC4 encryption
+*/
+function ARC4_init($key=''){
+ $this->arc4 = '';
+ // setup the control array
+ if (strlen($key)==0){
+ return;
+ }
+ $k = '';
+ while(strlen($k)<256){
+ $k.=$key;
+ }
+ $k=substr($k,0,256);
+ for ($i=0;$i<256;$i++){
+ $this->arc4 .= chr($i);
+ }
+ $j=0;
+ for ($i=0;$i<256;$i++){
+ $t = $this->arc4[$i];
+ $j = ($j + ord($t) + ord($k[$i]))%256;
+ $this->arc4[$i]=$this->arc4[$j];
+ $this->arc4[$j]=$t;
+ }
+}
+
+/**
+* ARC4 encrypt a text string
+*/
+function ARC4($text){
+ $len=strlen($text);
+ $a=0;
+ $b=0;
+ $c = $this->arc4;
+ $out='';
+ for ($i=0;$i<$len;$i++){
+ $a = ($a+1)%256;
+ $t= $c[$a];
+ $b = ($b+ord($t))%256;
+ $c[$a]=$c[$b];
+ $c[$b]=$t;
+ $k = ord($c[(ord($c[$a])+ord($c[$b]))%256]);
+ $out.=chr(ord($text[$i]) ^ $k);
+ }
+
+ return $out;
+}
+
+/**
+* functions which can be called to adjust or add to the document
+*/
+
+/**
+* add a link in the document to an external URL
+*/
+function addLink($url,$x0,$y0,$x1,$y1){
+ $this->numObj++;
+ $info = array('type'=>'link','url'=>$url,'rect'=>array($x0,$y0,$x1,$y1));
+ $this->o_annotation($this->numObj,'new',$info);
+}
+
+/**
+* add a link in the document to an internal destination (ie. within the document)
+*/
+function addInternalLink($label,$x0,$y0,$x1,$y1){
+ $this->numObj++;
+ $info = array('type'=>'ilink','label'=>$label,'rect'=>array($x0,$y0,$x1,$y1));
+ $this->o_annotation($this->numObj,'new',$info);
+}
+
+/**
+* set the encryption of the document
+* can be used to turn it on and/or set the passwords which it will have.
+* also the functions that the user will have are set here, such as print, modify, add
+*/
+function setEncryption($userPass='',$ownerPass='',$pc=array()){
+ $p=bindec(11000000);
+
+ $options = array(
+ 'print'=>4
+ ,'modify'=>8
+ ,'copy'=>16
+ ,'add'=>32
+ );
+ foreach($pc as $k=>$v){
+ if ($v && isset($options[$k])){
+ $p+=$options[$k];
+ } else if (isset($options[$v])){
+ $p+=$options[$v];
+ }
+ }
+ // implement encryption on the document
+ if ($this->arc4_objnum == 0){
+ // then the block does not exist already, add it.
+ $this->numObj++;
+ if (strlen($ownerPass)==0){
+ $ownerPass=$userPass;
+ }
+ $this->o_encryption($this->numObj,'new',array('user'=>$userPass,'owner'=>$ownerPass,'p'=>$p));
+ }
+}
+
+/**
+* should be used for internal checks, not implemented as yet
+*/
+function checkAllHere(){
+}
+
+/**
+* return the pdf stream as a string returned from the function
+*/
+function output($debug=0){
+
+ if ($debug){
+ // turn compression off
+ $this->options['compression']=0;
+ }
+
+ if ($this->arc4_objnum){
+ $this->ARC4_init($this->encryptionKey);
+ }
+
+ $this->checkAllHere();
+
+ $xref=array();
+ $content="%PDF-1.3\n%\n";
+// $content="%PDF-1.3\n";
+ $pos=strlen($content);
+ foreach($this->objects as $k=>$v){
+ $tmp='o_'.$v['t'];
+ $cont=$this->$tmp($k,'out');
+ $content.=$cont;
+ $xref[]=$pos;
+ $pos+=strlen($cont);
+ }
+ $content.="\nxref\n0 ".(count($xref)+1)."\n0000000000 65535 f \n";
+ foreach($xref as $p){
+ $content.=substr('0000000000',0,10-strlen($p)).$p." 00000 n \n";
+ }
+ $content.="\ntrailer\n << /Size ".(count($xref)+1)."\n /Root 1 0 R\n /Info ".$this->infoObject." 0 R\n";
+ // if encryption has been applied to this document then add the marker for this dictionary
+ if ($this->arc4_objnum > 0){
+ $content .= "/Encrypt ".$this->arc4_objnum." 0 R\n";
+ }
+ if (strlen($this->fileIdentifier)){
+ $content .= "/ID[<".$this->fileIdentifier."><".$this->fileIdentifier.">]\n";
+ }
+ $content .= " >>\nstartxref\n".$pos."\n%%EOF\n";
+ return $content;
+}
+
+/**
+* intialize a new document
+* if this is called on an existing document results may be unpredictable, but the existing document would be lost at minimum
+* this function is called automatically by the constructor function
+*
+* @access private
+*/
+function newDocument($pageSize=array(0,0,612,792)){
+ $this->numObj=0;
+ $this->objects = array();
+
+ $this->numObj++;
+ $this->o_catalog($this->numObj,'new');
+
+ $this->numObj++;
+ $this->o_outlines($this->numObj,'new');
+
+ $this->numObj++;
+ $this->o_pages($this->numObj,'new');
+
+ $this->o_pages($this->numObj,'mediaBox',$pageSize);
+ $this->currentNode = 3;
+
+ $this->numObj++;
+ $this->o_procset($this->numObj,'new');
+
+ $this->numObj++;
+ $this->o_info($this->numObj,'new');
+
+ $this->numObj++;
+ $this->o_page($this->numObj,'new');
+
+ // need to store the first page id as there is no way to get it to the user during
+ // startup
+ $this->firstPageId = $this->currentContents;
+}
+
+/**
+* open the font file and return a php structure containing it.
+* first check if this one has been done before and saved in a form more suited to php
+* note that if a php serialized version does not exist it will try and make one, but will
+* require write access to the directory to do it... it is MUCH faster to have these serialized
+* files.
+*
+* @access private
+*/
+function openFont($font){
+ // assume that $font contains both the path and perhaps the extension to the file, split them
+ $pos=strrpos($font,'/');
+ if ($pos===false){
+ $dir = './';
+ $name = $font;
+ } else {
+ $dir=substr($font,0,$pos+1);
+ $name=substr($font,$pos+1);
+ }
+
+ if (substr($name,-4)=='.afm'){
+ $name=substr($name,0,strlen($name)-4);
+ }
+ $this->addMessage('openFont: '.$font.' - '.$name);
+ if (file_exists($dir.'php_'.$name.'.afm')){
+ $this->addMessage('openFont: php file exists '.$dir.'php_'.$name.'.afm');
+ $tmp = file($dir.'php_'.$name.'.afm');
+ $this->fonts[$font]=unserialize($tmp[0]);
+ if (!isset($this->fonts[$font]['_version_']) || $this->fonts[$font]['_version_']<1){
+ // if the font file is old, then clear it out and prepare for re-creation
+ $this->addMessage('openFont: clear out, make way for new version.');
+ unset($this->fonts[$font]);
+ }
+ }
+ if (!isset($this->fonts[$font]) && file_exists($dir.$name.'.afm')){
+ // then rebuild the php_<font>.afm file from the <font>.afm file
+ $this->addMessage('openFont: build php file from '.$dir.$name.'.afm');
+ $data = array();
+ $file = file($dir.$name.'.afm');
+ foreach ($file as $rowA){
+ $row=trim($rowA);
+ $pos=strpos($row,' ');
+ if ($pos){
+ // then there must be some keyword
+ $key = substr($row,0,$pos);
+ switch ($key){
+ case 'FontName':
+ case 'FullName':
+ case 'FamilyName':
+ case 'Weight':
+ case 'ItalicAngle':
+ case 'IsFixedPitch':
+ case 'CharacterSet':
+ case 'UnderlinePosition':
+ case 'UnderlineThickness':
+ case 'Version':
+ case 'EncodingScheme':
+ case 'CapHeight':
+ case 'XHeight':
+ case 'Ascender':
+ case 'Descender':
+ case 'StdHW':
+ case 'StdVW':
+ case 'StartCharMetrics':
+ $data[$key]=trim(substr($row,$pos));
+ break;
+ case 'FontBBox':
+ $data[$key]=explode(' ',trim(substr($row,$pos)));
+ break;
+ case 'C':
+ //C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ;
+ $bits=explode(';',trim($row));
+ $dtmp=array();
+ foreach($bits as $bit){
+ $bits2 = explode(' ',trim($bit));
+ if (strlen($bits2[0])){
+ if (count($bits2)>2){
+ $dtmp[$bits2[0]]=array();
+ for ($i=1;$i<count($bits2);$i++){
+ $dtmp[$bits2[0]][]=$bits2[$i];
+ }
+ } else if (count($bits2)==2){
+ $dtmp[$bits2[0]]=$bits2[1];
+ }
+ }
+ }
+ if ($dtmp['C']>=0){
+ $data['C'][$dtmp['C']]=$dtmp;
+ $data['C'][$dtmp['N']]=$dtmp;
+ } else {
+ $data['C'][$dtmp['N']]=$dtmp;
+ }
+ break;
+ case 'KPX':
+ //KPX Adieresis yacute -40
+ $bits=explode(' ',trim($row));
+ $data['KPX'][$bits[1]][$bits[2]]=$bits[3];
+ break;
+ }
+ }
+ }
+ $data['_version_']=1;
+ $this->fonts[$font]=$data;
+ $fp = fopen($dir.'php_'.$name.'.afm','w');
+ fwrite($fp,serialize($data));
+ fclose($fp);
+ } else if (!isset($this->fonts[$font])){
+ $this->addMessage('openFont: no font file found');
+// echo 'Font not Found '.$font;
+ }
+}
+
+/**
+* if the font is not loaded then load it and make the required object
+* else just make it the current font
+* the encoding array can contain 'encoding'=> 'none','WinAnsiEncoding','MacRomanEncoding' or 'MacExpertEncoding'
+* note that encoding='none' will need to be used for symbolic fonts
+* and 'differences' => an array of mappings between numbers 0->255 and character names.
+*
+*/
+function selectFont($fontName,$encoding='',$set=1){
+ if (!isset($this->fonts[$fontName])){
+ // load the file
+ $this->openFont($fontName);
+ if (isset($this->fonts[$fontName])){
+ $this->numObj++;
+ $this->numFonts++;
+ $pos=strrpos($fontName,'/');
+// $dir=substr($fontName,0,$pos+1);
+ $name=substr($fontName,$pos+1);
+ if (substr($name,-4)=='.afm'){
+ $name=substr($name,0,strlen($name)-4);
+ }
+ $options=array('name'=>$name);
+ if (is_array($encoding)){
+ // then encoding and differences might be set
+ if (isset($encoding['encoding'])){
+ $options['encoding']=$encoding['encoding'];
+ }
+ if (isset($encoding['differences'])){
+ $options['differences']=$encoding['differences'];
+ }
+ } else if (strlen($encoding)){
+ // then perhaps only the encoding has been set
+ $options['encoding']=$encoding;
+ }
+ $fontObj = $this->numObj;
+ $this->o_font($this->numObj,'new',$options);
+ $this->fonts[$fontName]['fontNum']=$this->numFonts;
+ // if this is a '.afm' font, and there is a '.pfa' file to go with it ( as there
+ // should be for all non-basic fonts), then load it into an object and put the
+ // references into the font object
+ $basefile = substr($fontName,0,strlen($fontName)-4);
+ if (file_exists($basefile.'.pfb')){
+ $fbtype = 'pfb';
+ } else if (file_exists($basefile.'.ttf')){
+ $fbtype = 'ttf';
+ } else {
+ $fbtype='';
+ }
+ $fbfile = $basefile.'.'.$fbtype;
+
+// $pfbfile = substr($fontName,0,strlen($fontName)-4).'.pfb';
+// $ttffile = substr($fontName,0,strlen($fontName)-4).'.ttf';
+ $this->addMessage('selectFont: checking for - '.$fbfile);
+ if (substr($fontName,-4)=='.afm' && strlen($fbtype) ){
+ $adobeFontName = $this->fonts[$fontName]['FontName'];
+// $fontObj = $this->numObj;
+ $this->addMessage('selectFont: adding font file - '.$fbfile.' - '.$adobeFontName);
+ // find the array of fond widths, and put that into an object.
+ $firstChar = -1;
+ $lastChar = 0;
+ $widths = array();
+ foreach ($this->fonts[$fontName]['C'] as $num=>$d){
+ if (intval($num)>0 || $num=='0'){
+ if ($lastChar>0 && $num>$lastChar+1){
+ for($i=$lastChar+1;$i<$num;$i++){
+ $widths[] = 0;
+ }
+ }
+ $widths[] = $d['WX'];
+ if ($firstChar==-1){
+ $firstChar = $num;
+ }
+ $lastChar = $num;
+ }
+ }
+ // also need to adjust the widths for the differences array
+ if (isset($options['differences'])){
+ foreach($options['differences'] as $charNum=>$charName){
+ if ($charNum>$lastChar){
+ for($i=$lastChar+1;$i<=$charNum;$i++){
+ $widths[]=0;
+ }
+ $lastChar=$charNum;
+ }
+ if (isset($this->fonts[$fontName]['C'][$charName])){
+ $widths[$charNum-$firstChar]=$this->fonts[$fontName]['C'][$charName]['WX'];
+ }
+ }
+ }
+ $this->addMessage('selectFont: FirstChar='.$firstChar);
+ $this->addMessage('selectFont: LastChar='.$lastChar);
+ $this->numObj++;
+ $this->o_contents($this->numObj,'new','raw');
+ $this->objects[$this->numObj]['c'].='[';
+ foreach($widths as $width){
+ $this->objects[$this->numObj]['c'].=' '.$width;
+ }
+ $this->objects[$this->numObj]['c'].=' ]';
+ $widthid = $this->numObj;
+
+ // load the pfb file, and put that into an object too.
+ // note that pdf supports only binary format type 1 font files, though there is a
+ // simple utility to convert them from pfa to pfb.
+ $fp = fopen($fbfile,'rb');
+ $tmp = get_magic_quotes_runtime();
+ set_magic_quotes_runtime(0);
+ $data = fread($fp,filesize($fbfile));
+ set_magic_quotes_runtime($tmp);
+ fclose($fp);
+
+ // create the font descriptor
+ $this->numObj++;
+ $fontDescriptorId = $this->numObj;
+ $this->numObj++;
+ $pfbid = $this->numObj;
+ // determine flags (more than a little flakey, hopefully will not matter much)
+ $flags=0;
+ if ($this->fonts[$fontName]['ItalicAngle']!=0){ $flags+=pow(2,6); }
+ if ($this->fonts[$fontName]['IsFixedPitch']=='true'){ $flags+=1; }
+ $flags+=pow(2,5); // assume non-sybolic
+
+ $list = array('Ascent'=>'Ascender','CapHeight'=>'CapHeight','Descent'=>'Descender','FontBBox'=>'FontBBox','ItalicAngle'=>'ItalicAngle');
+ $fdopt = array(
+ 'Flags'=>$flags
+ ,'FontName'=>$adobeFontName
+ ,'StemV'=>100 // don't know what the value for this should be!
+ );
+ foreach($list as $k=>$v){
+ if (isset($this->fonts[$fontName][$v])){
+ $fdopt[$k]=$this->fonts[$fontName][$v];
+ }
+ }
+
+ if ($fbtype=='pfb'){
+ $fdopt['FontFile']=$pfbid;
+ } else if ($fbtype=='ttf'){
+ $fdopt['FontFile2']=$pfbid;
+ }
+ $this->o_fontDescriptor($fontDescriptorId,'new',$fdopt);
+
+ // embed the font program
+ $this->o_contents($this->numObj,'new');
+ $this->objects[$pfbid]['c'].=$data;
+ // determine the cruicial lengths within this file
+ if ($fbtype=='pfb'){
+ $l1 = strpos($data,'eexec')+6;
+ $l2 = strpos($data,'00000000')-$l1;
+ $l3 = strlen($data)-$l2-$l1;
+ $this->o_contents($this->numObj,'add',array('Length1'=>$l1,'Length2'=>$l2,'Length3'=>$l3));
+ } else if ($fbtype=='ttf'){
+ $l1 = strlen($data);
+ $this->o_contents($this->numObj,'add',array('Length1'=>$l1));
+ }
+
+
+ // tell the font object about all this new stuff
+ $tmp = array('BaseFont'=>$adobeFontName,'Widths'=>$widthid
+ ,'FirstChar'=>$firstChar,'LastChar'=>$lastChar
+ ,'FontDescriptor'=>$fontDescriptorId);
+ if ($fbtype=='ttf'){
+ $tmp['SubType']='TrueType';
+ }
+ $this->addMessage('adding extra info to font.('.$fontObj.')');
+ foreach($tmp as $fk=>$fv){
+ $this->addMessage($fk." : ".$fv);
+ }
+ $this->o_font($fontObj,'add',$tmp);
+
+ } else {
+ $this->addMessage('selectFont: pfb or ttf file not found, ok if this is one of the 14 standard fonts');
+ }
+
+
+ // also set the differences here, note that this means that these will take effect only the
+ //first time that a font is selected, else they are ignored
+ if (isset($options['differences'])){
+ $this->fonts[$fontName]['differences']=$options['differences'];
+ }
+ }
+ }
+ if ($set && isset($this->fonts[$fontName])){
+ // so if for some reason the font was not set in the last one then it will not be selected
+ $this->currentBaseFont=$fontName;
+ // the next line means that if a new font is selected, then the current text state will be
+ // applied to it as well.
+ $this->setCurrentFont();
+ }
+ return $this->currentFontNum;
+}
+
+/**
+* sets up the current font, based on the font families, and the current text state
+* note that this system is quite flexible, a <<b>><<i>> font can be completely different to a
+* <<i>><<b>> font, and even <<b>><<b>> will have to be defined within the family to have meaning
+* This function is to be called whenever the currentTextState is changed, it will update
+* the currentFont setting to whatever the appropriatte family one is.
+* If the user calls selectFont themselves then that will reset the currentBaseFont, and the currentFont
+* This function will change the currentFont to whatever it should be, but will not change the
+* currentBaseFont.
+*
+* @access private
+*/
+function setCurrentFont(){
+ if (strlen($this->currentBaseFont)==0){
+ // then assume an initial font
+ $this->selectFont('./fonts/Helvetica.afm');
+ }
+ $cf = substr($this->currentBaseFont,strrpos($this->currentBaseFont,'/')+1);
+ if (strlen($this->currentTextState)
+ && isset($this->fontFamilies[$cf])
+ && isset($this->fontFamilies[$cf][$this->currentTextState])){
+ // then we are in some state or another
+ // and this font has a family, and the current setting exists within it
+ // select the font, then return it
+ $nf = substr($this->currentBaseFont,0,strrpos($this->currentBaseFont,'/')+1).$this->fontFamilies[$cf][$this->currentTextState];
+ $this->selectFont($nf,'',0);
+ $this->currentFont = $nf;
+ $this->currentFontNum = $this->fonts[$nf]['fontNum'];
+ } else {
+ // the this font must not have the right family member for the current state
+ // simply assume the base font
+ $this->currentFont = $this->currentBaseFont;
+ $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum'];
+ }
+}
+
+/**
+* function for the user to find out what the ID is of the first page that was created during
+* startup - useful if they wish to add something to it later.
+*/
+function getFirstPageId(){
+ return $this->firstPageId;
+}
+
+/**
+* add content to the currently active object
+*
+* @access private
+*/
+function addContent($content){
+ $this->objects[$this->currentContents]['c'].=$content;
+}
+
+/**
+* sets the colour for fill operations
+*/
+function setColor($r,$g,$b,$force=0){
+ if ($r>=0 && ($force || $r!=$this->currentColour['r'] || $g!=$this->currentColour['g'] || $b!=$this->currentColour['b'])){
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$r).' '.sprintf('%.3f',$g).' '.sprintf('%.3f',$b).' rg';
+ $this->currentColour=array('r'=>$r,'g'=>$g,'b'=>$b);
+ }
+}
+
+/**
+* sets the colour for stroke operations
+*/
+function setStrokeColor($r,$g,$b,$force=0){
+ if ($r>=0 && ($force || $r!=$this->currentStrokeColour['r'] || $g!=$this->currentStrokeColour['g'] || $b!=$this->currentStrokeColour['b'])){
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$r).' '.sprintf('%.3f',$g).' '.sprintf('%.3f',$b).' RG';
+ $this->currentStrokeColour=array('r'=>$r,'g'=>$g,'b'=>$b);
+ }
+}
+
+/**
+* draw a line from one set of coordinates to another
+*/
+function line($x1,$y1,$x2,$y2){
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' m '.sprintf('%.3f',$x2).' '.sprintf('%.3f',$y2).' l S';
+}
+
+/**
+* draw a bezier curve based on 4 control points
+*/
+function curve($x0,$y0,$x1,$y1,$x2,$y2,$x3,$y3){
+ // in the current line style, draw a bezier curve from (x0,y0) to (x3,y3) using the other two points
+ // as the control points for the curve.
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x0).' '.sprintf('%.3f',$y0).' m '.sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1);
+ $this->objects[$this->currentContents]['c'].= ' '.sprintf('%.3f',$x2).' '.sprintf('%.3f',$y2).' '.sprintf('%.3f',$x3).' '.sprintf('%.3f',$y3).' c S';
+}
+
+/**
+* draw a part of an ellipse
+*/
+function partEllipse($x0,$y0,$astart,$afinish,$r1,$r2=0,$angle=0,$nSeg=8){
+ $this->ellipse($x0,$y0,$r1,$r2,$angle,$nSeg,$astart,$afinish,0);
+}
+
+/**
+* draw a filled ellipse
+*/
+function filledEllipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360){
+ return $this->ellipse($x0,$y0,$r1,$r2=0,$angle,$nSeg,$astart,$afinish,1,1);
+}
+
+/**
+* draw an ellipse
+* note that the part and filled ellipse are just special cases of this function
+*
+* draws an ellipse in the current line style
+* centered at $x0,$y0, radii $r1,$r2
+* if $r2 is not set, then a circle is drawn
+* nSeg is not allowed to be less than 2, as this will simply draw a line (and will even draw a
+* pretty crappy shape at 2, as we are approximating with bezier curves.
+*/
+function ellipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360,$close=1,$fill=0){
+ if ($r1==0){
+ return;
+ }
+ if ($r2==0){
+ $r2=$r1;
+ }
+ if ($nSeg<2){
+ $nSeg=2;
+ }
+
+ $astart = deg2rad((float)$astart);
+ $afinish = deg2rad((float)$afinish);
+ $totalAngle =$afinish-$astart;
+
+ $dt = $totalAngle/$nSeg;
+ $dtm = $dt/3;
+
+ if ($angle != 0){
+ $a = -1*deg2rad((float)$angle);
+ $tmp = "\n q ";
+ $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';
+ $tmp .= sprintf('%.3f',$x0).' '.sprintf('%.3f',$y0).' cm';
+ $this->objects[$this->currentContents]['c'].= $tmp;
+ $x0=0;
+ $y0=0;
+ }
+
+ $t1 = $astart;
+ $a0 = $x0+$r1*cos($t1);
+ $b0 = $y0+$r2*sin($t1);
+ $c0 = -$r1*sin($t1);
+ $d0 = $r2*cos($t1);
+
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$a0).' '.sprintf('%.3f',$b0).' m ';
+ for ($i=1;$i<=$nSeg;$i++){
+ // draw this bit of the total curve
+ $t1 = $i*$dt+$astart;
+ $a1 = $x0+$r1*cos($t1);
+ $b1 = $y0+$r2*sin($t1);
+ $c1 = -$r1*sin($t1);
+ $d1 = $r2*cos($t1);
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',($a0+$c0*$dtm)).' '.sprintf('%.3f',($b0+$d0*$dtm));
+ $this->objects[$this->currentContents]['c'].= ' '.sprintf('%.3f',($a1-$c1*$dtm)).' '.sprintf('%.3f',($b1-$d1*$dtm)).' '.sprintf('%.3f',$a1).' '.sprintf('%.3f',$b1).' c';
+ $a0=$a1;
+ $b0=$b1;
+ $c0=$c1;
+ $d0=$d1;
+ }
+ if ($fill){
+ $this->objects[$this->currentContents]['c'].=' f';
+ } else {
+ if ($close){
+ $this->objects[$this->currentContents]['c'].=' s'; // small 's' signifies closing the path as well
+ } else {
+ $this->objects[$this->currentContents]['c'].=' S';
+ }
+ }
+ if ($angle !=0){
+ $this->objects[$this->currentContents]['c'].=' Q';
+ }
+}
+
+/**
+* this sets the line drawing style.
+* width, is the thickness of the line in user units
+* cap is the type of cap to put on the line, values can be 'butt','round','square'
+* where the diffference between 'square' and 'butt' is that 'square' projects a flat end past the
+* end of the line.
+* join can be 'miter', 'round', 'bevel'
+* dash is an array which sets the dash pattern, is a series of length values, which are the lengths of the
+* on and off dashes.
+* (2) represents 2 on, 2 off, 2 on , 2 off ...
+* (2,1) is 2 on, 1 off, 2 on, 1 off.. etc
+* phase is a modifier on the dash pattern which is used to shift the point at which the pattern starts.
+*/
+function setLineStyle($width=1,$cap='',$join='',$dash='',$phase=0){
+
+ // this is quite inefficient in that it sets all the parameters whenever 1 is changed, but will fix another day
+ $string = '';
+ if ($width>0){
+ $string.= $width.' w';
+ }
+ $ca = array('butt'=>0,'round'=>1,'square'=>2);
+ if (isset($ca[$cap])){
+ $string.= ' '.$ca[$cap].' J';
+ }
+ $ja = array('miter'=>0,'round'=>1,'bevel'=>2);
+ if (isset($ja[$join])){
+ $string.= ' '.$ja[$join].' j';
+ }
+ if (is_array($dash)){
+ $string.= ' [';
+ foreach ($dash as $len){
+ $string.=' '.$len;
+ }
+ $string.= ' ] '.$phase.' d';
+ }
+ $this->currentLineStyle = $string;
+ $this->objects[$this->currentContents]['c'].="\n".$string;
+}
+
+/**
+* draw a polygon, the syntax for this is similar to the GD polygon command
+*/
+function polygon($p,$np,$f=0){
+ $this->objects[$this->currentContents]['c'].="\n";
+ $this->objects[$this->currentContents]['c'].=sprintf('%.3f',$p[0]).' '.sprintf('%.3f',$p[1]).' m ';
+ for ($i=2;$i<$np*2;$i=$i+2){
+ $this->objects[$this->currentContents]['c'].= sprintf('%.3f',$p[$i]).' '.sprintf('%.3f',$p[$i+1]).' l ';
+ }
+ if ($f==1){
+ $this->objects[$this->currentContents]['c'].=' f';
+ } else {
+ $this->objects[$this->currentContents]['c'].=' S';
+ }
+}
+
+/**
+* a filled rectangle, note that it is the width and height of the rectangle which are the secondary paramaters, not
+* the coordinates of the upper-right corner
+*/
+function filledRectangle($x1,$y1,$width,$height){
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' '.sprintf('%.3f',$width).' '.sprintf('%.3f',$height).' re f';
+}
+
+/**
+* draw a rectangle, note that it is the width and height of the rectangle which are the secondary paramaters, not
+* the coordinates of the upper-right corner
+*/
+function rectangle($x1,$y1,$width,$height){
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' '.sprintf('%.3f',$width).' '.sprintf('%.3f',$height).' re S';
+}
+
+/**
+* add a new page to the document
+* this also makes the new page the current active object
+*/
+function newPage($insert=0,$id=0,$pos='after'){
+
+ // if there is a state saved, then go up the stack closing them
+ // then on the new page, re-open them with the right setings
+
+ if ($this->nStateStack){
+ for ($i=$this->nStateStack;$i>=1;$i--){
+ $this->restoreState($i);
+ }
+ }
+
+ $this->numObj++;
+ if ($insert){
+ // the id from the ezPdf class is the od of the contents of the page, not the page object itself
+ // query that object to find the parent
+ $rid = $this->objects[$id]['onPage'];
+ $opt= array('rid'=>$rid,'pos'=>$pos);
+ $this->o_page($this->numObj,'new',$opt);
+ } else {
+ $this->o_page($this->numObj,'new');
+ }
+ // if there is a stack saved, then put that onto the page
+ if ($this->nStateStack){
+ for ($i=1;$i<=$this->nStateStack;$i++){
+ $this->saveState($i);
+ }
+ }
+ // and if there has been a stroke or fill colour set, then transfer them
+ if ($this->currentColour['r']>=0){
+ $this->setColor($this->currentColour['r'],$this->currentColour['g'],$this->currentColour['b'],1);
+ }
+ if ($this->currentStrokeColour['r']>=0){
+ $this->setStrokeColor($this->currentStrokeColour['r'],$this->currentStrokeColour['g'],$this->currentStrokeColour['b'],1);
+ }
+
+ // if there is a line style set, then put this in too
+ if (strlen($this->currentLineStyle)){
+ $this->objects[$this->currentContents]['c'].="\n".$this->currentLineStyle;
+ }
+
+ // the call to the o_page object set currentContents to the present page, so this can be returned as the page id
+ return $this->currentContents;
+}
+
+/**
+* output the pdf code, streaming it to the browser
+* the relevant headers are set so that hopefully the browser will recognise it
+*/
+function stream($options=''){
+ // setting the options allows the adjustment of the headers
+ // values at the moment are:
+ // 'Content-Disposition'=>'filename' - sets the filename, though not too sure how well this will
+ // work as in my trial the browser seems to use the filename of the php file with .pdf on the end
+ // 'Accept-Ranges'=>1 or 0 - if this is not set to 1, then this header is not included, off by default
+ // this header seems to have caused some problems despite tha fact that it is supposed to solve
+ // them, so I am leaving it off by default.
+ // 'compress'=> 1 or 0 - apply content stream compression, this is on (1) by default
+ if (!is_array($options)){
+ $options=array();
+ }
+ if ( isset($options['compress']) && $options['compress']==0){
+ $tmp = $this->output(1);
+ } else {
+ $tmp = $this->output();
+ }
+ header("Content-type: application/pdf");
+ header("Content-Length: ".strlen(ltrim($tmp)));
+ $fileName = (isset($options['Content-Disposition'])?$options['Content-Disposition']:'file.pdf');
+ header("Content-Disposition: inline; filename=".$fileName);
+ if (isset($options['Accept-Ranges']) && $options['Accept-Ranges']==1){
+ header("Accept-Ranges: ".strlen(ltrim($tmp)));
+ }
+ echo ltrim($tmp);
+}
+
+/**
+* return the height in units of the current font in the given size
+*/
+function getFontHeight($size){
+ if (!$this->numFonts){
+ $this->selectFont('./fonts/Helvetica');
+ }
+ // for the current font, and the given size, what is the height of the font in user units
+ $h = $this->fonts[$this->currentFont]['FontBBox'][3]-$this->fonts[$this->currentFont]['FontBBox'][1];
+ return $size*$h/1000;
+}
+
+/**
+* return the font decender, this will normally return a negative number
+* if you add this number to the baseline, you get the level of the bottom of the font
+* it is in the pdf user units
+*/
+function getFontDecender($size){
+ // note that this will most likely return a negative value
+ if (!$this->numFonts){
+ $this->selectFont('./fonts/Helvetica');
+ }
+ $h = $this->fonts[$this->currentFont]['FontBBox'][1];
+ return $size*$h/1000;
+}
+
+/**
+* filter the text, this is applied to all text just before being inserted into the pdf document
+* it escapes the various things that need to be escaped, and so on
+*
+* @access private
+*/
+function filterText($text){
+ $text = str_replace('\\','\\\\',$text);
+ $text = str_replace('(','\(',$text);
+ $text = str_replace(')','\)',$text);
+ $text = str_replace('&lt;','<',$text);
+ $text = str_replace('&gt;','>',$text);
+ $text = str_replace('&#039;','\'',$text);
+ $text = str_replace('&quot;','"',$text);
+ $text = str_replace('&amp;','&',$text);
+
+ return $text;
+}
+
+/**
+* given a start position and information about how text is to be laid out, calculate where
+* on the page the text will end
+*
+* @access private
+*/
+function PRVTgetTextPosition($x,$y,$angle,$size,$wa,$text){
+ // given this information return an array containing x and y for the end position as elements 0 and 1
+ $w = $this->getTextWidth($size,$text);
+ // need to adjust for the number of spaces in this text
+ $words = explode(' ',$text);
+ $nspaces=count($words)-1;
+ $w += $wa*$nspaces;
+ $a = deg2rad((float)$angle);
+ return array(cos($a)*$w+$x,-sin($a)*$w+$y);
+}
+
+/**
+* wrapper function for PRVTcheckTextDirective1
+*
+* @access private
+*/
+function PRVTcheckTextDirective(&$text,$i,&$f){
+ $x=0;
+ $y=0;
+ return $this->PRVTcheckTextDirective1($text,$i,$f,0,$x,$y);
+}
+
+/**
+* checks if the text stream contains a control directive
+* if so then makes some changes and returns the number of characters involved in the directive
+* this has been re-worked to include everything neccesary to fins the current writing point, so that
+* the location can be sent to the callback function if required
+* if the directive does not require a font change, then $f should be set to 0
+*
+* @access private
+*/
+function PRVTcheckTextDirective1(&$text,$i,&$f,$final,&$x,&$y,$size=0,$angle=0,$wordSpaceAdjust=0){
+ $directive = 0;
+ $j=$i;
+ if ($text[$j]=='<'){
+ $j++;
+ switch($text[$j]){
+ case '/':
+ $j++;
+ if (strlen($text) <= $j){
+ return $directive;
+ }
+ switch($text[$j]){
+ case 'b':
+ case 'i':
+ $j++;
+ if ($text[$j]=='>'){
+ $p = strrpos($this->currentTextState,$text[$j-1]);
+ if ($p !== false){
+ // then there is one to remove
+ $this->currentTextState = substr($this->currentTextState,0,$p).substr($this->currentTextState,$p+1);
+ }
+ $directive=$j-$i+1;
+ }
+ break;
+ case 'c':
+ // this this might be a callback function
+ $j++;
+ $k = strpos($text,'>',$j);
+ if ($k!==false && $text[$j]==':'){
+ // then this will be treated as a callback directive
+ $directive = $k-$i+1;
+ $f=0;
+ // split the remainder on colons to get the function name and the paramater
+ $tmp = substr($text,$j+1,$k-$j-1);
+ $b1 = strpos($tmp,':');
+ if ($b1!==false){
+ $func = substr($tmp,0,$b1);
+ $parm = substr($tmp,$b1+1);
+ } else {
+ $func=$tmp;
+ $parm='';
+ }
+ if (!isset($func) || !strlen(trim($func))){
+ $directive=0;
+ } else {
+ // only call the function if this is the final call
+ if ($final){
+ // need to assess the text position, calculate the text width to this point
+ // can use getTextWidth to find the text width I think
+ $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i));
+ $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'end','p'=>$parm,'nCallback'=>$this->nCallback);
+ $x=$tmp[0];
+ $y=$tmp[1];
+ $ret = $this->$func($info);
+ if (is_array($ret)){
+ // then the return from the callback function could set the position, to start with, later will do font colour, and font
+ foreach($ret as $rk=>$rv){
+ switch($rk){
+ case 'x':
+ case 'y':
+ $$rk=$rv;
+ break;
+ }
+ }
+ }
+ // also remove from to the stack
+ // for simplicity, just take from the end, fix this another day
+ $this->nCallback--;
+ if ($this->nCallback<0){
+ $this->nCallBack=0;
+ }
+ }
+ }
+ }
+ break;
+ }
+ break;
+ case 'b':
+ case 'i':
+ $j++;
+ if ($text[$j]=='>'){
+ $this->currentTextState.=$text[$j-1];
+ $directive=$j-$i+1;
+ }
+ break;
+ case 'C':
+ $noClose=1;
+ case 'c':
+ // this this might be a callback function
+ $j++;
+ $k = strpos($text,'>',$j);
+ if ($k!==false && $text[$j]==':'){
+ // then this will be treated as a callback directive
+ $directive = $k-$i+1;
+ $f=0;
+ // split the remainder on colons to get the function name and the paramater
+// $bits = explode(':',substr($text,$j+1,$k-$j-1));
+ $tmp = substr($text,$j+1,$k-$j-1);
+ $b1 = strpos($tmp,':');
+ if ($b1!==false){
+ $func = substr($tmp,0,$b1);
+ $parm = substr($tmp,$b1+1);
+ } else {
+ $func=$tmp;
+ $parm='';
+ }
+ if (!isset($func) || !strlen(trim($func))){
+ $directive=0;
+ } else {
+ // only call the function if this is the final call, ie, the one actually doing printing, not measurement
+ if ($final){
+ // need to assess the text position, calculate the text width to this point
+ // can use getTextWidth to find the text width I think
+ // also add the text height and decender
+ $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i));
+ $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'start','p'=>$parm,'f'=>$func,'height'=>$this->getFontHeight($size),'decender'=>$this->getFontDecender($size));
+ $x=$tmp[0];
+ $y=$tmp[1];
+ if (!isset($noClose) || !$noClose){
+ // only add to the stack if this is a small 'c', therefore is a start-stop pair
+ $this->nCallback++;
+ $info['nCallback']=$this->nCallback;
+ $this->callback[$this->nCallback]=$info;
+ }
+ $ret = $this->$func($info);
+ if (is_array($ret)){
+ // then the return from the callback function could set the position, to start with, later will do font colour, and font
+ foreach($ret as $rk=>$rv){
+ switch($rk){
+ case 'x':
+ case 'y':
+ $$rk=$rv;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ break;
+ }
+ }
+ return $directive;
+}
+
+/**
+* add text to the document, at a specified location, size and angle on the page
+*/
+function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){
+ if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}
+
+ // if there are any open callbacks, then they should be called, to show the start of the line
+ if ($this->nCallback>0){
+ for ($i=$this->nCallback;$i>0;$i--){
+ // call each function
+ $info = array('x'=>$x,'y'=>$y,'angle'=>$angle,'status'=>'sol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']);
+ $func = $this->callback[$i]['f'];
+ $this->$func($info);
+ }
+ }
+ if ($angle==0){
+ $this->objects[$this->currentContents]['c'].="\n".'BT '.sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Td';
+ } else {
+ $a = deg2rad((float)$angle);
+ $tmp = "\n".'BT ';
+ $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';
+ $tmp .= sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Tm';
+ $this->objects[$this->currentContents]['c'] .= $tmp;
+ }
+ if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){
+ $this->wordSpaceAdjust=$wordSpaceAdjust;
+ $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw';
+ }
+ $len=strlen($text);
+ $start=0;
+ for ($i=0;$i<$len;$i++){
+ $f=1;
+ $directive = $this->PRVTcheckTextDirective($text,$i,$f);
+ if ($directive){
+ // then we should write what we need to
+ if ($i>$start){
+ $part = substr($text,$start,$i-$start);
+ $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf ';
+ $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj';
+ }
+ if ($f){
+ // then there was nothing drastic done here, restore the contents
+ $this->setCurrentFont();
+ } else {
+ $this->objects[$this->currentContents]['c'] .= ' ET';
+ $f=1;
+ $xp=$x;
+ $yp=$y;
+ $directive = $this->PRVTcheckTextDirective1($text,$i,$f,1,$xp,$yp,$size,$angle,$wordSpaceAdjust);
+
+ // restart the text object
+ if ($angle==0){
+ $this->objects[$this->currentContents]['c'].="\n".'BT '.sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Td';
+ } else {
+ $a = deg2rad((float)$angle);
+ $tmp = "\n".'BT ';
+ $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' ';
+ $tmp .= sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Tm';
+ $this->objects[$this->currentContents]['c'] .= $tmp;
+ }
+ if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){
+ $this->wordSpaceAdjust=$wordSpaceAdjust;
+ $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw';
+ }
+ }
+ // and move the writing point to the next piece of text
+ $i=$i+$directive-1;
+ $start=$i+1;
+ }
+
+ }
+ if ($start<$len){
+ $part = substr($text,$start);
+ $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf ';
+ $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj';
+ }
+ $this->objects[$this->currentContents]['c'].=' ET';
+
+ // if there are any open callbacks, then they should be called, to show the end of the line
+ if ($this->nCallback>0){
+ for ($i=$this->nCallback;$i>0;$i--){
+ // call each function
+ $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,$text);
+ $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'eol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']);
+ $func = $this->callback[$i]['f'];
+ $this->$func($info);
+ }
+ }
+
+}
+
+/**
+* calculate how wide a given text string will be on a page, at a given size.
+* this can be called externally, but is alse used by the other class functions
+*/
+function getTextWidth($size,$text){
+ // this function should not change any of the settings, though it will need to
+ // track any directives which change during calculation, so copy them at the start
+ // and put them back at the end.
+ $store_currentTextState = $this->currentTextState;
+
+ if (!$this->numFonts){
+ $this->selectFont('./fonts/Helvetica');
+ }
+
+ // converts a number or a float to a string so it can get the width
+ $text = "$text";
+
+ // hmm, this is where it all starts to get tricky - use the font information to
+ // calculate the width of each character, add them up and convert to user units
+ $w=0;
+ $len=strlen($text);
+ $cf = $this->currentFont;
+ for ($i=0;$i<$len;$i++){
+ $f=1;
+ $directive = $this->PRVTcheckTextDirective($text,$i,$f);
+ if ($directive){
+ if ($f){
+ $this->setCurrentFont();
+ $cf = $this->currentFont;
+ }
+ $i=$i+$directive-1;
+ } else {
+ $char=ord($text[$i]);
+ if (isset($this->fonts[$cf]['differences'][$char])){
+ // then this character is being replaced by another
+ $name = $this->fonts[$cf]['differences'][$char];
+ if (isset($this->fonts[$cf]['C'][$name]['WX'])){
+ $w+=$this->fonts[$cf]['C'][$name]['WX'];
+ }
+ } else if (isset($this->fonts[$cf]['C'][$char]['WX'])){
+ $w+=$this->fonts[$cf]['C'][$char]['WX'];
+ }
+ }
+ }
+
+ $this->currentTextState = $store_currentTextState;
+ $this->setCurrentFont();
+
+ return $w*$size/1000;
+}
+
+/**
+* do a part of the calculation for sorting out the justification of the text
+*
+* @access private
+*/
+function PRVTadjustWrapText($text,$actual,$width,&$x,&$adjust,$justification){
+ switch ($justification){
+ case 'left':
+ return;
+ break;
+ case 'right':
+ $x+=$width-$actual;
+ break;
+ case 'center':
+ case 'centre':
+ $x+=($width-$actual)/2;
+ break;
+ case 'full':
+ // count the number of words
+ $words = explode(' ',$text);
+ $nspaces=count($words)-1;
+ if ($nspaces>0){
+ $adjust = ($width-$actual)/$nspaces;
+ } else {
+ $adjust=0;
+ }
+ break;
+ }
+}
+
+/**
+* add text to the page, but ensure that it fits within a certain width
+* if it does not fit then put in as much as possible, splitting at word boundaries
+* and return the remainder.
+* justification and angle can also be specified for the text
+*/
+function addTextWrap($x,$y,$width,$size,$text,$justification='left',$angle=0,$test=0){
+ // this will display the text, and if it goes beyond the width $width, will backtrack to the
+ // previous space or hyphen, and return the remainder of the text.
+
+ // $justification can be set to 'left','right','center','centre','full'
+
+ // need to store the initial text state, as this will change during the width calculation
+ // but will need to be re-set before printing, so that the chars work out right
+ $store_currentTextState = $this->currentTextState;
+
+ if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');}
+ if ($width<=0){
+ // error, pretend it printed ok, otherwise risking a loop
+ return '';
+ }
+ $w=0;
+ $break=0;
+ $breakWidth=0;
+ $len=strlen($text);
+ $cf = $this->currentFont;
+ $tw = $width/$size*1000;
+ for ($i=0;$i<$len;$i++){
+ $f=1;
+ $directive = $this->PRVTcheckTextDirective($text,$i,$f);
+ if ($directive){
+ if ($f){
+ $this->setCurrentFont();
+ $cf = $this->currentFont;
+ }
+ $i=$i+$directive-1;
+ } else {
+ $cOrd = ord($text[$i]);
+ if (isset($this->fonts[$cf]['differences'][$cOrd])){
+ // then this character is being replaced by another
+ $cOrd2 = $this->fonts[$cf]['differences'][$cOrd];
+ } else {
+ $cOrd2 = $cOrd;
+ }
+
+ if (isset($this->fonts[$cf]['C'][$cOrd2]['WX'])){
+ $w+=$this->fonts[$cf]['C'][$cOrd2]['WX'];
+ }
+ if ($w>$tw){
+ // then we need to truncate this line
+ if ($break>0){
+ // then we have somewhere that we can split :)
+ if ($text[$break]==' '){
+ $tmp = substr($text,0,$break);
+ } else {
+ $tmp = substr($text,0,$break+1);
+ }
+ $adjust=0;
+ $this->PRVTadjustWrapText($tmp,$breakWidth,$width,$x,$adjust,$justification);
+
+ // reset the text state
+ $this->currentTextState = $store_currentTextState;
+ $this->setCurrentFont();
+ if (!$test){
+ $this->addText($x,$y,$size,$tmp,$angle,$adjust);
+ }
+ return substr($text,$break+1);
+ } else {
+ // just split before the current character
+ $tmp = substr($text,0,$i);
+ $adjust=0;
+ $ctmp=ord($text[$i]);
+ if (isset($this->fonts[$cf]['differences'][$ctmp])){
+ $ctmp=$this->fonts[$cf]['differences'][$ctmp];
+ }
+ $tmpw=($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000;
+ $this->PRVTadjustWrapText($tmp,$tmpw,$width,$x,$adjust,$justification);
+ // reset the text state
+ $this->currentTextState = $store_currentTextState;
+ $this->setCurrentFont();
+ if (!$test){
+ $this->addText($x,$y,$size,$tmp,$angle,$adjust);
+ }
+ return substr($text,$i);
+ }
+ }
+ if ($text[$i]=='-'){
+ $break=$i;
+ $breakWidth = $w*$size/1000;
+ }
+ if ($text[$i]==' '){
+ $break=$i;
+ $ctmp=ord($text[$i]);
+ if (isset($this->fonts[$cf]['differences'][$ctmp])){
+ $ctmp=$this->fonts[$cf]['differences'][$ctmp];
+ }
+ $breakWidth = ($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000;
+ }
+ }
+ }
+ // then there was no need to break this line
+ if ($justification=='full'){
+ $justification='left';
+ }
+ $adjust=0;
+ $tmpw=$w*$size/1000;
+ $this->PRVTadjustWrapText($text,$tmpw,$width,$x,$adjust,$justification);
+ // reset the text state
+ $this->currentTextState = $store_currentTextState;
+ $this->setCurrentFont();
+ if (!$test){
+ $this->addText($x,$y,$size,$text,$angle,$adjust,$angle);
+ }
+ return '';
+}
+
+/**
+* this will be called at a new page to return the state to what it was on the
+* end of the previous page, before the stack was closed down
+* This is to get around not being able to have open 'q' across pages
+*
+*/
+function saveState($pageEnd=0){
+ if ($pageEnd){
+ // this will be called at a new page to return the state to what it was on the
+ // end of the previous page, before the stack was closed down
+ // This is to get around not being able to have open 'q' across pages
+ $opt = $this->stateStack[$pageEnd]; // ok to use this as stack starts numbering at 1
+ $this->setColor($opt['col']['r'],$opt['col']['g'],$opt['col']['b'],1);
+ $this->setStrokeColor($opt['str']['r'],$opt['str']['g'],$opt['str']['b'],1);
+ $this->objects[$this->currentContents]['c'].="\n".$opt['lin'];
+// $this->currentLineStyle = $opt['lin'];
+ } else {
+ $this->nStateStack++;
+ $this->stateStack[$this->nStateStack]=array(
+ 'col'=>$this->currentColour
+ ,'str'=>$this->currentStrokeColour
+ ,'lin'=>$this->currentLineStyle
+ );
+ }
+ $this->objects[$this->currentContents]['c'].="\nq";
+}
+
+/**
+* restore a previously saved state
+*/
+function restoreState($pageEnd=0){
+ if (!$pageEnd){
+ $n = $this->nStateStack;
+ $this->currentColour = $this->stateStack[$n]['col'];
+ $this->currentStrokeColour = $this->stateStack[$n]['str'];
+ $this->objects[$this->currentContents]['c'].="\n".$this->stateStack[$n]['lin'];
+ $this->currentLineStyle = $this->stateStack[$n]['lin'];
+ unset($this->stateStack[$n]);
+ $this->nStateStack--;
+ }
+ $this->objects[$this->currentContents]['c'].="\nQ";
+}
+
+/**
+* make a loose object, the output will go into this object, until it is closed, then will revert to
+* the current one.
+* this object will not appear until it is included within a page.
+* the function will return the object number
+*/
+function openObject(){
+ $this->nStack++;
+ $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage);
+ // add a new object of the content type, to hold the data flow
+ $this->numObj++;
+ $this->o_contents($this->numObj,'new');
+ $this->currentContents=$this->numObj;
+ $this->looseObjects[$this->numObj]=1;
+
+ return $this->numObj;
+}
+
+/**
+* open an existing object for editing
+*/
+function reopenObject($id){
+ $this->nStack++;
+ $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage);
+ $this->currentContents=$id;
+ // also if this object is the primary contents for a page, then set the current page to its parent
+ if (isset($this->objects[$id]['onPage'])){
+ $this->currentPage = $this->objects[$id]['onPage'];
+ }
+}
+
+/**
+* close an object
+*/
+function closeObject(){
+ // close the object, as long as there was one open in the first place, which will be indicated by
+ // an objectId on the stack.
+ if ($this->nStack>0){
+ $this->currentContents=$this->stack[$this->nStack]['c'];
+ $this->currentPage=$this->stack[$this->nStack]['p'];
+ $this->nStack--;
+ // easier to probably not worry about removing the old entries, they will be overwritten
+ // if there are new ones.
+ }
+}
+
+/**
+* stop an object from appearing on pages from this point on
+*/
+function stopObject($id){
+ // if an object has been appearing on pages up to now, then stop it, this page will
+ // be the last one that could contian it.
+ if (isset($this->addLooseObjects[$id])){
+ $this->addLooseObjects[$id]='';
+ }
+}
+
+/**
+* after an object has been created, it wil only show if it has been added, using this function.
+*/
+function addObject($id,$options='add'){
+ // add the specified object to the page
+ if (isset($this->looseObjects[$id]) && $this->currentContents!=$id){
+ // then it is a valid object, and it is not being added to itself
+ switch($options){
+ case 'all':
+ // then this object is to be added to this page (done in the next block) and
+ // all future new pages.
+ $this->addLooseObjects[$id]='all';
+ case 'add':
+ if (isset($this->objects[$this->currentContents]['onPage'])){
+ // then the destination contents is the primary for the page
+ // (though this object is actually added to that page)
+ $this->o_page($this->objects[$this->currentContents]['onPage'],'content',$id);
+ }
+ break;
+ case 'even':
+ $this->addLooseObjects[$id]='even';
+ $pageObjectId=$this->objects[$this->currentContents]['onPage'];
+ if ($this->objects[$pageObjectId]['info']['pageNum']%2==0){
+ $this->addObject($id); // hacky huh :)
+ }
+ break;
+ case 'odd':
+ $this->addLooseObjects[$id]='odd';
+ $pageObjectId=$this->objects[$this->currentContents]['onPage'];
+ if ($this->objects[$pageObjectId]['info']['pageNum']%2==1){
+ $this->addObject($id); // hacky huh :)
+ }
+ break;
+ case 'next':
+ $this->addLooseObjects[$id]='all';
+ break;
+ case 'nexteven':
+ $this->addLooseObjects[$id]='even';
+ break;
+ case 'nextodd':
+ $this->addLooseObjects[$id]='odd';
+ break;
+ }
+ }
+}
+
+/**
+* add content to the documents info object
+*/
+function addInfo($label,$value=0){
+ // this will only work if the label is one of the valid ones.
+ // modify this so that arrays can be passed as well.
+ // if $label is an array then assume that it is key=>value pairs
+ // else assume that they are both scalar, anything else will probably error
+ if (is_array($label)){
+ foreach ($label as $l=>$v){
+ $this->o_info($this->infoObject,$l,$v);
+ }
+ } else {
+ $this->o_info($this->infoObject,$label,$value);
+ }
+}
+
+/**
+* set the viewer preferences of the document, it is up to the browser to obey these.
+*/
+function setPreferences($label,$value=0){
+ // this will only work if the label is one of the valid ones.
+ if (is_array($label)){
+ foreach ($label as $l=>$v){
+ $this->o_catalog($this->catalogId,'viewerPreferences',array($l=>$v));
+ }
+ } else {
+ $this->o_catalog($this->catalogId,'viewerPreferences',array($label=>$value));
+ }
+}
+
+/**
+* extract an integer from a position in a byte stream
+*
+* @access private
+*/
+function PRVT_getBytes(&$data,$pos,$num){
+ // return the integer represented by $num bytes from $pos within $data
+ $ret=0;
+ for ($i=0;$i<$num;$i++){
+ $ret=$ret*256;
+ $ret+=ord($data[$pos+$i]);
+ }
+ return $ret;
+}
+
+/**
+* add a PNG image into the document, from a file
+* this should work with remote files
+*/
+function addPngFromFile($file,$x,$y,$w=0,$h=0){
+ // read in a png file, interpret it, then add to the system
+ $error=0;
+ $tmp = get_magic_quotes_runtime();
+ set_magic_quotes_runtime(0);
+ $fp = @fopen($file,'rb');
+ if ($fp){
+ $data='';
+ while(!feof($fp)){
+ $data .= fread($fp,1024);
+ }
+ fclose($fp);
+ } else {
+ $error = 1;
+ $errormsg = 'trouble opening file: '.$file;
+ }
+ set_magic_quotes_runtime($tmp);
+
+ if (!$error){
+ $header = chr(137).chr(80).chr(78).chr(71).chr(13).chr(10).chr(26).chr(10);
+ if (substr($data,0,8)!=$header){
+ $error=1;
+ $errormsg = 'this file does not have a valid header';
+ }
+ }
+
+ if (!$error){
+ // set pointer
+ $p = 8;
+ $len = strlen($data);
+ // cycle through the file, identifying chunks
+ $haveHeader=0;
+ $info=array();
+ $idata='';
+ $pdata='';
+ while ($p<$len){
+ $chunkLen = $this->PRVT_getBytes($data,$p,4);
+ $chunkType = substr($data,$p+4,4);
+// echo $chunkType.' - '.$chunkLen.'<br>';
+
+ switch($chunkType){
+ case 'IHDR':
+ // this is where all the file information comes from
+ $info['width']=$this->PRVT_getBytes($data,$p+8,4);
+ $info['height']=$this->PRVT_getBytes($data,$p+12,4);
+ $info['bitDepth']=ord($data[$p+16]);
+ $info['colorType']=ord($data[$p+17]);
+ $info['compressionMethod']=ord($data[$p+18]);
+ $info['filterMethod']=ord($data[$p+19]);
+ $info['interlaceMethod']=ord($data[$p+20]);
+//print_r($info);
+ $haveHeader=1;
+ if ($info['compressionMethod']!=0){
+ $error=1;
+ $errormsg = 'unsupported compression method';
+ }
+ if ($info['filterMethod']!=0){
+ $error=1;
+ $errormsg = 'unsupported filter method';
+ }
+ break;
+ case 'PLTE':
+ $pdata.=substr($data,$p+8,$chunkLen);
+ break;
+ case 'IDAT':
+ $idata.=substr($data,$p+8,$chunkLen);
+ break;
+ case 'tRNS':
+ //this chunk can only occur once and it must occur after the PLTE chunk and before IDAT chunk
+ //print "tRNS found, color type = ".$info['colorType']."<BR>";
+ $transparency = array();
+ if ($info['colorType'] == 3) { // indexed color, rbg
+ /* corresponding to entries in the plte chunk
+ Alpha for palette index 0: 1 byte
+ Alpha for palette index 1: 1 byte
+ ...etc...
+ */
+ // there will be one entry for each palette entry. up until the last non-opaque entry.
+ // set up an array, stretching over all palette entries which will be o (opaque) or 1 (transparent)
+ $transparency['type']='indexed';
+ $numPalette = strlen($pdata)/3;
+ $trans=0;
+ for ($i=$chunkLen;$i>=0;$i--){
+ if (ord($data[$p+8+$i])==0){
+ $trans=$i;
+ }
+ }
+ $transparency['data'] = $trans;
+
+ } elseif($info['colorType'] == 0) { // grayscale
+ /* corresponding to entries in the plte chunk
+ Gray: 2 bytes, range 0 .. (2^bitdepth)-1
+ */
+// $transparency['grayscale']=$this->PRVT_getBytes($data,$p+8,2); // g = grayscale
+ $transparency['type']='indexed';
+ $transparency['data'] = ord($data[$p+8+1]);
+
+ } elseif($info['colorType'] == 2) { // truecolor
+ /* corresponding to entries in the plte chunk
+ Red: 2 bytes, range 0 .. (2^bitdepth)-1
+ Green: 2 bytes, range 0 .. (2^bitdepth)-1
+ Blue: 2 bytes, range 0 .. (2^bitdepth)-1
+ */
+ $transparency['r']=$this->PRVT_getBytes($data,$p+8,2); // r from truecolor
+ $transparency['g']=$this->PRVT_getBytes($data,$p+10,2); // g from truecolor
+ $transparency['b']=$this->PRVT_getBytes($data,$p+12,2); // b from truecolor
+
+ } else {
+ //unsupported transparency type
+ }
+ // KS End new code
+ break;
+ default:
+ break;
+ }
+
+ $p += $chunkLen+12;
+ }
+
+ if(!$haveHeader){
+ $error = 1;
+ $errormsg = 'information header is missing';
+ }
+ if (isset($info['interlaceMethod']) && $info['interlaceMethod']){
+ $error = 1;
+ $errormsg = 'There appears to be no support for interlaced images in pdf.';
+ }
+ }
+
+ if (!$error && $info['bitDepth'] > 8){
+ $error = 1;
+ $errormsg = 'only bit depth of 8 or less is supported';
+ }
+
+ if (!$error){
+ if ($info['colorType']!=2 && $info['colorType']!=0 && $info['colorType']!=3){
+ $error = 1;
+ $errormsg = 'transparancey alpha channel not supported, transparency only supported for palette images.';
+ } else {
+ switch ($info['colorType']){
+ case 3:
+ $color = 'DeviceRGB';
+ $ncolor=1;
+ break;
+ case 2:
+ $color = 'DeviceRGB';
+ $ncolor=3;
+ break;
+ case 0:
+ $color = 'DeviceGray';
+ $ncolor=1;
+ break;
+ }
+ }
+ }
+ if ($error){
+ $this->addMessage('PNG error - ('.$file.') '.$errormsg);
+ return;
+ }
+ if ($w==0){
+ $w=$h/$info['height']*$info['width'];
+ }
+ if ($h==0){
+ $h=$w*$info['height']/$info['width'];
+ }
+//print_r($info);
+ // so this image is ok... add it in.
+ $this->numImages++;
+ $im=$this->numImages;
+ $label='I'.$im;
+ $this->numObj++;
+// $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$idata,'iw'=>$w,'ih'=>$h,'type'=>'png','ic'=>$info['width']));
+ $options = array('label'=>$label,'data'=>$idata,'bitsPerComponent'=>$info['bitDepth'],'pdata'=>$pdata
+ ,'iw'=>$info['width'],'ih'=>$info['height'],'type'=>'png','color'=>$color,'ncolor'=>$ncolor);
+ if (isset($transparency)){
+ $options['transparency']=$transparency;
+ }
+ $this->o_image($this->numObj,'new',$options);
+
+ $this->objects[$this->currentContents]['c'].="\nq";
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$w)." 0 0 ".sprintf('%.3f',$h)." ".sprintf('%.3f',$x)." ".sprintf('%.3f',$y)." cm";
+ $this->objects[$this->currentContents]['c'].="\n/".$label.' Do';
+ $this->objects[$this->currentContents]['c'].="\nQ";
+}
+
+/**
+* add a JPEG image into the document, from a file
+*/
+function addJpegFromFile($img,$x,$y,$w=0,$h=0){
+ // attempt to add a jpeg image straight from a file, using no GD commands
+ // note that this function is unable to operate on a remote file.
+
+ if (!file_exists($img)){
+ return;
+ }
+
+ $tmp=getimagesize($img);
+ $imageWidth=$tmp[0];
+ $imageHeight=$tmp[1];
+
+ if (isset($tmp['channels'])){
+ $channels = $tmp['channels'];
+ } else {
+ $channels = 3;
+ }
+
+ if ($w<=0 && $h<=0){
+ $w=$imageWidth;
+ }
+ if ($w==0){
+ $w=$h/$imageHeight*$imageWidth;
+ }
+ if ($h==0){
+ $h=$w*$imageHeight/$imageWidth;
+ }
+
+ $fp=fopen($img,'rb');
+
+ $tmp = get_magic_quotes_runtime();
+ set_magic_quotes_runtime(0);
+ $data = fread($fp,filesize($img));
+ set_magic_quotes_runtime($tmp);
+
+ fclose($fp);
+
+ $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight,$channels);
+}
+
+/**
+* add an image into the document, from a GD object
+* this function is not all that reliable, and I would probably encourage people to use
+* the file based functions
+*/
+function addImage(&$img,$x,$y,$w=0,$h=0,$quality=75){
+ // add a new image into the current location, as an external object
+ // add the image at $x,$y, and with width and height as defined by $w & $h
+
+ // note that this will only work with full colour images and makes them jpg images for display
+ // later versions could present lossless image formats if there is interest.
+
+ // there seems to be some problem here in that images that have quality set above 75 do not appear
+ // not too sure why this is, but in the meantime I have restricted this to 75.
+ if ($quality>75){
+ $quality=75;
+ }
+
+ // if the width or height are set to zero, then set the other one based on keeping the image
+ // height/width ratio the same, if they are both zero, then give up :)
+ $imageWidth=imagesx($img);
+ $imageHeight=imagesy($img);
+
+ if ($w<=0 && $h<=0){
+ return;
+ }
+ if ($w==0){
+ $w=$h/$imageHeight*$imageWidth;
+ }
+ if ($h==0){
+ $h=$w*$imageHeight/$imageWidth;
+ }
+
+ // gotta get the data out of the img..
+
+ // so I write to a temp file, and then read it back.. soo ugly, my apologies.
+ $tmpDir='/tmp';
+ $tmpName=tempnam($tmpDir,'img');
+ imagejpeg($img,$tmpName,$quality);
+ $fp=fopen($tmpName,'rb');
+
+ $tmp = get_magic_quotes_runtime();
+ set_magic_quotes_runtime(0);
+ $fp = @fopen($tmpName,'rb');
+ if ($fp){
+ $data='';
+ while(!feof($fp)){
+ $data .= fread($fp,1024);
+ }
+ fclose($fp);
+ } else {
+ $error = 1;
+ $errormsg = 'trouble opening file';
+ }
+// $data = fread($fp,filesize($tmpName));
+ set_magic_quotes_runtime($tmp);
+// fclose($fp);
+ unlink($tmpName);
+ $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight);
+}
+
+/**
+* common code used by the two JPEG adding functions
+*
+* @access private
+*/
+function addJpegImage_common(&$data,$x,$y,$w=0,$h=0,$imageWidth,$imageHeight,$channels=3){
+ // note that this function is not to be called externally
+ // it is just the common code between the GD and the file options
+ $this->numImages++;
+ $im=$this->numImages;
+ $label='I'.$im;
+ $this->numObj++;
+ $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$data,'iw'=>$imageWidth,'ih'=>$imageHeight,'channels'=>$channels));
+
+ $this->objects[$this->currentContents]['c'].="\nq";
+ $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$w)." 0 0 ".sprintf('%.3f',$h)." ".sprintf('%.3f',$x)." ".sprintf('%.3f',$y)." cm";
+ $this->objects[$this->currentContents]['c'].="\n/".$label.' Do';
+ $this->objects[$this->currentContents]['c'].="\nQ";
+}
+
+/**
+* specify where the document should open when it first starts
+*/
+function openHere($style,$a=0,$b=0,$c=0){
+ // this function will open the document at a specified page, in a specified style
+ // the values for style, and the required paramters are:
+ // 'XYZ' left, top, zoom
+ // 'Fit'
+ // 'FitH' top
+ // 'FitV' left
+ // 'FitR' left,bottom,right
+ // 'FitB'
+ // 'FitBH' top
+ // 'FitBV' left
+ $this->numObj++;
+ $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c));
+ $id = $this->catalogId;
+ $this->o_catalog($id,'openHere',$this->numObj);
+}
+
+/**
+* create a labelled destination within the document
+*/
+function addDestination($label,$style,$a=0,$b=0,$c=0){
+ // associates the given label with the destination, it is done this way so that a destination can be specified after
+ // it has been linked to
+ // styles are the same as the 'openHere' function
+ $this->numObj++;
+ $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c));
+ $id = $this->numObj;
+ // store the label->idf relationship, note that this means that labels can be used only once
+ $this->destinations["$label"]=$id;
+}
+
+/**
+* define font families, this is used to initialize the font families for the default fonts
+* and for the user to add new ones for their fonts. The default bahavious can be overridden should
+* that be desired.
+*/
+function setFontFamily($family,$options=''){
+ if (!is_array($options)){
+ if ($family=='init'){
+ // set the known family groups
+ // these font families will be used to enable bold and italic markers to be included
+ // within text streams. html forms will be used... <b></b> <i></i>
+ $this->fontFamilies['Helvetica.afm']=array(
+ 'b'=>'Helvetica-Bold.afm'
+ ,'i'=>'Helvetica-Oblique.afm'
+ ,'bi'=>'Helvetica-BoldOblique.afm'
+ ,'ib'=>'Helvetica-BoldOblique.afm'
+ );
+ $this->fontFamilies['Courier.afm']=array(
+ 'b'=>'Courier-Bold.afm'
+ ,'i'=>'Courier-Oblique.afm'
+ ,'bi'=>'Courier-BoldOblique.afm'
+ ,'ib'=>'Courier-BoldOblique.afm'
+ );
+ $this->fontFamilies['Times-Roman.afm']=array(
+ 'b'=>'Times-Bold.afm'
+ ,'i'=>'Times-Italic.afm'
+ ,'bi'=>'Times-BoldItalic.afm'
+ ,'ib'=>'Times-BoldItalic.afm'
+ );
+ }
+ } else {
+ // the user is trying to set a font family
+ // note that this can also be used to set the base ones to something else
+ if (strlen($family)){
+ $this->fontFamilies[$family] = $options;
+ }
+ }
+}
+
+/**
+* used to add messages for use in debugging
+*/
+function addMessage($message){
+ $this->messages.=$message."\n";
+}
+
+/**
+* a few functions which should allow the document to be treated transactionally.
+*/
+function transaction($action){
+ switch ($action){
+ case 'start':
+ // store all the data away into the checkpoint variable
+ $data = get_object_vars($this);
+ $this->checkpoint = $data;
+ unset($data);
+ break;
+ case 'commit':
+ if (is_array($this->checkpoint) && isset($this->checkpoint['checkpoint'])){
+ $tmp = $this->checkpoint['checkpoint'];
+ $this->checkpoint = $tmp;
+ unset($tmp);
+ } else {
+ $this->checkpoint='';
+ }
+ break;
+ case 'rewind':
+ // do not destroy the current checkpoint, but move us back to the state then, so that we can try again
+ if (is_array($this->checkpoint)){
+ // can only abort if were inside a checkpoint
+ $tmp = $this->checkpoint;
+ foreach ($tmp as $k=>$v){
+ if ($k != 'checkpoint'){
+ $this->$k=$v;
+ }
+ }
+ unset($tmp);
+ }
+ break;
+ case 'abort':
+ if (is_array($this->checkpoint)){
+ // can only abort if were inside a checkpoint
+ $tmp = $this->checkpoint;
+ foreach ($tmp as $k=>$v){
+ $this->$k=$v;
+ }
+ unset($tmp);
+ }
+ break;
+ }
+
+}
+
+} // end of class
+
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.phpdocpdf.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.phpdocpdf.php
index 1272a31a16..cff6dfa5de 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.phpdocpdf.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/class.phpdocpdf.php
@@ -1,353 +1,353 @@
-<?php
-/**
- * Cezpdf callback class customized for phpDocumentor
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2000-2006 Joshua Eichorn, Gregory Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package Converters
- * @subpackage PDFdefault
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2000-2006 Joshua Eichorn, Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- */
-
-/** ezPdf libraries */
-include_once 'phpDocumentor/Converters/PDF/default/class.ezpdf.php';
-include_once 'phpDocumentor/Converters/PDF/default/ParserPDF.inc';
-
-// define a class extension to allow the use of a callback to get the table of
-// contents, and to put the dots in the toc
-/**
- * @package Converters
- * @subpackage PDFdefault
- */
-class phpdocpdf extends Cezpdf
-{
- var $reportContents = array();
- var $indexContents = array();
- var $indents = array();
- var $font_dir = false;
- var $set_pageNumbering = false;
- var $converter;
- var $_save = '';
- var $listType = 'ordered';
- var $_colorStack = array();
-
- function phpdocpdf(&$pdfconverter,$fontdir,$paper='a4',$orientation='portrait')
- {
- Cezpdf::Cezpdf($paper,$orientation);
- $this->converter = $pdfconverter;
- $this->font_dir = $fontdir;
- }
-
- /**
- * This really should be in the parent class
- */
- function getColor()
- {
- return $this->currentColour;
- }
-
- function setColorArray($color)
- {
- $this->setColor($color['r'], $color['g'], $color['b']);
- }
-
- /**
- * Extract Pdfphp-format color from html-format color
- * @return array
- * @access private
- */
- function _extractColor($htmlcolor)
- {
- preg_match('/#([a-fA-F0-9][a-fA-F0-9])([a-fA-F0-9][a-fA-F0-9])([a-fA-F0-9][a-fA-F0-9])/', $htmlcolor, $color);
- if (count($color) != 4)
- {
- return false;
- }
- $red = hexdec($color[1]) / hexdec('FF');
- $green = hexdec($color[2]) / hexdec('FF');
- $blue = hexdec($color[3]) / hexdec('FF');
- return array('r' => $red, 'g' => $green, 'b' => $blue);
- }
-
- function validHTMLColor($color)
- {
- return $this->_extractColor($htmlcolor);
- }
-
- function setHTMLColor($color)
- {
- fancy_debug('toplevel setting to', $color);
- $this->setColor($color['r'], $color['g'], $color['b']);
- }
-
- function textcolor($info)
- {
- if ($info['status'] == 'start')
- {
- array_push($this->_colorStack, $this->getColor());
- $color = $this->_extractColor($info['p']);
- if ($color)
- {
-// fancy_debug('set color to ',$info['p'],$color, $this->_colorStack);
- $this->setColorArray($color);
- } else
- {
- array_pop($this->_colorStack);
- }
- } elseif ($info['status'] == 'end')
- {
-// debug('unsetting');
- $this->setColorArray(array_pop($this->_colorStack));
- }
- }
-
- function rf($info)
- {
- $tmp = $info['p'];
- $lvl = $tmp[0];
- $lbl = rawurldecode(substr($tmp,1));
- $num=$this->ezWhatPageNumber($this->ezGetCurrentPageNumber());
- $this->reportContents[] = array($lbl,$num,$lvl );
- $this->addDestination('toc'.(count($this->reportContents)-1),'FitH',$info['y']+$info['height']);
- }
-
- function index($info)
- {
- $res = explode('|||',rawurldecode($info['p']));
- $name = $res[0];
- $descrip = $res[1];
- $letter = $name[0];
- if ($letter == '$') $letter = $name[1];
- $this->indexContents[strtoupper($letter)][] = array($name,$descrip,$this->ezWhatPageNumber($this->ezGetCurrentPageNumber()),count($this->reportContents) - 1);
- }
-
- function IndexLetter($info)
- {
- $letter = $info['p'];
- $this->transaction('start');
- $ok=0;
- while (!$ok){
- $thisPageNum = $this->ezPageCount;
- $this->saveState();
- $this->setColor(0.9,0.9,0.9);
- $this->filledRectangle($this->ez['leftMargin'],$this->y-$this->getFontHeight(18)+$this->getFontDecender(18),$this->ez['pageWidth']-$this->ez['leftMargin']-$this->ez['rightMargin'],$this->getFontHeight(18));
- $this->restoreState();
- $this->_ezText($letter,18,array('justification'=>'left'));
- if ($this->ezPageCount==$thisPageNum){
- $this->transaction('commit');
- $ok=1;
- } else {
- // then we have moved onto a new page, bad bad, as the background colour will be on the old one
- $this->transaction('rewind');
- $this->ezNewPage();
- }
- }
- }
-
- function dots($info)
- {
- // draw a dotted line over to the right and put on a page number
- $tmp = $info['p'];
- $lvl = $tmp[0];
- $lbl = substr($tmp,1);
- $xpos = 520;
-
- switch($lvl)
- {
- case '1':
- $size=16;
- $thick=1;
- break;
- case '2':
- $size=14;
- $thick=1;
- break;
- case '3':
- $size=12;
- $thick=1;
- break;
- case '4':
- $size=11;
- $thick=1;
- break;
- }
-
- $adjust = 0;
- if ($size != 16) $adjust = 1;
- $this->saveState();
- $this->setLineStyle($thick,'round','',array(0,10));
- $this->line($xpos - (5*$adjust),$info['y'],$info['x']+5,$info['y']);
- $this->restoreState();
- $this->addText($xpos - (5*$adjust)+5,$info['y'],$size,$lbl);
- }
-
- /**
- * @uses PDFParser extracts all meta-tags and processes text for output
- */
- function ezText($text,$size=0,$options=array(),$test=0)
- {
- $text = str_replace("\t"," ",$text);
- // paragraph breaks
- $text = str_replace("<##P##>","\n ",$text);
- $text = str_replace("<<c:i",'< <c:i',$text);
- $text = str_replace("ilink>>","ilink> >",$text);
- $this->_save .= $text;
- }
-
- function setupTOC()
- {
- $parser = new PDFParser;
- $parser->parse($this->_save,$this->font_dir,$this);
- $this->_save = '';
- }
-
- function ezOutput($debug = false, $template)
- {
- if ($debug) return $this->_save;
- $this->setupTOC();
- if ($template)
- {
- uksort($this->indexContents,'strnatcasecmp');
- $xpos = 520;
- $z = 0;
- foreach($this->indexContents as $letter => $contents)
- {
- if ($z++/50 == 0) {phpDocumentor_out('.');flush();}
- uksort($this->indexContents[$letter],array($this->converter,'mystrnatcasecmp'));
- }
- $template->assign('indexcontents',$this->indexContents);
- $this->ezText($template->fetch('index.tpl'));
- $this->setupTOC();
- }
- return parent::ezOutput();
- }
-
- function _ezText($text,$size=0,$options=array(),$test=0)
- {
- return parent::ezText($text,$size,$options,$test);
- }
-
- function getYPlusOffset($offset)
- {
- return $this->y + $offset;
- }
-
- function addMessage($message)
- {
- return parent::addMessage($message);
- phpDocumentor_out($message."\n");
- flush();
- }
-
- function ezProcessText($text){
- // this function will intially be used to implement underlining support, but could be used for a range of other
- // purposes
- $text = parent::ezProcessText($text);
- $text = str_replace(array('<UL>','</UL>','<LI>','</LI>','<OL>','</OL>','</ol>','<blockquote>','</blockquote>'),
- array('<ul>','</ul>','<li>','</li>','<ol>','</ul>','</ul>',"<C:indent:20>\n","<C:indent:-20>"),$text);
-// $text = str_replace("<ul>\n","<ul>",$text);
- $text = preg_replace("/\n+\s*(<ul>|<ol>)/", "\n\\1", $text);
- // some problemos fixed here - hack
- $text = preg_replace('/<text [^]]+>/', '', $text);
- $text = str_replace("<li>\n","<li>",$text);
- $text = preg_replace("/\n+\s*<li>/", "<li>", $text);
- $text = str_replace("<mybr>","\n",$text);
- $text = str_replace('</li></ul>','</ul>',$text);
- $text = preg_replace("/^\n(\d+\s+.*)/", '\\1', $text);
- $search = array('<ul>','</ul>','<ol>','<li>','</li>');
- $replace = array("<C:indent:20>\n","\n<C:indent:-20>","\n<C:indent:20:ordered>\n",'<C:bullet>',"\n");
- $text = str_replace($search,$replace,$text);
- $text = preg_replace("/([^\n])<C:bullet/", "\\1\n<C:bullet", $text);
- if (false) {
- $fp = @fopen("C:/Documents and Settings/Owner/Desktop/pdfsourceorig.txt",'a');
- if ($fp)
- {
- fwrite($fp, $text);
- fclose($fp);
- }
- }
- return $text;
- }
-
- function indent($info)
- {
- $stuff = explode(':', $info['p']);
- $margin = $stuff[0];
- if (count($stuff) - 1)
- {
- $this->listType = 'ordered';
- $this->listIndex = 1;
- } else
- {
- if ($margin > 0)
- {
- $this->listIndex = 1;
- }
- $this->listType = 'unordered';
- }
- $this->ez['leftMargin'] += $margin;
- }
-
- /**
- * @author Murray Shields
- */
- function bullet($Data)
- {
- if ($this->listType == 'ordered')
- {
- return $this->orderedBullet($Data);
- }
- $D = abs($Data["decender"]);
- $X = $Data["x"] - ($D * 2) - 10;
- $Y = $Data["y"] + ($D * 1.5);
- $this->setLineStyle($D, "butt", "miter", array());
- $this->setColor(0,0,0);
- $this->ellipse($X, $Y, 1);
- }
-
- function orderedBullet($info)
- {
- $this->addText($info['x']-20, $info['y']-1, 10, $this->listIndex++ . '.');
- }
-
- function ezNewPage($debug=false)
- {
- parent::ezNewPage();
- if (!$this->set_pageNumbering)
- {
- $template = $this->converter->newSmarty();
- $parser = new PDFParser;
- $parser->parse($template->fetch('pagenumbering.tpl'),$this->font_dir,$this);
- }
- $this->set_pageNumbering = true;
- }
-}
-?>
+<?php
+/**
+ * Cezpdf callback class customized for phpDocumentor
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2000-2006 Joshua Eichorn, Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package Converters
+ * @subpackage PDFdefault
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2000-2006 Joshua Eichorn, Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @since 1.2
+ */
+
+/** ezPdf libraries */
+include_once 'phpDocumentor/Converters/PDF/default/class.ezpdf.php';
+include_once 'phpDocumentor/Converters/PDF/default/ParserPDF.inc';
+
+// define a class extension to allow the use of a callback to get the table of
+// contents, and to put the dots in the toc
+/**
+ * @package Converters
+ * @subpackage PDFdefault
+ */
+class phpdocpdf extends Cezpdf
+{
+ var $reportContents = array();
+ var $indexContents = array();
+ var $indents = array();
+ var $font_dir = false;
+ var $set_pageNumbering = false;
+ var $converter;
+ var $_save = '';
+ var $listType = 'ordered';
+ var $_colorStack = array();
+
+ function phpdocpdf(&$pdfconverter,$fontdir,$paper='a4',$orientation='portrait')
+ {
+ Cezpdf::Cezpdf($paper,$orientation);
+ $this->converter = $pdfconverter;
+ $this->font_dir = $fontdir;
+ }
+
+ /**
+ * This really should be in the parent class
+ */
+ function getColor()
+ {
+ return $this->currentColour;
+ }
+
+ function setColorArray($color)
+ {
+ $this->setColor($color['r'], $color['g'], $color['b']);
+ }
+
+ /**
+ * Extract Pdfphp-format color from html-format color
+ * @return array
+ * @access private
+ */
+ function _extractColor($htmlcolor)
+ {
+ preg_match('/#([a-fA-F0-9][a-fA-F0-9])([a-fA-F0-9][a-fA-F0-9])([a-fA-F0-9][a-fA-F0-9])/', $htmlcolor, $color);
+ if (count($color) != 4)
+ {
+ return false;
+ }
+ $red = hexdec($color[1]) / hexdec('FF');
+ $green = hexdec($color[2]) / hexdec('FF');
+ $blue = hexdec($color[3]) / hexdec('FF');
+ return array('r' => $red, 'g' => $green, 'b' => $blue);
+ }
+
+ function validHTMLColor($color)
+ {
+ return $this->_extractColor($htmlcolor);
+ }
+
+ function setHTMLColor($color)
+ {
+ fancy_debug('toplevel setting to', $color);
+ $this->setColor($color['r'], $color['g'], $color['b']);
+ }
+
+ function textcolor($info)
+ {
+ if ($info['status'] == 'start')
+ {
+ array_push($this->_colorStack, $this->getColor());
+ $color = $this->_extractColor($info['p']);
+ if ($color)
+ {
+// fancy_debug('set color to ',$info['p'],$color, $this->_colorStack);
+ $this->setColorArray($color);
+ } else
+ {
+ array_pop($this->_colorStack);
+ }
+ } elseif ($info['status'] == 'end')
+ {
+// debug('unsetting');
+ $this->setColorArray(array_pop($this->_colorStack));
+ }
+ }
+
+ function rf($info)
+ {
+ $tmp = $info['p'];
+ $lvl = $tmp[0];
+ $lbl = rawurldecode(substr($tmp,1));
+ $num=$this->ezWhatPageNumber($this->ezGetCurrentPageNumber());
+ $this->reportContents[] = array($lbl,$num,$lvl );
+ $this->addDestination('toc'.(count($this->reportContents)-1),'FitH',$info['y']+$info['height']);
+ }
+
+ function index($info)
+ {
+ $res = explode('|||',rawurldecode($info['p']));
+ $name = $res[0];
+ $descrip = $res[1];
+ $letter = $name[0];
+ if ($letter == '$') $letter = $name[1];
+ $this->indexContents[strtoupper($letter)][] = array($name,$descrip,$this->ezWhatPageNumber($this->ezGetCurrentPageNumber()),count($this->reportContents) - 1);
+ }
+
+ function IndexLetter($info)
+ {
+ $letter = $info['p'];
+ $this->transaction('start');
+ $ok=0;
+ while (!$ok){
+ $thisPageNum = $this->ezPageCount;
+ $this->saveState();
+ $this->setColor(0.9,0.9,0.9);
+ $this->filledRectangle($this->ez['leftMargin'],$this->y-$this->getFontHeight(18)+$this->getFontDecender(18),$this->ez['pageWidth']-$this->ez['leftMargin']-$this->ez['rightMargin'],$this->getFontHeight(18));
+ $this->restoreState();
+ $this->_ezText($letter,18,array('justification'=>'left'));
+ if ($this->ezPageCount==$thisPageNum){
+ $this->transaction('commit');
+ $ok=1;
+ } else {
+ // then we have moved onto a new page, bad bad, as the background colour will be on the old one
+ $this->transaction('rewind');
+ $this->ezNewPage();
+ }
+ }
+ }
+
+ function dots($info)
+ {
+ // draw a dotted line over to the right and put on a page number
+ $tmp = $info['p'];
+ $lvl = $tmp[0];
+ $lbl = substr($tmp,1);
+ $xpos = 520;
+
+ switch($lvl)
+ {
+ case '1':
+ $size=16;
+ $thick=1;
+ break;
+ case '2':
+ $size=14;
+ $thick=1;
+ break;
+ case '3':
+ $size=12;
+ $thick=1;
+ break;
+ case '4':
+ $size=11;
+ $thick=1;
+ break;
+ }
+
+ $adjust = 0;
+ if ($size != 16) $adjust = 1;
+ $this->saveState();
+ $this->setLineStyle($thick,'round','',array(0,10));
+ $this->line($xpos - (5*$adjust),$info['y'],$info['x']+5,$info['y']);
+ $this->restoreState();
+ $this->addText($xpos - (5*$adjust)+5,$info['y'],$size,$lbl);
+ }
+
+ /**
+ * @uses PDFParser extracts all meta-tags and processes text for output
+ */
+ function ezText($text,$size=0,$options=array(),$test=0)
+ {
+ $text = str_replace("\t"," ",$text);
+ // paragraph breaks
+ $text = str_replace("<##P##>","\n ",$text);
+ $text = str_replace("<<c:i",'< <c:i',$text);
+ $text = str_replace("ilink>>","ilink> >",$text);
+ $this->_save .= $text;
+ }
+
+ function setupTOC()
+ {
+ $parser = new PDFParser;
+ $parser->parse($this->_save,$this->font_dir,$this);
+ $this->_save = '';
+ }
+
+ function ezOutput($debug = false, $template)
+ {
+ if ($debug) return $this->_save;
+ $this->setupTOC();
+ if ($template)
+ {
+ uksort($this->indexContents,'strnatcasecmp');
+ $xpos = 520;
+ $z = 0;
+ foreach($this->indexContents as $letter => $contents)
+ {
+ if ($z++/50 == 0) {phpDocumentor_out('.');flush();}
+ uksort($this->indexContents[$letter],array($this->converter,'mystrnatcasecmp'));
+ }
+ $template->assign('indexcontents',$this->indexContents);
+ $this->ezText($template->fetch('index.tpl'));
+ $this->setupTOC();
+ }
+ return parent::ezOutput();
+ }
+
+ function _ezText($text,$size=0,$options=array(),$test=0)
+ {
+ return parent::ezText($text,$size,$options,$test);
+ }
+
+ function getYPlusOffset($offset)
+ {
+ return $this->y + $offset;
+ }
+
+ function addMessage($message)
+ {
+ return parent::addMessage($message);
+ phpDocumentor_out($message."\n");
+ flush();
+ }
+
+ function ezProcessText($text){
+ // this function will intially be used to implement underlining support, but could be used for a range of other
+ // purposes
+ $text = parent::ezProcessText($text);
+ $text = str_replace(array('<UL>','</UL>','<LI>','</LI>','<OL>','</OL>','</ol>','<blockquote>','</blockquote>'),
+ array('<ul>','</ul>','<li>','</li>','<ol>','</ul>','</ul>',"<C:indent:20>\n","<C:indent:-20>"),$text);
+// $text = str_replace("<ul>\n","<ul>",$text);
+ $text = preg_replace("/\n+\s*(<ul>|<ol>)/", "\n\\1", $text);
+ // some problemos fixed here - hack
+ $text = preg_replace('/<text [^]]+>/', '', $text);
+ $text = str_replace("<li>\n","<li>",$text);
+ $text = preg_replace("/\n+\s*<li>/", "<li>", $text);
+ $text = str_replace("<mybr>","\n",$text);
+ $text = str_replace('</li></ul>','</ul>',$text);
+ $text = preg_replace("/^\n(\d+\s+.*)/", '\\1', $text);
+ $search = array('<ul>','</ul>','<ol>','<li>','</li>');
+ $replace = array("<C:indent:20>\n","\n<C:indent:-20>","\n<C:indent:20:ordered>\n",'<C:bullet>',"\n");
+ $text = str_replace($search,$replace,$text);
+ $text = preg_replace("/([^\n])<C:bullet/", "\\1\n<C:bullet", $text);
+ if (false) {
+ $fp = @fopen("C:/Documents and Settings/Owner/Desktop/pdfsourceorig.txt",'a');
+ if ($fp)
+ {
+ fwrite($fp, $text);
+ fclose($fp);
+ }
+ }
+ return $text;
+ }
+
+ function indent($info)
+ {
+ $stuff = explode(':', $info['p']);
+ $margin = $stuff[0];
+ if (count($stuff) - 1)
+ {
+ $this->listType = 'ordered';
+ $this->listIndex = 1;
+ } else
+ {
+ if ($margin > 0)
+ {
+ $this->listIndex = 1;
+ }
+ $this->listType = 'unordered';
+ }
+ $this->ez['leftMargin'] += $margin;
+ }
+
+ /**
+ * @author Murray Shields
+ */
+ function bullet($Data)
+ {
+ if ($this->listType == 'ordered')
+ {
+ return $this->orderedBullet($Data);
+ }
+ $D = abs($Data["decender"]);
+ $X = $Data["x"] - ($D * 2) - 10;
+ $Y = $Data["y"] + ($D * 1.5);
+ $this->setLineStyle($D, "butt", "miter", array());
+ $this->setColor(0,0,0);
+ $this->ellipse($X, $Y, 1);
+ }
+
+ function orderedBullet($info)
+ {
+ $this->addText($info['x']-20, $info['y']-1, 10, $this->listIndex++ . '.');
+ }
+
+ function ezNewPage($debug=false)
+ {
+ parent::ezNewPage();
+ if (!$this->set_pageNumbering)
+ {
+ $template = $this->converter->newSmarty();
+ $parser = new PDFParser;
+ $parser->parse($template->fetch('pagenumbering.tpl'),$this->font_dir,$this);
+ }
+ $this->set_pageNumbering = true;
+ }
+}
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/options.ini
index 8118da2849..fd9c64142c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/options.ini
@@ -1,431 +1,431 @@
-preservedocbooktags = false
-
-;; used to highlight the {@source} inline tag
-[highlightSourceTokens]
-;; format:
-;; T_CONSTANTNAME = open
-;; /T_CONSTANTNAME = close
-T_FUNCTION = <b><c:textcolor:#0000FF>
-/T_FUNCTION = </c:textcolor></b>
-T_CLONE = <b><c:textcolor:#0000FF>
-/T_CLONE = </c:textcolor></b>
-T_HALT_COMPILER = <b><c:textcolor:#0000FF>
-/T_HALT_COMPILER = </c:textcolor></b>
-T_VARIABLE = <b><i><c:textcolor:#000080>
-/T_VARIABLE = </c:textcolor></i></b>
-T_CONSTANT_ENCAPSED_STRING = <i>
-/T_CONSTANT_ENCAPSED_STRING = </i>
-T_COMMENT = <i><c:textcolor:#339999>
-/T_COMMENT = </c:textcolor></i>
-T_OBJECT_OPERATOR = <b>
-/T_OBJECT_OPERATOR = </b>
-T_RETURN = <b><c:textcolor:#0000FF>
-/T_RETURN = </c:textcolor></b>
-T_SWITCH = <b><c:textcolor:#0000FF>
-/T_SWITCH = </c:textcolor></b>
-T_STATIC = <b><c:textcolor:#0000FF>
-/T_STATIC = </c:textcolor></b>
-T_IF = <b><c:textcolor:#0000FF>
-/T_IF = </c:textcolor></b>
-T_FOREACH = <b><c:textcolor:#0000FF>
-/T_FOREACH = </c:textcolor></b>
-T_FOR = <b><c:textcolor:#0000FF>
-/T_FOR = </c:textcolor></b>
-T_WHILE = <b><c:textcolor:#0000FF>
-/T_WHILE = </c:textcolor></b>
-T_DO = <b><c:textcolor:#0000FF>
-/T_DO = </c:textcolor></b>
-T_CLASS = <b><c:textcolor:#0000FF>
-/T_CLASS = </c:textcolor></b>
-T_EXTENDS = <b><c:textcolor:#0000FF>
-/T_EXTENDS = </c:textcolor></b>
-T_VAR = <b><c:textcolor:#0000FF>
-/T_VAR = </c:textcolor></b>
-T_GLOBAL = <b><c:textcolor:#0000FF>
-/T_GLOBAL = </c:textcolor></b>
-T_ELSE = <b><c:textcolor:#0000FF>
-/T_ELSE = </c:textcolor></b>
-T_ELSEIF = <b><c:textcolor:#0000FF>
-/T_ELSEIF = </c:textcolor></b>
-T_NEW = <b><c:textcolor:#0000FF>
-/T_NEW = </c:textcolor></b>
-T_CONSTANT_ENCAPSED_STRING = <c:textcolor:#339999>
-/T_CONSTANT_ENCAPSED_STRING = </c:textcolor>
-T_STRING_VARNAME = <c:textcolor:#339999>
-/T_STRING_VARNAME = </c:textcolor>
-T_INCLUDE = <b><c:textcolor:#0000FF>
-/T_INCLUDE = </c:textcolor></b>
-T_INCLUDE_ONCE = <b><c:textcolor:#0000FF>
-/T_INCLUDE_ONCE = </c:textcolor></b>
-T_REQUIRE = <b><c:textcolor:#0000FF>
-/T_REQUIRE = </c:textcolor></b>
-T_REQUIRE_ONCE = <b><c:textcolor:#0000FF>
-/T_REQUIRE_ONCE = </c:textcolor></b>
-T_DNUMBER = <c:textcolor:#53AC46>
-/T_DNUMBER = </c:textcolor>
-T_LNUMBER = <c:textcolor:#53AC46>
-/T_LNUMBER = </c:textcolor>
-T_AS = <b><c:textcolor:#0000FF>
-/T_AS = </c:textcolor></b>
-T_BREAK = <b><c:textcolor:#0000FF>
-/T_BREAK = </c:textcolor></b>
-T_CASE = <b><c:textcolor:#0000FF>
-/T_CASE = </c:textcolor></b>
-T_CONTINUE = <b><c:textcolor:#0000FF>
-/T_CONTINUE = </c:textcolor></b>
-T_DECLARE = <b><c:textcolor:#0000FF>
-/T_DECLARE = </c:textcolor></b>
-T_DEFAULT = <b><c:textcolor:#0000FF>
-/T_DEFAULT = </c:textcolor></b>
-T_ENDDECLARE = <b><c:textcolor:#0000FF>
-/T_ENDDECLARE = </c:textcolor></b>
-T_ENDFOR = <b><c:textcolor:#0000FF>
-/T_ENDFOR = </c:textcolor></b>
-T_ENDFOREACH = <b><c:textcolor:#0000FF>
-/T_ENDFOREACH = </c:textcolor></b>
-T_ENDSWITCH = <b><c:textcolor:#0000FF>
-/T_ENDSWITCH = </c:textcolor></b>
-T_ENDWHILE = <b><c:textcolor:#0000FF>
-/T_ENDWHILE = </c:textcolor></b>
-T_EXIT = <b><c:textcolor:#0000FF>
-/T_EXIT = </c:textcolor></b>
-T_STRING = <c:textcolor:#FF8000>
-/T_STRING = </c:textcolor>
-
-[highlightDocBlockSourceTokens]
-;; this is for docblock tokens, using by phpDocumentor_HighlightParser
-;; tagphptype is for "string" in @param string description, for example
-docblock = <i><c:textcolor:#8080FF>
-/docblock = </c:textcolor></i>
-tagphptype = <i><c:textcolor:#A428CC>
-/tagphptype = </c:textcolor></i>
-tagvarname = <b><c:textcolor:#A428CC>
-/tagvarname = </c:textcolor></b>
-coretag = <c:textcolor:#A428CC>
-/coretag = </c:textcolor>
-tag = <c:textcolor:#A428CC>
-/tag = </c:textcolor>
-inlinetag = <i><c:textcolor:#A428CC>
-/inlinetag = </c:textcolor></i>
-internal = <i><c:textcolor:#808080>
-/internal = </c:textcolor></i>
-closetemplate = <c:textcolor:#5BACEE>
-/closetemplate = </c:textcolor>
-docblocktemplate = <c:textcolor:#5BACEE>
-/docblocktemplate = </c:textcolor>
-
-[highlightSource]
-;; this is for highlighting things that aren't tokens like "&"
-;; format:
-;; word = open
-;; /word = close
-& = <b>
-/& = </b>
-[ = <b>
-/[ = </b>
-] = <b>
-/] = </b>
-! = <b>
-/! = </b>
-";" = <b>
-/; = </b>
-( = <b>
-/( = </b>
-) = <b>
-/) = </b>
-, = <b>
-/, = </b>
-{ = <b>
-/{ = </b>
-} = <b>
-/} = </b>
-""" = <c:textcolor:#339999>
-/" = </c:textcolor>
-
-[highlightTutorialSourceTokens]
-;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
-;; <tag>
-opentag = <c:textcolor:#8080FF>
-/opentag = </c:textcolor>
-;; </tag>
-closetag = <c:textcolor:#8080FF>
-/closetag = </c:textcolor>
-;; <tag attribute="value">
-attribute = <c:textcolor:#A428CC>
-/attribute = </c:textcolor>
-;; <tag attribute="value">
-attributevalue = <c:textcolor:#5BACEE>
-/attributevalue = </c:textcolor>
-;; &entity;
-entity = <b>
-/entity = </b>
-;; <!-- comment -->
-comment = <i>
-/comment = </i>
-;; {@inline tag}
-itag = <b><i>
-/itag = </b></i>
-
-[desctranslate]
-ul = <ul>
-/ul = </ul>
-ol = <ol>
-/ol = </ol>
-li = <li>
-/li = </li>
-code = </text><text size="8"><font face="Courier" />
-/code = </text><text size="10"><font face="Helvetica" />
-var = <i>
-/var = </i>
-samp = <font face="Courier" /><i>
-/samp = </i><font face="Helvetica" />
-kbd = <font face="Courier" /><b>
-/kbd = </b><font face="Helvetica" />
-pre =
-/pre =
-p =
-/p = "\n\n"
-b = <b>
-/b = </b>
-i = <i>
-/i = </i>
-br = "\n"
-
-[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 </tranlatedtagname>
-;; <tagname></tagname> becomes <newtagname></newtagname> and
-;; <tagname attr="value"></tagname> becomes
-;; <newtagname attr="value"></newtagname>
-;;
-;; 2)
-;; tagname = newtagname
-;; tagname->attr = newattrname
-;;
-;; in this case, everything will be like the first case, except tags like:
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="value"></newtagname>
-;;
-;; 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.
-;; <tagname attr="value"></tagname> will become
-;; <newtagname newattrname="newvalue"></newtagname>
-;;
-;; 4)
-;; tagname = newtagname
-;; tagname!attr = dummy
-;;
-;; here, the attribute will be ignored. dummy is not used and may be any value
-;; <tagname attr="value"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 5)
-;; tagname = newtagname
-;; tagname! = dummy
-;;
-;; here, all attributes will be ignored. dummy is not used and may be any value
-;; <tagname attr1="value" attr2="foo"></tagname> will become
-;; <newtagname></newtagname>
-;;
-;; 6)
-;; $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.
-;;
-;; 7)
-;; &entity; = translation text
-;; &quot; = &quot;
-;; &quot; = """
-;; &lt; = <
-;;
-;; Use this to control translation of entities to their appropriate values
-
-&nbsp; = " "
-&quot; = """
-&rdquo; = """
-&ldquo; = """
-&amp; = &
-&lt; = &lt;
-&gt; = &gt;
-&copy; = &copy;
-
-author = <i>
-author!
-/author = "</i>\n"
-
-authorgroup = <text size="10"><b>Authors:</b>
-/authorgroup = </text>
-authorgroup!
-
-blockquote = blockquote
-blockquote!
-
-authorblurb = blockquote
-authorblurb!
-
-caution = "\n<b>Caution</b>\n<blockquote>"
-/caution = "</blockquote>\n"
-caution!
-
-command = b
-command!
-
-copyright = i
-copyright!
-
-emphasis = b
-emphasis!
-
-example = "<b>Example:</b>\n<C:indent:20>\n"
-/example = "\n<C:indent:-20>\n"
-example!
-
-formalpara = " "
-/formalpara = "\n\n"
-formalpara!
-
-graphic = pdffunction:ezImage
-graphic/ = 1
-
-important = u
-important!
-
-informalequation = blockquote
-informalequation!
-
-inlineequation = i
-inlineequation!
-
-itemizedlist = ul
-itemizedlist!
-
-literal = <font face="Courier" />
-/literal = <font face="Helvetica" />
-literal!
-
-option = " "
-/option =
-option!
-
-listitem = li
-listitem!
-
-orderedlist = ol
-orderedlist!
-
-para =
-/para = "\n\n"
-para!
-
-programlisting = "\n</text><text size="8"><font face="Courier" />"
-/programlisting = "</text><text size="10">\n<font face="Helvetica" />"
-programlisting!
-
-refsect1 = "<text size="10" justification="left">"
-/refsect1 = "\n</text>"
-refsect1!
-
-refsect2 = "<text size="10" justification="left">"
-/refsect2 = "\n</text>"
-refsect2!
-
-refsect3 = "<text size="10" justification="left">"
-/refsect3 = "\n</text>"
-refsect3!
-
-refpurpose = <text size="13" justification="center"><i>
-/refpurpose = "</i>\n</text>"
-refpurpose!
-
-simpara = "<text size="10" justification="left"> "
-/simpara = "</text>"
-simpara!
-
-warning = "<b>Warning:</b>\n<blockquote>"
-/warning = "</blockquote>\n"
-warning!
-
-;; now begins the attributes that should be tags in cdata
-[$attr$id]
-open = <pdffunction:addDestination arg="
-close = " arg="FitH" arg=$this->y />
-cdata! = true
-quotevalues = true
-separator = "="
-;separateall = true
-$id = id
-
-;; now begins the sections that deal with <title>
-[refentry_title]
-;tag_attr = true
-;attr_name = title
-cdata_start = true
-;cdata_end = true
-open = </text><text size="20" justification="centre"><b>
-close = "\n</b></text><text size="10" justification="left">"
-
-[refsect1_title]
-;tag_attr = true
-;attr_name = title
-cdata_start = true
-;cdata_end = true
-open = </text><text size="15" justification="centre"><b>
-close = "\n</b></text><text size="10" justification="left">"
-
-[refsect2_title]
-;tag_attr = true
-;attr_name = title
-cdata_start = true
-;cdata_end = true
-open = </text><text size="13" justification="centre"><b>
-close = "\n</b></text><text size="10" justification="left">"
-
-[refsect3_title]
-;tag_attr = true
-;attr_name = title
-cdata_start = true
-;cdata_end = true
-open = </text><text size="11" justification="centre"><i>
-close = "\n</i></text><text size="10" justification="left">"
-
-[para_title]
-;tag_attr = true
-;attr_name = title
-cdata_start = true
-;cdata_end = true
-open = </text><text size="11" justification="left"><b>
-close = "\n</b></text><text size="10" justification="left">"
-
-[formalpara_title]
-;tag_attr = true
-;attr_name = title
-cdata_start = true
-;cdata_end = true
-open = </text><text size="11" justification="centre"><b>
-close = "\n</b></text><text size="10" justification="left">"
-
-[example_title]
-;tag_attr = true
-;attr_name = title
-cdata_start = true
-;cdata_end = true
-open = </text><text size="11" justification="centre">
-close = "\n</text><text size="10" justification="left">"
+preservedocbooktags = false
+
+;; used to highlight the {@source} inline tag
+[highlightSourceTokens]
+;; format:
+;; T_CONSTANTNAME = open
+;; /T_CONSTANTNAME = close
+T_FUNCTION = <b><c:textcolor:#0000FF>
+/T_FUNCTION = </c:textcolor></b>
+T_CLONE = <b><c:textcolor:#0000FF>
+/T_CLONE = </c:textcolor></b>
+T_HALT_COMPILER = <b><c:textcolor:#0000FF>
+/T_HALT_COMPILER = </c:textcolor></b>
+T_VARIABLE = <b><i><c:textcolor:#000080>
+/T_VARIABLE = </c:textcolor></i></b>
+T_CONSTANT_ENCAPSED_STRING = <i>
+/T_CONSTANT_ENCAPSED_STRING = </i>
+T_COMMENT = <i><c:textcolor:#339999>
+/T_COMMENT = </c:textcolor></i>
+T_OBJECT_OPERATOR = <b>
+/T_OBJECT_OPERATOR = </b>
+T_RETURN = <b><c:textcolor:#0000FF>
+/T_RETURN = </c:textcolor></b>
+T_SWITCH = <b><c:textcolor:#0000FF>
+/T_SWITCH = </c:textcolor></b>
+T_STATIC = <b><c:textcolor:#0000FF>
+/T_STATIC = </c:textcolor></b>
+T_IF = <b><c:textcolor:#0000FF>
+/T_IF = </c:textcolor></b>
+T_FOREACH = <b><c:textcolor:#0000FF>
+/T_FOREACH = </c:textcolor></b>
+T_FOR = <b><c:textcolor:#0000FF>
+/T_FOR = </c:textcolor></b>
+T_WHILE = <b><c:textcolor:#0000FF>
+/T_WHILE = </c:textcolor></b>
+T_DO = <b><c:textcolor:#0000FF>
+/T_DO = </c:textcolor></b>
+T_CLASS = <b><c:textcolor:#0000FF>
+/T_CLASS = </c:textcolor></b>
+T_EXTENDS = <b><c:textcolor:#0000FF>
+/T_EXTENDS = </c:textcolor></b>
+T_VAR = <b><c:textcolor:#0000FF>
+/T_VAR = </c:textcolor></b>
+T_GLOBAL = <b><c:textcolor:#0000FF>
+/T_GLOBAL = </c:textcolor></b>
+T_ELSE = <b><c:textcolor:#0000FF>
+/T_ELSE = </c:textcolor></b>
+T_ELSEIF = <b><c:textcolor:#0000FF>
+/T_ELSEIF = </c:textcolor></b>
+T_NEW = <b><c:textcolor:#0000FF>
+/T_NEW = </c:textcolor></b>
+T_CONSTANT_ENCAPSED_STRING = <c:textcolor:#339999>
+/T_CONSTANT_ENCAPSED_STRING = </c:textcolor>
+T_STRING_VARNAME = <c:textcolor:#339999>
+/T_STRING_VARNAME = </c:textcolor>
+T_INCLUDE = <b><c:textcolor:#0000FF>
+/T_INCLUDE = </c:textcolor></b>
+T_INCLUDE_ONCE = <b><c:textcolor:#0000FF>
+/T_INCLUDE_ONCE = </c:textcolor></b>
+T_REQUIRE = <b><c:textcolor:#0000FF>
+/T_REQUIRE = </c:textcolor></b>
+T_REQUIRE_ONCE = <b><c:textcolor:#0000FF>
+/T_REQUIRE_ONCE = </c:textcolor></b>
+T_DNUMBER = <c:textcolor:#53AC46>
+/T_DNUMBER = </c:textcolor>
+T_LNUMBER = <c:textcolor:#53AC46>
+/T_LNUMBER = </c:textcolor>
+T_AS = <b><c:textcolor:#0000FF>
+/T_AS = </c:textcolor></b>
+T_BREAK = <b><c:textcolor:#0000FF>
+/T_BREAK = </c:textcolor></b>
+T_CASE = <b><c:textcolor:#0000FF>
+/T_CASE = </c:textcolor></b>
+T_CONTINUE = <b><c:textcolor:#0000FF>
+/T_CONTINUE = </c:textcolor></b>
+T_DECLARE = <b><c:textcolor:#0000FF>
+/T_DECLARE = </c:textcolor></b>
+T_DEFAULT = <b><c:textcolor:#0000FF>
+/T_DEFAULT = </c:textcolor></b>
+T_ENDDECLARE = <b><c:textcolor:#0000FF>
+/T_ENDDECLARE = </c:textcolor></b>
+T_ENDFOR = <b><c:textcolor:#0000FF>
+/T_ENDFOR = </c:textcolor></b>
+T_ENDFOREACH = <b><c:textcolor:#0000FF>
+/T_ENDFOREACH = </c:textcolor></b>
+T_ENDSWITCH = <b><c:textcolor:#0000FF>
+/T_ENDSWITCH = </c:textcolor></b>
+T_ENDWHILE = <b><c:textcolor:#0000FF>
+/T_ENDWHILE = </c:textcolor></b>
+T_EXIT = <b><c:textcolor:#0000FF>
+/T_EXIT = </c:textcolor></b>
+T_STRING = <c:textcolor:#FF8000>
+/T_STRING = </c:textcolor>
+
+[highlightDocBlockSourceTokens]
+;; this is for docblock tokens, using by phpDocumentor_HighlightParser
+;; tagphptype is for "string" in @param string description, for example
+docblock = <i><c:textcolor:#8080FF>
+/docblock = </c:textcolor></i>
+tagphptype = <i><c:textcolor:#A428CC>
+/tagphptype = </c:textcolor></i>
+tagvarname = <b><c:textcolor:#A428CC>
+/tagvarname = </c:textcolor></b>
+coretag = <c:textcolor:#A428CC>
+/coretag = </c:textcolor>
+tag = <c:textcolor:#A428CC>
+/tag = </c:textcolor>
+inlinetag = <i><c:textcolor:#A428CC>
+/inlinetag = </c:textcolor></i>
+internal = <i><c:textcolor:#808080>
+/internal = </c:textcolor></i>
+closetemplate = <c:textcolor:#5BACEE>
+/closetemplate = </c:textcolor>
+docblocktemplate = <c:textcolor:#5BACEE>
+/docblocktemplate = </c:textcolor>
+
+[highlightSource]
+;; this is for highlighting things that aren't tokens like "&"
+;; format:
+;; word = open
+;; /word = close
+& = <b>
+/& = </b>
+[ = <b>
+/[ = </b>
+] = <b>
+/] = </b>
+! = <b>
+/! = </b>
+";" = <b>
+/; = </b>
+( = <b>
+/( = </b>
+) = <b>
+/) = </b>
+, = <b>
+/, = </b>
+{ = <b>
+/{ = </b>
+} = <b>
+/} = </b>
+""" = <c:textcolor:#339999>
+/" = </c:textcolor>
+
+[highlightTutorialSourceTokens]
+;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
+;; <tag>
+opentag = <c:textcolor:#8080FF>
+/opentag = </c:textcolor>
+;; </tag>
+closetag = <c:textcolor:#8080FF>
+/closetag = </c:textcolor>
+;; <tag attribute="value">
+attribute = <c:textcolor:#A428CC>
+/attribute = </c:textcolor>
+;; <tag attribute="value">
+attributevalue = <c:textcolor:#5BACEE>
+/attributevalue = </c:textcolor>
+;; &entity;
+entity = <b>
+/entity = </b>
+;; <!-- comment -->
+comment = <i>
+/comment = </i>
+;; {@inline tag}
+itag = <b><i>
+/itag = </b></i>
+
+[desctranslate]
+ul = <ul>
+/ul = </ul>
+ol = <ol>
+/ol = </ol>
+li = <li>
+/li = </li>
+code = </text><text size="8"><font face="Courier" />
+/code = </text><text size="10"><font face="Helvetica" />
+var = <i>
+/var = </i>
+samp = <font face="Courier" /><i>
+/samp = </i><font face="Helvetica" />
+kbd = <font face="Courier" /><b>
+/kbd = </b><font face="Helvetica" />
+pre =
+/pre =
+p =
+/p = "\n\n"
+b = <b>
+/b = </b>
+i = <i>
+/i = </i>
+br = "\n"
+
+[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 </tranlatedtagname>
+;; <tagname></tagname> becomes <newtagname></newtagname> and
+;; <tagname attr="value"></tagname> becomes
+;; <newtagname attr="value"></newtagname>
+;;
+;; 2)
+;; tagname = newtagname
+;; tagname->attr = newattrname
+;;
+;; in this case, everything will be like the first case, except tags like:
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="value"></newtagname>
+;;
+;; 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.
+;; <tagname attr="value"></tagname> will become
+;; <newtagname newattrname="newvalue"></newtagname>
+;;
+;; 4)
+;; tagname = newtagname
+;; tagname!attr = dummy
+;;
+;; here, the attribute will be ignored. dummy is not used and may be any value
+;; <tagname attr="value"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 5)
+;; tagname = newtagname
+;; tagname! = dummy
+;;
+;; here, all attributes will be ignored. dummy is not used and may be any value
+;; <tagname attr1="value" attr2="foo"></tagname> will become
+;; <newtagname></newtagname>
+;;
+;; 6)
+;; $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.
+;;
+;; 7)
+;; &entity; = translation text
+;; &quot; = &quot;
+;; &quot; = """
+;; &lt; = <
+;;
+;; Use this to control translation of entities to their appropriate values
+
+&nbsp; = " "
+&quot; = """
+&rdquo; = """
+&ldquo; = """
+&amp; = &
+&lt; = &lt;
+&gt; = &gt;
+&copy; = &copy;
+
+author = <i>
+author!
+/author = "</i>\n"
+
+authorgroup = <text size="10"><b>Authors:</b>
+/authorgroup = </text>
+authorgroup!
+
+blockquote = blockquote
+blockquote!
+
+authorblurb = blockquote
+authorblurb!
+
+caution = "\n<b>Caution</b>\n<blockquote>"
+/caution = "</blockquote>\n"
+caution!
+
+command = b
+command!
+
+copyright = i
+copyright!
+
+emphasis = b
+emphasis!
+
+example = "<b>Example:</b>\n<C:indent:20>\n"
+/example = "\n<C:indent:-20>\n"
+example!
+
+formalpara = " "
+/formalpara = "\n\n"
+formalpara!
+
+graphic = pdffunction:ezImage
+graphic/ = 1
+
+important = u
+important!
+
+informalequation = blockquote
+informalequation!
+
+inlineequation = i
+inlineequation!
+
+itemizedlist = ul
+itemizedlist!
+
+literal = <font face="Courier" />
+/literal = <font face="Helvetica" />
+literal!
+
+option = " "
+/option =
+option!
+
+listitem = li
+listitem!
+
+orderedlist = ol
+orderedlist!
+
+para =
+/para = "\n\n"
+para!
+
+programlisting = "\n</text><text size="8"><font face="Courier" />"
+/programlisting = "</text><text size="10">\n<font face="Helvetica" />"
+programlisting!
+
+refsect1 = "<text size="10" justification="left">"
+/refsect1 = "\n</text>"
+refsect1!
+
+refsect2 = "<text size="10" justification="left">"
+/refsect2 = "\n</text>"
+refsect2!
+
+refsect3 = "<text size="10" justification="left">"
+/refsect3 = "\n</text>"
+refsect3!
+
+refpurpose = <text size="13" justification="center"><i>
+/refpurpose = "</i>\n</text>"
+refpurpose!
+
+simpara = "<text size="10" justification="left"> "
+/simpara = "</text>"
+simpara!
+
+warning = "<b>Warning:</b>\n<blockquote>"
+/warning = "</blockquote>\n"
+warning!
+
+;; now begins the attributes that should be tags in cdata
+[$attr$id]
+open = <pdffunction:addDestination arg="
+close = " arg="FitH" arg=$this->y />
+cdata! = true
+quotevalues = true
+separator = "="
+;separateall = true
+$id = id
+
+;; now begins the sections that deal with <title>
+[refentry_title]
+;tag_attr = true
+;attr_name = title
+cdata_start = true
+;cdata_end = true
+open = </text><text size="20" justification="centre"><b>
+close = "\n</b></text><text size="10" justification="left">"
+
+[refsect1_title]
+;tag_attr = true
+;attr_name = title
+cdata_start = true
+;cdata_end = true
+open = </text><text size="15" justification="centre"><b>
+close = "\n</b></text><text size="10" justification="left">"
+
+[refsect2_title]
+;tag_attr = true
+;attr_name = title
+cdata_start = true
+;cdata_end = true
+open = </text><text size="13" justification="centre"><b>
+close = "\n</b></text><text size="10" justification="left">"
+
+[refsect3_title]
+;tag_attr = true
+;attr_name = title
+cdata_start = true
+;cdata_end = true
+open = </text><text size="11" justification="centre"><i>
+close = "\n</i></text><text size="10" justification="left">"
+
+[para_title]
+;tag_attr = true
+;attr_name = title
+cdata_start = true
+;cdata_end = true
+open = </text><text size="11" justification="left"><b>
+close = "\n</b></text><text size="10" justification="left">"
+
+[formalpara_title]
+;tag_attr = true
+;attr_name = title
+cdata_start = true
+;cdata_end = true
+open = </text><text size="11" justification="centre"><b>
+close = "\n</b></text><text size="10" justification="left">"
+
+[example_title]
+;tag_attr = true
+;attr_name = title
+cdata_start = true
+;cdata_end = true
+open = </text><text size="11" justification="centre">
+close = "\n</text><text size="10" justification="left">"
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/appendix_title_page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/appendix_title_page.tpl
index 91593962dc..a18b32b661 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/appendix_title_page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/appendix_title_page.tpl
@@ -1,4 +1,4 @@
-<newpage />
-<text size="26" justification="centre"><C:rf:1Appendices><b>Appendices</b>
-</text>
-<newpage />
+<newpage />
+<text size="26" justification="centre"><C:rf:1Appendices><b>Appendices</b>
+</text>
+<newpage />
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/class.tpl
index b4812e3e02..17db4f0a29 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/class.tpl
@@ -1,12 +1,12 @@
-{capture name="clink"}{if $is_interface}Interface{else}Class{/if} {$name}{/capture}
-{capture name="cindex"}{$name}|||{$sdesc}{/capture}
-{capture name="classeslink"}Package {$package} Classes{/capture}
-{if $plink}{capture name="plink"}Package {$package}{/capture}{/if}
-{if $includeheader}{include file="newpackage_header.tpl" isclass=true}{/if}
-<text size="11">
-
-
-
-</text>
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="20" justification="centre">{if $is_interface}Interface{else}Class{/if} {$name} <i></text><text size="11" justification="centre">[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:2{$smarty.capture.clink|rawurlencode}><C:index:{$smarty.capture.cindex|rawurlencode}></text>
+{capture name="clink"}{if $is_interface}Interface{else}Class{/if} {$name}{/capture}
+{capture name="cindex"}{$name}|||{$sdesc}{/capture}
+{capture name="classeslink"}Package {$package} Classes{/capture}
+{if $plink}{capture name="plink"}Package {$package}{/capture}{/if}
+{if $includeheader}{include file="newpackage_header.tpl" isclass=true}{/if}
+<text size="11">
+
+
+
+</text>
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="20" justification="centre">{if $is_interface}Interface{else}Class{/if} {$name} <i></text><text size="11" justification="centre">[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:2{$smarty.capture.clink|rawurlencode}><C:index:{$smarty.capture.cindex|rawurlencode}></text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/classtree.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/classtree.tpl
index ecfb240828..42063dc2b3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/classtree.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/classtree.tpl
@@ -1,11 +1,11 @@
-{* Class Trees template for the PDF Converter *}
-<text size="26" justification="centre"><C:rf:2Appendix A - Class Trees>Appendix A - Class Trees
-</text>
-{section name=classtrees loop=$trees}
-<text size="16" justification="centre"><C:rf:3{$trees[classtrees].package}>Package {$trees[classtrees].package}
-</text>
-{section name=trees loop=$trees[classtrees].trees}
-<text size="12"><C:IndexLetter:{$trees[classtrees].trees[trees].class}>
-{$trees[classtrees].trees[trees].class_tree}</text>
-{/section}
+{* Class Trees template for the PDF Converter *}
+<text size="26" justification="centre"><C:rf:2Appendix A - Class Trees>Appendix A - Class Trees
+</text>
+{section name=classtrees loop=$trees}
+<text size="16" justification="centre"><C:rf:3{$trees[classtrees].package}>Package {$trees[classtrees].package}
+</text>
+{section name=trees loop=$trees[classtrees].trees}
+<text size="12"><C:IndexLetter:{$trees[classtrees].trees[trees].class}>
+{$trees[classtrees].trees[trees].class_tree}</text>
+{/section}
{/section} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/const.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/const.tpl
index 7e070ebdd8..0236dfd078 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/const.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/const.tpl
@@ -1,7 +1,7 @@
-{capture name="vlink"}Class Constant {$name}{/capture}
-{capture name="vindex"}{$class}::{$name}|||{$sdesc}{/capture}
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="10" justification="left"><b>{$class}::{$name}</b>
-<C:indent:25>
- = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.vlink|rawurlencode}><C:index:{$smarty.capture.vindex|rawurlencode}>
-<C:indent:-25></text>
+{capture name="vlink"}Class Constant {$name}{/capture}
+{capture name="vindex"}{$class}::{$name}|||{$sdesc}{/capture}
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="10" justification="left"><b>{$class}::{$name}</b>
+<C:indent:25>
+ = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.vlink|rawurlencode}><C:index:{$smarty.capture.vindex|rawurlencode}>
+<C:indent:-25></text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/define.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/define.tpl
index fd8e30d77d..8ae570cbab 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/define.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/define.tpl
@@ -1,4 +1,4 @@
-{capture name="dlink"}Define {$name}{/capture}
-{capture name="dindex"}{$name}|||{$sdesc}{/capture}
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="10" justification="left">{$name} = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.dlink|rawurlencode}><C:index:{$smarty.capture.dindex|rawurlencode}></text>
+{capture name="dlink"}Define {$name}{/capture}
+{capture name="dindex"}{$name}|||{$sdesc}{/capture}
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="10" justification="left">{$name} = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.dlink|rawurlencode}><C:index:{$smarty.capture.dindex|rawurlencode}></text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/docblock.tpl
index 87dc460d46..8cc8d00445 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/docblock.tpl
@@ -1,10 +1,10 @@
-{if $sdesc}<text size="12" justification="full" left="10"><C:indent:25><b>{$sdesc}</b>
-<C:indent:-25>{$desc}
-</text>{/if}
-{if $tags}
-<text size="10" left="15">
-<C:indent:40>
-<ul>{section name=tags loop=$tags}<li><b>{$tags[tags].keyword}</b> {$tags[tags].data}</li>
-{/section}</ul>
-<C:indent:-40></text>
-{/if}
+{if $sdesc}<text size="12" justification="full" left="10"><C:indent:25><b>{$sdesc}</b>
+<C:indent:-25>{$desc}
+</text>{/if}
+{if $tags}
+<text size="10" left="15">
+<C:indent:40>
+<ul>{section name=tags loop=$tags}<li><b>{$tags[tags].keyword}</b> {$tags[tags].data}</li>
+{/section}</ul>
+<C:indent:-40></text>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/examplesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/examplesource.tpl
index 2de33af744..8da4c7820a 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/examplesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/examplesource.tpl
@@ -1,5 +1,5 @@
-<text size="15" justification="centre"><C:rf:3example: {$title}>{$title}
-</text>
-<font face="Courier" />
-<text size="8">{$source}</text>
-<font face="Helvetica" />
+<text size="15" justification="centre"><C:rf:3example: {$title}>{$title}
+</text>
+<font face="Courier" />
+<text size="8">{$source}</text>
+<font face="Helvetica" />
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/filesource.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/filesource.tpl
index 690475e8c0..bbe40d41d9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/filesource.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/filesource.tpl
@@ -1,11 +1,11 @@
-{capture name="gindex"}{$name}|||Source code{/capture}
-<newpage />
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="26" justification="centre"><C:index:{$smarty.capture.gindex|rawurlencode}><C:rf:3source code: {$name}>File Source for {$name}
-</text>
-<text size="12"><i>Documentation for this file is available at {$docs}</i>
-
-</text>
-<font face="Courier" />
-<text size="8">{$source}</text>
-<font face="Helvetica" />
+{capture name="gindex"}{$name}|||Source code{/capture}
+<newpage />
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="26" justification="centre"><C:index:{$smarty.capture.gindex|rawurlencode}><C:rf:3source code: {$name}>File Source for {$name}
+</text>
+<text size="12"><i>Documentation for this file is available at {$docs}</i>
+
+</text>
+<font face="Courier" />
+<text size="8">{$source}</text>
+<font face="Helvetica" />
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/footer.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/footer.tpl
index e667688095..83480b2701 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/footer.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/footer.tpl
@@ -1,11 +1,11 @@
-<pdffunction:openObject return="all" />
-<pdffunction:saveState />
-<pdffunction:setStrokeColor arg="0" arg="0" arg="0" arg="1" />
-<pdffunction:line arg="20" arg="40" arg="578" arg="40" />
-<pdffunction:line arg="20" arg="822" arg="578" arg="822" />
-<pdffunction:addText arg="50" arg="34" arg="6" arg="Generated by phpDocumentor v{$phpdocversion} http://www.phpdoc.org - http://www.sourceforge.net/projects/phpdocu" />
-<pdffunction:restoreState />
-<pdffunction:closeObject />
-{* note that object can be told to appear on just odd or even pages by changing
-'all' to 'odd' or 'even'. *}
+<pdffunction:openObject return="all" />
+<pdffunction:saveState />
+<pdffunction:setStrokeColor arg="0" arg="0" arg="0" arg="1" />
+<pdffunction:line arg="20" arg="40" arg="578" arg="40" />
+<pdffunction:line arg="20" arg="822" arg="578" arg="822" />
+<pdffunction:addText arg="50" arg="34" arg="6" arg="Generated by phpDocumentor v{$phpdocversion} http://www.phpdoc.org - http://www.sourceforge.net/projects/phpdocu" />
+<pdffunction:restoreState />
+<pdffunction:closeObject />
+{* note that object can be told to appear on just odd or even pages by changing
+'all' to 'odd' or 'even'. *}
<pdffunction:addObject arg=$all arg="all" /> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/function.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/function.tpl
index f4c1f91b91..a5595dff65 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/function.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/function.tpl
@@ -1,4 +1,4 @@
-{capture name="flink"}Function {$intricatefunctioncall.name}{/capture}
-{capture name="findex"}{$intricatefunctioncall.name}()|||{$sdesc}{/capture}
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="10" justification="left"><i>{$return}</i> function {$intricatefunctioncall.name}({section name=params loop=$intricatefunctioncall.params}{if $smarty.section.params.index > 0}, {/if}{if $intricatefunctioncall.params[params].hasdefault}[{/if}{$intricatefunctioncall.params[params].name}{if $intricatefunctioncall.params[params].hasdefault} = {$intricatefunctioncall.params[params].default}]{/if}{/section}) <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.flink|rawurlencode}><C:index:{$smarty.capture.findex|rawurlencode}></text>
+{capture name="flink"}Function {$intricatefunctioncall.name}{/capture}
+{capture name="findex"}{$intricatefunctioncall.name}()|||{$sdesc}{/capture}
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="10" justification="left"><i>{$return}</i> function {$intricatefunctioncall.name}({section name=params loop=$intricatefunctioncall.params}{if $smarty.section.params.index > 0}, {/if}{if $intricatefunctioncall.params[params].hasdefault}[{/if}{$intricatefunctioncall.params[params].name}{if $intricatefunctioncall.params[params].hasdefault} = {$intricatefunctioncall.params[params].default}]{/if}{/section}) <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.flink|rawurlencode}><C:index:{$smarty.capture.findex|rawurlencode}></text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/global.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/global.tpl
index f654d34b28..6185204303 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/global.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/global.tpl
@@ -1,7 +1,7 @@
-{capture name="glink"}Global Variable {$name}{/capture}
-{capture name="gindex"}global {$name}|||{$sdesc}{/capture}
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="10" justification="left"><b>{$name}</b>
-<C:indent:25>
-<i>{$type}</i> = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.glink|rawurlencode}><C:index:{$smarty.capture.gindex|rawurlencode}>
-<C:indent:-25></text>
+{capture name="glink"}Global Variable {$name}{/capture}
+{capture name="gindex"}global {$name}|||{$sdesc}{/capture}
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="10" justification="left"><b>{$name}</b>
+<C:indent:25>
+<i>{$type}</i> = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.glink|rawurlencode}><C:index:{$smarty.capture.gindex|rawurlencode}>
+<C:indent:-25></text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/include.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/include.tpl
index f3b425c21b..399f04d852 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/include.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/include.tpl
@@ -1,3 +1,3 @@
-<text size="10" justification="left">{$name} <b>{$value}</b> <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i>
-
+<text size="10" justification="left">{$name} <b>{$value}</b> <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i>
+
</text> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/index.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/index.tpl
index fd19b28384..0396171303 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/index.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/index.tpl
@@ -1,14 +1,14 @@
-<pdffunction:ezInsertMode arg="0" />
-<newpage />
-<text size="26" justification="centre"><C:rf:1Index>Index
-</text>
-{foreach item="contents" key="letter" from=$indexcontents}
-<text size="26"><C:IndexLetter:{$letter}></text>
-{foreach item="arr" from=$contents}
-<text size="11" aright="520"><c:ilink:toc{$arr[3]}>{$arr[0]}</c:ilink><C:dots:4{$arr[2]}></text>
-{if $arr[1]}
-<text size="11" left="50"><i>{$arr[1]}</i></text>
-{/if}
-{/foreach}
-{/foreach}
-
+<pdffunction:ezInsertMode arg="0" />
+<newpage />
+<text size="26" justification="centre"><C:rf:1Index>Index
+</text>
+{foreach item="contents" key="letter" from=$indexcontents}
+<text size="26"><C:IndexLetter:{$letter}></text>
+{foreach item="arr" from=$contents}
+<text size="11" aright="520"><c:ilink:toc{$arr[3]}>{$arr[0]}</c:ilink><C:dots:4{$arr[2]}></text>
+{if $arr[1]}
+<text size="11" left="50"><i>{$arr[1]}</i></text>
+{/if}
+{/foreach}
+{/foreach}
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/method.tpl
index 4329f2fdcb..dcc72f9f01 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/method.tpl
@@ -1,4 +1,4 @@
-{capture name="mlink"}{if $constructor}Constructor {else}Method {/if}{$intricatefunctioncall.name}{/capture}
-{capture name="mindex"}{if $constructor}constructor {/if}{$class}::{$intricatefunctioncall.name}()|||{$sdesc}{/capture}
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="10" justification="left">{if $constructor}Constructor {else}{/if}<i>{$return}</i> function {$class}::{$intricatefunctioncall.name}({section name=params loop=$intricatefunctioncall.params}{if $smarty.section.params.index > 0}, {/if}{if $intricatefunctioncall.params[params].hasdefault}[{/if}{$intricatefunctioncall.params[params].name}{if $intricatefunctioncall.params[params].hasdefault} = {$intricatefunctioncall.params[params].default}]{/if}{/section}) <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.mlink|rawurlencode}><C:index:{$smarty.capture.mindex|rawurlencode}></text>
+{capture name="mlink"}{if $constructor}Constructor {else}Method {/if}{$intricatefunctioncall.name}{/capture}
+{capture name="mindex"}{if $constructor}constructor {/if}{$class}::{$intricatefunctioncall.name}()|||{$sdesc}{/capture}
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="10" justification="left">{if $constructor}Constructor {else}{/if}<i>{$return}</i> function {$class}::{$intricatefunctioncall.name}({section name=params loop=$intricatefunctioncall.params}{if $smarty.section.params.index > 0}, {/if}{if $intricatefunctioncall.params[params].hasdefault}[{/if}{$intricatefunctioncall.params[params].name}{if $intricatefunctioncall.params[params].hasdefault} = {$intricatefunctioncall.params[params].default}]{/if}{/section}) <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.mlink|rawurlencode}><C:index:{$smarty.capture.mindex|rawurlencode}></text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/newpackage_header.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/newpackage_header.tpl
index ab5bab5d10..c12c3e5de5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/newpackage_header.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/newpackage_header.tpl
@@ -1,6 +1,6 @@
-<newpage />
-{if $ppage}{include file="packagepage.tpl" package=$package plink=$smarty.capture.plink ppage=$ppage}{/if}
-<text size="26" justification="centre">Package {$package} {if $isclass}Classes{else}Procedural Elements{/if}<C:rf:1{$smarty.capture.classeslink|rawurlencode}>
-
-
-</text>
+<newpage />
+{if $ppage}{include file="packagepage.tpl" package=$package plink=$smarty.capture.plink ppage=$ppage}{/if}
+<text size="26" justification="centre">Package {$package} {if $isclass}Classes{else}Procedural Elements{/if}<C:rf:1{$smarty.capture.classeslink|rawurlencode}>
+
+
+</text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/packagepage.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/packagepage.tpl
index c423b9cc09..94accf308b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/packagepage.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/packagepage.tpl
@@ -1,5 +1,5 @@
-<text size="26" justification="centre">Package {$package}<C:rf:1{$plink|rawurlencode}>
-
-
-</text>
+<text size="26" justification="centre">Package {$package}<C:rf:1{$plink|rawurlencode}>
+
+
+</text>
<text size="12">{$ppage}</text> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/page.tpl
index c94210f716..73d33c1c6c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/page.tpl
@@ -1,7 +1,7 @@
-{capture name="pagelink"}{$name}{/capture}
-{capture name="pageindex"}{$name}|||{$sdesc}{/capture}
-{capture name="classeslink"}Package {$package} Procedural Elements{/capture}
-<newpage />
-{if $includeheader}{include file="newpackage_header.tpl" isclass=false}{/if}
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+{capture name="pagelink"}{$name}{/capture}
+{capture name="pageindex"}{$name}|||{$sdesc}{/capture}
+{capture name="classeslink"}Package {$package} Procedural Elements{/capture}
+<newpage />
+{if $includeheader}{include file="newpackage_header.tpl" isclass=false}{/if}
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
<text size="18" justification="center">{$name}<C:rf:2{$smarty.capture.pagelink|rawurlencode}><C:index:{$smarty.capture.pageindex|rawurlencode}></text> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/pagenumbering.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/pagenumbering.tpl
index e8cb649a3b..bb260c38e8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/pagenumbering.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/pagenumbering.tpl
@@ -1 +1 @@
-<pdffunction:ezStartPageNumbers x="500" y="28" size="10" pos="" pattern="Page {ldelim}PAGENUM{rdelim} of {ldelim}TOTALPAGENUM{rdelim}" num="1" />
+<pdffunction:ezStartPageNumbers x="500" y="28" size="10" pos="" pattern="Page {ldelim}PAGENUM{rdelim} of {ldelim}TOTALPAGENUM{rdelim}" num="1" />
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/params.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/params.tpl
index 6ec95a4a32..64be39c383 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/params.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/params.tpl
@@ -1,4 +1,4 @@
-{if count($params)}<text size="10" left="15"><b><i>Function Parameters:</i></b>
-</text><text size="11" left="20"><ul>{section name=params loop=$params}
-<li><i>{$params[params].type}</i> <b>{$params[params].name}</b> {$params[params].description}</li>
-{/section}</ul></text>{/if}
+{if count($params)}<text size="10" left="15"><b><i>Function Parameters:</i></b>
+</text><text size="11" left="20"><ul>{section name=params loop=$params}
+<li><i>{$params[params].type}</i> <b>{$params[params].name}</b> {$params[params].description}</li>
+{/section}</ul></text>{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric.tpl
index 15af061ea4..427e0afb3f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric.tpl
@@ -1,7 +1,7 @@
-{capture name="tlink"}{$name}{/capture}
-{capture name="tindex"}{$name}|||{/capture}
-<text size="20" justification="centre"><C:rf:3{$smarty.capture.tlink|rawurlencode}><C:index:{$smarty.capture.tindex|rawurlencode}>{$name}
-
-</text>
-<text size="10" justification="left">
+{capture name="tlink"}{$name}{/capture}
+{capture name="tindex"}{$name}|||{/capture}
+<text size="20" justification="centre"><C:rf:3{$smarty.capture.tlink|rawurlencode}><C:index:{$smarty.capture.tindex|rawurlencode}>{$name}
+
+</text>
+<text size="10" justification="left">
{$contents|htmlentities}</text> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric_title_page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric_title_page.tpl
index cf95cb9700..5a604b7f53 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric_title_page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/ric_title_page.tpl
@@ -1,5 +1,5 @@
-<newpage />
-{* Class Trees template for the PDF Converter *}
-<text size="26" justification="centre"><C:rf:2Appendix B - README/CHANGELOG/INSTALL>Appendix B - README/CHANGELOG/INSTALL
-</text>
-<newpage />
+<newpage />
+{* Class Trees template for the PDF Converter *}
+<text size="26" justification="centre"><C:rf:2Appendix B - README/CHANGELOG/INSTALL>Appendix B - README/CHANGELOG/INSTALL
+</text>
+<newpage />
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_loop.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_loop.tpl
index 46d503667d..7d85c2e344 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_loop.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_loop.tpl
@@ -1,8 +1,8 @@
-{* Source Code template for the PDF Converter *}
-{foreach from=$source item=code id=$package}
-<text size="16" justification="centre"><C:rf:3Package {$package}>Package {$package}
-</text>
-{section name=code loop=$code}
-{$code[code]}
-{/section}
+{* Source Code template for the PDF Converter *}
+{foreach from=$source item=code id=$package}
+<text size="16" justification="centre"><C:rf:3Package {$package}>Package {$package}
+</text>
+{section name=code loop=$code}
+{$code[code]}
+{/section}
{/foreach} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_title_page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_title_page.tpl
index 36aabad878..42f868f765 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_title_page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/source_title_page.tpl
@@ -1,5 +1,5 @@
-<newpage />
-{* Class Trees template for the PDF Converter *}
-<text size="26" justification="centre"><C:rf:2Appendix C - Source Code>Appendix C - Source Code
-</text>
-<newpage />
+<newpage />
+{* Class Trees template for the PDF Converter *}
+<text size="26" justification="centre"><C:rf:2Appendix C - Source Code>Appendix C - Source Code
+</text>
+<newpage />
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/title_page.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/title_page.tpl
index 72b9b7a98a..91d50cfc65 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/title_page.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/title_page.tpl
@@ -1,7 +1,7 @@
-<pdffunction:ezSetDy arg="-100" />
-<text size="30" justification="centre"><b>{$title}</b></text>
-<pdffunction:ezSetDy arg="-150" />
-{if $logo}
-<pdffunction:getYPlusOffset return="newy" offset="0" />
-<pdffunction:addJpegFromFile arg="{$logo}" x="250" y=$newy />
+<pdffunction:ezSetDy arg="-100" />
+<text size="30" justification="centre"><b>{$title}</b></text>
+<pdffunction:ezSetDy arg="-150" />
+{if $logo}
+<pdffunction:getYPlusOffset return="newy" offset="0" />
+<pdffunction:addJpegFromFile arg="{$logo}" x="250" y=$newy />
{/if} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/toc.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/toc.tpl
index 3f611f24aa..e632ad1601 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/toc.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/toc.tpl
@@ -1,15 +1,15 @@
-<pdffunction:ezStopPageNumbers arg="1" arg="1" />
-<pdffunction:ezInsertMode arg="1" arg="1" arg="after" />
-<newpage />
-<text size="26" justification="centre">Contents
-</text>
-{assign var="xpos" value="520"}
-{foreach item=v key=k from=$contents}
-{if $v[2] == '1'}
-<text size="16" aright="{$xpos}"><c:ilink:toc{$k}>{$v[0]}</c:ilink><C:dots:3{$v[1]}></text>
-{elseif $v[2] == '2'}
-<text size="12" aright="{$xpos}" left="30"><c:ilink:toc{$k}>{$v[0]}</c:ilink><C:dots:3{$v[1]}></text>
-{elseif $v[2] == '3'}
-<text size="12" aright="{$xpos}" left="40"><c:ilink:toc{$k}>{$v[0]}</c:ilink><C:dots:3{$v[1]}></text>
-{/if}
-{/foreach}
+<pdffunction:ezStopPageNumbers arg="1" arg="1" />
+<pdffunction:ezInsertMode arg="1" arg="1" arg="after" />
+<newpage />
+<text size="26" justification="centre">Contents
+</text>
+{assign var="xpos" value="520"}
+{foreach item=v key=k from=$contents}
+{if $v[2] == '1'}
+<text size="16" aright="{$xpos}"><c:ilink:toc{$k}>{$v[0]}</c:ilink><C:dots:3{$v[1]}></text>
+{elseif $v[2] == '2'}
+<text size="12" aright="{$xpos}" left="30"><c:ilink:toc{$k}>{$v[0]}</c:ilink><C:dots:3{$v[1]}></text>
+{elseif $v[2] == '3'}
+<text size="12" aright="{$xpos}" left="40"><c:ilink:toc{$k}>{$v[0]}</c:ilink><C:dots:3{$v[1]}></text>
+{/if}
+{/foreach}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/todolist.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/todolist.tpl
index 705d1a75ff..2652c1c60c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/todolist.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/todolist.tpl
@@ -1,17 +1,17 @@
-<newpage />
-{* Todo List template for the PDF Converter *}
-<text size="26" justification="centre"><C:rf:2Appendix D - Todo List>Appendix D - Todo List
-</text>
-{foreach from=$todos key=todopackage item=todo}
-<text size="16" justification="centre">In Package {$todopackage}
-
-</text>
-{section name=todo loop=$todo}
-<text size="12">In <b>{$todo[todo].link}</b>:
-</text>
-<text size="11"><ul>{section name=t loop=$todo[todo].todos}
- <li>{$todo[todo].todos[t]}</li>{/section}
-</ul>
-</text>
-{/section}
+<newpage />
+{* Todo List template for the PDF Converter *}
+<text size="26" justification="centre"><C:rf:2Appendix D - Todo List>Appendix D - Todo List
+</text>
+{foreach from=$todos key=todopackage item=todo}
+<text size="16" justification="centre">In Package {$todopackage}
+
+</text>
+{section name=todo loop=$todo}
+<text size="12">In <b>{$todo[todo].link}</b>:
+</text>
+<text size="11"><ul>{section name=t loop=$todo[todo].todos}
+ <li>{$todo[todo].todos[t]}</li>{/section}
+</ul>
+</text>
+{/section}
{/foreach} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/tutorial.tpl
index 8b9d6fa28b..c5f8a2dcd7 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/tutorial.tpl
@@ -1,7 +1,7 @@
-{capture name="tlink"}{$title|strip_tags}{/capture}
-{capture name="tindex"}{$title|strip_tags}|||{/capture}
-{capture name="dest"}tutorial{$package}{$subpackage}{$element->name}{/capture}
-<newpage />
-<pdffunction:addDestination arg="{$smarty.capture.dest|urlencode}" arg="FitH" arg=$this->y />
-<text size="26" justification="centre">{$title}<C:rf:{if $hasparent}3{elseif $child}2{else}1{/if}{$smarty.capture.tlink|rawurlencode}><C:index:{$smarty.capture.tindex|rawurlencode}>
+{capture name="tlink"}{$title|strip_tags}{/capture}
+{capture name="tindex"}{$title|strip_tags}|||{/capture}
+{capture name="dest"}tutorial{$package}{$subpackage}{$element->name}{/capture}
+<newpage />
+<pdffunction:addDestination arg="{$smarty.capture.dest|urlencode}" arg="FitH" arg=$this->y />
+<text size="26" justification="centre">{$title}<C:rf:{if $hasparent}3{elseif $child}2{else}1{/if}{$smarty.capture.tlink|rawurlencode}><C:index:{$smarty.capture.tindex|rawurlencode}>
</text>{$contents} \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/var.tpl
index 13a9ae835e..0a9fe92770 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/PDF/default/templates/default/templates/var.tpl
@@ -1,7 +1,7 @@
-{capture name="vlink"}Var {$name}{/capture}
-{capture name="vindex"}{$class}::{$name}|||{$sdesc}{/capture}
-<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
-<text size="10" justification="left"><b>{$class}::{$name}</b>
-<C:indent:25>
-<i>{$type}</i> = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.vlink|rawurlencode}><C:index:{$smarty.capture.vindex|rawurlencode}>
-<C:indent:-25></text>
+{capture name="vlink"}Var {$name}{/capture}
+{capture name="vindex"}{$class}::{$name}|||{$sdesc}{/capture}
+<pdffunction:addDestination arg="{$dest}" arg="FitH" arg=$this->y />
+<text size="10" justification="left"><b>{$class}::{$name}</b>
+<C:indent:25>
+<i>{$type}</i> = {$value} <i>[line {if $slink}{$slink}{else}{$linenumber}{/if}]</i><C:rf:3{$smarty.capture.vlink|rawurlencode}><C:index:{$smarty.capture.vindex|rawurlencode}>
+<C:indent:-25></text>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php
index 5378aee471..5474b52143 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Beautifier.php
@@ -1,135 +1,135 @@
-<?PHP
-/**
- * XML/Beautifier.php
- *
- * Format XML files containing unknown entities (like all of peardoc)
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2004-2006 Gregory Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @subpackage Parsers
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2004-2006 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.3.0
- */
-
-
-/**
- * This is just like XML_Beautifier, but uses {@link phpDocumentor_XML_Beautifier_Tokenizer}
- * @package phpDocumentor
- * @subpackage Parsers
- * @since 1.3.0
- */
-class phpDocumentor_peardoc2_XML_Beautifier extends XML_Beautifier {
-
- /**
- * format a file or URL
- *
- * @access public
- * @param string $file filename
- * @param mixed $newFile filename for beautified XML file (if none is given, the XML string will be returned.)
- * if you want overwrite the original file, use XML_BEAUTIFIER_OVERWRITE
- * @param string $renderer Renderer to use, default is the plain xml renderer
- * @return mixed XML string of no file should be written, true if file could be written
- * @throws PEAR_Error
- * @uses _loadRenderer() to load the desired renderer
- */
- function formatFile($file, $newFile = null, $renderer = "Plain")
- {
- if ($this->apiVersion() != '1.0') {
- return $this->raiseError('API version must be 1.0');
- }
- /**
- * Split the document into tokens
- * using the XML_Tokenizer
- */
- require_once dirname(__FILE__) . '/Tokenizer.php';
- $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
-
- $tokens = $tokenizer->tokenize( $file, true );
-
- if (PEAR::isError($tokens)) {
- return $tokens;
- }
-
- include_once dirname(__FILE__) . '/Plain.php';
- $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
-
- $xml = $renderer->serialize($tokens);
-
- if ($newFile == null) {
- return $xml;
- }
-
- $fp = @fopen($newFile, "w");
- if (!$fp) {
- return PEAR::raiseError("Could not write to output file", XML_BEAUTIFIER_ERROR_NO_OUTPUT_FILE);
- }
-
- flock($fp, LOCK_EX);
- fwrite($fp, $xml);
- flock($fp, LOCK_UN);
- fclose($fp);
- return true; }
-
- /**
- * format an XML string
- *
- * @access public
- * @param string $string XML
- * @return string formatted XML string
- * @throws PEAR_Error
- */
- function formatString($string, $renderer = "Plain")
- {
- if ($this->apiVersion() != '1.0') {
- return $this->raiseError('API version must be 1.0');
- }
- /**
- * Split the document into tokens
- * using the XML_Tokenizer
- */
- require_once dirname(__FILE__) . '/Tokenizer.php';
- $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
-
- $tokens = $tokenizer->tokenize( $string, false );
-
- if (PEAR::isError($tokens)) {
- return $tokens;
- }
-
- include_once dirname(__FILE__) . '/Plain.php';
- $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
-
- $xml = $renderer->serialize($tokens);
-
- return $xml;
- }
-}
+<?PHP
+/**
+ * XML/Beautifier.php
+ *
+ * Format XML files containing unknown entities (like all of peardoc)
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2004-2006 Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @subpackage Parsers
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2004-2006 Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @since 1.3.0
+ */
+
+
+/**
+ * This is just like XML_Beautifier, but uses {@link phpDocumentor_XML_Beautifier_Tokenizer}
+ * @package phpDocumentor
+ * @subpackage Parsers
+ * @since 1.3.0
+ */
+class phpDocumentor_peardoc2_XML_Beautifier extends XML_Beautifier {
+
+ /**
+ * format a file or URL
+ *
+ * @access public
+ * @param string $file filename
+ * @param mixed $newFile filename for beautified XML file (if none is given, the XML string will be returned.)
+ * if you want overwrite the original file, use XML_BEAUTIFIER_OVERWRITE
+ * @param string $renderer Renderer to use, default is the plain xml renderer
+ * @return mixed XML string of no file should be written, true if file could be written
+ * @throws PEAR_Error
+ * @uses _loadRenderer() to load the desired renderer
+ */
+ function formatFile($file, $newFile = null, $renderer = "Plain")
+ {
+ if ($this->apiVersion() != '1.0') {
+ return $this->raiseError('API version must be 1.0');
+ }
+ /**
+ * Split the document into tokens
+ * using the XML_Tokenizer
+ */
+ require_once dirname(__FILE__) . '/Tokenizer.php';
+ $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
+
+ $tokens = $tokenizer->tokenize( $file, true );
+
+ if (PEAR::isError($tokens)) {
+ return $tokens;
+ }
+
+ include_once dirname(__FILE__) . '/Plain.php';
+ $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
+
+ $xml = $renderer->serialize($tokens);
+
+ if ($newFile == null) {
+ return $xml;
+ }
+
+ $fp = @fopen($newFile, "w");
+ if (!$fp) {
+ return PEAR::raiseError("Could not write to output file", XML_BEAUTIFIER_ERROR_NO_OUTPUT_FILE);
+ }
+
+ flock($fp, LOCK_EX);
+ fwrite($fp, $xml);
+ flock($fp, LOCK_UN);
+ fclose($fp);
+ return true; }
+
+ /**
+ * format an XML string
+ *
+ * @access public
+ * @param string $string XML
+ * @return string formatted XML string
+ * @throws PEAR_Error
+ */
+ function formatString($string, $renderer = "Plain")
+ {
+ if ($this->apiVersion() != '1.0') {
+ return $this->raiseError('API version must be 1.0');
+ }
+ /**
+ * Split the document into tokens
+ * using the XML_Tokenizer
+ */
+ require_once dirname(__FILE__) . '/Tokenizer.php';
+ $tokenizer = new phpDocumentor_XML_Beautifier_Tokenizer();
+
+ $tokens = $tokenizer->tokenize( $string, false );
+
+ if (PEAR::isError($tokens)) {
+ return $tokens;
+ }
+
+ include_once dirname(__FILE__) . '/Plain.php';
+ $renderer = new PHPDoc_XML_Beautifier_Renderer_Plain($this->_options);
+
+ $xml = $renderer->serialize($tokens);
+
+ return $xml;
+ }
+}
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Plain.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Plain.php
index a9c636c5c2..b99ced18cb 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Plain.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Plain.php
@@ -1,250 +1,250 @@
-<?PHP
-/* vim: set expandtab tabstop=4 shiftwidth=4: */
-// +----------------------------------------------------------------------+
-// | PHP Version 4 |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2002 The PHP Group |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.0 of the PHP license, |
-// | that is bundled with this package in the file LICENSE, and is |
-// | available at through the world-wide-web at |
-// | http://www.php.net/license/2_02.txt. |
-// | If you did not receive a copy of the PHP license and are unable to |
-// | obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +----------------------------------------------------------------------+
-// | Authors: Stephan Schmidt <schst@php.net> |
-// +----------------------------------------------------------------------+
-
-/**
- * XML/Beautifier/Renderer/Plain.php
- *
- * @package XML_Beautifier
- * @author Stephan Schmidt <schst@php.net>
- */
-
-/**
- * XML_Util is needed to create the tags
- */
-require_once 'XML/Util.php';
-
-/**
- * Renderer base class
- */
-require_once 'XML/Beautifier/Renderer.php';
-
-/**
- * Basic XML Renderer for XML Beautifier
- *
- * @package XML_Beautifier
- * @author Stephan Schmidt <schst@php.net>
- * @todo option to specify inline tags
- * @todo option to specify treatment of whitespac in data sections
- * @todo automatically create <![CDATA[ ]]> sections
- */
-class PHPDoc_XML_Beautifier_Renderer_Plain extends XML_Beautifier_Renderer {
-
- /**
- * Serialize the XML tokens
- *
- * @access public
- * @param array XML tokens
- * @return string XML document
- */
- function serialize($tokens)
- {
- $tokens = $this->normalize($tokens);
-
- $xml = '';
- $cnt = count($tokens);
- for($i = 0; $i < $cnt; $i++ )
- {
- $xml .= $this->_serializeToken($tokens[$i]);
- }
- return $xml;
- }
-
- /**
- * serialize a token
- *
- * This method does the actual beautifying.
- *
- * @access private
- * @param array $token structure that should be serialized
- * @todo split this method into smaller methods
- */
- function _serializeToken($token)
- {
- switch ($token["type"]) {
-
- /*
- * serialize XML Element
- */
- case XML_BEAUTIFIER_ELEMENT:
- $indent = $this->_getIndentString($token["depth"]);
-
- // adjust tag case
- if ($this->_options["caseFolding"] === true) {
- switch ($this->_options["caseFoldingTo"]) {
- case "uppercase":
- $token["tagname"] = strtoupper($token["tagname"]);
- $token["attribs"] = array_change_key_case($token["attribs"], CASE_UPPER);
- break;
- case "lowercase":
- $token["tagname"] = strtolower($token["tagname"]);
- $token["attribs"] = array_change_key_case($token["attribs"], CASE_LOWER);
- break;
- }
- }
-
- if ($this->_options["multilineTags"] == true) {
- $attIndent = $indent . str_repeat(" ", (2+strlen($token["tagname"])));
- } else {
- $attIndent = null;
- }
- // check for children
- switch ($token["contains"]) {
-
- // contains only CData or is empty
- case XML_BEAUTIFIER_CDATA:
- case XML_BEAUTIFIER_EMPTY:
- if (sizeof($token["children"]) >= 1) {
- $data = $token["children"][0]["data"];
- } else {
- $data = '';
- }
-
- if( strstr( $data, "\n" ) && $token['contains'] != PHPDOC_BEAUTIFIER_CDATA)
- {
- $data = "\n" . $this->_indentTextBlock( $data, $token['depth']+1, true );
- }
-
- $xml = $indent . XML_Util::createTag($token["tagname"], $token["attribs"], $data, null, false, $this->_options["multilineTags"], $attIndent)
- . $this->_options["linebreak"];
- break;
- // contains mixed content
- default:
- $xml = $indent . XML_Util::createStartElement($token["tagname"], $token["attribs"], null, $this->_options["multilineTags"], $attIndent)
- . $this->_options["linebreak"];
-
- $cnt = count($token["children"]);
- for ($i = 0; $i < $cnt; $i++) {
- $xml .= $this->_serializeToken($token["children"][$i]);
- }
- $xml .= $indent . XML_Util::createEndElement($token["tagname"])
- . $this->_options["linebreak"];
- break;
- break;
- }
- break;
-
- /*
- * serialize <![CDATA
- */
- case PHPDOC_BEAUTIFIER_CDATA:
- $xml = $token['data'] . $this->_options['linebreak'];
- break;
-
- /*
- * serialize CData
- */
- case XML_BEAUTIFIER_CDATA:
- if ($token["depth"] > 0) {
- $xml = str_repeat($this->_options["indent"], $token["depth"]);
- } else {
- $xml = "";
- }
-
- $xml .= $token["data"] . $this->_options["linebreak"];
- break;
-
- /*
- * serialize Processing instruction
- */
- case XML_BEAUTIFIER_PI:
- $indent = $this->_getIndentString($token["depth"]);
-
- $xml = $indent."<?".$token["target"].$this->_options["linebreak"]
- . $this->_indentTextBlock(rtrim($token["data"]), $token["depth"])
- . $indent."?>".$this->_options["linebreak"];
- break;
-
- /*
- * comments
- */
- case XML_BEAUTIFIER_COMMENT:
- $lines = count(explode("\n",$token["data"]));
-
- /*
- * normalize comment, i.e. combine it to one
- * line and remove whitespace
- */
- if ($this->_options["normalizeComments"] && $lines > 1){
- $comment = preg_replace("/\s\s+/s", " ", str_replace( "\n" , " ", $token["data"]));
- $lines = 1;
- } else {
- $comment = $token["data"];
- }
-
- /*
- * check for the maximum length of one line
- */
- if ($this->_options["maxCommentLine"] > 0) {
- if ($lines > 1) {
- $commentLines = explode("\n", $comment);
- } else {
- $commentLines = array($comment);
- }
-
- $comment = "";
- for ($i = 0; $i < $lines; $i++) {
- if (strlen($commentLines[$i]) <= $this->_options["maxCommentLine"]) {
- $comment .= $commentLines[$i];
- continue;
- }
- $comment .= wordwrap($commentLines[$i], $this->_options["maxCommentLine"] );
- if ($i != ($lines-1)) {
- $comment .= "\n";
- }
- }
- $lines = count(explode("\n",$comment));
- }
-
- $indent = $this->_getIndentString($token["depth"]);
-
- if ($lines > 1) {
- $xml = $indent . "<!--" . $this->_options["linebreak"]
- . $this->_indentTextBlock($comment, $token["depth"]+1, true)
- . $indent . "-->" . $this->_options["linebreak"];
- } else {
- $xml = $indent . sprintf( "<!-- %s -->", trim($comment) ) . $this->_options["linebreak"];
- }
- break;
-
- /*
- * xml declaration
- */
- case XML_BEAUTIFIER_XML_DECLARATION:
- $indent = $this->_getIndentString($token["depth"]);
- $xml = $indent . XML_Util::getXMLDeclaration($token["version"], $token["encoding"], $token["standalone"]);
- break;
-
- /*
- * xml declaration
- */
- case XML_BEAUTIFIER_DT_DECLARATION:
- $xml = $token["data"];
- break;
-
- /*
- * all other elements
- */
- case XML_BEAUTIFIER_DEFAULT:
- default:
- $xml = XML_Util::replaceEntities( $token["data"] );
- break;
- }
- return $xml;
- }
-}
+<?PHP
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+// +----------------------------------------------------------------------+
+// | PHP Version 4 |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2002 The PHP Group |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 2.0 of the PHP license, |
+// | that is bundled with this package in the file LICENSE, and is |
+// | available at through the world-wide-web at |
+// | http://www.php.net/license/2_02.txt. |
+// | If you did not receive a copy of the PHP license and are unable to |
+// | obtain it through the world-wide-web, please send a note to |
+// | license@php.net so we can mail you a copy immediately. |
+// +----------------------------------------------------------------------+
+// | Authors: Stephan Schmidt <schst@php.net> |
+// +----------------------------------------------------------------------+
+
+/**
+ * XML/Beautifier/Renderer/Plain.php
+ *
+ * @package XML_Beautifier
+ * @author Stephan Schmidt <schst@php.net>
+ */
+
+/**
+ * XML_Util is needed to create the tags
+ */
+require_once 'XML/Util.php';
+
+/**
+ * Renderer base class
+ */
+require_once 'XML/Beautifier/Renderer.php';
+
+/**
+ * Basic XML Renderer for XML Beautifier
+ *
+ * @package XML_Beautifier
+ * @author Stephan Schmidt <schst@php.net>
+ * @todo option to specify inline tags
+ * @todo option to specify treatment of whitespac in data sections
+ * @todo automatically create <![CDATA[ ]]> sections
+ */
+class PHPDoc_XML_Beautifier_Renderer_Plain extends XML_Beautifier_Renderer {
+
+ /**
+ * Serialize the XML tokens
+ *
+ * @access public
+ * @param array XML tokens
+ * @return string XML document
+ */
+ function serialize($tokens)
+ {
+ $tokens = $this->normalize($tokens);
+
+ $xml = '';
+ $cnt = count($tokens);
+ for($i = 0; $i < $cnt; $i++ )
+ {
+ $xml .= $this->_serializeToken($tokens[$i]);
+ }
+ return $xml;
+ }
+
+ /**
+ * serialize a token
+ *
+ * This method does the actual beautifying.
+ *
+ * @access private
+ * @param array $token structure that should be serialized
+ * @todo split this method into smaller methods
+ */
+ function _serializeToken($token)
+ {
+ switch ($token["type"]) {
+
+ /*
+ * serialize XML Element
+ */
+ case XML_BEAUTIFIER_ELEMENT:
+ $indent = $this->_getIndentString($token["depth"]);
+
+ // adjust tag case
+ if ($this->_options["caseFolding"] === true) {
+ switch ($this->_options["caseFoldingTo"]) {
+ case "uppercase":
+ $token["tagname"] = strtoupper($token["tagname"]);
+ $token["attribs"] = array_change_key_case($token["attribs"], CASE_UPPER);
+ break;
+ case "lowercase":
+ $token["tagname"] = strtolower($token["tagname"]);
+ $token["attribs"] = array_change_key_case($token["attribs"], CASE_LOWER);
+ break;
+ }
+ }
+
+ if ($this->_options["multilineTags"] == true) {
+ $attIndent = $indent . str_repeat(" ", (2+strlen($token["tagname"])));
+ } else {
+ $attIndent = null;
+ }
+ // check for children
+ switch ($token["contains"]) {
+
+ // contains only CData or is empty
+ case XML_BEAUTIFIER_CDATA:
+ case XML_BEAUTIFIER_EMPTY:
+ if (sizeof($token["children"]) >= 1) {
+ $data = $token["children"][0]["data"];
+ } else {
+ $data = '';
+ }
+
+ if( strstr( $data, "\n" ) && $token['contains'] != PHPDOC_BEAUTIFIER_CDATA)
+ {
+ $data = "\n" . $this->_indentTextBlock( $data, $token['depth']+1, true );
+ }
+
+ $xml = $indent . XML_Util::createTag($token["tagname"], $token["attribs"], $data, null, false, $this->_options["multilineTags"], $attIndent)
+ . $this->_options["linebreak"];
+ break;
+ // contains mixed content
+ default:
+ $xml = $indent . XML_Util::createStartElement($token["tagname"], $token["attribs"], null, $this->_options["multilineTags"], $attIndent)
+ . $this->_options["linebreak"];
+
+ $cnt = count($token["children"]);
+ for ($i = 0; $i < $cnt; $i++) {
+ $xml .= $this->_serializeToken($token["children"][$i]);
+ }
+ $xml .= $indent . XML_Util::createEndElement($token["tagname"])
+ . $this->_options["linebreak"];
+ break;
+ break;
+ }
+ break;
+
+ /*
+ * serialize <![CDATA
+ */
+ case PHPDOC_BEAUTIFIER_CDATA:
+ $xml = $token['data'] . $this->_options['linebreak'];
+ break;
+
+ /*
+ * serialize CData
+ */
+ case XML_BEAUTIFIER_CDATA:
+ if ($token["depth"] > 0) {
+ $xml = str_repeat($this->_options["indent"], $token["depth"]);
+ } else {
+ $xml = "";
+ }
+
+ $xml .= $token["data"] . $this->_options["linebreak"];
+ break;
+
+ /*
+ * serialize Processing instruction
+ */
+ case XML_BEAUTIFIER_PI:
+ $indent = $this->_getIndentString($token["depth"]);
+
+ $xml = $indent."<?".$token["target"].$this->_options["linebreak"]
+ . $this->_indentTextBlock(rtrim($token["data"]), $token["depth"])
+ . $indent."?>".$this->_options["linebreak"];
+ break;
+
+ /*
+ * comments
+ */
+ case XML_BEAUTIFIER_COMMENT:
+ $lines = count(explode("\n",$token["data"]));
+
+ /*
+ * normalize comment, i.e. combine it to one
+ * line and remove whitespace
+ */
+ if ($this->_options["normalizeComments"] && $lines > 1){
+ $comment = preg_replace("/\s\s+/s", " ", str_replace( "\n" , " ", $token["data"]));
+ $lines = 1;
+ } else {
+ $comment = $token["data"];
+ }
+
+ /*
+ * check for the maximum length of one line
+ */
+ if ($this->_options["maxCommentLine"] > 0) {
+ if ($lines > 1) {
+ $commentLines = explode("\n", $comment);
+ } else {
+ $commentLines = array($comment);
+ }
+
+ $comment = "";
+ for ($i = 0; $i < $lines; $i++) {
+ if (strlen($commentLines[$i]) <= $this->_options["maxCommentLine"]) {
+ $comment .= $commentLines[$i];
+ continue;
+ }
+ $comment .= wordwrap($commentLines[$i], $this->_options["maxCommentLine"] );
+ if ($i != ($lines-1)) {
+ $comment .= "\n";
+ }
+ }
+ $lines = count(explode("\n",$comment));
+ }
+
+ $indent = $this->_getIndentString($token["depth"]);
+
+ if ($lines > 1) {
+ $xml = $indent . "<!--" . $this->_options["linebreak"]
+ . $this->_indentTextBlock($comment, $token["depth"]+1, true)
+ . $indent . "-->" . $this->_options["linebreak"];
+ } else {
+ $xml = $indent . sprintf( "<!-- %s -->", trim($comment) ) . $this->_options["linebreak"];
+ }
+ break;
+
+ /*
+ * xml declaration
+ */
+ case XML_BEAUTIFIER_XML_DECLARATION:
+ $indent = $this->_getIndentString($token["depth"]);
+ $xml = $indent . XML_Util::getXMLDeclaration($token["version"], $token["encoding"], $token["standalone"]);
+ break;
+
+ /*
+ * xml declaration
+ */
+ case XML_BEAUTIFIER_DT_DECLARATION:
+ $xml = $token["data"];
+ break;
+
+ /*
+ * all other elements
+ */
+ case XML_BEAUTIFIER_DEFAULT:
+ default:
+ $xml = XML_Util::replaceEntities( $token["data"] );
+ break;
+ }
+ return $xml;
+ }
+}
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Tokenizer.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Tokenizer.php
index 7dd8b5b4a3..87214b1b94 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Tokenizer.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/Tokenizer.php
@@ -1,752 +1,752 @@
-<?php
-/**
- * XML/Beautifier.php
- *
- * Format XML files containing unknown entities (like all of peardoc)
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2004-2006 Gregory Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @subpackage Parsers
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2004-2006 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.3.0
- */
-/**
- * From the XML_Beautifier package
- */
-require_once 'XML/Beautifier/Tokenizer.php';
-/**
- * Highlights source code using {@link parse()}
- * @package phpDocumentor
- * @subpackage Parsers
- */
-class phpDocumentor_XML_Beautifier_Tokenizer extends XML_Beautifier_Tokenizer
-{
- /**#@+
- * @access private
- */
- var $_curthing;
- var $_tag;
- var $_attrs;
- var $_attr;
-
- /**#@-*/
- /**
- * @var array
- */
- var $eventHandlers = array(
- PHPDOC_XMLTOKEN_EVENT_NOEVENTS => 'normalHandler',
- PHPDOC_XMLTOKEN_EVENT_XML => 'parseXMLHandler',
- PHPDOC_XMLTOKEN_EVENT_PI => 'parsePiHandler',
- PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE => 'attrHandler',
- PHPDOC_XMLTOKEN_EVENT_OPENTAG => 'tagHandler',
- PHPDOC_XMLTOKEN_EVENT_IN_CDATA => 'realcdataHandler',
- PHPDOC_XMLTOKEN_EVENT_DEF => 'defHandler',
- PHPDOC_XMLTOKEN_EVENT_CLOSETAG => 'closetagHandler',
- PHPDOC_XMLTOKEN_EVENT_ENTITY => 'entityHandler',
- PHPDOC_XMLTOKEN_EVENT_COMMENT => 'commentHandler',
- PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE => 'stringHandler',
- PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE => 'stringHandler',
- PHPDOC_XMLTOKEN_EVENT_CDATA => 'parseCdataHandler',
- );
-
- /**
- * Parse a new file
- *
- * The parse() method is a do...while() loop that retrieves tokens one by
- * one from the {@link $_event_stack}, and uses the token event array set up
- * by the class constructor to call event handlers.
- *
- * The event handlers each process the tokens passed to them, and use the
- * {@link _addoutput()} method to append the processed tokens to the
- * {@link $_line} variable. The word parser calls {@link newLineNum()}
- * every time a line is reached.
- *
- * In addition, the event handlers use special linking functions
- * {@link _link()} and its cousins (_classlink(), etc.) to create in-code
- * hyperlinks to the documentation for source code elements that are in the
- * source code.
- *
- * @uses setupStates() initialize parser state variables
- * @uses configWordParser() pass $parse_data to prepare retrieval of tokens
- * @param string
- * @param Converter
- * @param false|string full path to file with @filesource tag, if this
- * is a @filesource parse
- * @param false|integer starting line number from {@}source linenum}
- * @staticvar integer used for recursion limiting if a handler for
- * an event is not found
- * @return bool
- */
- function parseString ($parse_data)
- {
- static $endrecur = 0;
- $parse_data = str_replace(array("\r\n", "\t"), array("\n", ' '), $parse_data);
- $this->setupStates($parse_data);
-
- $this->configWordParser(PHPDOC_XMLTOKEN_EVENT_NOEVENTS);
- // initialize variables so E_ALL error_reporting doesn't complain
- $pevent = 0;
- $word = 0;
- $this->_curthing = '';
-
- do
- {
- $lpevent = $pevent;
- $pevent = $this->_event_stack->getEvent();
- if ($lpevent != $pevent)
- {
- $this->_last_pevent = $lpevent;
- $this->configWordParser($pevent);
- }
- $this->_wp->setWhitespace(true);
-
- $dbg_linenum = $this->_wp->linenum;
- $dbg_pos = $this->_wp->getPos();
- $this->_pv_last_word = $word;
- $this->_pv_curline = $this->_wp->linenum;
- $word = $this->_wp->getWord();
-
- if (0)//PHPDOCUMENTOR_DEBUG == true)
- {
- echo "LAST: ";
- echo "|" . $this->_pv_last_word;
- echo "|\n";
- echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
- echo "LASTPEVENT: " . $this->getParserEventName($this->_last_pevent) . "\n";
-// echo "LINE: ".$this->_line."\n";
-// echo "OUTPUT: ".$this->_output."\n";
- echo $dbg_linenum.'-'.$dbg_pos . ": ";
- echo '|'.htmlspecialchars($word);
- echo "|\n";
- echo "-------------------\n\n\n";
- flush();
- }
- if (isset($this->eventHandlers[$pevent]))
- {
- $handle = $this->eventHandlers[$pevent];
- $this->$handle($word, $pevent);
- } else
- {
- echo ('WARNING: possible error, no handler for event number '.$pevent);
- if ($endrecur++ == 25)
- {
- return $this->raiseError("FATAL ERROR, recursion limit reached");
- }
- }
- } while (!($word === false));
- return true;
- }
-
- /**#@+
- * Event Handlers
- *
- * All Event Handlers use {@link checkEventPush()} and
- * {@link checkEventPop()} to set up the event stack and parser state.
- * @access private
- * @param string|array token value
- * @param integer parser event from {@link Parser.inc}
- */
- /**
- * Most tokens only need highlighting, and this method handles them
- */
- function normalHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- $this->_addoutput($pevent);
- $this->_curthing = '';
- return;
- }
- $this->_curthing .= $word;
-
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_curthing = '';
- }
- }
-
- /**
- * handle <!-- comments -->
- */
- function commentHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- return;
- }
-
- $this->_curthing .= $word;
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_curthing = '';
- }
- }
-
- /**
- * handle <?Processor instructions?>
- */
- function parsePiHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- return;
- }
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_curthing = '';
- $this->_attrs = null;
- return;
- }
- if (!strlen($this->_curthing)) {
- $this->_curthing .= str_replace('<?', '', $word);
- } else {
- if (!isset($this->_attrs) || !is_string($this->_attrs)) {
- $this->_attrs = '';
- }
- $this->_attrs .= $word;
- }
- }
-
- /**
- * handle <?xml Processor instructions?>
- */
- function parseXMLHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- return;
- }
-
- $this->_curthing .= $word;
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_curthing = '';
- }
- }
-
- /**
- * handle <![CDATA[ unescaped text ]]>
- */
- function realcdataHandler($word, $pevent)
- {
- $this->_curthing .= $word;
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_curthing = '';
- }
- }
-
- /**
- * handle <tags>
- */
- function tagHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- $this->_curthing = '';
- return;
- }
-
- if ($word{0} == '<') {
- $this->_tag = substr($word, 1);
- }
-
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_tag = null;
- $this->_attrs = null;
- if ($word == '>') {
- $this->_event_stack->pushEvent(PHPDOC_XMLTOKEN_EVENT_CDATA);
- return;
- }
- }
- }
-
- /**
- * handle </tags>
- */
- function closetagHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- return;
- }
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_tag = '';
- return;
- }
- $this->_tag = trim(str_replace('</', '', $word));
- }
-
- /**
- * handle <!def>
- */
- function defHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- return;
- }
-
- $this->_curthing .= $word;
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_curthing = '';
- }
- }
-
- /**
- * Most tokens only need highlighting, and this method handles them
- */
- function attrHandler($word, $pevent)
- {
- if ($e = $this->checkEventPush($word, $pevent)) {
- return;
- }
- if (!isset($this->_attrs) || !is_array($this->_attrs)) {
- $this->_attrs = array();
- }
- if (strpos($word, '=')) {
- $this->_attrs[$this->_attr = trim(str_replace('=', '', $word))] = '';
- }
- if ($this->checkEventPop($word, $pevent)) {
- $this->_wp->backupPos($word);
- return;
- }
- }
-
- /**
- * handle attribute values
- */
- function stringHandler($word, $pevent)
- {
- if ($this->checkEventPop($word, $pevent)) {
- return;
- }
- $this->_attrs[$this->_attr] = $word;
- }
-
- /**
- * handle &entities;
- */
- function entityHandler($word, $pevent)
- {
- if ($this->checkEventPop($word, $pevent)) {
- $this->_addoutput($pevent);
- $this->_curthing = '';
- return;
- }
- if (strlen($word) && $word{0} == '&') {
- $word = substr($word, 1);
- }
- $this->_curthing .= $word;
- }
-
- /**
- * handle tag contents
- */
- function parseCdataHandler($word, $pevent)
- {
- if ($this->checkEventPush($word, $pevent)) {
- $this->_wp->backupPos($word);
- if (strlen($this->_curthing)) {
- $this->_addoutput($pevent);
- }
- $this->_curthing = '';
- return;
- }
- if ($this->checkEventPop($word, $pevent)) {
- if (strlen($this->_curthing)) {
- $this->_addoutput($pevent);
- }
- $this->_curthing = '';
- $this->_event_stack->pushEvent(PHPDOC_XMLTOKEN_EVENT_CLOSETAG);
- return;
- }
- $this->_curthing .= $word;
- }
-
- /**#@-*/
-
- /**
- * Handler for real character data
- *
- * @access protected
- * @param object XML parser object
- * @param string CDATA
- * @return void
- */
- function incdataHandler($parser, $cdata)
- {
- if ((string)$cdata === '') {
- return true;
- }
-
- $struct = array(
- "type" => PHPDOC_BEAUTIFIER_CDATA,
- "data" => $cdata,
- "depth" => $this->_depth
- );
-
- $this->_appendToParent($struct);
- }
- /**#@+
- * Output Methods
- * @access private
- */
- /**
- * This method adds output to {@link $_line}
- *
- * If a string with variables like "$test this" is present, then special
- * handling is used to allow processing of the variable in context.
- * @see _flush_save()
- */
- function _addoutput($event)
- {
- $type =
- array(
- PHPDOC_XMLTOKEN_EVENT_NOEVENTS => '_handleXMLDefault',
- PHPDOC_XMLTOKEN_EVENT_CLOSETAG => 'endHandler',
- PHPDOC_XMLTOKEN_EVENT_ENTITY => 'entityrefHandler',
- PHPDOC_XMLTOKEN_EVENT_DEF => '_handleXMLDefault',
- PHPDOC_XMLTOKEN_EVENT_PI => 'parsePiHandler',
- PHPDOC_XMLTOKEN_EVENT_XML => '_handleXMLDefault',
- PHPDOC_XMLTOKEN_EVENT_OPENTAG => 'startHandler',
- PHPDOC_XMLTOKEN_EVENT_COMMENT => '_handleXMLDefault',
- PHPDOC_XMLTOKEN_EVENT_CDATA => 'cdataHandler',
- PHPDOC_XMLTOKEN_EVENT_IN_CDATA => 'incdataHandler',
- );
- $method = $type[$event];
- switch ($event) {
- case PHPDOC_XMLTOKEN_EVENT_COMMENT :
-// echo "comment: $this->_curthing\n";
- $this->$method(false, $this->_curthing);
- break;
- case PHPDOC_XMLTOKEN_EVENT_OPENTAG :
-// echo "open tag: $this->_tag\n";
-// var_dump($this->_attrs);
- $this->$method(false, $this->_tag, $this->_attrs);
- break;
- case PHPDOC_XMLTOKEN_EVENT_CLOSETAG :
-// echo "close tag: $this->_tag\n";
- $this->$method(false, $this->_curthing);
- break;
- case PHPDOC_XMLTOKEN_EVENT_NOEVENTS :
- if (!strlen($this->_curthing)) {
- return;
- }
-// echo "default: $this->_curthing\n";
- $this->$method(false, $this->_curthing);
- break;
- case PHPDOC_XMLTOKEN_EVENT_DEF :
-// echo "<!definition: $this->_curthing\n";
- $this->$method(false, $this->_curthing);
- break;
- case PHPDOC_XMLTOKEN_EVENT_PI :
-// echo "<?pi: $this->_curthing\n";
-// echo "<?pi attrs: $this->_attrs\n";
- $this->$method(false, $this->_curthing, $this->_attrs);
- break;
- case PHPDOC_XMLTOKEN_EVENT_XML :
-// echo "<?xml: $this->_curthing\n";
- $this->$method(false, $this->_curthing, $this->_attrs);
- break;
- case PHPDOC_XMLTOKEN_EVENT_CDATA :
- case PHPDOC_XMLTOKEN_EVENT_IN_CDATA :
-// echo "cdata: $this->_curthing\n";
- $this->$method(false, $this->_curthing);
- break;
- case PHPDOC_XMLTOKEN_EVENT_ENTITY :
-// echo "entity: $this->_curthing\n";
- $this->$method(false, $this->_curthing, false, false, false);
- break;
- }
- }
- /**#@-*/
-
- /**
- * tell the parser's WordParser {@link $wp} to set up tokens to parse words by.
- * tokens are word separators. In English, a space or punctuation are examples of tokens.
- * In PHP, a token can be a ;, a parenthesis, or even the word "function"
- * @param $value integer an event number
- * @see WordParser
- */
-
- function configWordParser($e)
- {
- $this->_wp->setSeperator($this->tokens[($e + 100)]);
- }
- /**
- * this function checks whether parameter $word is a token for pushing a new event onto the Event Stack.
- * @return mixed returns false, or the event number
- */
-
- function checkEventPush($word,$pevent)
- {
- $e = false;
- if (isset($this->pushEvent[$pevent]))
- {
- if (isset($this->pushEvent[$pevent][strtolower($word)]))
- $e = $this->pushEvent[$pevent][strtolower($word)];
- }
- if ($e)
- {
- $this->_event_stack->pushEvent($e);
- return $e;
- } else {
- return false;
- }
- }
-
- /**
- * this function checks whether parameter $word is a token for popping the current event off of the Event Stack.
- * @return mixed returns false, or the event number popped off of the stack
- */
-
- function checkEventPop($word,$pevent)
- {
- if (!isset($this->popEvent[$pevent])) return false;
- if (in_array(strtolower($word),$this->popEvent[$pevent]))
- {
- return $this->_event_stack->popEvent();
- } else {
- return false;
- }
- }
-
- /**
- * Initialize all parser state variables
- * @param boolean true if we are highlighting an inline {@}source} tag's
- * output
- * @param false|string name of class we are going to start from
- * @uses $_wp sets to a new {@link phpDocumentor_HighlightWordParser}
- */
- function setupStates($parsedata)
- {
- $this->_output = '';
- $this->_line = '';
- unset($this->_wp);
- $this->_wp = new WordParser;
- $this->_wp->setup($parsedata);
- $this->_event_stack = @(new EventStack);
- $this->_event_stack->popEvent();
- $this->_event_stack->pushEvent(PHPDOC_XMLTOKEN_EVENT_NOEVENTS);
- $this->_pv_linenum = null;
- $this->_pv_next_word = false;
- }
-
- /**
- * Initialize the {@link $tokenpushEvent, $wordpushEvent} arrays
- */
- function phpDocumentor_XML_Beautifier_Tokenizer()
- {
- $this->tokens[STATE_XMLTOKEN_CDATA] =
- $this->tokens[STATE_XMLTOKEN_NOEVENTS] = array('<?xml', '<!--', '<![CDATA[', '<!', '</', '<?', '<');//, '&');
- $this->tokens[STATE_XMLTOKEN_OPENTAG] = array("\n","\t"," ", '>', '/>');
- $this->tokens[STATE_XMLTOKEN_XML] =
- $this->tokens[STATE_XMLTOKEN_PI] = array("\n","\t"," ", '?>');
- $this->tokens[STATE_XMLTOKEN_IN_CDATA] = array(']]>');
- $this->tokens[STATE_XMLTOKEN_CLOSETAG] = array("\n",'>');
- $this->tokens[STATE_XMLTOKEN_COMMENT] = array("\n",'-->');
- $this->tokens[STATE_XMLTOKEN_DEF] = array("\n",']>','>');
- $this->tokens[STATE_XMLTOKEN_ENTITY] = array("\n",';');
- $this->tokens[STATE_XMLTOKEN_ATTRIBUTE] = array("\n",'"',"'",'>','/>');
- $this->tokens[STATE_XMLTOKEN_DOUBLEQUOTE] = array("\n",'"');
- $this->tokens[STATE_XMLTOKEN_SINGLEQUOTE] = array("\n","'");
-/**************************************************************/
-
- $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_NOEVENTS] =
- array(
- '<' => PHPDOC_XMLTOKEN_EVENT_OPENTAG,
- '<?' => PHPDOC_XMLTOKEN_EVENT_PI,
- '<?xml' => PHPDOC_XMLTOKEN_EVENT_XML,
- '</' => PHPDOC_XMLTOKEN_EVENT_CLOSETAG,
-// '&' => PHPDOC_XMLTOKEN_EVENT_ENTITY,
- '<![cdata[' => PHPDOC_XMLTOKEN_EVENT_IN_CDATA,
- '<!--' => PHPDOC_XMLTOKEN_EVENT_COMMENT,
- '<!' => PHPDOC_XMLTOKEN_EVENT_DEF,
- );
-/**************************************************************/
-
- $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_OPENTAG] =
- array(
- " " => PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE,
- "\n" => PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE,
- );
-/**************************************************************/
-
- $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE] =
- array(
- "'" => PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE,
- '"' => PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE,
- );
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_IN_CDATA] = array(']]>');
-/**************************************************************/
-
- $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_CDATA] =
- array(
- '<' => PHPDOC_XMLTOKEN_EVENT_OPENTAG,
- '<?' => PHPDOC_XMLTOKEN_EVENT_PI,
-// '&' => PHPDOC_XMLTOKEN_EVENT_ENTITY,
- '<!--' => PHPDOC_XMLTOKEN_EVENT_COMMENT,
- '<!' => PHPDOC_XMLTOKEN_EVENT_DEF,
- '<![cdata[' => PHPDOC_XMLTOKEN_EVENT_IN_CDATA,
- );
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_XML] =
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_PI] = array('?>');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_ENTITY] = array(';');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE] = array("'");
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE] = array('"');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_OPENTAG] = array('>', '/>');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_CLOSETAG] = array('>');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_COMMENT] = array('-->');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_DEF] = array('>',']>');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE] = array('>','/>');
-/**************************************************************/
-
- $this->popEvent[PHPDOC_XMLTOKEN_EVENT_CDATA] =
- array('</');
-/**************************************************************/
- }
-
- function getParserEventName ($value)
- {
- $lookup = array(
- PHPDOC_XMLTOKEN_EVENT_NOEVENTS => "PHPDOC_XMLTOKEN_EVENT_NOEVENTS",
- PHPDOC_XMLTOKEN_EVENT_PI => "PHPDOC_XMLTOKEN_EVENT_PI",
- PHPDOC_XMLTOKEN_EVENT_OPENTAG => "PHPDOC_XMLTOKEN_EVENT_OPENTAG",
- PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE => "PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE",
- PHPDOC_XMLTOKEN_EVENT_CLOSETAG => "PHPDOC_XMLTOKEN_EVENT_CLOSETAG",
- PHPDOC_XMLTOKEN_EVENT_ENTITY => "PHPDOC_XMLTOKEN_EVENT_ENTITY",
- PHPDOC_XMLTOKEN_EVENT_COMMENT => "PHPDOC_XMLTOKEN_EVENT_COMMENT",
- PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE => "PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE",
- PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE => "PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE",
- PHPDOC_XMLTOKEN_EVENT_CDATA => 'PHPDOC_XMLTOKEN_EVENT_CDATA',
- PHPDOC_XMLTOKEN_EVENT_DEF => 'PHPDOC_XMLTOKEN_EVENT_DEF',
- PHPDOC_XMLTOKEN_EVENT_XML => 'PHPDOC_XMLTOKEN_EVENT_XML',
- PHPDOC_XMLTOKEN_EVENT_IN_CDATA => 'PHPDOC_XMLTOKEN_EVENT_IN_CDATA',
- );
- if (isset($lookup[$value]))
- return $lookup[$value];
- else return $value;
- }
-}
-
-
-/** starting state */
-define("PHPDOC_XMLTOKEN_EVENT_NOEVENTS" , 1);
-/** currently in starting state */
-define("STATE_XMLTOKEN_NOEVENTS" , 101);
-
-/** used when a processor instruction is found */
-define("PHPDOC_XMLTOKEN_EVENT_PI" , 2);
-/** currently in processor instruction */
-define("STATE_XMLTOKEN_PI" , 102);
-
-/** used when an open <tag> is found */
-define("PHPDOC_XMLTOKEN_EVENT_OPENTAG" , 3);
-/** currently parsing an open <tag> */
-define("STATE_XMLTOKEN_OPENTAG" , 103);
-
-/** used when a <tag attr="attribute"> is found */
-define("PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE" , 4);
-/** currently parsing an open <tag> */
-define("STATE_XMLTOKEN_ATTRIBUTE" , 104);
-
-/** used when a close </tag> is found */
-define("PHPDOC_XMLTOKEN_EVENT_CLOSETAG" , 5);
-/** currently parsing a close </tag> */
-define("STATE_XMLTOKEN_CLOSETAG" , 105);
-
-/** used when an &entity; is found */
-define("PHPDOC_XMLTOKEN_EVENT_ENTITY" , 6);
-/** currently parsing an &entity; */
-define("STATE_XMLTOKEN_ENTITY" , 106);
-
-/** used when a <!-- comment --> is found */
-define("PHPDOC_XMLTOKEN_EVENT_COMMENT" , 7);
-/** currently parsing a <!-- comment --> */
-define("STATE_XMLTOKEN_COMMENT" , 107);
-
-/** used when a <!-- comment --> is found */
-define("PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE" , 8);
-/** currently parsing a <!-- comment --> */
-define("STATE_XMLTOKEN_SINGLEQUOTE" , 108);
-
-/** used when a <!-- comment --> is found */
-define("PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE" , 9);
-/** currently parsing a <!-- comment --> */
-define("STATE_XMLTOKEN_DOUBLEQUOTE" , 109);
-
-/** used when a <! is found */
-define("PHPDOC_XMLTOKEN_EVENT_DEF" , 10);
-/** currently parsing a <! */
-define("STATE_XMLTOKEN_DEF" , 110);
-
-/** used when a <! is found */
-define("PHPDOC_XMLTOKEN_EVENT_CDATA" , 11);
-/** currently parsing a <! */
-define("STATE_XMLTOKEN_CDATA" , 111);
-
-/** used when a <?xml is found */
-define("PHPDOC_XMLTOKEN_EVENT_XML" , 12);
-/** currently parsing a <?xml */
-define("STATE_XMLTOKEN_XML" , 112);
-
-/** used when a <![CDATA[ section is found */
-define('PHPDOC_XMLTOKEN_EVENT_IN_CDATA', 13);
-/** currently parsing a <![CDATA[ ]]> */
-define('STATE_XMLTOKEN_IN_CDATA', 113);
-
-/** do not remove, needed in plain renderer */
-define('PHPDOC_BEAUTIFIER_CDATA', 100000);
-?>
+<?php
+/**
+ * XML/Beautifier.php
+ *
+ * Format XML files containing unknown entities (like all of peardoc)
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2004-2006 Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @subpackage Parsers
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2004-2006 Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @since 1.3.0
+ */
+/**
+ * From the XML_Beautifier package
+ */
+require_once 'XML/Beautifier/Tokenizer.php';
+/**
+ * Highlights source code using {@link parse()}
+ * @package phpDocumentor
+ * @subpackage Parsers
+ */
+class phpDocumentor_XML_Beautifier_Tokenizer extends XML_Beautifier_Tokenizer
+{
+ /**#@+
+ * @access private
+ */
+ var $_curthing;
+ var $_tag;
+ var $_attrs;
+ var $_attr;
+
+ /**#@-*/
+ /**
+ * @var array
+ */
+ var $eventHandlers = array(
+ PHPDOC_XMLTOKEN_EVENT_NOEVENTS => 'normalHandler',
+ PHPDOC_XMLTOKEN_EVENT_XML => 'parseXMLHandler',
+ PHPDOC_XMLTOKEN_EVENT_PI => 'parsePiHandler',
+ PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE => 'attrHandler',
+ PHPDOC_XMLTOKEN_EVENT_OPENTAG => 'tagHandler',
+ PHPDOC_XMLTOKEN_EVENT_IN_CDATA => 'realcdataHandler',
+ PHPDOC_XMLTOKEN_EVENT_DEF => 'defHandler',
+ PHPDOC_XMLTOKEN_EVENT_CLOSETAG => 'closetagHandler',
+ PHPDOC_XMLTOKEN_EVENT_ENTITY => 'entityHandler',
+ PHPDOC_XMLTOKEN_EVENT_COMMENT => 'commentHandler',
+ PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE => 'stringHandler',
+ PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE => 'stringHandler',
+ PHPDOC_XMLTOKEN_EVENT_CDATA => 'parseCdataHandler',
+ );
+
+ /**
+ * Parse a new file
+ *
+ * The parse() method is a do...while() loop that retrieves tokens one by
+ * one from the {@link $_event_stack}, and uses the token event array set up
+ * by the class constructor to call event handlers.
+ *
+ * The event handlers each process the tokens passed to them, and use the
+ * {@link _addoutput()} method to append the processed tokens to the
+ * {@link $_line} variable. The word parser calls {@link newLineNum()}
+ * every time a line is reached.
+ *
+ * In addition, the event handlers use special linking functions
+ * {@link _link()} and its cousins (_classlink(), etc.) to create in-code
+ * hyperlinks to the documentation for source code elements that are in the
+ * source code.
+ *
+ * @uses setupStates() initialize parser state variables
+ * @uses configWordParser() pass $parse_data to prepare retrieval of tokens
+ * @param string
+ * @param Converter
+ * @param false|string full path to file with @filesource tag, if this
+ * is a @filesource parse
+ * @param false|integer starting line number from {@}source linenum}
+ * @staticvar integer used for recursion limiting if a handler for
+ * an event is not found
+ * @return bool
+ */
+ function parseString ($parse_data)
+ {
+ static $endrecur = 0;
+ $parse_data = str_replace(array("\r\n", "\t"), array("\n", ' '), $parse_data);
+ $this->setupStates($parse_data);
+
+ $this->configWordParser(PHPDOC_XMLTOKEN_EVENT_NOEVENTS);
+ // initialize variables so E_ALL error_reporting doesn't complain
+ $pevent = 0;
+ $word = 0;
+ $this->_curthing = '';
+
+ do
+ {
+ $lpevent = $pevent;
+ $pevent = $this->_event_stack->getEvent();
+ if ($lpevent != $pevent)
+ {
+ $this->_last_pevent = $lpevent;
+ $this->configWordParser($pevent);
+ }
+ $this->_wp->setWhitespace(true);
+
+ $dbg_linenum = $this->_wp->linenum;
+ $dbg_pos = $this->_wp->getPos();
+ $this->_pv_last_word = $word;
+ $this->_pv_curline = $this->_wp->linenum;
+ $word = $this->_wp->getWord();
+
+ if (0)//PHPDOCUMENTOR_DEBUG == true)
+ {
+ echo "LAST: ";
+ echo "|" . $this->_pv_last_word;
+ echo "|\n";
+ echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
+ echo "LASTPEVENT: " . $this->getParserEventName($this->_last_pevent) . "\n";
+// echo "LINE: ".$this->_line."\n";
+// echo "OUTPUT: ".$this->_output."\n";
+ echo $dbg_linenum.'-'.$dbg_pos . ": ";
+ echo '|'.htmlspecialchars($word);
+ echo "|\n";
+ echo "-------------------\n\n\n";
+ flush();
+ }
+ if (isset($this->eventHandlers[$pevent]))
+ {
+ $handle = $this->eventHandlers[$pevent];
+ $this->$handle($word, $pevent);
+ } else
+ {
+ echo ('WARNING: possible error, no handler for event number '.$pevent);
+ if ($endrecur++ == 25)
+ {
+ return $this->raiseError("FATAL ERROR, recursion limit reached");
+ }
+ }
+ } while (!($word === false));
+ return true;
+ }
+
+ /**#@+
+ * Event Handlers
+ *
+ * All Event Handlers use {@link checkEventPush()} and
+ * {@link checkEventPop()} to set up the event stack and parser state.
+ * @access private
+ * @param string|array token value
+ * @param integer parser event from {@link Parser.inc}
+ */
+ /**
+ * Most tokens only need highlighting, and this method handles them
+ */
+ function normalHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ return;
+ }
+ $this->_curthing .= $word;
+
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ }
+ }
+
+ /**
+ * handle <!-- comments -->
+ */
+ function commentHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ return;
+ }
+
+ $this->_curthing .= $word;
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ }
+ }
+
+ /**
+ * handle <?Processor instructions?>
+ */
+ function parsePiHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ return;
+ }
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ $this->_attrs = null;
+ return;
+ }
+ if (!strlen($this->_curthing)) {
+ $this->_curthing .= str_replace('<?', '', $word);
+ } else {
+ if (!isset($this->_attrs) || !is_string($this->_attrs)) {
+ $this->_attrs = '';
+ }
+ $this->_attrs .= $word;
+ }
+ }
+
+ /**
+ * handle <?xml Processor instructions?>
+ */
+ function parseXMLHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ return;
+ }
+
+ $this->_curthing .= $word;
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ }
+ }
+
+ /**
+ * handle <![CDATA[ unescaped text ]]>
+ */
+ function realcdataHandler($word, $pevent)
+ {
+ $this->_curthing .= $word;
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ }
+ }
+
+ /**
+ * handle <tags>
+ */
+ function tagHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ $this->_curthing = '';
+ return;
+ }
+
+ if ($word{0} == '<') {
+ $this->_tag = substr($word, 1);
+ }
+
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_tag = null;
+ $this->_attrs = null;
+ if ($word == '>') {
+ $this->_event_stack->pushEvent(PHPDOC_XMLTOKEN_EVENT_CDATA);
+ return;
+ }
+ }
+ }
+
+ /**
+ * handle </tags>
+ */
+ function closetagHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ return;
+ }
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_tag = '';
+ return;
+ }
+ $this->_tag = trim(str_replace('</', '', $word));
+ }
+
+ /**
+ * handle <!def>
+ */
+ function defHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ return;
+ }
+
+ $this->_curthing .= $word;
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ }
+ }
+
+ /**
+ * Most tokens only need highlighting, and this method handles them
+ */
+ function attrHandler($word, $pevent)
+ {
+ if ($e = $this->checkEventPush($word, $pevent)) {
+ return;
+ }
+ if (!isset($this->_attrs) || !is_array($this->_attrs)) {
+ $this->_attrs = array();
+ }
+ if (strpos($word, '=')) {
+ $this->_attrs[$this->_attr = trim(str_replace('=', '', $word))] = '';
+ }
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ return;
+ }
+ }
+
+ /**
+ * handle attribute values
+ */
+ function stringHandler($word, $pevent)
+ {
+ if ($this->checkEventPop($word, $pevent)) {
+ return;
+ }
+ $this->_attrs[$this->_attr] = $word;
+ }
+
+ /**
+ * handle &entities;
+ */
+ function entityHandler($word, $pevent)
+ {
+ if ($this->checkEventPop($word, $pevent)) {
+ $this->_addoutput($pevent);
+ $this->_curthing = '';
+ return;
+ }
+ if (strlen($word) && $word{0} == '&') {
+ $word = substr($word, 1);
+ }
+ $this->_curthing .= $word;
+ }
+
+ /**
+ * handle tag contents
+ */
+ function parseCdataHandler($word, $pevent)
+ {
+ if ($this->checkEventPush($word, $pevent)) {
+ $this->_wp->backupPos($word);
+ if (strlen($this->_curthing)) {
+ $this->_addoutput($pevent);
+ }
+ $this->_curthing = '';
+ return;
+ }
+ if ($this->checkEventPop($word, $pevent)) {
+ if (strlen($this->_curthing)) {
+ $this->_addoutput($pevent);
+ }
+ $this->_curthing = '';
+ $this->_event_stack->pushEvent(PHPDOC_XMLTOKEN_EVENT_CLOSETAG);
+ return;
+ }
+ $this->_curthing .= $word;
+ }
+
+ /**#@-*/
+
+ /**
+ * Handler for real character data
+ *
+ * @access protected
+ * @param object XML parser object
+ * @param string CDATA
+ * @return void
+ */
+ function incdataHandler($parser, $cdata)
+ {
+ if ((string)$cdata === '') {
+ return true;
+ }
+
+ $struct = array(
+ "type" => PHPDOC_BEAUTIFIER_CDATA,
+ "data" => $cdata,
+ "depth" => $this->_depth
+ );
+
+ $this->_appendToParent($struct);
+ }
+ /**#@+
+ * Output Methods
+ * @access private
+ */
+ /**
+ * This method adds output to {@link $_line}
+ *
+ * If a string with variables like "$test this" is present, then special
+ * handling is used to allow processing of the variable in context.
+ * @see _flush_save()
+ */
+ function _addoutput($event)
+ {
+ $type =
+ array(
+ PHPDOC_XMLTOKEN_EVENT_NOEVENTS => '_handleXMLDefault',
+ PHPDOC_XMLTOKEN_EVENT_CLOSETAG => 'endHandler',
+ PHPDOC_XMLTOKEN_EVENT_ENTITY => 'entityrefHandler',
+ PHPDOC_XMLTOKEN_EVENT_DEF => '_handleXMLDefault',
+ PHPDOC_XMLTOKEN_EVENT_PI => 'parsePiHandler',
+ PHPDOC_XMLTOKEN_EVENT_XML => '_handleXMLDefault',
+ PHPDOC_XMLTOKEN_EVENT_OPENTAG => 'startHandler',
+ PHPDOC_XMLTOKEN_EVENT_COMMENT => '_handleXMLDefault',
+ PHPDOC_XMLTOKEN_EVENT_CDATA => 'cdataHandler',
+ PHPDOC_XMLTOKEN_EVENT_IN_CDATA => 'incdataHandler',
+ );
+ $method = $type[$event];
+ switch ($event) {
+ case PHPDOC_XMLTOKEN_EVENT_COMMENT :
+// echo "comment: $this->_curthing\n";
+ $this->$method(false, $this->_curthing);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_OPENTAG :
+// echo "open tag: $this->_tag\n";
+// var_dump($this->_attrs);
+ $this->$method(false, $this->_tag, $this->_attrs);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_CLOSETAG :
+// echo "close tag: $this->_tag\n";
+ $this->$method(false, $this->_curthing);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_NOEVENTS :
+ if (!strlen($this->_curthing)) {
+ return;
+ }
+// echo "default: $this->_curthing\n";
+ $this->$method(false, $this->_curthing);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_DEF :
+// echo "<!definition: $this->_curthing\n";
+ $this->$method(false, $this->_curthing);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_PI :
+// echo "<?pi: $this->_curthing\n";
+// echo "<?pi attrs: $this->_attrs\n";
+ $this->$method(false, $this->_curthing, $this->_attrs);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_XML :
+// echo "<?xml: $this->_curthing\n";
+ $this->$method(false, $this->_curthing, $this->_attrs);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_CDATA :
+ case PHPDOC_XMLTOKEN_EVENT_IN_CDATA :
+// echo "cdata: $this->_curthing\n";
+ $this->$method(false, $this->_curthing);
+ break;
+ case PHPDOC_XMLTOKEN_EVENT_ENTITY :
+// echo "entity: $this->_curthing\n";
+ $this->$method(false, $this->_curthing, false, false, false);
+ break;
+ }
+ }
+ /**#@-*/
+
+ /**
+ * tell the parser's WordParser {@link $wp} to set up tokens to parse words by.
+ * tokens are word separators. In English, a space or punctuation are examples of tokens.
+ * In PHP, a token can be a ;, a parenthesis, or even the word "function"
+ * @param $value integer an event number
+ * @see WordParser
+ */
+
+ function configWordParser($e)
+ {
+ $this->_wp->setSeperator($this->tokens[($e + 100)]);
+ }
+ /**
+ * this function checks whether parameter $word is a token for pushing a new event onto the Event Stack.
+ * @return mixed returns false, or the event number
+ */
+
+ function checkEventPush($word,$pevent)
+ {
+ $e = false;
+ if (isset($this->pushEvent[$pevent]))
+ {
+ if (isset($this->pushEvent[$pevent][strtolower($word)]))
+ $e = $this->pushEvent[$pevent][strtolower($word)];
+ }
+ if ($e)
+ {
+ $this->_event_stack->pushEvent($e);
+ return $e;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * this function checks whether parameter $word is a token for popping the current event off of the Event Stack.
+ * @return mixed returns false, or the event number popped off of the stack
+ */
+
+ function checkEventPop($word,$pevent)
+ {
+ if (!isset($this->popEvent[$pevent])) return false;
+ if (in_array(strtolower($word),$this->popEvent[$pevent]))
+ {
+ return $this->_event_stack->popEvent();
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Initialize all parser state variables
+ * @param boolean true if we are highlighting an inline {@}source} tag's
+ * output
+ * @param false|string name of class we are going to start from
+ * @uses $_wp sets to a new {@link phpDocumentor_HighlightWordParser}
+ */
+ function setupStates($parsedata)
+ {
+ $this->_output = '';
+ $this->_line = '';
+ unset($this->_wp);
+ $this->_wp = new WordParser;
+ $this->_wp->setup($parsedata);
+ $this->_event_stack = @(new EventStack);
+ $this->_event_stack->popEvent();
+ $this->_event_stack->pushEvent(PHPDOC_XMLTOKEN_EVENT_NOEVENTS);
+ $this->_pv_linenum = null;
+ $this->_pv_next_word = false;
+ }
+
+ /**
+ * Initialize the {@link $tokenpushEvent, $wordpushEvent} arrays
+ */
+ function phpDocumentor_XML_Beautifier_Tokenizer()
+ {
+ $this->tokens[STATE_XMLTOKEN_CDATA] =
+ $this->tokens[STATE_XMLTOKEN_NOEVENTS] = array('<?xml', '<!--', '<![CDATA[', '<!', '</', '<?', '<');//, '&');
+ $this->tokens[STATE_XMLTOKEN_OPENTAG] = array("\n","\t"," ", '>', '/>');
+ $this->tokens[STATE_XMLTOKEN_XML] =
+ $this->tokens[STATE_XMLTOKEN_PI] = array("\n","\t"," ", '?>');
+ $this->tokens[STATE_XMLTOKEN_IN_CDATA] = array(']]>');
+ $this->tokens[STATE_XMLTOKEN_CLOSETAG] = array("\n",'>');
+ $this->tokens[STATE_XMLTOKEN_COMMENT] = array("\n",'-->');
+ $this->tokens[STATE_XMLTOKEN_DEF] = array("\n",']>','>');
+ $this->tokens[STATE_XMLTOKEN_ENTITY] = array("\n",';');
+ $this->tokens[STATE_XMLTOKEN_ATTRIBUTE] = array("\n",'"',"'",'>','/>');
+ $this->tokens[STATE_XMLTOKEN_DOUBLEQUOTE] = array("\n",'"');
+ $this->tokens[STATE_XMLTOKEN_SINGLEQUOTE] = array("\n","'");
+/**************************************************************/
+
+ $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_NOEVENTS] =
+ array(
+ '<' => PHPDOC_XMLTOKEN_EVENT_OPENTAG,
+ '<?' => PHPDOC_XMLTOKEN_EVENT_PI,
+ '<?xml' => PHPDOC_XMLTOKEN_EVENT_XML,
+ '</' => PHPDOC_XMLTOKEN_EVENT_CLOSETAG,
+// '&' => PHPDOC_XMLTOKEN_EVENT_ENTITY,
+ '<![cdata[' => PHPDOC_XMLTOKEN_EVENT_IN_CDATA,
+ '<!--' => PHPDOC_XMLTOKEN_EVENT_COMMENT,
+ '<!' => PHPDOC_XMLTOKEN_EVENT_DEF,
+ );
+/**************************************************************/
+
+ $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_OPENTAG] =
+ array(
+ " " => PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE,
+ "\n" => PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE,
+ );
+/**************************************************************/
+
+ $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE] =
+ array(
+ "'" => PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE,
+ '"' => PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE,
+ );
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_IN_CDATA] = array(']]>');
+/**************************************************************/
+
+ $this->pushEvent[PHPDOC_XMLTOKEN_EVENT_CDATA] =
+ array(
+ '<' => PHPDOC_XMLTOKEN_EVENT_OPENTAG,
+ '<?' => PHPDOC_XMLTOKEN_EVENT_PI,
+// '&' => PHPDOC_XMLTOKEN_EVENT_ENTITY,
+ '<!--' => PHPDOC_XMLTOKEN_EVENT_COMMENT,
+ '<!' => PHPDOC_XMLTOKEN_EVENT_DEF,
+ '<![cdata[' => PHPDOC_XMLTOKEN_EVENT_IN_CDATA,
+ );
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_XML] =
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_PI] = array('?>');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_ENTITY] = array(';');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE] = array("'");
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE] = array('"');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_OPENTAG] = array('>', '/>');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_CLOSETAG] = array('>');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_COMMENT] = array('-->');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_DEF] = array('>',']>');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE] = array('>','/>');
+/**************************************************************/
+
+ $this->popEvent[PHPDOC_XMLTOKEN_EVENT_CDATA] =
+ array('</');
+/**************************************************************/
+ }
+
+ function getParserEventName ($value)
+ {
+ $lookup = array(
+ PHPDOC_XMLTOKEN_EVENT_NOEVENTS => "PHPDOC_XMLTOKEN_EVENT_NOEVENTS",
+ PHPDOC_XMLTOKEN_EVENT_PI => "PHPDOC_XMLTOKEN_EVENT_PI",
+ PHPDOC_XMLTOKEN_EVENT_OPENTAG => "PHPDOC_XMLTOKEN_EVENT_OPENTAG",
+ PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE => "PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE",
+ PHPDOC_XMLTOKEN_EVENT_CLOSETAG => "PHPDOC_XMLTOKEN_EVENT_CLOSETAG",
+ PHPDOC_XMLTOKEN_EVENT_ENTITY => "PHPDOC_XMLTOKEN_EVENT_ENTITY",
+ PHPDOC_XMLTOKEN_EVENT_COMMENT => "PHPDOC_XMLTOKEN_EVENT_COMMENT",
+ PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE => "PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE",
+ PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE => "PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE",
+ PHPDOC_XMLTOKEN_EVENT_CDATA => 'PHPDOC_XMLTOKEN_EVENT_CDATA',
+ PHPDOC_XMLTOKEN_EVENT_DEF => 'PHPDOC_XMLTOKEN_EVENT_DEF',
+ PHPDOC_XMLTOKEN_EVENT_XML => 'PHPDOC_XMLTOKEN_EVENT_XML',
+ PHPDOC_XMLTOKEN_EVENT_IN_CDATA => 'PHPDOC_XMLTOKEN_EVENT_IN_CDATA',
+ );
+ if (isset($lookup[$value]))
+ return $lookup[$value];
+ else return $value;
+ }
+}
+
+
+/** starting state */
+define("PHPDOC_XMLTOKEN_EVENT_NOEVENTS" , 1);
+/** currently in starting state */
+define("STATE_XMLTOKEN_NOEVENTS" , 101);
+
+/** used when a processor instruction is found */
+define("PHPDOC_XMLTOKEN_EVENT_PI" , 2);
+/** currently in processor instruction */
+define("STATE_XMLTOKEN_PI" , 102);
+
+/** used when an open <tag> is found */
+define("PHPDOC_XMLTOKEN_EVENT_OPENTAG" , 3);
+/** currently parsing an open <tag> */
+define("STATE_XMLTOKEN_OPENTAG" , 103);
+
+/** used when a <tag attr="attribute"> is found */
+define("PHPDOC_XMLTOKEN_EVENT_ATTRIBUTE" , 4);
+/** currently parsing an open <tag> */
+define("STATE_XMLTOKEN_ATTRIBUTE" , 104);
+
+/** used when a close </tag> is found */
+define("PHPDOC_XMLTOKEN_EVENT_CLOSETAG" , 5);
+/** currently parsing a close </tag> */
+define("STATE_XMLTOKEN_CLOSETAG" , 105);
+
+/** used when an &entity; is found */
+define("PHPDOC_XMLTOKEN_EVENT_ENTITY" , 6);
+/** currently parsing an &entity; */
+define("STATE_XMLTOKEN_ENTITY" , 106);
+
+/** used when a <!-- comment --> is found */
+define("PHPDOC_XMLTOKEN_EVENT_COMMENT" , 7);
+/** currently parsing a <!-- comment --> */
+define("STATE_XMLTOKEN_COMMENT" , 107);
+
+/** used when a <!-- comment --> is found */
+define("PHPDOC_XMLTOKEN_EVENT_SINGLEQUOTE" , 8);
+/** currently parsing a <!-- comment --> */
+define("STATE_XMLTOKEN_SINGLEQUOTE" , 108);
+
+/** used when a <!-- comment --> is found */
+define("PHPDOC_XMLTOKEN_EVENT_DOUBLEQUOTE" , 9);
+/** currently parsing a <!-- comment --> */
+define("STATE_XMLTOKEN_DOUBLEQUOTE" , 109);
+
+/** used when a <! is found */
+define("PHPDOC_XMLTOKEN_EVENT_DEF" , 10);
+/** currently parsing a <! */
+define("STATE_XMLTOKEN_DEF" , 110);
+
+/** used when a <! is found */
+define("PHPDOC_XMLTOKEN_EVENT_CDATA" , 11);
+/** currently parsing a <! */
+define("STATE_XMLTOKEN_CDATA" , 111);
+
+/** used when a <?xml is found */
+define("PHPDOC_XMLTOKEN_EVENT_XML" , 12);
+/** currently parsing a <?xml */
+define("STATE_XMLTOKEN_XML" , 112);
+
+/** used when a <![CDATA[ section is found */
+define('PHPDOC_XMLTOKEN_EVENT_IN_CDATA', 13);
+/** currently parsing a <![CDATA[ ]]> */
+define('STATE_XMLTOKEN_IN_CDATA', 113);
+
+/** do not remove, needed in plain renderer */
+define('PHPDOC_BEAUTIFIER_CDATA', 100000);
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/options.ini b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/options.ini
index 8339316b9d..cdb08f3826 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/options.ini
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/options.ini
@@ -1,39 +1,39 @@
-;; XML DocBook peardoc2 options
-usepear = true
-
-;; preserve package page docbook tags that don't have an entry in the ppage section
-;; we preserve every tag, as this is how it works
-;; this is after all a docbook converter!
-preservedocbooktags = true
-
-;; separate file for class and page docblocks and minor details (variables, globals, defines)
-separatepage = true
-
-[typechanging]
-true = &true;
-false = &false;
-null = &null;
-
-[desctranslate]
-ul = "\n<itemizedlist>"
-/ul = "</itemizedlist>\n"
-ol = "\n<orderedlist>"
-/ol = "</orderedlist>\n"
-li = "\n<listitem><para>"
-/li = "</para></listitem>\n"
-code = <programlisting role="php-highlighted">
-/code = "</programlisting>\n"
-pre = <![CDATA[
-/pre = ]]>
-p = <para>
-/p = "</para>\n"
-b = <emphasis>
-/b = </emphasis>
-i = <important>
-/i = </important>
-var = <varname>
-/var = </varname>
-kbd = <screen>
-/kbd = </screen>
-samp = <example>
-/samp = "</example>\n"
+;; XML DocBook peardoc2 options
+usepear = true
+
+;; preserve package page docbook tags that don't have an entry in the ppage section
+;; we preserve every tag, as this is how it works
+;; this is after all a docbook converter!
+preservedocbooktags = true
+
+;; separate file for class and page docblocks and minor details (variables, globals, defines)
+separatepage = true
+
+[typechanging]
+true = &true;
+false = &false;
+null = &null;
+
+[desctranslate]
+ul = "\n<itemizedlist>"
+/ul = "</itemizedlist>\n"
+ol = "\n<orderedlist>"
+/ol = "</orderedlist>\n"
+li = "\n<listitem><para>"
+/li = "</para></listitem>\n"
+code = <programlisting role="php-highlighted">
+/code = "</programlisting>\n"
+pre = <![CDATA[
+/pre = ]]>
+p = <para>
+/p = "</para>\n"
+b = <emphasis>
+/b = </emphasis>
+i = <important>
+/i = </important>
+var = <varname>
+/var = </varname>
+kbd = <screen>
+/kbd = </screen>
+samp = <example>
+/samp = "</example>\n"
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/category.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/category.tpl
index 6208c25514..7c95b11eaf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/category.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/category.tpl
@@ -1,26 +1,26 @@
-<chapter id="{$id}">
-<title>{$category}</title>
-{section name=ids loop=$ids}
-&{$ids[ids]};
-{/section}
-</chapter>
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
+<chapter id="{$id}">
+<title>{$category}</title>
+{section name=ids loop=$ids}
+&{$ids[ids]};
+{/section}
+</chapter>
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
--> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class.tpl
index b4daa5eeea..72b9fea2dc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class.tpl
@@ -1,29 +1,29 @@
-<refentry id="{$id}">
- <refnamediv>
- <refname>{$class_name}</refname>
- <refpurpose>{$classname}</refpurpose>
- </refnamediv>
-{section name=methods loop=$method_ids}
-&{$method_ids[methods]};
-{/section}
-</refentry>
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
+<refentry id="{$id}">
+ <refnamediv>
+ <refname>{$class_name}</refname>
+ <refpurpose>{$classname}</refpurpose>
+ </refnamediv>
+{section name=methods loop=$method_ids}
+&{$method_ids[methods]};
+{/section}
+</refentry>
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
--> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class_summary.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class_summary.tpl
index 3c863eab12..03b42703aa 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class_summary.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/class_summary.tpl
@@ -1,53 +1,53 @@
-<refentry id="{$id}">
- <refnamediv>
- <refname>Class Summary {$class_name}</refname>
- <refpurpose>{$sdesc}</refpurpose>
- </refnamediv>
-<refsect1>
- <title>{$sdesc}</title>
- {$desc|default:"&notdocumented;"}
-</refsect1>
-<refsect1>
-<title>Class Trees for {$class_name}</title>
- <para>
- {section name=tree loop=$class_tree}
- {section name=mine loop=$class_tree[tree]} {/section}<itemizedlist>
- {section name=mine loop=$class_tree[tree]} {/section} <listitem><para>
- {section name=mine loop=$class_tree[tree]} {/section} {$class_tree[tree]}
- {/section}
- {section name=tree loop=$class_tree}
- {section name=mine loop=$class_tree[tree]} {/section}</para></listitem>
- </itemizedlist>
- {/section}
- </para>
-{if $children}
- <para>
- <table>
- <title>Classes that extend {$class_name}</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class</entry>
- <entry>Summary</entry>
- </row>
- </thead>
- <tbody>
-{section name=kids loop=$children}
- <row>
- <entry>{$children[kids].link}</entry>
- <entry>{$children[kids].sdesc}</entry>
- </row>
-{/section}
- </tbody>
- </tgroup>
- </table>
- </para>
-{/if}
-{if $imethods}
- <para>
- {$class_name} Inherited Methods
- </para>
-{include file="imethods.tpl" ivars=$ivars}
-{/if}
-</refsect1>
-</refentry>
+<refentry id="{$id}">
+ <refnamediv>
+ <refname>Class Summary {$class_name}</refname>
+ <refpurpose>{$sdesc}</refpurpose>
+ </refnamediv>
+<refsect1>
+ <title>{$sdesc}</title>
+ {$desc|default:"&notdocumented;"}
+</refsect1>
+<refsect1>
+<title>Class Trees for {$class_name}</title>
+ <para>
+ {section name=tree loop=$class_tree}
+ {section name=mine loop=$class_tree[tree]} {/section}<itemizedlist>
+ {section name=mine loop=$class_tree[tree]} {/section} <listitem><para>
+ {section name=mine loop=$class_tree[tree]} {/section} {$class_tree[tree]}
+ {/section}
+ {section name=tree loop=$class_tree}
+ {section name=mine loop=$class_tree[tree]} {/section}</para></listitem>
+ </itemizedlist>
+ {/section}
+ </para>
+{if $children}
+ <para>
+ <table>
+ <title>Classes that extend {$class_name}</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class</entry>
+ <entry>Summary</entry>
+ </row>
+ </thead>
+ <tbody>
+{section name=kids loop=$children}
+ <row>
+ <entry>{$children[kids].link}</entry>
+ <entry>{$children[kids].sdesc}</entry>
+ </row>
+{/section}
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+{/if}
+{if $imethods}
+ <para>
+ {$class_name} Inherited Methods
+ </para>
+{include file="imethods.tpl" ivars=$ivars}
+{/if}
+</refsect1>
+</refentry>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/constants.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/constants.tpl
index f0178e608d..24588e88f4 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/constants.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/constants.tpl
@@ -1,68 +1,68 @@
-<refentry id="{$id}">
- <refnamediv>
- <refname>Package {$package} Constants</refname>
- <refpurpose>Constants defined in and used by {$package}</refpurpose>
- </refnamediv>
- <refsect1 id="{$id}.details">
- <title>All Constants</title>
-{section name=files loop=$defines}
- <refsect2 id="{$id}.details.{$defines[files].page}">
- <title>
- Constants defined in {$defines[files].name}
- </title>
- <para>
- <table>
- <title>Constants defined in {$defines[files].name}</title>
-{section name=d loop=$defines[files].defines}
-{if $defines[files].defines[d].conflicts}{assign var="defineconflict" value=true}{/if}
-{/section}
- <tgroup cols="{if $defineconflict}4{else}3{/if}">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- <entry>Line Number</entry>
-{if $defineconflict}
- <entry>Conflicts with other packages</entry>
-{/if}
- </row>
- </thead>
- <tbody>
-{section name=d loop=$defines[files].defines}
- <row>
- <entry>{$defines[files].defines[d].name}</entry>
- <entry>{$defines[files].defines[d].value}</entry>
- <entry>{$defines[files].defines[d].line_number}</entry>
-{if $defineconflict}
- <entry>{$defines[files].defines[d].conflicts}</entry>
-{/if}
- </row>
-{/section}
- </tbody>
- </tgroup>
- </table>
- </para>
- </refsect2>
-{/section}
- </refsect1>
-</refentry>
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
+<refentry id="{$id}">
+ <refnamediv>
+ <refname>Package {$package} Constants</refname>
+ <refpurpose>Constants defined in and used by {$package}</refpurpose>
+ </refnamediv>
+ <refsect1 id="{$id}.details">
+ <title>All Constants</title>
+{section name=files loop=$defines}
+ <refsect2 id="{$id}.details.{$defines[files].page}">
+ <title>
+ Constants defined in {$defines[files].name}
+ </title>
+ <para>
+ <table>
+ <title>Constants defined in {$defines[files].name}</title>
+{section name=d loop=$defines[files].defines}
+{if $defines[files].defines[d].conflicts}{assign var="defineconflict" value=true}{/if}
+{/section}
+ <tgroup cols="{if $defineconflict}4{else}3{/if}">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ <entry>Line Number</entry>
+{if $defineconflict}
+ <entry>Conflicts with other packages</entry>
+{/if}
+ </row>
+ </thead>
+ <tbody>
+{section name=d loop=$defines[files].defines}
+ <row>
+ <entry>{$defines[files].defines[d].name}</entry>
+ <entry>{$defines[files].defines[d].value}</entry>
+ <entry>{$defines[files].defines[d].line_number}</entry>
+{if $defineconflict}
+ <entry>{$defines[files].defines[d].conflicts}</entry>
+{/if}
+ </row>
+{/section}
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </refsect2>
+{/section}
+ </refsect1>
+</refentry>
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/docblock.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/docblock.tpl
index d9d910edd5..ab140b3bf2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/docblock.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/docblock.tpl
@@ -1,116 +1,116 @@
-{if $var}
-{assign var="num" value="refsect3"}
-{else}
-{assign var="num" value="refsect1"}
-{/if}
- <{$num} id="{$id}.desc">
- &title.desc;
-{if $line_number}
- <simpara>
- Source on line #: {if $class_slink}{$class_slink}{else}{$line_number}{/if}
- </simpara>
-{/if}
-{if $var}
- <simpara>
- {$sdesc|default:"&notdocumented;"}
- </simpara>
-{/if}
-{if $desc}
- {$desc}
-{else}
-{if $var && $sdesc}
-{else}
- &notdocumented;
-{/if}
-{/if}
- </{$num}>
-{if $params}
- <{$num} id="{$id}.param">
- &title.param;
- <para>
-{section name=params loop=$params}
- <variablelist>
- <varlistentry>
- <term>
- {assign var="temp" value=$params[params].name}
- {if strpos($params[params].type, '|') ||
- strpos($cparams.$temp.cdatatype, '>')}
- <type>{$params[params].type}</type>
- {else}
- {if $params[params].type == 'integer'}
- {assign var="paramtype" value="int"}
- {elseif $params[params].type == 'boolean'}
- {assign var="paramtype" value="bool"}
- {else}
- {assign var="paramtype" value=$params[params].type}
- {/if}
- {if in_array($paramtype, array('bool', 'int', 'float', 'string', 'mixed', 'object', 'resource', 'array', 'res'))}
- &type.{$paramtype};
- {else}
- <type>{$paramtype}</type>
- {/if}
- {/if}
- <parameter>{$params[params].name|replace:"&":"&amp;"}</parameter>
- </term>
- <listitem>
- <para>
- {$params[params].description}
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
-{/section}
- </para>
- </{$num}>
-{/if}
-{foreach from=$tags item="tag" key="tagname"}
-{if $tagname != 'static' && $tagname != 'author' && $tagname != 'version' && $tagname != 'copyright' && $tagname != 'package' && $tagname != 'subpackage' && $tagname != 'example'}
- <{$num} id="{$id}.{$tagname}">
- &title.{$tagname};
- {section name=t loop=$tag}
- <para>
- <emphasis>{$tag[t].keyword}</emphasis> {$tag[t].data}
- </para>
- {/section}
- </{$num}>
-{elseif $tagname == 'deprecated'}
- <{$num} id="{$id}.{$tagname}">
- &title.note;
- &note.deprecated;
- {section name=t loop=$tag}
- <para>
- {$tag[t].data}
- </para>
- {/section}
- </{$num}>
-{elseif $tagname == 'static'}
-{assign var="canstatic" value=true}
-{elseif $tagname == 'example'}
- <{$num} id="{$id}.{$tagname}">
- <title>Examples</title>
- {section name=t loop=$tag}
- {$tag[t].data}
- {/section}
- </{$num}>
-{elseif $tagname != 'package' && $tagname != 'subpackage'}
- <{$num} id="{$id}.{$tagname}">
- <title>{$tagname}</title>{* <-- need language snippets support for phpDocumentor, will use this instead *}
- {section name=t loop=$tag}
- <para>
- <emphasis>{$tagname}</emphasis> {$tag[t].data}
- </para>
- {/section}
- </{$num}>
-{/if}
-{/foreach}
-{if $canstatic}
- <{$num} id="{$id}.note">
- &title.note;
- &note.canstatic;
- </{$num}>
-{else}
- <{$num} id="{$id}.note">
- &title.note;
- &note.notstatic;
- </{$num}>
-{/if}
+{if $var}
+{assign var="num" value="refsect3"}
+{else}
+{assign var="num" value="refsect1"}
+{/if}
+ <{$num} id="{$id}.desc">
+ &title.desc;
+{if $line_number}
+ <simpara>
+ Source on line #: {if $class_slink}{$class_slink}{else}{$line_number}{/if}
+ </simpara>
+{/if}
+{if $var}
+ <simpara>
+ {$sdesc|default:"&notdocumented;"}
+ </simpara>
+{/if}
+{if $desc}
+ {$desc}
+{else}
+{if $var && $sdesc}
+{else}
+ &notdocumented;
+{/if}
+{/if}
+ </{$num}>
+{if $params}
+ <{$num} id="{$id}.param">
+ &title.param;
+ <para>
+{section name=params loop=$params}
+ <variablelist>
+ <varlistentry>
+ <term>
+ {assign var="temp" value=$params[params].name}
+ {if strpos($params[params].type, '|') ||
+ strpos($cparams.$temp.cdatatype, '>')}
+ <type>{$params[params].type}</type>
+ {else}
+ {if $params[params].type == 'integer'}
+ {assign var="paramtype" value="int"}
+ {elseif $params[params].type == 'boolean'}
+ {assign var="paramtype" value="bool"}
+ {else}
+ {assign var="paramtype" value=$params[params].type}
+ {/if}
+ {if in_array($paramtype, array('bool', 'int', 'float', 'string', 'mixed', 'object', 'resource', 'array', 'res'))}
+ &type.{$paramtype};
+ {else}
+ <type>{$paramtype}</type>
+ {/if}
+ {/if}
+ <parameter>{$params[params].name|replace:"&":"&amp;"}</parameter>
+ </term>
+ <listitem>
+ <para>
+ {$params[params].description}
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+{/section}
+ </para>
+ </{$num}>
+{/if}
+{foreach from=$tags item="tag" key="tagname"}
+{if $tagname != 'static' && $tagname != 'author' && $tagname != 'version' && $tagname != 'copyright' && $tagname != 'package' && $tagname != 'subpackage' && $tagname != 'example'}
+ <{$num} id="{$id}.{$tagname}">
+ &title.{$tagname};
+ {section name=t loop=$tag}
+ <para>
+ <emphasis>{$tag[t].keyword}</emphasis> {$tag[t].data}
+ </para>
+ {/section}
+ </{$num}>
+{elseif $tagname == 'deprecated'}
+ <{$num} id="{$id}.{$tagname}">
+ &title.note;
+ &note.deprecated;
+ {section name=t loop=$tag}
+ <para>
+ {$tag[t].data}
+ </para>
+ {/section}
+ </{$num}>
+{elseif $tagname == 'static'}
+{assign var="canstatic" value=true}
+{elseif $tagname == 'example'}
+ <{$num} id="{$id}.{$tagname}">
+ <title>Examples</title>
+ {section name=t loop=$tag}
+ {$tag[t].data}
+ {/section}
+ </{$num}>
+{elseif $tagname != 'package' && $tagname != 'subpackage'}
+ <{$num} id="{$id}.{$tagname}">
+ <title>{$tagname}</title>{* <-- need language snippets support for phpDocumentor, will use this instead *}
+ {section name=t loop=$tag}
+ <para>
+ <emphasis>{$tagname}</emphasis> {$tag[t].data}
+ </para>
+ {/section}
+ </{$num}>
+{/if}
+{/foreach}
+{if $canstatic}
+ <{$num} id="{$id}.note">
+ &title.note;
+ &note.canstatic;
+ </{$num}>
+{else}
+ <{$num} id="{$id}.note">
+ &title.note;
+ &note.notstatic;
+ </{$num}>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/errors.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/errors.tpl
index 1576a8224b..0f5265846d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/errors.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/errors.tpl
@@ -1,21 +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"}
+{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/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/globals.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/globals.tpl
index 773b430cc0..7392d87a31 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/globals.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/globals.tpl
@@ -1,69 +1,69 @@
-<refentry id="{$id}">
- <refnamediv>
- <refname>Package {$package} Global Variables</refname>
- <refpurpose>Global Variables defined in and used by {$package}</refpurpose>
- </refnamediv>
- <refsect1 id="{$id}.details">
- <title>All Global Variables</title>
-{section name=files loop=$globals}
- <refsect2 id="{$id}.details.{$globals[files].page}">
- <title>
- Global Variables defined in {$globals[files].name}
- </title>
- <para>
- <table>
- <title>Global Variables defined in {$globals[files].name}</title>
-{section name=d loop=$globals[files].globals}
-{if $globals[files].globals[d].conflicts}{assign var="globalconflict" value=true}{/if}
-{/section}
- <tgroup cols="{if $globalconflict}4{else}3{/if}">
- <thead>
- <row>
- <entry>Name</entry>
- <entry>Value</entry>
- <entry>Line Number</entry>
-{if $globalconflict}
- <entry>Conflicts with other packages</entry>
-{/if}
- </row>
- </thead>
- <tbody>
-{section name=d loop=$globals}
- <row>
-
-<entry>{$globals[files].globals[d].name}</entry>
- <entry>{$globals[files].globals[d].value}</entry>
- <entry>{$globals[files].globals[d].line_number}</entry>
-{if $globalconflict}
- <entry>{$globals[files].globals[d].conflicts}</entry>
-{/if}
- </row>
-{/section}
- </tbody>
- </tgroup>
- </table>
- </para>
- </refsect2>
-{/section}
- </refsect1>
-</refentry>
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
+<refentry id="{$id}">
+ <refnamediv>
+ <refname>Package {$package} Global Variables</refname>
+ <refpurpose>Global Variables defined in and used by {$package}</refpurpose>
+ </refnamediv>
+ <refsect1 id="{$id}.details">
+ <title>All Global Variables</title>
+{section name=files loop=$globals}
+ <refsect2 id="{$id}.details.{$globals[files].page}">
+ <title>
+ Global Variables defined in {$globals[files].name}
+ </title>
+ <para>
+ <table>
+ <title>Global Variables defined in {$globals[files].name}</title>
+{section name=d loop=$globals[files].globals}
+{if $globals[files].globals[d].conflicts}{assign var="globalconflict" value=true}{/if}
+{/section}
+ <tgroup cols="{if $globalconflict}4{else}3{/if}">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Value</entry>
+ <entry>Line Number</entry>
+{if $globalconflict}
+ <entry>Conflicts with other packages</entry>
+{/if}
+ </row>
+ </thead>
+ <tbody>
+{section name=d loop=$globals}
+ <row>
+
+<entry>{$globals[files].globals[d].name}</entry>
+ <entry>{$globals[files].globals[d].value}</entry>
+ <entry>{$globals[files].globals[d].line_number}</entry>
+{if $globalconflict}
+ <entry>{$globals[files].globals[d].conflicts}</entry>
+{/if}
+ </row>
+{/section}
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </refsect2>
+{/section}
+ </refsect1>
+</refentry>
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/imethods.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/imethods.tpl
index 779918af23..c0be1bf712 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/imethods.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/imethods.tpl
@@ -1,24 +1,24 @@
- <para>
-{section name=classes loop=$imethods}
- <table>
- <title>Inherited from {$imethods[classes].parent_class}</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Method Name</entry>
- <entry>Summary</entry>
- </row>
- </thead>
- <tbody>
-{section name=m loop=$imethods[classes].imethods}
- <row>
- <entry>{if $imethods[classes].imethods[m].constructor} Constructor{/if} {$imethods[classes].imethods[m].link}</entry>
- <entry>{$imethods[classes].imethods[m].sdesc|default:"&notdocumented;"}</entry>
- </row>
-{/section}
- </tbody>
- </tgroup>
- </table>
-{/section}
- </para>
-
+ <para>
+{section name=classes loop=$imethods}
+ <table>
+ <title>Inherited from {$imethods[classes].parent_class}</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Method Name</entry>
+ <entry>Summary</entry>
+ </row>
+ </thead>
+ <tbody>
+{section name=m loop=$imethods[classes].imethods}
+ <row>
+ <entry>{if $imethods[classes].imethods[m].constructor} Constructor{/if} {$imethods[classes].imethods[m].link}</entry>
+ <entry>{$imethods[classes].imethods[m].sdesc|default:"&notdocumented;"}</entry>
+ </row>
+{/section}
+ </tbody>
+ </tgroup>
+ </table>
+{/section}
+ </para>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/ivars.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/ivars.tpl
index 4555ac2bf4..3b9eecf98b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/ivars.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/ivars.tpl
@@ -1,26 +1,26 @@
- <para>
-{section name=classes loop=$ivars}
- <table>
- <title>Inherited from {$ivars[classes].parent_class}</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable Name</entry>
- <entry>Summary</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-{section name=m loop=$ivars[classes].ivars}
- <row>
- <entry>{if $ivars[classes].ivars[m].constructor} Constructor{/if} {$ivars[classes].ivars[m].link}</entry>
- <entry>{$ivars[classes].ivars[m].sdesc|default:"&notdocumented;"}</entry>
- <entry>{$ivars[classes].ivars[m].default|default:"&null;"}</entry>
- </row>
-{/section}
- </tbody>
- </tgroup>
- </table>
-{/section}
- </para>
-
+ <para>
+{section name=classes loop=$ivars}
+ <table>
+ <title>Inherited from {$ivars[classes].parent_class}</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Variable Name</entry>
+ <entry>Summary</entry>
+ <entry>Default Value</entry>
+ </row>
+ </thead>
+ <tbody>
+{section name=m loop=$ivars[classes].ivars}
+ <row>
+ <entry>{if $ivars[classes].ivars[m].constructor} Constructor{/if} {$ivars[classes].ivars[m].link}</entry>
+ <entry>{$ivars[classes].ivars[m].sdesc|default:"&notdocumented;"}</entry>
+ <entry>{$ivars[classes].ivars[m].default|default:"&null;"}</entry>
+ </row>
+{/section}
+ </tbody>
+ </tgroup>
+ </table>
+{/section}
+ </para>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/method.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/method.tpl
index 039fe67eff..fc53f5dc2f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/method.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/method.tpl
@@ -1,45 +1,45 @@
-<refentry id="{$id}">
- <refnamediv>
- <refname>{if $function_call.constructor}constructor {/if}<function>{$class}::{$function_name}</function></refname>
- <refpurpose>{$sdesc|default:$function_name}</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
- <funcsynopsis>
- <funcsynopsisinfo>
- require_once &apos;{$source_location}&apos;;
- </funcsynopsisinfo>
- <funcprototype>
- <funcdef>{$function_return}{if $function_call.returnsref}&amp;{/if}
- {if $function_call.constructor}constructor {/if}<function>{$class}::{$function_name}</function></funcdef>
-{if count($function_call.params)}
-{section name=params loop=$function_call.params}
- <paramdef>{if @strpos('>',$function_call.params[params].type)}<replaceable>{/if}{$function_call.params[params].type}{if @strpos('>',$function_call.params[params].type)}</replaceable>{/if} <parameter>{if $function_call.params[params].hasdefault} <optional>{/if}{$function_call.params[params].name|replace:"&":"&amp;"}{if $function_call.params[params].hasdefault} = {$function_call.params[params].default}</optional>{/if}</parameter></paramdef>
-{/section}
-{else}
-<paramdef></paramdef>
-{/if}
- </funcprototype>
- </funcsynopsis>
- </refsynopsisdiv>
-{include file="docblock.tpl" cparams=$params params=$function_call.params desc=$desc tags=$tags}
-</refentry>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
--->
-
+<refentry id="{$id}">
+ <refnamediv>
+ <refname>{if $function_call.constructor}constructor {/if}<function>{$class}::{$function_name}</function></refname>
+ <refpurpose>{$sdesc|default:$function_name}</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <funcsynopsis>
+ <funcsynopsisinfo>
+ require_once &apos;{$source_location}&apos;;
+ </funcsynopsisinfo>
+ <funcprototype>
+ <funcdef>{$function_return}{if $function_call.returnsref}&amp;{/if}
+ {if $function_call.constructor}constructor {/if}<function>{$class}::{$function_name}</function></funcdef>
+{if count($function_call.params)}
+{section name=params loop=$function_call.params}
+ <paramdef>{if @strpos('>',$function_call.params[params].type)}<replaceable>{/if}{$function_call.params[params].type}{if @strpos('>',$function_call.params[params].type)}</replaceable>{/if} <parameter>{if $function_call.params[params].hasdefault} <optional>{/if}{$function_call.params[params].name|replace:"&":"&amp;"}{if $function_call.params[params].hasdefault} = {$function_call.params[params].default}</optional>{/if}</parameter></paramdef>
+{/section}
+{else}
+<paramdef></paramdef>
+{/if}
+ </funcprototype>
+ </funcsynopsis>
+ </refsynopsisdiv>
+{include file="docblock.tpl" cparams=$params params=$function_call.params desc=$desc tags=$tags}
+</refentry>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/package.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/package.tpl
index 5c1afda849..5b6bfc1c5d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/package.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/package.tpl
@@ -1,26 +1,26 @@
-<sect1 id="{$id}">
-<title>{$package}</title>
-{section name=ids loop=$ids}
-{$ids[ids]}
-{/section}
-</sect1>
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
+<sect1 id="{$id}">
+<title>{$package}</title>
+{section name=ids loop=$ids}
+{$ids[ids]}
+{/section}
+</sect1>
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
--> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/tutorial.tpl
index b5e71f0f08..e2cb70c4af 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/tutorial.tpl
@@ -1,21 +1,21 @@
-{$contents}
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
+{$contents}
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
--> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/var.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/var.tpl
index 01781164b1..0d490e461f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/var.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/peardoc2/templates/default/templates/var.tpl
@@ -1,15 +1,15 @@
- <refsect1 id="{$my_id}.vars">
- <title>Class Variables</title>
-{section name=var loop=$vars}
- <refsect2 id="{$vars[vars].id}">
- <title>{$vars[var].var_type} {$vars[var].var_name}{if $vars[var].default} = {$vars[var].var_default}{/if}</title>
-
-{section name=v loop=$vars[var].var_overrides}
- <para>
- <emphasis>Overrides {$vars[var].var_overrides[v].link}</emphasis>{if $vars[var].var_overrides[v].sdesc}: {$vars[var].var_overrides[v].sdesc|default:""}{/if}
- </para>
-{/section}
-{include file="docblock.tpl" var=true desc=$vars[var].desc sdesc=$vars[var].sdesc tags=$vars[var].tags line_number=$line_number id=$vars[var].id}
- </refsect2>
-{/section}
- </refsect1>
+ <refsect1 id="{$my_id}.vars">
+ <title>Class Variables</title>
+{section name=var loop=$vars}
+ <refsect2 id="{$vars[vars].id}">
+ <title>{$vars[var].var_type} {$vars[var].var_name}{if $vars[var].default} = {$vars[var].var_default}{/if}</title>
+
+{section name=v loop=$vars[var].var_overrides}
+ <para>
+ <emphasis>Overrides {$vars[var].var_overrides[v].link}</emphasis>{if $vars[var].var_overrides[v].sdesc}: {$vars[var].var_overrides[v].sdesc|default:""}{/if}
+ </para>
+{/section}
+{include file="docblock.tpl" var=true desc=$vars[var].desc sdesc=$vars[var].sdesc tags=$vars[var].tags line_number=$line_number id=$vars[var].id}
+ </refsect2>
+{/section}
+ </refsect1>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/class_summary.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/class_summary.tpl
index e76fba19bc..ca8210a787 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/class_summary.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/class_summary.tpl
@@ -1,93 +1,93 @@
-<!-- $Revision: 1.1 $ -->
-<refentry id="{$id}">
- <refnamediv>
- <refname>Class {$class_name} Summary</refname>
- <refpurpose>{$sdesc|default:"&notdocumented"}</refpurpose>
- </refnamediv>
-{include file="docblock.tpl" desc=$desc tags=$tags line_number=$line_number params=false}
-{include file="var.tpl" vars=$vars my_id=$id}
- <refsect1 id="{$id}.heritage">
- <title>
- Heritage for {$class_name}
- </title>
- <refsect2 id="{$id}.heritage.class-trees">
- <title>
- Class Trees for {$class_name}
- </title>
- <para>
- {section name=tree loop=$class_tree}
- {section name=mine loop=$class_tree[tree]} {/section}<itemizedlist>
- {section name=mine loop=$class_tree[tree]} {/section} <listitem>
- {section name=mine loop=$class_tree[tree]} {/section} {$class_tree[tree]}
- {/section}
- {section name=tree loop=$class_tree}
- {section name=mine loop=$class_tree[tree]} {/section}</listitem>
- </itemizedlist>
- {/section}
- </para>
- </refsect2>
-{if $children}
- <refsect2 id="{$id}.heritage.child-classes">
- <title>
- Classes that extend {$class_name}
- </title>
- <para>
- <table>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Class</entry>
- <entry>Summary</entry>
- </row>
- </thead>
- <tbody>
-{section name=kids loop=$children}
- <row>
- <entry>{$children[kids].link}</entry>
- <entry>{$children[kids].sdesc}</entry>
- </row>
-{/section}
- </tbody>
- </tgroup>
- </table>
- </para>
- </refsect2>
-{/if}
-{if $imethods}
- <refsect2 id="{$id}.heritage.inherited-methods">
- <title>
- {$class_name} Inherited Methods
- </title>
-{include file="imethods.tpl" ivars=$ivars}
- </refsect2>
-{/if}
-{if $ivars}
- <refsect2 id="{$id}.heritage.inherited-vars">
- <title>
- {$class_name} Inherited Variables
- </title>
-{include file="ivars.tpl" ivars=$ivars}
- </refsect2>
-{/if}
- </refsect1>
-</refentry>
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
+<!-- $Revision: 1.1 $ -->
+<refentry id="{$id}">
+ <refnamediv>
+ <refname>Class {$class_name} Summary</refname>
+ <refpurpose>{$sdesc|default:"&notdocumented"}</refpurpose>
+ </refnamediv>
+{include file="docblock.tpl" desc=$desc tags=$tags line_number=$line_number params=false}
+{include file="var.tpl" vars=$vars my_id=$id}
+ <refsect1 id="{$id}.heritage">
+ <title>
+ Heritage for {$class_name}
+ </title>
+ <refsect2 id="{$id}.heritage.class-trees">
+ <title>
+ Class Trees for {$class_name}
+ </title>
+ <para>
+ {section name=tree loop=$class_tree}
+ {section name=mine loop=$class_tree[tree]} {/section}<itemizedlist>
+ {section name=mine loop=$class_tree[tree]} {/section} <listitem>
+ {section name=mine loop=$class_tree[tree]} {/section} {$class_tree[tree]}
+ {/section}
+ {section name=tree loop=$class_tree}
+ {section name=mine loop=$class_tree[tree]} {/section}</listitem>
+ </itemizedlist>
+ {/section}
+ </para>
+ </refsect2>
+{if $children}
+ <refsect2 id="{$id}.heritage.child-classes">
+ <title>
+ Classes that extend {$class_name}
+ </title>
+ <para>
+ <table>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Class</entry>
+ <entry>Summary</entry>
+ </row>
+ </thead>
+ <tbody>
+{section name=kids loop=$children}
+ <row>
+ <entry>{$children[kids].link}</entry>
+ <entry>{$children[kids].sdesc}</entry>
+ </row>
+{/section}
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </refsect2>
+{/if}
+{if $imethods}
+ <refsect2 id="{$id}.heritage.inherited-methods">
+ <title>
+ {$class_name} Inherited Methods
+ </title>
+{include file="imethods.tpl" ivars=$ivars}
+ </refsect2>
+{/if}
+{if $ivars}
+ <refsect2 id="{$id}.heritage.inherited-vars">
+ <title>
+ {$class_name} Inherited Variables
+ </title>
+{include file="ivars.tpl" ivars=$ivars}
+ </refsect2>
+{/if}
+ </refsect1>
+</refentry>
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
--> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/ivars.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/ivars.tpl
index 4555ac2bf4..3b9eecf98b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/ivars.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/ivars.tpl
@@ -1,26 +1,26 @@
- <para>
-{section name=classes loop=$ivars}
- <table>
- <title>Inherited from {$ivars[classes].parent_class}</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Variable Name</entry>
- <entry>Summary</entry>
- <entry>Default Value</entry>
- </row>
- </thead>
- <tbody>
-{section name=m loop=$ivars[classes].ivars}
- <row>
- <entry>{if $ivars[classes].ivars[m].constructor} Constructor{/if} {$ivars[classes].ivars[m].link}</entry>
- <entry>{$ivars[classes].ivars[m].sdesc|default:"&notdocumented;"}</entry>
- <entry>{$ivars[classes].ivars[m].default|default:"&null;"}</entry>
- </row>
-{/section}
- </tbody>
- </tgroup>
- </table>
-{/section}
- </para>
-
+ <para>
+{section name=classes loop=$ivars}
+ <table>
+ <title>Inherited from {$ivars[classes].parent_class}</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Variable Name</entry>
+ <entry>Summary</entry>
+ <entry>Default Value</entry>
+ </row>
+ </thead>
+ <tbody>
+{section name=m loop=$ivars[classes].ivars}
+ <row>
+ <entry>{if $ivars[classes].ivars[m].constructor} Constructor{/if} {$ivars[classes].ivars[m].link}</entry>
+ <entry>{$ivars[classes].ivars[m].sdesc|default:"&notdocumented;"}</entry>
+ <entry>{$ivars[classes].ivars[m].default|default:"&null;"}</entry>
+ </row>
+{/section}
+ </tbody>
+ </tgroup>
+ </table>
+{/section}
+ </para>
+
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/tutorial.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/tutorial.tpl
index b5e71f0f08..e2cb70c4af 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/tutorial.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Converters/XML/DocBook/templates/peardoc2/templates/tutorial.tpl
@@ -1,21 +1,21 @@
-{$contents}
-<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-default-dtd-file:"../../../../manual.ced"
-sgml-exposed-tags:nil
-sgml-local-catalogs:nil
-sgml-local-ecat-files:nil
-End:
-vim600: syn=xml fen fdm=syntax fdl=2 si
-vim: et tw=78 syn=sgml
-vi: ts=1 sw=1
+{$contents}
+<!-- Generated by phpDocumentor v {$phpdocversion} {$phpdocwebsite} -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../../../../manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
--> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Setup.inc.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Setup.inc.php
index 1e0b1bc727..718a2906e1 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Setup.inc.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Setup.inc.php
@@ -1,872 +1,872 @@
-<?php
-/**
- * This was all in {@link phpdoc.inc}, and now encapsulates the complexity
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2002-2006 Gregory Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @category documentation
- * @package phpDocumentor
- * @author Gregory Beaver <cellog@php.net>
- * @copyright 2002-2006 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- */
-error_reporting(E_ALL);
-/** common settings */
-include_once("phpDocumentor/common.inc.php");
-
-include_once("phpDocumentor/Io.inc");
-include_once("phpDocumentor/Publisher.inc");
-include_once("phpDocumentor/Classes.inc");
-include_once("phpDocumentor/ProceduralPages.inc");
-include_once("phpDocumentor/IntermediateParser.inc");
-include_once("phpDocumentor/WordParser.inc");
-include_once("phpDocumentor/EventStack.inc");
-include_once("phpDocumentor/ParserData.inc");
-include_once("phpDocumentor/InlineTags.inc");
-include_once("phpDocumentor/DocBlockTags.inc");
-include_once("phpDocumentor/DescHTML.inc");
-include_once("phpDocumentor/ParserDocBlock.inc");
-include_once("phpDocumentor/ParserElements.inc");
-include_once("phpDocumentor/Parser.inc");
-include_once("phpDocumentor/phpDocumentorTWordParser.inc");
-include_once("phpDocumentor/phpDocumentorTParser.inc");
-include_once("phpDocumentor/HighlightParser.inc");
-include_once("phpDocumentor/TutorialHighlightParser.inc");
-include_once("phpDocumentor/ParserDescCleanup.inc");
-include_once("phpDocumentor/PackagePageElements.inc");
-include_once("phpDocumentor/XMLpackagePageParser.inc");
-include_once("phpDocumentor/LinkClasses.inc");
-include_once("phpDocumentor/Converter.inc");
-include_once("phpDocumentor/Errors.inc");
-if (isset($_GET))
-{
-/**
- * $interface is either 'web' or is not set at all
- * @global array $interface
- */
- if (isset($_GET['interface'])) $interface = $_GET['interface'];
-/**
- * $_phpDocumentor_setting is either the value from the web interface, or is set up by {@link Io::parseArgv()}
- * @global array $_phpDocumentor_setting
- */
- if (isset($_GET['setting'])) $_phpDocumentor_setting = $_GET['setting'];
-}
-
-/**
- * default package name, set using -dn --defaultpackagename
- * @global string $GLOBALS['phpDocumentor_DefaultPackageName']
- * @name $phpDocumentor_DefaultPackageName
- */
-$GLOBALS['phpDocumentor_DefaultPackageName'] = 'default';
-
-/**
- * default package name, set using -dn --defaultcategoryname
- * @global string $GLOBALS['phpDocumentor_DefaultCategoryName']
- * @name $phpDocumentor_DefaultCategoryName
- */
-$GLOBALS['phpDocumentor_DefaultCategoryName'] = 'default';
-
-/**
- * @package phpDocumentor
- */
-class phpDocumentor_setup
-{
- /**
- * The main parser
- * @var Parser|phpDocumentorTParser
- */
- var $parse;
- /**
- * Used to parse command-line options
- * @var Io
- */
- var $setup;
- /**
- * Used to organize output from the Parser before Conversion
- * @var phpDocumentor_IntermediateParser
- */
- var $render = false;
- /**
- * Packages to create documentation for
- * @var string
- */
- var $packages = false;
- /**
- * contents of --filename commandline
- * @tutorial phpDocumentor.howto.pkg#using.command-line.filename
- * @var string
- */
- var $files = '';
- /**
- * contents of --directory commandline
- * @tutorial phpDocumentor.howto.pkg#using.command-line.directory
- * @var string
- */
- var $dirs = '';
- /**
- * contents of --hidden commandline
- * @tutorial phpDocumentor.howto.pkg#using.command-line.hidden
- * @var boolean
- */
- var $hidden = false;
- /**
- * time that parsing was started, used for informative timing of output
- * @access private
- */
- var $parse_start_time;
- /**
- * contents of --ignore commandline
- * @tutorial phpDocumentor.howto.pkg#using.command-line.ignore
- * @var string
- */
- var $ignore_files = array();
- /**
- * Checks PHP version, makes sure it is 4.2.0+, and chooses the
- * phpDocumentorTParser if version is 4.3.0+
- * @uses parseIni()
- */
- function phpDocumentor_setup()
- {
- global $_phpDocumentor_cvsphpfile_exts, $_phpDocumentor_setting;
- if (!function_exists('is_a'))
- {
- print "phpDocumentor requires PHP version 4.2.0 or greater to function";
- exit;
- }
-
- $this->setup = new Io;
- if (!isset($interface) && !isset($_GET['interface']) && !isset($_phpDocumentor_setting))
- {
- // Parse the argv settings
- $_phpDocumentor_setting = $this->setup->parseArgv();
- }
- if (isset($_phpDocumentor_setting['useconfig']) &&
- !empty($_phpDocumentor_setting['useconfig'])) {
- $this->readConfigFile($_phpDocumentor_setting['useconfig']);
- }
-
- // set runtime to a large value since this can take quite a while
- // we can only set_time_limit when not in safe_mode bug #912064
- if (!ini_get('safe_mode'))
- {
- set_time_limit(0); // unlimited runtime
- } else
- {
- phpDocumentor_out("time_limit cannot be set since your in safe_mode, please edit time_limit in your php.ini to allow enough time for phpDocumentor to run");
- }
- $x = str_replace('M', '', ini_get('memory_limit'));
- if ($x < 256) {
- ini_set("memory_limit","256M");
- }
-
- $phpver = phpversion();
- $phpdocver = PHPDOCUMENTOR_VER;
- if (isset($_GET['interface'])) {
- $phpver = "<b>$phpver</b>";
- $phpdocver = "<b>$phpdocver</b>";
- }
- phpDocumentor_out("PHP Version $phpver\n");
- phpDocumentor_out("phpDocumentor version $phpdocver\n\n");
-
- $this->parseIni();
-
- if (tokenizer_ext)
- {
- phpDocumentor_out("using tokenizer Parser\n");
- $this->parse = new phpDocumentorTParser;
- } else
- {
- phpDocumentor_out("using default (slower) Parser - get PHP 4.3.0+
-and load the tokenizer extension for faster parsing (your version is ".phpversion()."\n");
- $this->parse = new Parser;
- }
- }
-
- /**
- * Get phpDocumentor settings from a user configuration file
- * @param string user configuration file
- */
- function readConfigFile($file)
- {
- global $_phpDocumentor_setting, $_phpDocumentor_options;
- // security
- $file = str_replace(array('..','.ini','\\'),array('','','/'),$file);
- if (is_file($file . '.ini'))
- {
- $_phpDocumentor_setting = phpDocumentor_parse_ini_file($file.'.ini');
- } else
- {
- if ('@DATA-DIR@' != '@'.'DATA-DIR@')
- {
- $configdir = str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'user' . PATH_DELIMITER;
- } else {
- $configdir = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'user' . PATH_DELIMITER;
- }
- if (isset($_phpDocumentor_options['userdir'])) $configdir = $_phpDocumentor_options['userdir'];
- if (substr($configdir,-1) != '/')
- {
- $configdir .= '/';
- }
- $_phpDocumentor_setting = phpDocumentor_parse_ini_file( $configdir . $file . '.ini');
- if (empty($_phpDocumentor_setting['defaultpackagename']))
- {
- $_phpDocumentor_setting['defaultpackagename'] = 'default';
- }
- }
- // don't want a loop condition!
- unset($_phpDocumentor_setting['useconfig']);
- }
-
- /**
- * Get phpDocumentor settings from command-line or web interface
- */
- function readCommandLineSettings()
- {
- global $_phpDocumentor_setting,$interface,$_phpDocumentor_RIC_files;
- // subscribe $render class to $parse class events
- if (!isset($_phpDocumentor_setting['junk'])) $_phpDocumentor_setting['junk'] = '';
- if (!isset($_phpDocumentor_setting['title'])) $_phpDocumentor_setting['title'] = 'Generated Documentation';
- $temp_title = $_phpDocumentor_setting['title'];
- $this->render = new phpDocumentor_IntermediateParser($temp_title);
- if (isset($_phpDocumentor_setting['help']) || $_phpDocumentor_setting['junk'] == "-h" || $_phpDocumentor_setting['junk'] == "--help")
- {
- echo $this->setup->displayHelpMsg();
- die();
- }
-
- // set to parse hidden files
- $this->hidden = (isset($_phpDocumentor_setting['hidden'])) ? decideOnOrOff($_phpDocumentor_setting['hidden']) : false;
-
- // set to parse elements marked private with @access private
- $this->render->setParsePrivate((isset($_phpDocumentor_setting['parseprivate'])) ? decideOnOrOff($_phpDocumentor_setting['parseprivate']) : false);
-
- if (isset($_phpDocumentor_setting['ignoretags']))
- {
- $ignoretags = explode(',', $_phpDocumentor_setting['ignoretags']);
- $ignoretags = array_map('trim', $ignoretags);
- $tags = array();
- foreach($ignoretags as $tag)
- {
- if (!in_array($tag,array('@global', '@access', '@package', '@ignore', '@name', '@param', '@return', '@staticvar', '@var')))
- $tags[] = $tag;
- }
- $_phpDocumentor_setting['ignoretags'] = $tags;
- }
-
- if (isset($_phpDocumentor_setting['readmeinstallchangelog']))
- {
- $_phpDocumentor_setting['readmeinstallchangelog'] = explode(',',str_replace(' ','',$_phpDocumentor_setting['readmeinstallchangelog']));
- $rics = array();
- foreach($_phpDocumentor_setting['readmeinstallchangelog'] as $ric)
- {
- $rics[] = strtoupper(trim($ric));
- }
- $_phpDocumentor_RIC_files = $rics;
- }
-
- if (isset($_phpDocumentor_setting['javadocdesc']) && $_phpDocumentor_setting['javadocdesc'] == 'on')
- {
- $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock';
- }
- if (tokenizer_ext)
- {
- if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on')
- {
- $_phpDocumentor_setting['sourcecode'] = true;
- } else
- {
- $_phpDocumentor_setting['sourcecode'] = false;
- }
- } else
- {
- if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on')
- {
- addWarning(PDERROR_SOURCECODE_IGNORED);
- }
- $_phpDocumentor_setting['sourcecode'] = false;
- }
- if (isset($_phpDocumentor_setting['converterparams']))
- {
- $_phpDocumentor_setting['converterparams'] = explode($_phpDocumentor_setting['converterparams']);
- foreach($_phpDocumentor_setting['converterparams'] as $i => $p)
- {
- $_phpDocumentor_setting['converterparams'][$i] = trim($p);
- }
- }
- if (isset($_phpDocumentor_setting['customtags']) && !empty($_phpDocumentor_setting['customtags']))
- {
- $c = explode(',',$_phpDocumentor_setting['customtags']);
- for($i=0;$i<count($c); $i++)
- {
- $GLOBALS['_phpDocumentor_tags_allowed'][] = trim($c[$i]);
- }
- }
- if (isset($_phpDocumentor_setting['pear']))
- {
- if ($_phpDocumentor_setting['pear'] === 'off') $_phpDocumentor_setting['pear'] = false;
- if ($_phpDocumentor_setting['pear'] === 'on') $_phpDocumentor_setting['pear'] = true;
- }
- if (!isset($_phpDocumentor_setting['pear'])) $_phpDocumentor_setting['pear'] = false;
- // set to change the default package name from "default" to whatever you want
- if (isset($_phpDocumentor_setting['defaultpackagename']))
- {
- $GLOBALS['phpDocumentor_DefaultPackageName'] = trim($_phpDocumentor_setting['defaultpackagename']);
- }
- // set to change the default category name from "default" to whatever you want
- if (isset($_phpDocumentor_setting['defaultcategoryname']))
- {
- $GLOBALS['phpDocumentor_DefaultCategoryName'] = trim($_phpDocumentor_setting['defaultcategoryname']);
- }
-
- // set the mode (quiet or verbose)
- $this->render->setQuietMode((isset($_phpDocumentor_setting['quiet'])) ? decideOnOrOff($_phpDocumentor_setting['quiet']) : false);
-
- // Setup the different classes
- if (isset($_phpDocumentor_setting['templatebase']))
- {
- $this->render->setTemplateBase(trim($_phpDocumentor_setting['templatebase']));
- }
- if (isset($_phpDocumentor_setting['target']) && !empty($_phpDocumentor_setting['target']))
- {
- $this->render->setTargetDir(trim($_phpDocumentor_setting['target']));
- }
- else
- {
- echo "a target directory must be specified\n try phpdoc -h\n";
- die();
- }
- if (!empty($_phpDocumentor_setting['packageoutput']))
- {
- $this->packages = explode(",",trim($_phpDocumentor_setting['packageoutput']));
- foreach($this->packages as $p => $v)
- {
- $this->packages[$p] = trim($v);
- }
- }
- if (!empty($_phpDocumentor_setting['filename'])) {
- $this->files = trim($_phpDocumentor_setting['filename']);
- }
- if (!empty($_phpDocumentor_setting['directory'])) {
- $this->dirs = trim($_phpDocumentor_setting['directory']);
- }
- }
-
- function checkIgnoreTag($tagname, $inline = false)
- {
- global $_phpDocumentor_setting;
- $tagname = '@'.$tagname;
- if (!isset($_phpDocumentor_setting['ignoretags'])) return false;
- if ($inline) $tagname = '{'.$tagname.'}';
- return in_array($tagname, $_phpDocumentor_setting['ignoretags']);
- }
-
- function setJavadocDesc()
- {
- $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock';
- }
-
- function setParsePrivate($flag = true)
- {
- $this->render->setParsePrivate($flag);
- }
-
- function setQuietMode($flag = true)
- {
- $this->render->setQuietMode($flag);
- }
-
- function setTargetDir($target)
- {
- $this->render->setTargetDir($target);
- }
-
- function setTemplateBase($dir)
- {
- $this->render->setTemplateBase($dir);
- }
-
- function setPackageOutput($po)
- {
- $this->packages = explode(",",$po);
- array_map('trim', $this->packages);
- }
-
- function setTitle($ti)
- {
- $this->render = new phpDocumentor_IntermediateParser($ti);
- }
-
- function setFilesToParse($files)
- {
- $this->files = $files;
- }
-
- function setDirectoriesToParse($dirs)
- {
- $this->dirs = $dirs;
- }
-
- function parseHiddenFiles($flag = true)
- {
- $this->hidden = $flag;
- }
-
- function setIgnore($ig)
- {
- if (strstr($ig,","))
- {
- $this->ignore_files = explode(",",$ig);
- } else {
- if (!empty($ig))
- $this->ignore_files = array($ig);
- }
- $this->ignore_files = array_map('trim', $this->ignore_files);
- }
-
- function createDocs($title = false)
- {
- $this->parse_start_time = time();
- global $_phpDocumentor_setting;
- if (!$this->render)
- {
- $this->render = new phpDocumentor_IntermediateParser($title);
- }
- // setup ignore list
- $this->ignore_files =array();
- if(isset($_phpDocumentor_setting['ignore']))
- {
- $this->setIgnore($_phpDocumentor_setting['ignore']);
- }
- $this->parse->subscribe("*",$this->render);
- // parse the directory
- if (!empty($this->files))
- {
- $files = explode(",",$this->files);
- foreach($files as $file)
- {
- $file = trim($file);
- $test = $this->setup->getAllFiles($file);
- if ($test)
- {
- foreach($test as $file)
- {
- $file = trim($file);
- $dir = realpath(dirname($file));
- $dir = strtr($dir, "\\", "/");
- $dir = str_replace('//','/',$dir);
- // strip trailing directory seperator
- if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
- {
- $dir = substr($dir,0,-1);
- }
- $file = strtr(realpath($file), "\\", "/");
- $file = str_replace('//','/',$file);
-
- if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files))
- {
- $filelist[] = str_replace('\\','/',$file);
- } else {
- phpDocumentor_out("File $file Ignored\n");
- flush();
- }
- }
- } else
- {
- $dir = dirname(realpath($file));
- $dir = strtr($dir, "\\", "/");
- $dir = str_replace('//','/',$dir);
- // strip trailing directory seperator
- if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
- {
- $dir = substr($dir,0,-1);
- }
- $base = count(explode("/",$dir));
- $file = strtr(realpath($file), "\\", "/");
- $file = str_replace('//','/',$file);
- flush();
-
- if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files))
- {
- $filelist[] = str_replace('\\','/',$file);
- } else {
- phpDocumentor_out("File $file Ignored\n");
- flush();
- }
- }
- }
- }
- if (!empty($this->dirs))
- {
- $dirs = explode(",",$this->dirs);
- foreach($dirs as $dir)
- {
- $olddir = $dir;
- $dir = realpath($dir);
- if (!$dir) {
- phpDocumentor_out('ERROR: "' . $olddir . '" does not exist, skipping');
- continue;
- }
- $dir = trim($dir);
- $dir = strtr($dir, "\\", "/");
- $dir = str_replace('//','/',$dir);
- // strip trailing directory seperator
- if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
- {
- $dir = substr($dir,0,-1);
- }
- $files = $this->setup->dirList($dir,$this->hidden);
- if (is_array($files))
- {
- foreach($files as $file)
- {
- // Make sure the file isn't a hidden file
- $file = strtr($file, "\\", "/");
- if (substr(basename($file),0,1) != ".")
- {
- if (!$this->setup->checkIgnore(basename($file),str_replace('\\','/',dirname($file)),$this->ignore_files))
- {
- $filelist[] = str_replace('\\','/',$file);
- } else {
- phpDocumentor_out("File $file Ignored\n");
- flush();
- }
- }
- }
- }
- }
- }
- if (isset($filelist))
- {
- if (PHPDOCUMENTOR_WINDOWS)
- {
- // case insensitive array_unique
- usort($filelist,'strnatcasecmp');
- reset($filelist);
-
- $newarray = array();
- $i = 0;
-
- $element = current($filelist);
- for ($n=0;$n<sizeof($filelist);$n++)
- {
- if (strtolower(next($filelist)) != strtolower($element))
- {
- $newarray[$i] = $element;
- $element = current($filelist);
- $i++;
- }
- }
- $filelist = $newarray;
- } else $filelist = array_unique($filelist);
-
- $base = count(explode("/",$source_base = $this->setup->getBase($filelist)));
- define("PHPDOCUMENTOR_BASE",$source_base);
- list($filelist,$ric) = $this->setup->getReadmeInstallChangelog($source_base, $filelist);
- phpDocumentor_out("\n\nGrabbing README/INSTALL/CHANGELOG\n");
- flush();
- foreach($ric as $file)
- {
- phpDocumentor_out(basename($file).'...');
- flush();
- $fp = fopen($file,'r');
- $contents = fread($fp,filesize($file));
- $this->render->HandleEvent(PHPDOCUMENTOR_EVENT_README_INSTALL_CHANGELOG, array(basename($file),$contents));
- fclose($fp);
- }
- phpDocumentor_out("\ndone\n");
- flush();
- list($filelist,$tutorials) = $this->setup->getTutorials($filelist);
- phpDocumentor_out("\n\nTutorial/Extended Documentation Parsing Stage\n\n");
- flush();
- if (count($tutorials))
- {
- $tuteparser = new XMLPackagePageParser;
- $tuteparser->subscribe('*',$this->render);
- foreach($tutorials as $tutorial)
- {
- switch($tutorial['tutetype'])
- {
- case 'pkg' :
- case 'cls' :
- case 'proc' :
- switch($tutorial['tutetype'])
- {
- case 'pkg' :
- $ptext = 'Package-level Docs ';
- if (!empty($tutorial['subpackage']))
- $ptext = 'Sub-Package Docs ';
- break;
- case 'cls' :
- $ptext = 'Class-level Docs ';
- break;
- case 'proc' :
- $ptext = 'Procedural-level Docs ';
- break;
- }
- $fp = @fopen($tutorial['path'],"r");
- if ($fp)
- {
- $ret = fread($fp,filesize($tutorial['path']));
- // fix 1151650
- if (stristr($ret, "utf-8") !== "")
- {
- $ret = utf8_decode($ret);
- }
- fclose($fp);
- unset($fp);
- phpDocumentor_out('Parsing '.$ptext.$tutorial['path'].'...');
- flush();
- $tuteparser->parse($ret,$tutorial);
- phpDocumentor_out("done\n");
- flush();
- } else
- {
- phpDocumentor_out('Error '.$ptext.$tutorial['path'].' doesn\'t exist'."\n");
- flush();
- }
- default :
- break;
- }
- }
- }
- phpDocumentor_out("done\n");
- flush();
- phpDocumentor_out("\n\nGeneral Parsing Stage\n\n");
- flush();
- foreach($filelist as $file)
- {
- phpDocumentor_out("Reading file $file");
- flush();
- $this->parse->parse($a = $this->setup->readPhpFile($file, $this->render->quietMode),$file,$base,$this->packages);
-
- }
- $b = (time() - $this->parse_start_time);
- phpDocumentor_out("done\n");
- flush();
- // render output
- phpDocumentor_out("\nConverting From Abstract Parsed Data\n");
- flush();
- $this->render->output();
- $a = (time() - $this->parse_start_time);
- $c = ($a - $b);
- phpDocumentor_out("\nParsing time: $b seconds\n");
- phpDocumentor_out("\nConversion time: $c seconds\n");
- phpDocumentor_out("\nTotal Documentation Time: $a seconds\n");
- phpDocumentor_out("done\n");
- flush();
- } else
- {
- print "ERROR: nothing parsed";
- exit;
- }
- }
- /**
- * Parse configuration file phpDocumentor.ini
- */
- function parseIni()
- {
- phpDocumentor_out("Parsing configuration file phpDocumentor.ini...");
- flush();
- if ('@DATA-DIR@' != '@'.'DATA-DIR@')
- {
- $options = phpDocumentor_parse_ini_file(str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'phpDocumentor.ini',true);
- } else {
- $options = phpDocumentor_parse_ini_file(str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'phpDocumentor.ini',true);
- }
-
- if (!$options)
- {
- print "ERROR: cannot open phpDocumentor.ini in directory " . $GLOBALS['_phpDocumentor_install_dir']."\n";
- print "-Is phpdoc in either the path or include_path in your php.ini file?";
- exit;
- }
-
- foreach($options as $var => $values)
- {
- if ($var != 'DEBUG')
- {
-// phpDocumentor_out("\n$var");
- if ($var != '_phpDocumentor_setting' && $var != '_phpDocumentor_options' && $var != '_phpDocumentor_install_dir' ) $values = array_values($values);
-// fancy_debug("\n$var",$values);
- $GLOBALS[$var] = $values;
- }
- }
- phpDocumentor_out("\ndone\n");
- flush();
- /** Debug Constant */
- if (!defined('PHPDOCUMENTOR_DEBUG')) define("PHPDOCUMENTOR_DEBUG",$options['DEBUG']['PHPDOCUMENTOR_DEBUG']);
- if (!defined('PHPDOCUMENTOR_KILL_WHITESPACE')) define("PHPDOCUMENTOR_KILL_WHITESPACE",$options['DEBUG']['PHPDOCUMENTOR_KILL_WHITESPACE']);
- $GLOBALS['_phpDocumentor_cvsphpfile_exts'] = $GLOBALS['_phpDocumentor_phpfile_exts'];
- foreach($GLOBALS['_phpDocumentor_cvsphpfile_exts'] as $key => $val)
- {
- $GLOBALS['_phpDocumentor_cvsphpfile_exts'][$key] = "$val,v";
- }
- // none of this stuff is used anymore
- if (isset($GLOBALS['_phpDocumentor_html_allowed']))
- {
- $___htmltemp = array_flip($GLOBALS['_phpDocumentor_html_allowed']);
- $___html1 = array();
- foreach($___htmltemp as $tag => $trans)
- {
- $___html1['<'.$tag.'>'] = htmlentities('<'.$tag.'>');
- $___html1['</'.$tag.'>'] = htmlentities('</'.$tag.'>');
- }
- $GLOBALS['phpDocumentor___html'] = array_flip($___html1);
- }
- }
-
-
- function cleanConverterNamePiece($name, $extra_characters_to_allow = '')
- {
- $name = str_replace("\\", "/", $name);
- // security: ensure no opportunity exists to use "../.." pathing in this value
- $name = preg_replace('/[^a-zA-Z0-9' . $extra_characters_to_allow . '_]/', "", $name);
-
- // absolutely positively do NOT allow two consecutive dots ".."
- if (strpos($name, '..') > -1) $name = false;
- return $name;
- }
-
- function setupConverters($output = false)
- {
- global $_phpDocumentor_setting;
- if ($output)
- {
- $_phpDocumentor_setting['output'] = $output;
- }
- if (isset($_phpDocumentor_setting['output']) && !empty($_phpDocumentor_setting['output']))
- {
- $c = explode(',',$_phpDocumentor_setting['output']);
- for($i=0; $i< count($c); $i++)
- {
- $c[$i] = explode(':',$c[$i]);
- $a = $c[$i][0];
- if (isset($c[$i][0]))
- {
- $a = $this->cleanConverterNamePiece($c[$i][0]);
- }
- else
- {
- $a = false;
- }
- if (isset($c[$i][1]))
- {
- $b = $this->cleanConverterNamePiece($c[$i][1], '\/'); // must allow "/" due to options like "DocBook/peardoc2"
- }
- else
- {
- $b = false;
- }
- if (isset($c[$i][2]))
- {
- /**
- * must allow "." due to options like "phpdoc.de"
- * must allow "/" due to options like "DOM/default"
- */
- $d = $this->cleanConverterNamePiece($c[$i][2], '.\/');
- if (substr($d,-1) != "/")
- {
- $d .= "/";
- }
- else
- {
- $d = 'default/';
- }
- }
- if (strtoupper(trim($a)) == 'HTML' && (trim($b) == 'default'))
- {
- phpDocumentor_out("WARNING: HTMLdefaultConverter is deprecated, using HTMLframesConverter.\n");
- phpDocumentor_out("WARNING: template output is identical, HTMLframes is more flexible.\n");
- phpDocumentor_out("WARNING: please adjust your usage\n");
- flush();
- $b = 'frames'; // change default to frames.
- }
- $this->render->addConverter(strtoupper(trim($a)),trim($b),trim($d));
- }
- } else
- {
- $this->render->addConverter('HTML','frames','default/');
- }
- if (empty($this->render->converters)) addErrorDie(PDERROR_NO_CONVERTERS);
- }
-}
-
-/**
- * Fuzzy logic to interpret the boolean args' intent
- * @param string the command-line option to analyze
- * @return boolean our best guess of the value's boolean intent
- */
-function decideOnOrOff($value_to_guess = 'NO VALUE WAS PASSED')
-{
- $these_probably_mean_yes = array(
- '', // "--hidden" with no value
- 'on', // "--hidden on"
- 'y', 'yes', // "--hidden y"
- 'true', // "--hidden true"
- '1' // "--hidden 1"
- );
- $best_guess = false; // default to "false", "off", "no", "take a hike"
-
- if (in_array(strtolower(trim($value_to_guess)), $these_probably_mean_yes))
- {
- $best_guess = true;
- }
- return $best_guess;
-}
-
-/**
- * Print parse information if quiet setting is off
- */
-function phpDocumentor_out($string)
-{
- global $_phpDocumentor_setting;
- if ((isset($_phpDocumentor_setting['quiet'])) ? !decideOnOrOff($_phpDocumentor_setting['quiet']) : true)
- {
- print $string;
- }
-
-}
-
-/**
- * Crash in case of known, dangerous bug condition
- *
- * Checks the PHP version that is executing PhpDocumentor,
- * in case a known PHP/PEAR bug condition could be triggered
- * by the PhpDocumentor execution.
- * @param string $php_version the PHP version that contains the bug
- * @param string $php_bug_number the PHP bug number (if any)
- * @param string $pear_bug_number the PEAR bug number (if any)
- */
-function checkForBugCondition($php_version, $php_bug_number = 'none', $pear_bug_number = 'none')
-{
- if (version_compare(phpversion(), $php_version) == 0)
- {
- addErrorDie(PDERROR_DANGEROUS_PHP_BUG_EXISTS, $php_version, $php_bug_number, $pear_bug_number);
- }
-}
-?>
+<?php
+/**
+ * This was all in {@link phpdoc.inc}, and now encapsulates the complexity
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2002-2006 Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @category documentation
+ * @package phpDocumentor
+ * @author Gregory Beaver <cellog@php.net>
+ * @copyright 2002-2006 Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @since 1.2
+ */
+error_reporting(E_ALL);
+/** common settings */
+include_once("phpDocumentor/common.inc.php");
+
+include_once("phpDocumentor/Io.inc");
+include_once("phpDocumentor/Publisher.inc");
+include_once("phpDocumentor/Classes.inc");
+include_once("phpDocumentor/ProceduralPages.inc");
+include_once("phpDocumentor/IntermediateParser.inc");
+include_once("phpDocumentor/WordParser.inc");
+include_once("phpDocumentor/EventStack.inc");
+include_once("phpDocumentor/ParserData.inc");
+include_once("phpDocumentor/InlineTags.inc");
+include_once("phpDocumentor/DocBlockTags.inc");
+include_once("phpDocumentor/DescHTML.inc");
+include_once("phpDocumentor/ParserDocBlock.inc");
+include_once("phpDocumentor/ParserElements.inc");
+include_once("phpDocumentor/Parser.inc");
+include_once("phpDocumentor/phpDocumentorTWordParser.inc");
+include_once("phpDocumentor/phpDocumentorTParser.inc");
+include_once("phpDocumentor/HighlightParser.inc");
+include_once("phpDocumentor/TutorialHighlightParser.inc");
+include_once("phpDocumentor/ParserDescCleanup.inc");
+include_once("phpDocumentor/PackagePageElements.inc");
+include_once("phpDocumentor/XMLpackagePageParser.inc");
+include_once("phpDocumentor/LinkClasses.inc");
+include_once("phpDocumentor/Converter.inc");
+include_once("phpDocumentor/Errors.inc");
+if (isset($_GET))
+{
+/**
+ * $interface is either 'web' or is not set at all
+ * @global array $interface
+ */
+ if (isset($_GET['interface'])) $interface = $_GET['interface'];
+/**
+ * $_phpDocumentor_setting is either the value from the web interface, or is set up by {@link Io::parseArgv()}
+ * @global array $_phpDocumentor_setting
+ */
+ if (isset($_GET['setting'])) $_phpDocumentor_setting = $_GET['setting'];
+}
+
+/**
+ * default package name, set using -dn --defaultpackagename
+ * @global string $GLOBALS['phpDocumentor_DefaultPackageName']
+ * @name $phpDocumentor_DefaultPackageName
+ */
+$GLOBALS['phpDocumentor_DefaultPackageName'] = 'default';
+
+/**
+ * default package name, set using -dn --defaultcategoryname
+ * @global string $GLOBALS['phpDocumentor_DefaultCategoryName']
+ * @name $phpDocumentor_DefaultCategoryName
+ */
+$GLOBALS['phpDocumentor_DefaultCategoryName'] = 'default';
+
+/**
+ * @package phpDocumentor
+ */
+class phpDocumentor_setup
+{
+ /**
+ * The main parser
+ * @var Parser|phpDocumentorTParser
+ */
+ var $parse;
+ /**
+ * Used to parse command-line options
+ * @var Io
+ */
+ var $setup;
+ /**
+ * Used to organize output from the Parser before Conversion
+ * @var phpDocumentor_IntermediateParser
+ */
+ var $render = false;
+ /**
+ * Packages to create documentation for
+ * @var string
+ */
+ var $packages = false;
+ /**
+ * contents of --filename commandline
+ * @tutorial phpDocumentor.howto.pkg#using.command-line.filename
+ * @var string
+ */
+ var $files = '';
+ /**
+ * contents of --directory commandline
+ * @tutorial phpDocumentor.howto.pkg#using.command-line.directory
+ * @var string
+ */
+ var $dirs = '';
+ /**
+ * contents of --hidden commandline
+ * @tutorial phpDocumentor.howto.pkg#using.command-line.hidden
+ * @var boolean
+ */
+ var $hidden = false;
+ /**
+ * time that parsing was started, used for informative timing of output
+ * @access private
+ */
+ var $parse_start_time;
+ /**
+ * contents of --ignore commandline
+ * @tutorial phpDocumentor.howto.pkg#using.command-line.ignore
+ * @var string
+ */
+ var $ignore_files = array();
+ /**
+ * Checks PHP version, makes sure it is 4.2.0+, and chooses the
+ * phpDocumentorTParser if version is 4.3.0+
+ * @uses parseIni()
+ */
+ function phpDocumentor_setup()
+ {
+ global $_phpDocumentor_cvsphpfile_exts, $_phpDocumentor_setting;
+ if (!function_exists('is_a'))
+ {
+ print "phpDocumentor requires PHP version 4.2.0 or greater to function";
+ exit;
+ }
+
+ $this->setup = new Io;
+ if (!isset($interface) && !isset($_GET['interface']) && !isset($_phpDocumentor_setting))
+ {
+ // Parse the argv settings
+ $_phpDocumentor_setting = $this->setup->parseArgv();
+ }
+ if (isset($_phpDocumentor_setting['useconfig']) &&
+ !empty($_phpDocumentor_setting['useconfig'])) {
+ $this->readConfigFile($_phpDocumentor_setting['useconfig']);
+ }
+
+ // set runtime to a large value since this can take quite a while
+ // we can only set_time_limit when not in safe_mode bug #912064
+ if (!ini_get('safe_mode'))
+ {
+ set_time_limit(0); // unlimited runtime
+ } else
+ {
+ phpDocumentor_out("time_limit cannot be set since your in safe_mode, please edit time_limit in your php.ini to allow enough time for phpDocumentor to run");
+ }
+ $x = str_replace('M', '', ini_get('memory_limit'));
+ if ($x < 256) {
+ ini_set("memory_limit","256M");
+ }
+
+ $phpver = phpversion();
+ $phpdocver = PHPDOCUMENTOR_VER;
+ if (isset($_GET['interface'])) {
+ $phpver = "<b>$phpver</b>";
+ $phpdocver = "<b>$phpdocver</b>";
+ }
+ phpDocumentor_out("PHP Version $phpver\n");
+ phpDocumentor_out("phpDocumentor version $phpdocver\n\n");
+
+ $this->parseIni();
+
+ if (tokenizer_ext)
+ {
+ phpDocumentor_out("using tokenizer Parser\n");
+ $this->parse = new phpDocumentorTParser;
+ } else
+ {
+ phpDocumentor_out("using default (slower) Parser - get PHP 4.3.0+
+and load the tokenizer extension for faster parsing (your version is ".phpversion()."\n");
+ $this->parse = new Parser;
+ }
+ }
+
+ /**
+ * Get phpDocumentor settings from a user configuration file
+ * @param string user configuration file
+ */
+ function readConfigFile($file)
+ {
+ global $_phpDocumentor_setting, $_phpDocumentor_options;
+ // security
+ $file = str_replace(array('..','.ini','\\'),array('','','/'),$file);
+ if (is_file($file . '.ini'))
+ {
+ $_phpDocumentor_setting = phpDocumentor_parse_ini_file($file.'.ini');
+ } else
+ {
+ if ('@DATA-DIR@' != '@'.'DATA-DIR@')
+ {
+ $configdir = str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'user' . PATH_DELIMITER;
+ } else {
+ $configdir = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'user' . PATH_DELIMITER;
+ }
+ if (isset($_phpDocumentor_options['userdir'])) $configdir = $_phpDocumentor_options['userdir'];
+ if (substr($configdir,-1) != '/')
+ {
+ $configdir .= '/';
+ }
+ $_phpDocumentor_setting = phpDocumentor_parse_ini_file( $configdir . $file . '.ini');
+ if (empty($_phpDocumentor_setting['defaultpackagename']))
+ {
+ $_phpDocumentor_setting['defaultpackagename'] = 'default';
+ }
+ }
+ // don't want a loop condition!
+ unset($_phpDocumentor_setting['useconfig']);
+ }
+
+ /**
+ * Get phpDocumentor settings from command-line or web interface
+ */
+ function readCommandLineSettings()
+ {
+ global $_phpDocumentor_setting,$interface,$_phpDocumentor_RIC_files;
+ // subscribe $render class to $parse class events
+ if (!isset($_phpDocumentor_setting['junk'])) $_phpDocumentor_setting['junk'] = '';
+ if (!isset($_phpDocumentor_setting['title'])) $_phpDocumentor_setting['title'] = 'Generated Documentation';
+ $temp_title = $_phpDocumentor_setting['title'];
+ $this->render = new phpDocumentor_IntermediateParser($temp_title);
+ if (isset($_phpDocumentor_setting['help']) || $_phpDocumentor_setting['junk'] == "-h" || $_phpDocumentor_setting['junk'] == "--help")
+ {
+ echo $this->setup->displayHelpMsg();
+ die();
+ }
+
+ // set to parse hidden files
+ $this->hidden = (isset($_phpDocumentor_setting['hidden'])) ? decideOnOrOff($_phpDocumentor_setting['hidden']) : false;
+
+ // set to parse elements marked private with @access private
+ $this->render->setParsePrivate((isset($_phpDocumentor_setting['parseprivate'])) ? decideOnOrOff($_phpDocumentor_setting['parseprivate']) : false);
+
+ if (isset($_phpDocumentor_setting['ignoretags']))
+ {
+ $ignoretags = explode(',', $_phpDocumentor_setting['ignoretags']);
+ $ignoretags = array_map('trim', $ignoretags);
+ $tags = array();
+ foreach($ignoretags as $tag)
+ {
+ if (!in_array($tag,array('@global', '@access', '@package', '@ignore', '@name', '@param', '@return', '@staticvar', '@var')))
+ $tags[] = $tag;
+ }
+ $_phpDocumentor_setting['ignoretags'] = $tags;
+ }
+
+ if (isset($_phpDocumentor_setting['readmeinstallchangelog']))
+ {
+ $_phpDocumentor_setting['readmeinstallchangelog'] = explode(',',str_replace(' ','',$_phpDocumentor_setting['readmeinstallchangelog']));
+ $rics = array();
+ foreach($_phpDocumentor_setting['readmeinstallchangelog'] as $ric)
+ {
+ $rics[] = strtoupper(trim($ric));
+ }
+ $_phpDocumentor_RIC_files = $rics;
+ }
+
+ if (isset($_phpDocumentor_setting['javadocdesc']) && $_phpDocumentor_setting['javadocdesc'] == 'on')
+ {
+ $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock';
+ }
+ if (tokenizer_ext)
+ {
+ if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on')
+ {
+ $_phpDocumentor_setting['sourcecode'] = true;
+ } else
+ {
+ $_phpDocumentor_setting['sourcecode'] = false;
+ }
+ } else
+ {
+ if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on')
+ {
+ addWarning(PDERROR_SOURCECODE_IGNORED);
+ }
+ $_phpDocumentor_setting['sourcecode'] = false;
+ }
+ if (isset($_phpDocumentor_setting['converterparams']))
+ {
+ $_phpDocumentor_setting['converterparams'] = explode($_phpDocumentor_setting['converterparams']);
+ foreach($_phpDocumentor_setting['converterparams'] as $i => $p)
+ {
+ $_phpDocumentor_setting['converterparams'][$i] = trim($p);
+ }
+ }
+ if (isset($_phpDocumentor_setting['customtags']) && !empty($_phpDocumentor_setting['customtags']))
+ {
+ $c = explode(',',$_phpDocumentor_setting['customtags']);
+ for($i=0;$i<count($c); $i++)
+ {
+ $GLOBALS['_phpDocumentor_tags_allowed'][] = trim($c[$i]);
+ }
+ }
+ if (isset($_phpDocumentor_setting['pear']))
+ {
+ if ($_phpDocumentor_setting['pear'] === 'off') $_phpDocumentor_setting['pear'] = false;
+ if ($_phpDocumentor_setting['pear'] === 'on') $_phpDocumentor_setting['pear'] = true;
+ }
+ if (!isset($_phpDocumentor_setting['pear'])) $_phpDocumentor_setting['pear'] = false;
+ // set to change the default package name from "default" to whatever you want
+ if (isset($_phpDocumentor_setting['defaultpackagename']))
+ {
+ $GLOBALS['phpDocumentor_DefaultPackageName'] = trim($_phpDocumentor_setting['defaultpackagename']);
+ }
+ // set to change the default category name from "default" to whatever you want
+ if (isset($_phpDocumentor_setting['defaultcategoryname']))
+ {
+ $GLOBALS['phpDocumentor_DefaultCategoryName'] = trim($_phpDocumentor_setting['defaultcategoryname']);
+ }
+
+ // set the mode (quiet or verbose)
+ $this->render->setQuietMode((isset($_phpDocumentor_setting['quiet'])) ? decideOnOrOff($_phpDocumentor_setting['quiet']) : false);
+
+ // Setup the different classes
+ if (isset($_phpDocumentor_setting['templatebase']))
+ {
+ $this->render->setTemplateBase(trim($_phpDocumentor_setting['templatebase']));
+ }
+ if (isset($_phpDocumentor_setting['target']) && !empty($_phpDocumentor_setting['target']))
+ {
+ $this->render->setTargetDir(trim($_phpDocumentor_setting['target']));
+ }
+ else
+ {
+ echo "a target directory must be specified\n try phpdoc -h\n";
+ die();
+ }
+ if (!empty($_phpDocumentor_setting['packageoutput']))
+ {
+ $this->packages = explode(",",trim($_phpDocumentor_setting['packageoutput']));
+ foreach($this->packages as $p => $v)
+ {
+ $this->packages[$p] = trim($v);
+ }
+ }
+ if (!empty($_phpDocumentor_setting['filename'])) {
+ $this->files = trim($_phpDocumentor_setting['filename']);
+ }
+ if (!empty($_phpDocumentor_setting['directory'])) {
+ $this->dirs = trim($_phpDocumentor_setting['directory']);
+ }
+ }
+
+ function checkIgnoreTag($tagname, $inline = false)
+ {
+ global $_phpDocumentor_setting;
+ $tagname = '@'.$tagname;
+ if (!isset($_phpDocumentor_setting['ignoretags'])) return false;
+ if ($inline) $tagname = '{'.$tagname.'}';
+ return in_array($tagname, $_phpDocumentor_setting['ignoretags']);
+ }
+
+ function setJavadocDesc()
+ {
+ $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock';
+ }
+
+ function setParsePrivate($flag = true)
+ {
+ $this->render->setParsePrivate($flag);
+ }
+
+ function setQuietMode($flag = true)
+ {
+ $this->render->setQuietMode($flag);
+ }
+
+ function setTargetDir($target)
+ {
+ $this->render->setTargetDir($target);
+ }
+
+ function setTemplateBase($dir)
+ {
+ $this->render->setTemplateBase($dir);
+ }
+
+ function setPackageOutput($po)
+ {
+ $this->packages = explode(",",$po);
+ array_map('trim', $this->packages);
+ }
+
+ function setTitle($ti)
+ {
+ $this->render = new phpDocumentor_IntermediateParser($ti);
+ }
+
+ function setFilesToParse($files)
+ {
+ $this->files = $files;
+ }
+
+ function setDirectoriesToParse($dirs)
+ {
+ $this->dirs = $dirs;
+ }
+
+ function parseHiddenFiles($flag = true)
+ {
+ $this->hidden = $flag;
+ }
+
+ function setIgnore($ig)
+ {
+ if (strstr($ig,","))
+ {
+ $this->ignore_files = explode(",",$ig);
+ } else {
+ if (!empty($ig))
+ $this->ignore_files = array($ig);
+ }
+ $this->ignore_files = array_map('trim', $this->ignore_files);
+ }
+
+ function createDocs($title = false)
+ {
+ $this->parse_start_time = time();
+ global $_phpDocumentor_setting;
+ if (!$this->render)
+ {
+ $this->render = new phpDocumentor_IntermediateParser($title);
+ }
+ // setup ignore list
+ $this->ignore_files =array();
+ if(isset($_phpDocumentor_setting['ignore']))
+ {
+ $this->setIgnore($_phpDocumentor_setting['ignore']);
+ }
+ $this->parse->subscribe("*",$this->render);
+ // parse the directory
+ if (!empty($this->files))
+ {
+ $files = explode(",",$this->files);
+ foreach($files as $file)
+ {
+ $file = trim($file);
+ $test = $this->setup->getAllFiles($file);
+ if ($test)
+ {
+ foreach($test as $file)
+ {
+ $file = trim($file);
+ $dir = realpath(dirname($file));
+ $dir = strtr($dir, "\\", "/");
+ $dir = str_replace('//','/',$dir);
+ // strip trailing directory seperator
+ if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
+ {
+ $dir = substr($dir,0,-1);
+ }
+ $file = strtr(realpath($file), "\\", "/");
+ $file = str_replace('//','/',$file);
+
+ if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files))
+ {
+ $filelist[] = str_replace('\\','/',$file);
+ } else {
+ phpDocumentor_out("File $file Ignored\n");
+ flush();
+ }
+ }
+ } else
+ {
+ $dir = dirname(realpath($file));
+ $dir = strtr($dir, "\\", "/");
+ $dir = str_replace('//','/',$dir);
+ // strip trailing directory seperator
+ if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
+ {
+ $dir = substr($dir,0,-1);
+ }
+ $base = count(explode("/",$dir));
+ $file = strtr(realpath($file), "\\", "/");
+ $file = str_replace('//','/',$file);
+ flush();
+
+ if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files))
+ {
+ $filelist[] = str_replace('\\','/',$file);
+ } else {
+ phpDocumentor_out("File $file Ignored\n");
+ flush();
+ }
+ }
+ }
+ }
+ if (!empty($this->dirs))
+ {
+ $dirs = explode(",",$this->dirs);
+ foreach($dirs as $dir)
+ {
+ $olddir = $dir;
+ $dir = realpath($dir);
+ if (!$dir) {
+ phpDocumentor_out('ERROR: "' . $olddir . '" does not exist, skipping');
+ continue;
+ }
+ $dir = trim($dir);
+ $dir = strtr($dir, "\\", "/");
+ $dir = str_replace('//','/',$dir);
+ // strip trailing directory seperator
+ if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
+ {
+ $dir = substr($dir,0,-1);
+ }
+ $files = $this->setup->dirList($dir,$this->hidden);
+ if (is_array($files))
+ {
+ foreach($files as $file)
+ {
+ // Make sure the file isn't a hidden file
+ $file = strtr($file, "\\", "/");
+ if (substr(basename($file),0,1) != ".")
+ {
+ if (!$this->setup->checkIgnore(basename($file),str_replace('\\','/',dirname($file)),$this->ignore_files))
+ {
+ $filelist[] = str_replace('\\','/',$file);
+ } else {
+ phpDocumentor_out("File $file Ignored\n");
+ flush();
+ }
+ }
+ }
+ }
+ }
+ }
+ if (isset($filelist))
+ {
+ if (PHPDOCUMENTOR_WINDOWS)
+ {
+ // case insensitive array_unique
+ usort($filelist,'strnatcasecmp');
+ reset($filelist);
+
+ $newarray = array();
+ $i = 0;
+
+ $element = current($filelist);
+ for ($n=0;$n<sizeof($filelist);$n++)
+ {
+ if (strtolower(next($filelist)) != strtolower($element))
+ {
+ $newarray[$i] = $element;
+ $element = current($filelist);
+ $i++;
+ }
+ }
+ $filelist = $newarray;
+ } else $filelist = array_unique($filelist);
+
+ $base = count(explode("/",$source_base = $this->setup->getBase($filelist)));
+ define("PHPDOCUMENTOR_BASE",$source_base);
+ list($filelist,$ric) = $this->setup->getReadmeInstallChangelog($source_base, $filelist);
+ phpDocumentor_out("\n\nGrabbing README/INSTALL/CHANGELOG\n");
+ flush();
+ foreach($ric as $file)
+ {
+ phpDocumentor_out(basename($file).'...');
+ flush();
+ $fp = fopen($file,'r');
+ $contents = fread($fp,filesize($file));
+ $this->render->HandleEvent(PHPDOCUMENTOR_EVENT_README_INSTALL_CHANGELOG, array(basename($file),$contents));
+ fclose($fp);
+ }
+ phpDocumentor_out("\ndone\n");
+ flush();
+ list($filelist,$tutorials) = $this->setup->getTutorials($filelist);
+ phpDocumentor_out("\n\nTutorial/Extended Documentation Parsing Stage\n\n");
+ flush();
+ if (count($tutorials))
+ {
+ $tuteparser = new XMLPackagePageParser;
+ $tuteparser->subscribe('*',$this->render);
+ foreach($tutorials as $tutorial)
+ {
+ switch($tutorial['tutetype'])
+ {
+ case 'pkg' :
+ case 'cls' :
+ case 'proc' :
+ switch($tutorial['tutetype'])
+ {
+ case 'pkg' :
+ $ptext = 'Package-level Docs ';
+ if (!empty($tutorial['subpackage']))
+ $ptext = 'Sub-Package Docs ';
+ break;
+ case 'cls' :
+ $ptext = 'Class-level Docs ';
+ break;
+ case 'proc' :
+ $ptext = 'Procedural-level Docs ';
+ break;
+ }
+ $fp = @fopen($tutorial['path'],"r");
+ if ($fp)
+ {
+ $ret = fread($fp,filesize($tutorial['path']));
+ // fix 1151650
+ if (stristr($ret, "utf-8") !== "")
+ {
+ $ret = utf8_decode($ret);
+ }
+ fclose($fp);
+ unset($fp);
+ phpDocumentor_out('Parsing '.$ptext.$tutorial['path'].'...');
+ flush();
+ $tuteparser->parse($ret,$tutorial);
+ phpDocumentor_out("done\n");
+ flush();
+ } else
+ {
+ phpDocumentor_out('Error '.$ptext.$tutorial['path'].' doesn\'t exist'."\n");
+ flush();
+ }
+ default :
+ break;
+ }
+ }
+ }
+ phpDocumentor_out("done\n");
+ flush();
+ phpDocumentor_out("\n\nGeneral Parsing Stage\n\n");
+ flush();
+ foreach($filelist as $file)
+ {
+ phpDocumentor_out("Reading file $file");
+ flush();
+ $this->parse->parse($a = $this->setup->readPhpFile($file, $this->render->quietMode),$file,$base,$this->packages);
+
+ }
+ $b = (time() - $this->parse_start_time);
+ phpDocumentor_out("done\n");
+ flush();
+ // render output
+ phpDocumentor_out("\nConverting From Abstract Parsed Data\n");
+ flush();
+ $this->render->output();
+ $a = (time() - $this->parse_start_time);
+ $c = ($a - $b);
+ phpDocumentor_out("\nParsing time: $b seconds\n");
+ phpDocumentor_out("\nConversion time: $c seconds\n");
+ phpDocumentor_out("\nTotal Documentation Time: $a seconds\n");
+ phpDocumentor_out("done\n");
+ flush();
+ } else
+ {
+ print "ERROR: nothing parsed";
+ exit;
+ }
+ }
+ /**
+ * Parse configuration file phpDocumentor.ini
+ */
+ function parseIni()
+ {
+ phpDocumentor_out("Parsing configuration file phpDocumentor.ini...");
+ flush();
+ if ('@DATA-DIR@' != '@'.'DATA-DIR@')
+ {
+ $options = phpDocumentor_parse_ini_file(str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'phpDocumentor.ini',true);
+ } else {
+ $options = phpDocumentor_parse_ini_file(str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'phpDocumentor.ini',true);
+ }
+
+ if (!$options)
+ {
+ print "ERROR: cannot open phpDocumentor.ini in directory " . $GLOBALS['_phpDocumentor_install_dir']."\n";
+ print "-Is phpdoc in either the path or include_path in your php.ini file?";
+ exit;
+ }
+
+ foreach($options as $var => $values)
+ {
+ if ($var != 'DEBUG')
+ {
+// phpDocumentor_out("\n$var");
+ if ($var != '_phpDocumentor_setting' && $var != '_phpDocumentor_options' && $var != '_phpDocumentor_install_dir' ) $values = array_values($values);
+// fancy_debug("\n$var",$values);
+ $GLOBALS[$var] = $values;
+ }
+ }
+ phpDocumentor_out("\ndone\n");
+ flush();
+ /** Debug Constant */
+ if (!defined('PHPDOCUMENTOR_DEBUG')) define("PHPDOCUMENTOR_DEBUG",$options['DEBUG']['PHPDOCUMENTOR_DEBUG']);
+ if (!defined('PHPDOCUMENTOR_KILL_WHITESPACE')) define("PHPDOCUMENTOR_KILL_WHITESPACE",$options['DEBUG']['PHPDOCUMENTOR_KILL_WHITESPACE']);
+ $GLOBALS['_phpDocumentor_cvsphpfile_exts'] = $GLOBALS['_phpDocumentor_phpfile_exts'];
+ foreach($GLOBALS['_phpDocumentor_cvsphpfile_exts'] as $key => $val)
+ {
+ $GLOBALS['_phpDocumentor_cvsphpfile_exts'][$key] = "$val,v";
+ }
+ // none of this stuff is used anymore
+ if (isset($GLOBALS['_phpDocumentor_html_allowed']))
+ {
+ $___htmltemp = array_flip($GLOBALS['_phpDocumentor_html_allowed']);
+ $___html1 = array();
+ foreach($___htmltemp as $tag => $trans)
+ {
+ $___html1['<'.$tag.'>'] = htmlentities('<'.$tag.'>');
+ $___html1['</'.$tag.'>'] = htmlentities('</'.$tag.'>');
+ }
+ $GLOBALS['phpDocumentor___html'] = array_flip($___html1);
+ }
+ }
+
+
+ function cleanConverterNamePiece($name, $extra_characters_to_allow = '')
+ {
+ $name = str_replace("\\", "/", $name);
+ // security: ensure no opportunity exists to use "../.." pathing in this value
+ $name = preg_replace('/[^a-zA-Z0-9' . $extra_characters_to_allow . '_]/', "", $name);
+
+ // absolutely positively do NOT allow two consecutive dots ".."
+ if (strpos($name, '..') > -1) $name = false;
+ return $name;
+ }
+
+ function setupConverters($output = false)
+ {
+ global $_phpDocumentor_setting;
+ if ($output)
+ {
+ $_phpDocumentor_setting['output'] = $output;
+ }
+ if (isset($_phpDocumentor_setting['output']) && !empty($_phpDocumentor_setting['output']))
+ {
+ $c = explode(',',$_phpDocumentor_setting['output']);
+ for($i=0; $i< count($c); $i++)
+ {
+ $c[$i] = explode(':',$c[$i]);
+ $a = $c[$i][0];
+ if (isset($c[$i][0]))
+ {
+ $a = $this->cleanConverterNamePiece($c[$i][0]);
+ }
+ else
+ {
+ $a = false;
+ }
+ if (isset($c[$i][1]))
+ {
+ $b = $this->cleanConverterNamePiece($c[$i][1], '\/'); // must allow "/" due to options like "DocBook/peardoc2"
+ }
+ else
+ {
+ $b = false;
+ }
+ if (isset($c[$i][2]))
+ {
+ /**
+ * must allow "." due to options like "phpdoc.de"
+ * must allow "/" due to options like "DOM/default"
+ */
+ $d = $this->cleanConverterNamePiece($c[$i][2], '.\/');
+ if (substr($d,-1) != "/")
+ {
+ $d .= "/";
+ }
+ else
+ {
+ $d = 'default/';
+ }
+ }
+ if (strtoupper(trim($a)) == 'HTML' && (trim($b) == 'default'))
+ {
+ phpDocumentor_out("WARNING: HTMLdefaultConverter is deprecated, using HTMLframesConverter.\n");
+ phpDocumentor_out("WARNING: template output is identical, HTMLframes is more flexible.\n");
+ phpDocumentor_out("WARNING: please adjust your usage\n");
+ flush();
+ $b = 'frames'; // change default to frames.
+ }
+ $this->render->addConverter(strtoupper(trim($a)),trim($b),trim($d));
+ }
+ } else
+ {
+ $this->render->addConverter('HTML','frames','default/');
+ }
+ if (empty($this->render->converters)) addErrorDie(PDERROR_NO_CONVERTERS);
+ }
+}
+
+/**
+ * Fuzzy logic to interpret the boolean args' intent
+ * @param string the command-line option to analyze
+ * @return boolean our best guess of the value's boolean intent
+ */
+function decideOnOrOff($value_to_guess = 'NO VALUE WAS PASSED')
+{
+ $these_probably_mean_yes = array(
+ '', // "--hidden" with no value
+ 'on', // "--hidden on"
+ 'y', 'yes', // "--hidden y"
+ 'true', // "--hidden true"
+ '1' // "--hidden 1"
+ );
+ $best_guess = false; // default to "false", "off", "no", "take a hike"
+
+ if (in_array(strtolower(trim($value_to_guess)), $these_probably_mean_yes))
+ {
+ $best_guess = true;
+ }
+ return $best_guess;
+}
+
+/**
+ * Print parse information if quiet setting is off
+ */
+function phpDocumentor_out($string)
+{
+ global $_phpDocumentor_setting;
+ if ((isset($_phpDocumentor_setting['quiet'])) ? !decideOnOrOff($_phpDocumentor_setting['quiet']) : true)
+ {
+ print $string;
+ }
+
+}
+
+/**
+ * Crash in case of known, dangerous bug condition
+ *
+ * Checks the PHP version that is executing PhpDocumentor,
+ * in case a known PHP/PEAR bug condition could be triggered
+ * by the PhpDocumentor execution.
+ * @param string $php_version the PHP version that contains the bug
+ * @param string $php_bug_number the PHP bug number (if any)
+ * @param string $pear_bug_number the PEAR bug number (if any)
+ */
+function checkForBugCondition($php_version, $php_bug_number = 'none', $pear_bug_number = 'none')
+{
+ if (version_compare(phpversion(), $php_version) == 0)
+ {
+ addErrorDie(PDERROR_DANGEROUS_PHP_BUG_EXISTS, $php_version, $php_bug_number, $pear_bug_number);
+ }
+}
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php
index 0b01559f9a..43248cd8e9 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php
@@ -1,365 +1,365 @@
-<?php
-
-/**
- * Config_File class.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * You may contact the author of Config_File by e-mail at:
- * {@link andrei@php.net}
- *
- * The latest version of Config_File can be obtained from:
- * http://smarty.php.net/
- *
- * @link http://smarty.php.net/
- * @version 2.6.0
- * @copyright Copyright: 2001-2003 ispi of Lincoln, Inc.
- * @author Andrei Zmievski <andrei@php.net>
- * @access public
- * @package Smarty
- */
-
-/* $Id$ */
-/**
- * Config file reading class
- * @package Smarty
- */
-class Config_File {
- /**#@+
- * Options
- * @var boolean
- */
- /**
- * Controls whether variables with the same name overwrite each other.
- */
- var $overwrite = true;
-
- /**
- * Controls whether config values of on/true/yes and off/false/no get
- * converted to boolean values automatically.
- */
- var $booleanize = true;
-
- /**
- * Controls whether hidden config sections/vars are read from the file.
- */
- var $read_hidden = true;
-
- /**
- * Controls whether or not to fix mac or dos formatted newlines.
- * If set to true, \r or \r\n will be changed to \n.
- */
- var $fix_newlines = true;
- /**#@-*/
-
- /** @access private */
- var $_config_path = "";
- var $_config_data = array();
- /**#@-*/
-
- /**
- * Constructs a new config file class.
- *
- * @param string $config_path (optional) path to the config files
- */
- function Config_File($config_path = NULL)
- {
- if (isset($config_path))
- $this->set_path($config_path);
- }
-
-
- /**
- * Set the path where configuration files can be found.
- *
- * @param string $config_path path to the config files
- */
- function set_path($config_path)
- {
- if (!empty($config_path)) {
- if (!is_string($config_path) || !file_exists($config_path) || !is_dir($config_path)) {
- $this->_trigger_error_msg("Bad config file path '$config_path'");
- return;
- }
- if(substr($config_path, -1) != DIRECTORY_SEPARATOR) {
- $config_path .= DIRECTORY_SEPARATOR;
- }
-
- $this->_config_path = $config_path;
- }
- }
-
-
- /**
- * Retrieves config info based on the file, section, and variable name.
- *
- * @param string $file_name config file to get info for
- * @param string $section_name (optional) section to get info for
- * @param string $var_name (optional) variable to get info for
- * @return string|array a value or array of values
- */
- function &get($file_name, $section_name = NULL, $var_name = NULL)
- {
- if (empty($file_name)) {
- $this->_trigger_error_msg('Empty config file name');
- return;
- } else {
- $file_name = $this->_config_path . $file_name;
- if (!isset($this->_config_data[$file_name]))
- $this->load_file($file_name, false);
- }
-
- if (!empty($var_name)) {
- if (empty($section_name)) {
- return $this->_config_data[$file_name]["vars"][$var_name];
- } else {
- if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name]))
- return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name];
- else
- return array();
- }
- } else {
- if (empty($section_name)) {
- return (array)$this->_config_data[$file_name]["vars"];
- } else {
- if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"]))
- return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"];
- else
- return array();
- }
- }
- }
-
-
- /**
- * Retrieves config info based on the key.
- *
- * @param $file_name string config key (filename/section/var)
- * @return string|array same as get()
- * @uses get() retrieves information from config file and returns it
- */
- function &get_key($config_key)
- {
- list($file_name, $section_name, $var_name) = explode('/', $config_key, 3);
- $result = &$this->get($file_name, $section_name, $var_name);
- return $result;
- }
-
- /**
- * Get all loaded config file names.
- *
- * @return array an array of loaded config file names
- */
- function get_file_names()
- {
- return array_keys($this->_config_data);
- }
-
-
- /**
- * Get all section names from a loaded file.
- *
- * @param string $file_name config file to get section names from
- * @return array an array of section names from the specified file
- */
- function get_section_names($file_name)
- {
- $file_name = $this->_config_path . $file_name;
- if (!isset($this->_config_data[$file_name])) {
- $this->_trigger_error_msg("Unknown config file '$file_name'");
- return;
- }
-
- return array_keys($this->_config_data[$file_name]["sections"]);
- }
-
-
- /**
- * Get all global or section variable names.
- *
- * @param string $file_name config file to get info for
- * @param string $section_name (optional) section to get info for
- * @return array an array of variables names from the specified file/section
- */
- function get_var_names($file_name, $section = NULL)
- {
- if (empty($file_name)) {
- $this->_trigger_error_msg('Empty config file name');
- return;
- } else if (!isset($this->_config_data[$file_name])) {
- $this->_trigger_error_msg("Unknown config file '$file_name'");
- return;
- }
-
- if (empty($section))
- return array_keys($this->_config_data[$file_name]["vars"]);
- else
- return array_keys($this->_config_data[$file_name]["sections"][$section]["vars"]);
- }
-
-
- /**
- * Clear loaded config data for a certain file or all files.
- *
- * @param string $file_name file to clear config data for
- */
- function clear($file_name = NULL)
- {
- if ($file_name === NULL)
- $this->_config_data = array();
- else if (isset($this->_config_data[$file_name]))
- $this->_config_data[$file_name] = array();
- }
-
-
- /**
- * Load a configuration file manually.
- *
- * @param string $file_name file name to load
- * @param boolean $prepend_path whether current config path should be
- * prepended to the filename
- */
- function load_file($file_name, $prepend_path = true)
- {
- if ($prepend_path && $this->_config_path != "")
- $config_file = $this->_config_path . $file_name;
- else
- $config_file = $file_name;
-
- ini_set('track_errors', true);
- $fp = @fopen($config_file, "r");
- if (!is_resource($fp)) {
- $this->_trigger_error_msg("Could not open config file '$config_file'");
- return false;
- }
-
- $contents = fread($fp, filesize($config_file));
- fclose($fp);
-
- if($this->fix_newlines) {
- // fix mac/dos formatted newlines
- $contents = preg_replace('!\r\n?!',"\n",$contents);
- }
-
- $config_data = array();
-
- /* replace all multi-line values by placeholders */
- if (preg_match_all('/"""(.*)"""/Us', $contents, $match)) {
- $_triple_quotes = $match[1];
- $_i = 0;
- $contents = preg_replace('/""".*"""/Use', '"\x1b\x1b\x1b".$_i++."\x1b\x1b\x1b"', $contents);
- } else {
- $_triple_quotes = null;
- }
-
- /* Get global variables first. */
- if ($contents{0} != '[' && preg_match("/^(.*?)(\n\[|\Z)/s", $contents, $match))
- $config_data["vars"] = $this->_parse_config_block($match[1], $_triple_quotes);
-
- /* Get section variables. */
- $config_data["sections"] = array();
- preg_match_all("/^\[(.*?)\]/m", $contents, $match);
- foreach ($match[1] as $section) {
- if ($section{0} == '.' && !$this->read_hidden)
- continue;
- if (preg_match("/\[".preg_quote($section, '/')."\](.*?)(\n\[|\Z)/s", $contents, $match))
- if ($section{0} == '.')
- $section = substr($section, 1);
- $config_data["sections"][$section]["vars"] = $this->_parse_config_block($match[1], $_triple_quotes);
- }
-
- $this->_config_data[$config_file] = $config_data;
-
- return true;
- }
-
- /**#@+ @access private */
- /**
- * @var string $config_block
- */
- function _parse_config_block($config_block, $triple_quotes)
- {
- $vars = array();
-
- /* First we grab the multi-line values. */
- if (preg_match_all("/^([^=\n]+)=\s*\x1b\x1b\x1b(\d+)\x1b\x1b\x1b\s*$/ms", $config_block, $match, PREG_SET_ORDER)) {
- for ($i = 0; $i < count($match); $i++) {
- $this->_set_config_var($vars, trim($match[$i][1]), $triple_quotes[$match[$i][2]], false);
- }
- $config_block = preg_replace("/^[^=\n]+=\s*\x1b\x1b\x1b\d+\x1b\x1b\x1b\s*$/ms", "", $config_block);
- }
-
-
- $config_lines = preg_split("/\n+/", $config_block);
-
- foreach ($config_lines as $line) {
- if (preg_match("/^\s*(\.?\w+)\s*=(.*)/", $line, $match)) {
- $var_value = preg_replace('/^([\'"])(.*)\1$/', '\2', trim($match[2]));
- $this->_set_config_var($vars, trim($match[1]), $var_value, $this->booleanize);
- }
- }
-
- return $vars;
- }
-
- /**
- * @param array &$container
- * @param string $var_name
- * @param mixed $var_value
- * @param boolean $booleanize determines whether $var_value is converted to
- * to true/false
- */
- function _set_config_var(&$container, $var_name, $var_value, $booleanize)
- {
- if ($var_name{0} == '.') {
- if (!$this->read_hidden)
- return;
- else
- $var_name = substr($var_name, 1);
- }
-
- if (!preg_match("/^[a-zA-Z_]\w*$/", $var_name)) {
- $this->_trigger_error_msg("Bad variable name '$var_name'");
- return;
- }
-
- if ($booleanize) {
- if (preg_match("/^(on|true|yes)$/i", $var_value))
- $var_value = true;
- else if (preg_match("/^(off|false|no)$/i", $var_value))
- $var_value = false;
- }
-
- if (!isset($container[$var_name]) || $this->overwrite)
- $container[$var_name] = $var_value;
- else {
- settype($container[$var_name], 'array');
- $container[$var_name][] = $var_value;
- }
- }
-
- /**
- * @uses trigger_error() creates a PHP warning/error
- * @param string $error_msg
- * @param integer $error_type one of
- */
- function _trigger_error_msg($error_msg, $error_type = E_USER_WARNING)
- {
- trigger_error("Config_File error: $error_msg", $error_type);
- }
- /**#@-*/
-}
-
-?>
+<?php
+
+/**
+ * Config_File class.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * You may contact the author of Config_File by e-mail at:
+ * {@link andrei@php.net}
+ *
+ * The latest version of Config_File can be obtained from:
+ * http://smarty.php.net/
+ *
+ * @link http://smarty.php.net/
+ * @version 2.6.0
+ * @copyright Copyright: 2001-2003 ispi of Lincoln, Inc.
+ * @author Andrei Zmievski <andrei@php.net>
+ * @access public
+ * @package Smarty
+ */
+
+/* $Id$ */
+/**
+ * Config file reading class
+ * @package Smarty
+ */
+class Config_File {
+ /**#@+
+ * Options
+ * @var boolean
+ */
+ /**
+ * Controls whether variables with the same name overwrite each other.
+ */
+ var $overwrite = true;
+
+ /**
+ * Controls whether config values of on/true/yes and off/false/no get
+ * converted to boolean values automatically.
+ */
+ var $booleanize = true;
+
+ /**
+ * Controls whether hidden config sections/vars are read from the file.
+ */
+ var $read_hidden = true;
+
+ /**
+ * Controls whether or not to fix mac or dos formatted newlines.
+ * If set to true, \r or \r\n will be changed to \n.
+ */
+ var $fix_newlines = true;
+ /**#@-*/
+
+ /** @access private */
+ var $_config_path = "";
+ var $_config_data = array();
+ /**#@-*/
+
+ /**
+ * Constructs a new config file class.
+ *
+ * @param string $config_path (optional) path to the config files
+ */
+ function Config_File($config_path = NULL)
+ {
+ if (isset($config_path))
+ $this->set_path($config_path);
+ }
+
+
+ /**
+ * Set the path where configuration files can be found.
+ *
+ * @param string $config_path path to the config files
+ */
+ function set_path($config_path)
+ {
+ if (!empty($config_path)) {
+ if (!is_string($config_path) || !file_exists($config_path) || !is_dir($config_path)) {
+ $this->_trigger_error_msg("Bad config file path '$config_path'");
+ return;
+ }
+ if(substr($config_path, -1) != DIRECTORY_SEPARATOR) {
+ $config_path .= DIRECTORY_SEPARATOR;
+ }
+
+ $this->_config_path = $config_path;
+ }
+ }
+
+
+ /**
+ * Retrieves config info based on the file, section, and variable name.
+ *
+ * @param string $file_name config file to get info for
+ * @param string $section_name (optional) section to get info for
+ * @param string $var_name (optional) variable to get info for
+ * @return string|array a value or array of values
+ */
+ function &get($file_name, $section_name = NULL, $var_name = NULL)
+ {
+ if (empty($file_name)) {
+ $this->_trigger_error_msg('Empty config file name');
+ return;
+ } else {
+ $file_name = $this->_config_path . $file_name;
+ if (!isset($this->_config_data[$file_name]))
+ $this->load_file($file_name, false);
+ }
+
+ if (!empty($var_name)) {
+ if (empty($section_name)) {
+ return $this->_config_data[$file_name]["vars"][$var_name];
+ } else {
+ if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name]))
+ return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name];
+ else
+ return array();
+ }
+ } else {
+ if (empty($section_name)) {
+ return (array)$this->_config_data[$file_name]["vars"];
+ } else {
+ if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"]))
+ return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"];
+ else
+ return array();
+ }
+ }
+ }
+
+
+ /**
+ * Retrieves config info based on the key.
+ *
+ * @param $file_name string config key (filename/section/var)
+ * @return string|array same as get()
+ * @uses get() retrieves information from config file and returns it
+ */
+ function &get_key($config_key)
+ {
+ list($file_name, $section_name, $var_name) = explode('/', $config_key, 3);
+ $result = &$this->get($file_name, $section_name, $var_name);
+ return $result;
+ }
+
+ /**
+ * Get all loaded config file names.
+ *
+ * @return array an array of loaded config file names
+ */
+ function get_file_names()
+ {
+ return array_keys($this->_config_data);
+ }
+
+
+ /**
+ * Get all section names from a loaded file.
+ *
+ * @param string $file_name config file to get section names from
+ * @return array an array of section names from the specified file
+ */
+ function get_section_names($file_name)
+ {
+ $file_name = $this->_config_path . $file_name;
+ if (!isset($this->_config_data[$file_name])) {
+ $this->_trigger_error_msg("Unknown config file '$file_name'");
+ return;
+ }
+
+ return array_keys($this->_config_data[$file_name]["sections"]);
+ }
+
+
+ /**
+ * Get all global or section variable names.
+ *
+ * @param string $file_name config file to get info for
+ * @param string $section_name (optional) section to get info for
+ * @return array an array of variables names from the specified file/section
+ */
+ function get_var_names($file_name, $section = NULL)
+ {
+ if (empty($file_name)) {
+ $this->_trigger_error_msg('Empty config file name');
+ return;
+ } else if (!isset($this->_config_data[$file_name])) {
+ $this->_trigger_error_msg("Unknown config file '$file_name'");
+ return;
+ }
+
+ if (empty($section))
+ return array_keys($this->_config_data[$file_name]["vars"]);
+ else
+ return array_keys($this->_config_data[$file_name]["sections"][$section]["vars"]);
+ }
+
+
+ /**
+ * Clear loaded config data for a certain file or all files.
+ *
+ * @param string $file_name file to clear config data for
+ */
+ function clear($file_name = NULL)
+ {
+ if ($file_name === NULL)
+ $this->_config_data = array();
+ else if (isset($this->_config_data[$file_name]))
+ $this->_config_data[$file_name] = array();
+ }
+
+
+ /**
+ * Load a configuration file manually.
+ *
+ * @param string $file_name file name to load
+ * @param boolean $prepend_path whether current config path should be
+ * prepended to the filename
+ */
+ function load_file($file_name, $prepend_path = true)
+ {
+ if ($prepend_path && $this->_config_path != "")
+ $config_file = $this->_config_path . $file_name;
+ else
+ $config_file = $file_name;
+
+ ini_set('track_errors', true);
+ $fp = @fopen($config_file, "r");
+ if (!is_resource($fp)) {
+ $this->_trigger_error_msg("Could not open config file '$config_file'");
+ return false;
+ }
+
+ $contents = fread($fp, filesize($config_file));
+ fclose($fp);
+
+ if($this->fix_newlines) {
+ // fix mac/dos formatted newlines
+ $contents = preg_replace('!\r\n?!',"\n",$contents);
+ }
+
+ $config_data = array();
+
+ /* replace all multi-line values by placeholders */
+ if (preg_match_all('/"""(.*)"""/Us', $contents, $match)) {
+ $_triple_quotes = $match[1];
+ $_i = 0;
+ $contents = preg_replace('/""".*"""/Use', '"\x1b\x1b\x1b".$_i++."\x1b\x1b\x1b"', $contents);
+ } else {
+ $_triple_quotes = null;
+ }
+
+ /* Get global variables first. */
+ if ($contents{0} != '[' && preg_match("/^(.*?)(\n\[|\Z)/s", $contents, $match))
+ $config_data["vars"] = $this->_parse_config_block($match[1], $_triple_quotes);
+
+ /* Get section variables. */
+ $config_data["sections"] = array();
+ preg_match_all("/^\[(.*?)\]/m", $contents, $match);
+ foreach ($match[1] as $section) {
+ if ($section{0} == '.' && !$this->read_hidden)
+ continue;
+ if (preg_match("/\[".preg_quote($section, '/')."\](.*?)(\n\[|\Z)/s", $contents, $match))
+ if ($section{0} == '.')
+ $section = substr($section, 1);
+ $config_data["sections"][$section]["vars"] = $this->_parse_config_block($match[1], $_triple_quotes);
+ }
+
+ $this->_config_data[$config_file] = $config_data;
+
+ return true;
+ }
+
+ /**#@+ @access private */
+ /**
+ * @var string $config_block
+ */
+ function _parse_config_block($config_block, $triple_quotes)
+ {
+ $vars = array();
+
+ /* First we grab the multi-line values. */
+ if (preg_match_all("/^([^=\n]+)=\s*\x1b\x1b\x1b(\d+)\x1b\x1b\x1b\s*$/ms", $config_block, $match, PREG_SET_ORDER)) {
+ for ($i = 0; $i < count($match); $i++) {
+ $this->_set_config_var($vars, trim($match[$i][1]), $triple_quotes[$match[$i][2]], false);
+ }
+ $config_block = preg_replace("/^[^=\n]+=\s*\x1b\x1b\x1b\d+\x1b\x1b\x1b\s*$/ms", "", $config_block);
+ }
+
+
+ $config_lines = preg_split("/\n+/", $config_block);
+
+ foreach ($config_lines as $line) {
+ if (preg_match("/^\s*(\.?\w+)\s*=(.*)/", $line, $match)) {
+ $var_value = preg_replace('/^([\'"])(.*)\1$/', '\2', trim($match[2]));
+ $this->_set_config_var($vars, trim($match[1]), $var_value, $this->booleanize);
+ }
+ }
+
+ return $vars;
+ }
+
+ /**
+ * @param array &$container
+ * @param string $var_name
+ * @param mixed $var_value
+ * @param boolean $booleanize determines whether $var_value is converted to
+ * to true/false
+ */
+ function _set_config_var(&$container, $var_name, $var_value, $booleanize)
+ {
+ if ($var_name{0} == '.') {
+ if (!$this->read_hidden)
+ return;
+ else
+ $var_name = substr($var_name, 1);
+ }
+
+ if (!preg_match("/^[a-zA-Z_]\w*$/", $var_name)) {
+ $this->_trigger_error_msg("Bad variable name '$var_name'");
+ return;
+ }
+
+ if ($booleanize) {
+ if (preg_match("/^(on|true|yes)$/i", $var_value))
+ $var_value = true;
+ else if (preg_match("/^(off|false|no)$/i", $var_value))
+ $var_value = false;
+ }
+
+ if (!isset($container[$var_name]) || $this->overwrite)
+ $container[$var_name] = $var_value;
+ else {
+ settype($container[$var_name], 'array');
+ $container[$var_name][] = $var_value;
+ }
+ }
+
+ /**
+ * @uses trigger_error() creates a PHP warning/error
+ * @param string $error_msg
+ * @param integer $error_type one of
+ */
+ function _trigger_error_msg($error_msg, $error_type = E_USER_WARNING)
+ {
+ trigger_error("Config_File error: $error_msg", $error_type);
+ }
+ /**#@-*/
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php
index 1f9c04c904..aac22557cf 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php
@@ -1,2010 +1,2010 @@
-<?php
-
-/**
- * Project: Smarty: the PHP compiling template engine
- * File: Smarty.class.php
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * For questions, help, comments, discussion, etc., please join the
- * Smarty mailing list. Send a blank e-mail to
- * smarty-general-subscribe@lists.php.net
- *
- * You may contact the authors of Smarty by e-mail at:
- * monte@ispi.net
- * andrei@php.net
- *
- * Or, write to:
- * Monte Ohrt
- * Director of Technology, ispi
- * 237 S. 70th suite 220
- * Lincoln, NE 68510
- *
- * The latest version of Smarty can be obtained from:
- * http://smarty.php.net/
- *
- * @link http://smarty.php.net/
- * @copyright 2001-2003 ispi of Lincoln, Inc.
- * @author Monte Ohrt <monte@ispi.net>
- * @author Andrei Zmievski <andrei@php.net>
- * @package Smarty
- * @version 2.6.0
- */
-
-/* $Id$ */
-
-/**
- * DIR_SEP isn't used anymore, but third party apps might
- */
-if(!defined('DIR_SEP')) {
- define('DIR_SEP', DIRECTORY_SEPARATOR);
-}
-
-/**
- * set SMARTY_DIR to absolute path to Smarty library files.
- * if not defined, include_path will be used. Sets SMARTY_DIR only if user
- * application has not already defined it.
- */
-
-if (!defined('SMARTY_DIR')) {
- define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
-}
-
-define('SMARTY_PHP_PASSTHRU', 0);
-define('SMARTY_PHP_QUOTE', 1);
-define('SMARTY_PHP_REMOVE', 2);
-define('SMARTY_PHP_ALLOW', 3);
-
-/**
- * @package Smarty
- */
-class Smarty
-{
- /**#@+
- * Smarty Configuration Section
- */
-
- /**
- * The name of the directory where templates are located.
- *
- * @var string
- */
- var $template_dir = 'templates';
-
- /**
- * The directory where compiled templates are located.
- *
- * @var string
- */
- var $compile_dir = 'templates_c';
-
- /**
- * The directory where config files are located.
- *
- * @var string
- */
- var $config_dir = 'configs';
-
- /**
- * An array of directories searched for plugins.
- *
- * @var array
- */
- var $plugins_dir = array('plugins');
-
- /**
- * If debugging is enabled, a debug console window will display
- * when the page loads (make sure your browser allows unrequested
- * popup windows)
- *
- * @var boolean
- */
- var $debugging = false;
-
- /**
- * This is the path to the debug console template. If not set,
- * the default one will be used.
- *
- * @var string
- */
- var $debug_tpl = '';
-
- /**
- * This determines if debugging is enable-able from the browser.
- * <ul>
- * <li>NONE => no debugging control allowed</li>
- * <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li>
- * </ul>
- * @link http://www.foo.dom/index.php?SMARTY_DEBUG
- * @var string
- */
- var $debugging_ctrl = 'NONE';
-
- /**
- * This tells Smarty whether to check for recompiling or not. Recompiling
- * does not need to happen unless a template or config file is changed.
- * Typically you enable this during development, and disable for
- * production.
- *
- * @var boolean
- */
- var $compile_check = true;
-
- /**
- * This forces templates to compile every time. Useful for development
- * or debugging.
- *
- * @var boolean
- */
- var $force_compile = false;
-
- /**
- * This enables template caching.
- * <ul>
- * <li>0 = no caching</li>
- * <li>1 = use class cache_lifetime value</li>
- * <li>2 = use cache_lifetime in cache file</li>
- * </ul>
- * @var integer
- */
- var $caching = 0;
-
- /**
- * The name of the directory for cache files.
- *
- * @var string
- */
- var $cache_dir = 'cache';
-
- /**
- * This is the number of seconds cached content will persist.
- * <ul>
- * <li>0 = always regenerate cache</li>
- * <li>-1 = never expires</li>
- * </ul>
- *
- * @var integer
- */
- var $cache_lifetime = 3600;
-
- /**
- * Only used when $caching is enabled. If true, then If-Modified-Since headers
- * are respected with cached content, and appropriate HTTP headers are sent.
- * This way repeated hits to a cached page do not send the entire page to the
- * client every time.
- *
- * @var boolean
- */
- var $cache_modified_check = false;
-
- /**
- * This determines how Smarty handles "<?php ... ?>" tags in templates.
- * possible values:
- * <ul>
- * <li>SMARTY_PHP_PASSTHRU -> print tags as plain text</li>
- * <li>SMARTY_PHP_QUOTE -> escape tags as entities</li>
- * <li>SMARTY_PHP_REMOVE -> remove php tags</li>
- * <li>SMARTY_PHP_ALLOW -> execute php tags</li>
- * </ul>
- *
- * @var integer
- */
- var $php_handling = SMARTY_PHP_PASSTHRU;
-
- /**
- * This enables template security. When enabled, many things are restricted
- * in the templates that normally would go unchecked. This is useful when
- * untrusted parties are editing templates and you want a reasonable level
- * of security. (no direct execution of PHP in templates for example)
- *
- * @var boolean
- */
- var $security = false;
-
- /**
- * This is the list of template directories that are considered secure. This
- * is used only if {@link $security} is enabled. One directory per array
- * element. {@link $template_dir} is in this list implicitly.
- *
- * @var array
- */
- var $secure_dir = array();
-
- /**
- * These are the security settings for Smarty. They are used only when
- * {@link $security} is enabled.
- *
- * @var array
- */
- var $security_settings = array(
- 'PHP_HANDLING' => false,
- 'IF_FUNCS' => array('array', 'list',
- 'isset', 'empty',
- 'count', 'sizeof',
- 'in_array', 'is_array',
- 'true','false'),
- 'INCLUDE_ANY' => false,
- 'PHP_TAGS' => false,
- 'MODIFIER_FUNCS' => array('count'),
- 'ALLOW_CONSTANTS' => false
- );
-
- /**
- * This is an array of directories where trusted php scripts reside.
- * {@link $security} is disabled during their inclusion/execution.
- *
- * @var array
- */
- var $trusted_dir = array();
-
- /**
- * The left delimiter used for the template tags.
- *
- * @var string
- */
- var $left_delimiter = '{';
-
- /**
- * The right delimiter used for the template tags.
- *
- * @var string
- */
- var $right_delimiter = '}';
-
- /**
- * The order in which request variables are registered, similar to
- * variables_order in php.ini E = Environment, G = GET, P = POST,
- * C = Cookies, S = Server
- *
- * @var string
- */
- var $request_vars_order = "EGPCS";
-
- /**
- * Indicates wether $HTTP_*_VARS[] (request_use_auto_globals=false)
- * are uses as request-vars or $_*[]-vars. note: if
- * request_use_auto_globals is true, then $request_vars_order has
- * no effect, but the php-ini-value "gpc_order"
- *
- * @var boolean
- */
- var $request_use_auto_globals = false;
-
- /**
- * Set this if you want different sets of compiled files for the same
- * templates. This is useful for things like different languages.
- * Instead of creating separate sets of templates per language, you
- * set different compile_ids like 'en' and 'de'.
- *
- * @var string
- */
- var $compile_id = null;
-
- /**
- * This tells Smarty whether or not to use sub dirs in the cache/ and
- * templates_c/ directories. sub directories better organized, but
- * may not work well with PHP safe mode enabled.
- *
- * @var boolean
- *
- */
- var $use_sub_dirs = true;
-
- /**
- * This is a list of the modifiers to apply to all template variables.
- * Put each modifier in a separate array element in the order you want
- * them applied. example: <code>array('escape:"htmlall"');</code>
- *
- * @var array
- */
- var $default_modifiers = array();
-
- /**
- * This is the resource type to be used when not specified
- * at the beginning of the resource path. examples:
- * $smarty->display('file:index.tpl');
- * $smarty->display('db:index.tpl');
- * $smarty->display('index.tpl'); // will use default resource type
- * {include file="file:index.tpl"}
- * {include file="db:index.tpl"}
- * {include file="index.tpl"} {* will use default resource type *}
- *
- * @var array
- */
- var $default_resource_type = 'file';
-
- /**
- * The function used for cache file handling. If not set, built-in caching is used.
- *
- * @var null|string function name
- */
- var $cache_handler_func = null;
-
- /**
- * These are the variables from the globals array that are
- * assigned to all templates automatically. This isn't really
- * necessary any more, you can use the $smarty var to access them
- * directly.
- *
- * @var array
- */
- var $global_assign = array('HTTP_SERVER_VARS' => array('SCRIPT_NAME'));
-
- /**
- * The value of "undefined". Leave it alone :-)
- *
- * @var null
- */
- var $undefined = null;
-
- /**
- * This indicates which filters are automatically loaded into Smarty.
- *
- * @var array array of filter names
- */
- var $autoload_filters = array();
-
- /**#@+
- * @var boolean
- */
- /**
- * This tells if config file vars of the same name overwrite each other or not.
- * if disabled, same name variables are accumulated in an array.
- */
- var $config_overwrite = true;
-
- /**
- * This tells whether or not to automatically booleanize config file variables.
- * If enabled, then the strings "on", "true", and "yes" are treated as boolean
- * true, and "off", "false" and "no" are treated as boolean false.
- */
- var $config_booleanize = true;
-
- /**
- * This tells whether hidden sections [.foobar] are readable from the
- * tempalates or not. Normally you would never allow this since that is
- * the point behind hidden sections: the application can access them, but
- * the templates cannot.
- */
- var $config_read_hidden = false;
-
- /**
- * This tells whether or not automatically fix newlines in config files.
- * It basically converts \r (mac) or \r\n (dos) to \n
- */
- var $config_fix_newlines = true;
- /**#@-*/
-
- /**
- * If a template cannot be found, this PHP function will be executed.
- * Useful for creating templates on-the-fly or other special action.
- *
- * @var string function name
- */
- var $default_template_handler_func = '';
-
- /**
- * The file that contains the compiler class. This can a full
- * pathname, or relative to the php_include path.
- *
- * @var string
- */
- var $compiler_file = 'Smarty_Compiler.class.php';
-
- /**
- * The class used for compiling templates.
- *
- * @var string
- */
- var $compiler_class = 'Smarty_Compiler';
-
- /**
- * The class used to load config vars.
- *
- * @var string
- */
- var $config_class = 'Config_File';
-
-/**#@+
- * END Smarty Configuration Section
- * There should be no need to touch anything below this line.
- * @access private
- */
- /**
- * error messages. true/false
- *
- * @var boolean
- */
- var $_error_msg = false;
-
- /**
- * where assigned template vars are kept
- *
- * @var array
- */
- var $_tpl_vars = array();
-
- /**
- * stores run-time $smarty.* vars
- *
- * @var null|array
- */
- var $_smarty_vars = null;
-
- /**
- * keeps track of sections
- *
- * @var array
- */
- var $_sections = array();
-
- /**
- * keeps track of foreach blocks
- *
- * @var array
- */
- var $_foreach = array();
-
- /**
- * keeps track of tag hierarchy
- *
- * @var array
- */
- var $_tag_stack = array();
-
- /**
- * configuration object
- *
- * @var Config_file
- */
- var $_conf_obj = null;
-
- /**
- * loaded configuration settings
- *
- * @var array
- */
- var $_config = array(array('vars' => array(), 'files' => array()));
-
- /**
- * md5 checksum of the string 'Smarty'
- *
- * @var string
- */
- var $_smarty_md5 = 'f8d698aea36fcbead2b9d5359ffca76f';
-
- /**
- * Smarty version number
- *
- * @var string
- */
- var $_version = '2.6.0';
-
- /**
- * current template inclusion depth
- *
- * @var integer
- */
- var $_inclusion_depth = 0;
-
- /**
- * for different compiled templates
- *
- * @var string
- */
- var $_compile_id = null;
-
- /**
- * text in URL to enable debug mode
- *
- * @var string
- */
- var $_smarty_debug_id = 'SMARTY_DEBUG';
-
- /**
- * debugging information for debug console
- *
- * @var array
- */
- var $_smarty_debug_info = array();
-
- /**
- * info that makes up a cache file
- *
- * @var array
- */
- var $_cache_info = array();
-
- /**
- * default file permissions
- *
- * @var integer
- */
- var $_file_perms = 0644;
-
- /**
- * default dir permissions
- *
- * @var integer
- */
- var $_dir_perms = 0771;
-
- /**
- * registered objects
- *
- * @var array
- */
- var $_reg_objects = array();
-
- /**
- * table keeping track of plugins
- *
- * @var array
- */
- var $_plugins = array(
- 'modifier' => array(),
- 'function' => array(),
- 'block' => array(),
- 'compiler' => array(),
- 'prefilter' => array(),
- 'postfilter' => array(),
- 'outputfilter' => array(),
- 'resource' => array(),
- 'insert' => array());
-
-
- /**
- * cache serials
- *
- * @var array
- */
- var $_cache_serials = array();
-
- /**
- * name of optional cache include file
- *
- * @var string
- */
- var $_cache_include = null;
-
- /**
- * indicate if the current code is used in a compiled
- * include
- *
- * @var string
- */
- var $_cache_including = false;
-
- /**#@-*/
- /**
- * The class constructor.
- *
- * @uses $global_assign uses {@link assign()} to assign each corresponding
- * value from $GLOBALS to the template vars
- */
- function Smarty()
- {
- foreach ($this->global_assign as $key => $var_name) {
- if (is_array($var_name)) {
- foreach ($var_name as $var) {
- if (isset($GLOBALS[$key][$var])) {
- $this->assign($var, $GLOBALS[$key][$var]);
- } else {
- $this->assign($var, $this->undefined);
- }
- }
- } else {
- if (isset($GLOBALS[$var_name])) {
- $this->assign($var_name, $GLOBALS[$var_name]);
- } else {
- $this->assign($var_name, $this->undefined);
- }
- }
- }
- }
-
-
- /**
- * assigns values to template variables
- *
- * @param array|string $tpl_var the template variable name(s)
- * @param mixed $value the value to assign
- */
- function assign($tpl_var, $value = null)
- {
- if (is_array($tpl_var)){
- foreach ($tpl_var as $key => $val) {
- if ($key != '') {
- $this->_tpl_vars[$key] = $val;
- }
- }
- } else {
- if ($tpl_var != '')
- $this->_tpl_vars[$tpl_var] = $value;
- }
- }
-
- /**
- * assigns values to template variables by reference
- *
- * @param string $tpl_var the template variable name
- * @param mixed $value the referenced value to assign
- */
- function assign_by_ref($tpl_var, &$value)
- {
- if ($tpl_var != '')
- $this->_tpl_vars[$tpl_var] = &$value;
- }
-
- /**
- * appends values to template variables
- *
- * @param array|string $tpl_var the template variable name(s)
- * @param mixed $value the value to append
- */
- function append($tpl_var, $value=null, $merge=false)
- {
- if (is_array($tpl_var)) {
- // $tpl_var is an array, ignore $value
- foreach ($tpl_var as $_key => $_val) {
- if ($_key != '') {
- if(!@is_array($this->_tpl_vars[$_key])) {
- settype($this->_tpl_vars[$_key],'array');
- }
- if($merge && is_array($_val)) {
- foreach($_val as $_mkey => $_mval) {
- $this->_tpl_vars[$_key][$_mkey] = $_mval;
- }
- } else {
- $this->_tpl_vars[$_key][] = $_val;
- }
- }
- }
- } else {
- if ($tpl_var != '' && isset($value)) {
- if(!@is_array($this->_tpl_vars[$tpl_var])) {
- settype($this->_tpl_vars[$tpl_var],'array');
- }
- if($merge && is_array($value)) {
- foreach($value as $_mkey => $_mval) {
- $this->_tpl_vars[$tpl_var][$_mkey] = $_mval;
- }
- } else {
- $this->_tpl_vars[$tpl_var][] = $value;
- }
- }
- }
- }
-
- /**
- * appends values to template variables by reference
- *
- * @param string $tpl_var the template variable name
- * @param mixed $value the referenced value to append
- */
- function append_by_ref($tpl_var, &$value, $merge=false)
- {
- if ($tpl_var != '' && isset($value)) {
- if(!@is_array($this->_tpl_vars[$tpl_var])) {
- settype($this->_tpl_vars[$tpl_var],'array');
- }
- if ($merge && is_array($value)) {
- foreach($value as $_key => $_val) {
- $this->_tpl_vars[$tpl_var][$_key] = &$value[$_key];
- }
- } else {
- $this->_tpl_vars[$tpl_var][] = &$value;
- }
- }
- }
-
-
- /**
- * clear the given assigned template variable.
- *
- * @param string $tpl_var the template variable to clear
- */
- function clear_assign($tpl_var)
- {
- if (is_array($tpl_var))
- foreach ($tpl_var as $curr_var)
- unset($this->_tpl_vars[$curr_var]);
- else
- unset($this->_tpl_vars[$tpl_var]);
- }
-
-
- /**
- * Registers custom function to be used in templates
- *
- * @param string $function the name of the template function
- * @param string $function_impl the name of the PHP function to register
- */
- function register_function($function, $function_impl, $cacheable=true, $cache_attrs=null)
- {
- $this->_plugins['function'][$function] =
- array($function_impl, null, null, false, $cacheable, $cache_attrs);
-
- }
-
- /**
- * Unregisters custom function
- *
- * @param string $function name of template function
- */
- function unregister_function($function)
- {
- unset($this->_plugins['function'][$function]);
- }
-
- /**
- * Registers object to be used in templates
- *
- * @param string $object name of template object
- * @param object &$object_impl the referenced PHP object to register
- * @param null|array $allowed list of allowed methods (empty = all)
- * @param boolean $smarty_args smarty argument format, else traditional
- * @param null|array $block_functs list of methods that are block format
- */
- function register_object($object, &$object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
- {
- settype($allowed, 'array');
- settype($smarty_args, 'boolean');
- $this->_reg_objects[$object] =
- array(&$object_impl, $allowed, $smarty_args, $block_methods);
- }
-
- /**
- * Unregisters object
- *
- * @param string $object name of template object
- */
- function unregister_object($object)
- {
- unset($this->_reg_objects[$object]);
- }
-
-
- /**
- * Registers block function to be used in templates
- *
- * @param string $block name of template block
- * @param string $block_impl PHP function to register
- */
- function register_block($block, $block_impl, $cacheable=true, $cache_attrs=null)
- {
- $this->_plugins['block'][$block] =
- array($block_impl, null, null, false, $cacheable, $cache_attrs);
- }
-
- /**
- * Unregisters block function
- *
- * @param string $block name of template function
- */
- function unregister_block($block)
- {
- unset($this->_plugins['block'][$block]);
- }
-
- /**
- * Registers compiler function
- *
- * @param string $function name of template function
- * @param string $function_impl name of PHP function to register
- */
- function register_compiler_function($function, $function_impl, $cacheable=true)
- {
- $this->_plugins['compiler'][$function] =
- array($function_impl, null, null, false, $cacheable);
- }
-
- /**
- * Unregisters compiler function
- *
- * @param string $function name of template function
- */
- function unregister_compiler_function($function)
- {
- unset($this->_plugins['compiler'][$function]);
- }
-
- /**
- * Registers modifier to be used in templates
- *
- * @param string $modifier name of template modifier
- * @param string $modifier_impl name of PHP function to register
- */
- function register_modifier($modifier, $modifier_impl)
- {
- $this->_plugins['modifier'][$modifier] =
- array($modifier_impl, null, null, false);
- }
-
- /**
- * Unregisters modifier
- *
- * @param string $modifier name of template modifier
- */
- function unregister_modifier($modifier)
- {
- unset($this->_plugins['modifier'][$modifier]);
- }
-
- /**
- * Registers a resource to fetch a template
- *
- * @param string $type name of resource
- * @param array $functions array of functions to handle resource
- */
- function register_resource($type, $functions)
- {
- if (count($functions)==4) {
- $this->_plugins['resource'][$type] =
- array($functions, false);
-
- } elseif (count($functions)==5) {
- $this->_plugins['resource'][$type] =
- array(array(array(&$functions[0], $functions[1])
- ,array(&$functions[0], $functions[2])
- ,array(&$functions[0], $functions[3])
- ,array(&$functions[0], $functions[4]))
- ,false);
-
- } else {
- $this->trigger_error("malformed function-list for '$type' in register_resource");
-
- }
- }
-
- /**
- * Unregisters a resource
- *
- * @param string $type name of resource
- */
- function unregister_resource($type)
- {
- unset($this->_plugins['resource'][$type]);
- }
-
- /**
- * Registers a prefilter function to apply
- * to a template before compiling
- *
- * @param string $function name of PHP function to register
- */
- function register_prefilter($function)
- {
- $_name = (is_array($function)) ? $function[1] : $function;
- $this->_plugins['prefilter'][$_name]
- = array($function, null, null, false);
- }
-
- /**
- * Unregisters a prefilter function
- *
- * @param string $function name of PHP function
- */
- function unregister_prefilter($function)
- {
- unset($this->_plugins['prefilter'][$function]);
- }
-
- /**
- * Registers a postfilter function to apply
- * to a compiled template after compilation
- *
- * @param string $function name of PHP function to register
- */
- function register_postfilter($function)
- {
- $_name = (is_array($function)) ? $function[1] : $function;
- $this->_plugins['postfilter'][$_name]
- = array($function, null, null, false);
- }
-
- /**
- * Unregisters a postfilter function
- *
- * @param string $function name of PHP function
- */
- function unregister_postfilter($function)
- {
- unset($this->_plugins['postfilter'][$function]);
- }
-
- /**
- * Registers an output filter function to apply
- * to a template output
- *
- * @param string $function name of PHP function
- */
- function register_outputfilter($function)
- {
- $_name = (is_array($function)) ? $function[1] : $function;
- $this->_plugins['outputfilter'][$_name]
- = array($function, null, null, false);
- }
-
- /**
- * Unregisters an outputfilter function
- *
- * @param string $function name of PHP function
- */
- function unregister_outputfilter($function)
- {
- unset($this->_plugins['outputfilter'][$function]);
- }
-
- /**
- * load a filter of specified type and name
- *
- * @param string $type filter type
- * @param string $name filter name
- */
- function load_filter($type, $name)
- {
- switch ($type) {
- case 'output':
- $_params = array('plugins' => array(array($type . 'filter', $name, null, null, false)));
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
- smarty_core_load_plugins($_params, $this);
- break;
-
- case 'pre':
- case 'post':
- if (!isset($this->_plugins[$type . 'filter'][$name]))
- $this->_plugins[$type . 'filter'][$name] = false;
- break;
- }
- }
-
- /**
- * clear cached content for the given template and cache id
- *
- * @param string $tpl_file name of template file
- * @param string $cache_id name of cache_id
- * @param string $compile_id name of compile_id
- * @param string $exp_time expiration time
- * @return boolean
- */
- function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
- {
-
- if (!isset($compile_id))
- $compile_id = $this->compile_id;
-
- if (!isset($tpl_file))
- $compile_id = null;
-
- $_auto_id = $this->_get_auto_id($cache_id, $compile_id);
-
- if (!empty($this->cache_handler_func)) {
- return call_user_func_array($this->cache_handler_func,
- array('clear', &$this, &$dummy, $tpl_file, $cache_id, $compile_id, $exp_time));
- } else {
- $_params = array('auto_base' => $this->cache_dir,
- 'auto_source' => $tpl_file,
- 'auto_id' => $_auto_id,
- 'exp_time' => $exp_time);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
- return smarty_core_rm_auto($_params, $this);
- }
-
- }
-
-
- /**
- * clear the entire contents of cache (all templates)
- *
- * @param string $exp_time expire time
- * @return boolean results of {@link smarty_core_rm_auto()}
- */
- function clear_all_cache($exp_time = null)
- {
- if (!empty($this->cache_handler_func)) {
- $dummy = null;
- call_user_func_array($this->cache_handler_func,
- array('clear', &$this, &$dummy, null, null, null, $exp_time));
- } else {
- $_params = array('auto_base' => $this->cache_dir,
- 'auto_source' => null,
- 'auto_id' => null,
- 'exp_time' => $exp_time);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
- return smarty_core_rm_auto($_params, $this);
- }
- }
-
-
- /**
- * test to see if valid cache exists for this template
- *
- * @param string $tpl_file name of template file
- * @param string $cache_id
- * @param string $compile_id
- * @return string|false results of {@link _read_cache_file()}
- */
- function is_cached($tpl_file, $cache_id = null, $compile_id = null)
- {
- if (!$this->caching)
- return false;
-
- if (!isset($compile_id))
- $compile_id = $this->compile_id;
-
- $_params = array(
- 'tpl_file' => $tpl_file,
- 'cache_id' => $cache_id,
- 'compile_id' => $compile_id
- );
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.read_cache_file.php');
- return smarty_core_read_cache_file($_params, $this);
- }
-
-
- /**
- * clear all the assigned template variables.
- *
- */
- function clear_all_assign()
- {
- $this->_tpl_vars = array();
- }
-
- /**
- * clears compiled version of specified template resource,
- * or all compiled template files if one is not specified.
- * This function is for advanced use only, not normally needed.
- *
- * @param string $tpl_file
- * @param string $compile_id
- * @param string $exp_time
- * @return boolean results of {@link smarty_core_rm_auto()}
- */
- function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
- {
- if (!isset($compile_id)) {
- $compile_id = $this->compile_id;
- }
- $_params = array('auto_base' => $this->compile_dir,
- 'auto_source' => $tpl_file,
- 'auto_id' => $compile_id,
- 'exp_time' => $exp_time,
- 'extensions' => array('.inc', '.php'));
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
- return smarty_core_rm_auto($_params, $this);
- }
-
- /**
- * Checks whether requested template exists.
- *
- * @param string $tpl_file
- * @return boolean
- */
- function template_exists($tpl_file)
- {
- $_params = array('resource_name' => $tpl_file, 'quiet'=>true, 'get_source'=>false);
- return $this->_fetch_resource_info($_params);
- }
-
- /**
- * Returns an array containing template variables
- *
- * @param string $name
- * @param string $type
- * @return array
- */
- function &get_template_vars($name=null)
- {
- if(!isset($name)) {
- return $this->_tpl_vars;
- }
- if(isset($this->_tpl_vars[$name])) {
- return $this->_tpl_vars[$name];
- }
- }
-
- /**
- * Returns an array containing config variables
- *
- * @param string $name
- * @param string $type
- * @return array
- */
- function &get_config_vars($name=null)
- {
- if(!isset($name) && is_array($this->_config[0])) {
- return $this->_config[0]['vars'];
- } else if(isset($this->_config[0]['vars'][$name])) {
- return $this->_config[0]['vars'][$name];
- }
- }
-
- /**
- * trigger Smarty error
- *
- * @param string $error_msg
- * @param integer $error_type
- */
- function trigger_error($error_msg, $error_type = E_USER_WARNING)
- {
- trigger_error("Smarty error: $error_msg", $error_type);
- }
-
-
- /**
- * executes & displays the template results
- *
- * @param string $resource_name
- * @param string $cache_id
- * @param string $compile_id
- */
- function display($resource_name, $cache_id = null, $compile_id = null)
- {
- $this->fetch($resource_name, $cache_id, $compile_id, true);
- }
-
- /**
- * executes & returns or displays the template results
- *
- * @param string $resource_name
- * @param string $cache_id
- * @param string $compile_id
- * @param boolean $display
- */
- function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)
- {
- static $_cache_info = array();
-
- $_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(error_reporting() & ~E_NOTICE);
-
- if (!$this->debugging && $this->debugging_ctrl == 'URL'
- && @strstr($GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING'], $this->_smarty_debug_id)) {
- // enable debugging from URL
- $this->debugging = true;
- }
-
- if ($this->debugging) {
- // capture time for debugging info
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $_debug_start_time = smarty_core_get_microtime($_params, $this);
- $this->_smarty_debug_info[] = array('type' => 'template',
- 'filename' => $resource_name,
- 'depth' => 0);
- $_included_tpls_idx = count($this->_smarty_debug_info) - 1;
- }
-
- if (!isset($compile_id)) {
- $compile_id = $this->compile_id;
- }
-
- $this->_compile_id = $compile_id;
- $this->_inclusion_depth = 0;
-
- if ($this->caching) {
- // save old cache_info, initialize cache_info
- array_push($_cache_info, $this->_cache_info);
- $this->_cache_info = array();
- $_params = array(
- 'tpl_file' => $resource_name,
- 'cache_id' => $cache_id,
- 'compile_id' => $compile_id,
- 'results' => null
- );
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.read_cache_file.php');
- if (smarty_core_read_cache_file($_params, $this)) {
- $_smarty_results = $_params['results'];
- if (@count($this->_cache_info['insert_tags'])) {
- $_params = array('plugins' => $this->_cache_info['insert_tags']);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
- smarty_core_load_plugins($_params, $this);
- $_params = array('results' => $_smarty_results);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_cached_inserts.php');
- $_smarty_results = smarty_core_process_cached_inserts($_params, $this);
- }
- if (@count($this->_cache_info['cache_serials'])) {
- $_params = array('results' => $_smarty_results);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_compiled_include.php');
- $_smarty_results = smarty_core_process_compiled_include($_params, $this);
- }
-
-
- if ($display) {
- if ($this->debugging)
- {
- // capture time for debugging info
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $_debug_start_time;
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
- $_smarty_results .= smarty_core_display_debug_console($_params, $this);
- }
- if ($this->cache_modified_check) {
- $_last_modified_date = @substr($GLOBALS['HTTP_SERVER_VARS']['HTTP_IF_MODIFIED_SINCE'], 0, strpos($GLOBALS['HTTP_SERVER_VARS']['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
- $_gmt_mtime = gmdate('D, d M Y H:i:s', $this->_cache_info['timestamp']).' GMT';
- if (@count($this->_cache_info['insert_tags']) == 0
- && !$this->_cache_serials
- && $_gmt_mtime == $_last_modified_date) {
- if (php_sapi_name()=='cgi')
- header("Status: 304 Not Modified");
- else
- header("HTTP/1.1 304 Not Modified");
-
- } else {
- header("Last-Modified: ".$_gmt_mtime);
- echo $_smarty_results;
- }
- } else {
- echo $_smarty_results;
- }
- error_reporting($_smarty_old_error_level);
- // restore initial cache_info
- $this->_cache_info = array_pop($_cache_info);
- return true;
- } else {
- error_reporting($_smarty_old_error_level);
- // restore initial cache_info
- $this->_cache_info = array_pop($_cache_info);
- return $_smarty_results;
- }
- } else {
- $this->_cache_info['template'][$resource_name] = true;
- if ($this->cache_modified_check) {
- header("Last-Modified: ".gmdate('D, d M Y H:i:s', time()).' GMT');
- }
- }
- }
-
- // load filters that are marked as autoload
- if (count($this->autoload_filters)) {
- foreach ($this->autoload_filters as $_filter_type => $_filters) {
- foreach ($_filters as $_filter) {
- $this->load_filter($_filter_type, $_filter);
- }
- }
- }
-
- $_smarty_compile_path = $this->_get_compile_path($resource_name);
-
- // if we just need to display the results, don't perform output
- // buffering - for speed
- $_cache_including = $this->_cache_including;
- $this->_cache_including = false;
- if ($display && !$this->caching && count($this->_plugins['outputfilter']) == 0) {
- if ($this->_is_compiled($resource_name, $_smarty_compile_path)
- || $this->_compile_resource($resource_name, $_smarty_compile_path))
- {
- include($_smarty_compile_path);
- }
- } else {
- ob_start();
- if ($this->_is_compiled($resource_name, $_smarty_compile_path)
- || $this->_compile_resource($resource_name, $_smarty_compile_path))
- {
- include($_smarty_compile_path);
- }
- $_smarty_results = ob_get_contents();
- ob_end_clean();
-
- foreach ((array)$this->_plugins['outputfilter'] as $_output_filter) {
- $_smarty_results = call_user_func_array($_output_filter[0], array($_smarty_results, &$this));
- }
- }
-
- if ($this->caching) {
- $_params = array('tpl_file' => $resource_name,
- 'cache_id' => $cache_id,
- 'compile_id' => $compile_id,
- 'results' => $_smarty_results);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_cache_file.php');
- smarty_core_write_cache_file($_params, $this);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_cached_inserts.php');
- $_smarty_results = smarty_core_process_cached_inserts($_params, $this);
-
- if ($this->_cache_serials) {
- // strip nocache-tags from output
- $_smarty_results = preg_replace('!(\{/?nocache\:[0-9a-f]{32}#\d+\})!s'
- ,''
- ,$_smarty_results);
- }
- // restore initial cache_info
- $this->_cache_info = array_pop($_cache_info);
- }
- $this->_cache_including = $_cache_including;
-
- if ($display) {
- if (isset($_smarty_results)) { echo $_smarty_results; }
- if ($this->debugging) {
- // capture time for debugging info
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = (smarty_core_get_microtime($_params, $this) - $_debug_start_time);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
- echo smarty_core_display_debug_console($_params, $this);
- }
- error_reporting($_smarty_old_error_level);
- return;
- } else {
- error_reporting($_smarty_old_error_level);
- if (isset($_smarty_results)) { return $_smarty_results; }
- }
- }
-
- /**
- * load configuration values
- *
- * @param string $file
- * @param string $section
- * @param string $scope
- */
- function config_load($file, $section = null, $scope = 'global')
- {
- require_once($this->_get_plugin_filepath('function', 'config_load'));
- smarty_function_config_load(array('file' => $file, 'section' => $section, 'scope' => $scope), $this);
- }
-
- /**
- * return a reference to a registered object
- *
- * @param string $name
- * @return object
- */
- function &get_registered_object($name) {
- if (!isset($this->_reg_objects[$name]))
- $this->_trigger_fatal_error("'$name' is not a registered object");
-
- if (!is_object($this->_reg_objects[$name][0]))
- $this->_trigger_fatal_error("registered '$name' is not an object");
-
- return $this->_reg_objects[$name][0];
- }
-
- /**
- * clear configuration values
- *
- * @param string $var
- */
- function clear_config($var = null)
- {
- if(!isset($var)) {
- // clear all values
- $this->_config = array(array('vars' => array(),
- 'files' => array()));
- } else {
- unset($this->_config[0]['vars'][$var]);
- }
- }
-
- /**
- * get filepath of requested plugin
- *
- * @param string $type
- * @param string $name
- * @return string|false
- */
- function _get_plugin_filepath($type, $name)
- {
- $_params = array('type' => $type, 'name' => $name);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.assemble_plugin_filepath.php');
- return smarty_core_assemble_plugin_filepath($_params, $this);
- }
-
- /**
- * test if resource needs compiling
- *
- * @param string $resource_name
- * @param string $compile_path
- * @return boolean
- */
- function _is_compiled($resource_name, $compile_path)
- {
- if (!$this->force_compile && file_exists($compile_path)) {
- if (!$this->compile_check) {
- // no need to check compiled file
- return true;
- } else {
- // get file source and timestamp
- $_params = array('resource_name' => $resource_name, 'get_source'=>false);
- if (!$this->_fetch_resource_info($_params, $this)) {
- return false;
- }
- if ($_params['resource_timestamp'] <= filemtime($compile_path)) {
- // template not expired, no recompile
- return true;
- } else {
- // compile template
- return false;
- }
- }
- } else {
- // compiled template does not exist, or forced compile
- return false;
- }
- }
-
- /**
- * compile the template
- *
- * @param string $resource_name
- * @param string $compile_path
- * @return boolean
- */
- function _compile_resource($resource_name, $compile_path)
- {
-
- $_params = array('resource_name' => $resource_name);
- if (!$this->_fetch_resource_info($_params)) {
- return false;
- }
-
- $_source_content = $_params['source_content'];
- $_resource_timestamp = $_params['resource_timestamp'];
- $_cache_include = substr($compile_path, 0, -4).'.inc';
-
- if ($this->_compile_source($resource_name, $_source_content, $_compiled_content, $_cache_include)) {
- // if a _cache_serial was set, we also have to write an include-file:
- if ($this->_cache_include_info) {
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_include.php');
- smarty_core_write_compiled_include(array_merge($this->_cache_include_info, array('compiled_content'=>$_compiled_content)), $this);
- }
-
- $_params = array('compile_path'=>$compile_path, 'compiled_content' => $_compiled_content, 'resource_timestamp' => $_resource_timestamp);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php');
- smarty_core_write_compiled_resource($_params, $this);
-
- return true;
- } else {
- $this->trigger_error($smarty_compiler->_error_msg);
- return false;
- }
-
- }
-
- /**
- * compile the given source
- *
- * @param string $resource_name
- * @param string $source_content
- * @param string $compiled_content
- * @return boolean
- */
- function _compile_source($resource_name, &$source_content, &$compiled_content, $cache_include_path=null)
- {
- if (file_exists(SMARTY_DIR . $this->compiler_file)) {
- require_once(SMARTY_DIR . $this->compiler_file);
- } else {
- // use include_path
- require_once($this->compiler_file);
- }
-
-
- $smarty_compiler = new $this->compiler_class;
-
- $smarty_compiler->template_dir = $this->template_dir;
- $smarty_compiler->compile_dir = $this->compile_dir;
- $smarty_compiler->plugins_dir = $this->plugins_dir;
- $smarty_compiler->config_dir = $this->config_dir;
- $smarty_compiler->force_compile = $this->force_compile;
- $smarty_compiler->caching = $this->caching;
- $smarty_compiler->php_handling = $this->php_handling;
- $smarty_compiler->left_delimiter = $this->left_delimiter;
- $smarty_compiler->right_delimiter = $this->right_delimiter;
- $smarty_compiler->_version = $this->_version;
- $smarty_compiler->security = $this->security;
- $smarty_compiler->secure_dir = $this->secure_dir;
- $smarty_compiler->security_settings = $this->security_settings;
- $smarty_compiler->trusted_dir = $this->trusted_dir;
- $smarty_compiler->_reg_objects = &$this->_reg_objects;
- $smarty_compiler->_plugins = &$this->_plugins;
- $smarty_compiler->_tpl_vars = &$this->_tpl_vars;
- $smarty_compiler->default_modifiers = $this->default_modifiers;
- $smarty_compiler->compile_id = $this->_compile_id;
- $smarty_compiler->_config = $this->_config;
- $smarty_compiler->request_use_auto_globals = $this->request_use_auto_globals;
-
- $smarty_compiler->_cache_serial = null;
- $smarty_compiler->_cache_include = $cache_include_path;
-
-
- $_results = $smarty_compiler->_compile_file($resource_name, $source_content, $compiled_content);
-
- if ($smarty_compiler->_cache_serial) {
- $this->_cache_include_info = array(
- 'cache_serial'=>$smarty_compiler->_cache_serial
- ,'plugins_code'=>$smarty_compiler->_plugins_code
- ,'include_file_path' => $cache_include_path);
-
- } else {
- $this->_cache_include_info = null;
-
- }
-
- return $_results;
- }
-
- /**
- * Get the compile path for this resource
- *
- * @param string $resource_name
- * @return string results of {@link _get_auto_filename()}
- */
- function _get_compile_path($resource_name)
- {
- return $this->_get_auto_filename($this->compile_dir, $resource_name,
- $this->_compile_id) . '.php';
- }
-
- /**
- * fetch the template info. Gets timestamp, and source
- * if get_source is true
- *
- * sets $source_content to the source of the template, and
- * $resource_timestamp to its time stamp
- * @param string $resource_name
- * @param string $source_content
- * @param integer $resource_timestamp
- * @param boolean $get_source
- * @param boolean $quiet
- * @return boolean
- */
-
- function _fetch_resource_info(&$params)
- {
- if(!isset($params['get_source'])) { $params['get_source'] = true; }
- if(!isset($params['quiet'])) { $params['quiet'] = false; }
-
- $_return = false;
- $_params = array('resource_name' => $params['resource_name']) ;
- if (isset($params['resource_base_path']))
- $_params['resource_base_path'] = $params['resource_base_path'];
-
- if ($this->_parse_resource_name($_params)) {
- $_resource_type = $_params['resource_type'];
- $_resource_name = $_params['resource_name'];
- switch ($_resource_type) {
- case 'file':
- if ($params['get_source']) {
- $params['source_content'] = $this->_read_file($_resource_name);
- }
- $params['resource_timestamp'] = filemtime($_resource_name);
- $_return = is_file($_resource_name);
- break;
-
- default:
- // call resource functions to fetch the template source and timestamp
- if ($params['get_source']) {
- $_source_return = isset($this->_plugins['resource'][$_resource_type]) &&
- call_user_func_array($this->_plugins['resource'][$_resource_type][0][0],
- array($_resource_name, &$params['source_content'], &$this));
- } else {
- $_source_return = true;
- }
-
- $_timestamp_return = isset($this->_plugins['resource'][$_resource_type]) &&
- call_user_func_array($this->_plugins['resource'][$_resource_type][0][1],
- array($_resource_name, &$params['resource_timestamp'], &$this));
-
- $_return = $_source_return && $_timestamp_return;
- break;
- }
- }
-
- if (!$_return) {
- // see if we can get a template with the default template handler
- if (!empty($this->default_template_handler_func)) {
- if (!is_callable($this->default_template_handler_func)) {
- $this->trigger_error("default template handler function \"$this->default_template_handler_func\" doesn't exist.");
- } else {
- $_return = call_user_func_array(
- $this->default_template_handler_func,
- array($_params['resource_type'], $_params['resource_name'], &$params['source_content'], &$params['resource_timestamp'], &$this));
- }
- }
- }
-
- if (!$_return) {
- if (!$params['quiet']) {
- $this->trigger_error('unable to read resource: "' . $params['resource_name'] . '"');
- }
- } else if ($_return && $this->security) {
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
- if (!smarty_core_is_secure($_params, $this)) {
- if (!$params['quiet'])
- $this->trigger_error('(secure mode) accessing "' . $params['resource_name'] . '" is not allowed');
- $params['source_content'] = null;
- $params['resource_timestamp'] = null;
- return false;
- }
- }
- return $_return;
- }
-
-
- /**
- * parse out the type and name from the resource
- *
- * @param string $resource_base_path
- * @param string $resource_name
- * @param string $resource_type
- * @param string $resource_name
- * @return boolean
- */
-
- function _parse_resource_name(&$params)
- {
-
- // split tpl_path by the first colon
- $_resource_name_parts = explode(':', $params['resource_name'], 2);
-
- if (count($_resource_name_parts) == 1) {
- // no resource type given
- $params['resource_type'] = $this->default_resource_type;
- $params['resource_name'] = $_resource_name_parts[0];
- } else {
- if(strlen($_resource_name_parts[0]) == 1) {
- // 1 char is not resource type, but part of filepath
- $params['resource_type'] = $this->default_resource_type;
- $params['resource_name'] = $params['resource_name'];
- } else {
- $params['resource_type'] = $_resource_name_parts[0];
- $params['resource_name'] = $_resource_name_parts[1];
- }
- }
-
- if ($params['resource_type'] == 'file') {
- if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $params['resource_name'])) {
- // relative pathname to $params['resource_base_path']
- // use the first directory where the file is found
- if (isset($params['resource_base_path'])) {
- $_resource_base_path = (array)$params['resource_base_path'];
- } else {
- $_resource_base_path = (array)$this->template_dir;
- $_resource_base_path[] = '.';
- }
- foreach ($_resource_base_path as $_curr_path) {
- $_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $params['resource_name'];
- if (file_exists($_fullpath) && is_file($_fullpath)) {
- $params['resource_name'] = $_fullpath;
- return true;
- }
- // didn't find the file, try include_path
- $_params = array('file_path' => $_fullpath);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
- if(smarty_core_get_include_path($_params, $this)) {
- $params['resource_name'] = $_params['new_file_path'];
- return true;
- }
- }
- return false;
- }
- } elseif (empty($this->_plugins['resource'][$params['resource_type']])) {
- $_params = array('type' => $params['resource_type']);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_resource_plugin.php');
- smarty_core_load_resource_plugin($_params, $this);
- }
-
- return true;
- }
-
-
- /**
- * Handle modifiers
- *
- * @param string|null $modifier_name
- * @param array|null $map_array
- * @return string result of modifiers
- */
- function _run_mod_handler()
- {
- $_args = func_get_args();
- list($_modifier_name, $_map_array) = array_splice($_args, 0, 2);
- list($_func_name, $_tpl_file, $_tpl_line) =
- $this->_plugins['modifier'][$_modifier_name];
-
- $_var = $_args[0];
- foreach ($_var as $_key => $_val) {
- $_args[0] = $_val;
- $_var[$_key] = call_user_func_array($_func_name, $_args);
- }
- return $_var;
- }
-
- /**
- * Remove starting and ending quotes from the string
- *
- * @param string $string
- * @return string
- */
- function _dequote($string)
- {
- if (($string{0} == "'" || $string{0} == '"') &&
- $string{strlen($string)-1} == $string{0})
- return substr($string, 1, -1);
- else
- return $string;
- }
-
-
- /**
- * read in a file from line $start for $lines.
- * read the entire file if $start and $lines are null.
- *
- * @param string $filename
- * @param integer $start
- * @param integer $lines
- * @return string
- */
- function _read_file($filename, $start=null, $lines=null)
- {
- if (!($fd = @fopen($filename, 'r'))) {
- return false;
- }
- flock($fd, LOCK_SH);
- if ($start == null && $lines == null) {
- // read the entire file
- $contents = fread($fd, filesize($filename));
- } else {
- if ( $start > 1 ) {
- // skip the first lines before $start
- for ($loop=1; $loop < $start; $loop++) {
- fgets($fd, 65536);
- }
- }
- if ( $lines == null ) {
- // read the rest of the file
- while (!feof($fd)) {
- $contents .= fgets($fd, 65536);
- }
- } else {
- // read up to $lines lines
- for ($loop=0; $loop < $lines; $loop++) {
- $contents .= fgets($fd, 65536);
- if (feof($fd)) {
- break;
- }
- }
- }
- }
- fclose($fd);
- return $contents;
- }
-
- /**
- * get a concrete filename for automagically created content
- *
- * @param string $auto_base
- * @param string $auto_source
- * @param string $auto_id
- * @return string
- * @staticvar string|null
- * @staticvar string|null
- */
- function _get_auto_filename($auto_base, $auto_source = null, $auto_id = null)
- {
- $_compile_dir_sep = $this->use_sub_dirs ? DIRECTORY_SEPARATOR : '^';
-
- if(@is_dir($auto_base)) {
- $_return = $auto_base . DIRECTORY_SEPARATOR;
- } else {
- // auto_base not found, try include_path
- $_params = array('file_path' => $auto_base);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
- smarty_core_get_include_path($_params, $this);
- $_return = isset($_params['new_file_path']) ? $_params['new_file_path'] . DIRECTORY_SEPARATOR : null;
- }
-
- if(isset($auto_id)) {
- // make auto_id safe for directory names
- $auto_id = str_replace('%7C',$_compile_dir_sep,(urlencode($auto_id)));
- // split into separate directories
- $_return .= $auto_id . $_compile_dir_sep;
- }
-
- if(isset($auto_source)) {
- // make source name safe for filename
- $_filename = urlencode(basename($auto_source));
- $_crc32 = crc32($auto_source) . $_compile_dir_sep;
- // prepend %% to avoid name conflicts with
- // with $params['auto_id'] names
- $_crc32 = '%%' . substr($_crc32,0,3) . $_compile_dir_sep . '%%' . $_crc32;
- $_return .= $_crc32 . $_filename;
- }
-
- return $_return;
- }
-
- /**
- * unlink a file, possibly using expiration time
- *
- * @param string $resource
- * @param integer $exp_time
- */
- function _unlink($resource, $exp_time = null)
- {
- if(isset($exp_time)) {
- if(time() - @filemtime($resource) >= $exp_time) {
- return @unlink($resource);
- }
- } else {
- return @unlink($resource);
- }
- }
-
- /**
- * returns an auto_id for auto-file-functions
- *
- * @param string $cache_id
- * @param string $compile_id
- * @return string|null
- */
- function _get_auto_id($cache_id=null, $compile_id=null) {
- if (isset($cache_id))
- return (isset($compile_id)) ? $cache_id . '|' . $compile_id : $cache_id;
- elseif(isset($compile_id))
- return $compile_id;
- else
- return null;
- }
-
- /**
- * trigger Smarty plugin error
- *
- * @param string $error_msg
- * @param string $tpl_file
- * @param integer $tpl_line
- * @param string $file
- * @param integer $line
- * @param integer $error_type
- */
- function _trigger_fatal_error($error_msg, $tpl_file = null, $tpl_line = null,
- $file = null, $line = null, $error_type = E_USER_ERROR)
- {
- if(isset($file) && isset($line)) {
- $info = ' ('.basename($file).", line $line)";
- } else {
- $info = null;
- }
- if (isset($tpl_line) && isset($tpl_file)) {
- trigger_error("Smarty error: [in " . $tpl_file . " line " .
- $tpl_line . "]: $error_msg$info", $error_type);
- } else {
- trigger_error("Smarty error: $error_msg$info", $error_type);
- }
- }
-
-
- /**
- * callback function for preg_replace, to call a non-cacheable block
- * @return string
- */
- function _process_compiled_include_callback($match) {
- $_func = '_smarty_tplfunc_'.$match[2].'_'.$match[3];
- ob_start();
- $_func($this);
- $_ret = ob_get_contents();
- ob_end_clean();
- return $_ret;
- }
-
-
- /**
- * called for included templates
- *
- * @param string $_smarty_include_tpl_file
- * @param string $_smarty_include_vars
- */
-
- // $_smarty_include_tpl_file, $_smarty_include_vars
-
- function _smarty_include($params)
- {
- if ($this->debugging) {
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $debug_start_time = smarty_core_get_microtime($_params, $this);
- $this->_smarty_debug_info[] = array('type' => 'template',
- 'filename' => $params['smarty_include_tpl_file'],
- 'depth' => ++$this->_inclusion_depth);
- $included_tpls_idx = count($this->_smarty_debug_info) - 1;
- }
-
- $this->_tpl_vars = array_merge($this->_tpl_vars, $params['smarty_include_vars']);
-
- // config vars are treated as local, so push a copy of the
- // current ones onto the front of the stack
- array_unshift($this->_config, $this->_config[0]);
-
- $_smarty_compile_path = $this->_get_compile_path($params['smarty_include_tpl_file']);
-
-
- if ($this->_is_compiled($params['smarty_include_tpl_file'], $_smarty_compile_path)
- || $this->_compile_resource($params['smarty_include_tpl_file'], $_smarty_compile_path))
- {
- include($_smarty_compile_path);
- }
-
- // pop the local vars off the front of the stack
- array_shift($this->_config);
-
- $this->_inclusion_depth--;
-
- if ($this->debugging) {
- // capture time for debugging info
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $this->_smarty_debug_info[$included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $debug_start_time;
- }
-
- if ($this->caching) {
- $this->_cache_info['template'][$params['smarty_include_tpl_file']] = true;
- }
- }
-
-
- /**
- * get or set an array of cached attributes for function that is
- * not cacheable
- * @return array
- */
- function &_smarty_cache_attrs($cache_serial, $count) {
- $_cache_attrs =& $this->_cache_info['cache_attrs'][$cache_serial][$count];
-
- if ($this->_cache_including) {
- /* return next set of cache_attrs */
- $_return =& current($_cache_attrs);
- next($_cache_attrs);
- return $_return;
-
- } else {
- /* add a reference to a new set of cache_attrs */
- $_cache_attrs[] = array();
- return $_cache_attrs[count($_cache_attrs)-1];
-
- }
-
- }
-
-
- /**
- * wrapper for include() retaining $this
- * @return mixed
- */
- function _include($filename, $once=false, $params=null)
- {
- if ($once) {
- return include_once($filename);
- } else {
- return include($filename);
- }
- }
-
-
- /**
- * wrapper for eval() retaining $this
- * @return mixed
- */
- function _eval($code, $params=null)
- {
- return eval($code);
- }
- /**#@-*/
-
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+
+/**
+ * Project: Smarty: the PHP compiling template engine
+ * File: Smarty.class.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For questions, help, comments, discussion, etc., please join the
+ * Smarty mailing list. Send a blank e-mail to
+ * smarty-general-subscribe@lists.php.net
+ *
+ * You may contact the authors of Smarty by e-mail at:
+ * monte@ispi.net
+ * andrei@php.net
+ *
+ * Or, write to:
+ * Monte Ohrt
+ * Director of Technology, ispi
+ * 237 S. 70th suite 220
+ * Lincoln, NE 68510
+ *
+ * The latest version of Smarty can be obtained from:
+ * http://smarty.php.net/
+ *
+ * @link http://smarty.php.net/
+ * @copyright 2001-2003 ispi of Lincoln, Inc.
+ * @author Monte Ohrt <monte@ispi.net>
+ * @author Andrei Zmievski <andrei@php.net>
+ * @package Smarty
+ * @version 2.6.0
+ */
+
+/* $Id$ */
+
+/**
+ * DIR_SEP isn't used anymore, but third party apps might
+ */
+if(!defined('DIR_SEP')) {
+ define('DIR_SEP', DIRECTORY_SEPARATOR);
+}
+
+/**
+ * set SMARTY_DIR to absolute path to Smarty library files.
+ * if not defined, include_path will be used. Sets SMARTY_DIR only if user
+ * application has not already defined it.
+ */
+
+if (!defined('SMARTY_DIR')) {
+ define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
+}
+
+define('SMARTY_PHP_PASSTHRU', 0);
+define('SMARTY_PHP_QUOTE', 1);
+define('SMARTY_PHP_REMOVE', 2);
+define('SMARTY_PHP_ALLOW', 3);
+
+/**
+ * @package Smarty
+ */
+class Smarty
+{
+ /**#@+
+ * Smarty Configuration Section
+ */
+
+ /**
+ * The name of the directory where templates are located.
+ *
+ * @var string
+ */
+ var $template_dir = 'templates';
+
+ /**
+ * The directory where compiled templates are located.
+ *
+ * @var string
+ */
+ var $compile_dir = 'templates_c';
+
+ /**
+ * The directory where config files are located.
+ *
+ * @var string
+ */
+ var $config_dir = 'configs';
+
+ /**
+ * An array of directories searched for plugins.
+ *
+ * @var array
+ */
+ var $plugins_dir = array('plugins');
+
+ /**
+ * If debugging is enabled, a debug console window will display
+ * when the page loads (make sure your browser allows unrequested
+ * popup windows)
+ *
+ * @var boolean
+ */
+ var $debugging = false;
+
+ /**
+ * This is the path to the debug console template. If not set,
+ * the default one will be used.
+ *
+ * @var string
+ */
+ var $debug_tpl = '';
+
+ /**
+ * This determines if debugging is enable-able from the browser.
+ * <ul>
+ * <li>NONE => no debugging control allowed</li>
+ * <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li>
+ * </ul>
+ * @link http://www.foo.dom/index.php?SMARTY_DEBUG
+ * @var string
+ */
+ var $debugging_ctrl = 'NONE';
+
+ /**
+ * This tells Smarty whether to check for recompiling or not. Recompiling
+ * does not need to happen unless a template or config file is changed.
+ * Typically you enable this during development, and disable for
+ * production.
+ *
+ * @var boolean
+ */
+ var $compile_check = true;
+
+ /**
+ * This forces templates to compile every time. Useful for development
+ * or debugging.
+ *
+ * @var boolean
+ */
+ var $force_compile = false;
+
+ /**
+ * This enables template caching.
+ * <ul>
+ * <li>0 = no caching</li>
+ * <li>1 = use class cache_lifetime value</li>
+ * <li>2 = use cache_lifetime in cache file</li>
+ * </ul>
+ * @var integer
+ */
+ var $caching = 0;
+
+ /**
+ * The name of the directory for cache files.
+ *
+ * @var string
+ */
+ var $cache_dir = 'cache';
+
+ /**
+ * This is the number of seconds cached content will persist.
+ * <ul>
+ * <li>0 = always regenerate cache</li>
+ * <li>-1 = never expires</li>
+ * </ul>
+ *
+ * @var integer
+ */
+ var $cache_lifetime = 3600;
+
+ /**
+ * Only used when $caching is enabled. If true, then If-Modified-Since headers
+ * are respected with cached content, and appropriate HTTP headers are sent.
+ * This way repeated hits to a cached page do not send the entire page to the
+ * client every time.
+ *
+ * @var boolean
+ */
+ var $cache_modified_check = false;
+
+ /**
+ * This determines how Smarty handles "<?php ... ?>" tags in templates.
+ * possible values:
+ * <ul>
+ * <li>SMARTY_PHP_PASSTHRU -> print tags as plain text</li>
+ * <li>SMARTY_PHP_QUOTE -> escape tags as entities</li>
+ * <li>SMARTY_PHP_REMOVE -> remove php tags</li>
+ * <li>SMARTY_PHP_ALLOW -> execute php tags</li>
+ * </ul>
+ *
+ * @var integer
+ */
+ var $php_handling = SMARTY_PHP_PASSTHRU;
+
+ /**
+ * This enables template security. When enabled, many things are restricted
+ * in the templates that normally would go unchecked. This is useful when
+ * untrusted parties are editing templates and you want a reasonable level
+ * of security. (no direct execution of PHP in templates for example)
+ *
+ * @var boolean
+ */
+ var $security = false;
+
+ /**
+ * This is the list of template directories that are considered secure. This
+ * is used only if {@link $security} is enabled. One directory per array
+ * element. {@link $template_dir} is in this list implicitly.
+ *
+ * @var array
+ */
+ var $secure_dir = array();
+
+ /**
+ * These are the security settings for Smarty. They are used only when
+ * {@link $security} is enabled.
+ *
+ * @var array
+ */
+ var $security_settings = array(
+ 'PHP_HANDLING' => false,
+ 'IF_FUNCS' => array('array', 'list',
+ 'isset', 'empty',
+ 'count', 'sizeof',
+ 'in_array', 'is_array',
+ 'true','false'),
+ 'INCLUDE_ANY' => false,
+ 'PHP_TAGS' => false,
+ 'MODIFIER_FUNCS' => array('count'),
+ 'ALLOW_CONSTANTS' => false
+ );
+
+ /**
+ * This is an array of directories where trusted php scripts reside.
+ * {@link $security} is disabled during their inclusion/execution.
+ *
+ * @var array
+ */
+ var $trusted_dir = array();
+
+ /**
+ * The left delimiter used for the template tags.
+ *
+ * @var string
+ */
+ var $left_delimiter = '{';
+
+ /**
+ * The right delimiter used for the template tags.
+ *
+ * @var string
+ */
+ var $right_delimiter = '}';
+
+ /**
+ * The order in which request variables are registered, similar to
+ * variables_order in php.ini E = Environment, G = GET, P = POST,
+ * C = Cookies, S = Server
+ *
+ * @var string
+ */
+ var $request_vars_order = "EGPCS";
+
+ /**
+ * Indicates wether $HTTP_*_VARS[] (request_use_auto_globals=false)
+ * are uses as request-vars or $_*[]-vars. note: if
+ * request_use_auto_globals is true, then $request_vars_order has
+ * no effect, but the php-ini-value "gpc_order"
+ *
+ * @var boolean
+ */
+ var $request_use_auto_globals = false;
+
+ /**
+ * Set this if you want different sets of compiled files for the same
+ * templates. This is useful for things like different languages.
+ * Instead of creating separate sets of templates per language, you
+ * set different compile_ids like 'en' and 'de'.
+ *
+ * @var string
+ */
+ var $compile_id = null;
+
+ /**
+ * This tells Smarty whether or not to use sub dirs in the cache/ and
+ * templates_c/ directories. sub directories better organized, but
+ * may not work well with PHP safe mode enabled.
+ *
+ * @var boolean
+ *
+ */
+ var $use_sub_dirs = true;
+
+ /**
+ * This is a list of the modifiers to apply to all template variables.
+ * Put each modifier in a separate array element in the order you want
+ * them applied. example: <code>array('escape:"htmlall"');</code>
+ *
+ * @var array
+ */
+ var $default_modifiers = array();
+
+ /**
+ * This is the resource type to be used when not specified
+ * at the beginning of the resource path. examples:
+ * $smarty->display('file:index.tpl');
+ * $smarty->display('db:index.tpl');
+ * $smarty->display('index.tpl'); // will use default resource type
+ * {include file="file:index.tpl"}
+ * {include file="db:index.tpl"}
+ * {include file="index.tpl"} {* will use default resource type *}
+ *
+ * @var array
+ */
+ var $default_resource_type = 'file';
+
+ /**
+ * The function used for cache file handling. If not set, built-in caching is used.
+ *
+ * @var null|string function name
+ */
+ var $cache_handler_func = null;
+
+ /**
+ * These are the variables from the globals array that are
+ * assigned to all templates automatically. This isn't really
+ * necessary any more, you can use the $smarty var to access them
+ * directly.
+ *
+ * @var array
+ */
+ var $global_assign = array('HTTP_SERVER_VARS' => array('SCRIPT_NAME'));
+
+ /**
+ * The value of "undefined". Leave it alone :-)
+ *
+ * @var null
+ */
+ var $undefined = null;
+
+ /**
+ * This indicates which filters are automatically loaded into Smarty.
+ *
+ * @var array array of filter names
+ */
+ var $autoload_filters = array();
+
+ /**#@+
+ * @var boolean
+ */
+ /**
+ * This tells if config file vars of the same name overwrite each other or not.
+ * if disabled, same name variables are accumulated in an array.
+ */
+ var $config_overwrite = true;
+
+ /**
+ * This tells whether or not to automatically booleanize config file variables.
+ * If enabled, then the strings "on", "true", and "yes" are treated as boolean
+ * true, and "off", "false" and "no" are treated as boolean false.
+ */
+ var $config_booleanize = true;
+
+ /**
+ * This tells whether hidden sections [.foobar] are readable from the
+ * tempalates or not. Normally you would never allow this since that is
+ * the point behind hidden sections: the application can access them, but
+ * the templates cannot.
+ */
+ var $config_read_hidden = false;
+
+ /**
+ * This tells whether or not automatically fix newlines in config files.
+ * It basically converts \r (mac) or \r\n (dos) to \n
+ */
+ var $config_fix_newlines = true;
+ /**#@-*/
+
+ /**
+ * If a template cannot be found, this PHP function will be executed.
+ * Useful for creating templates on-the-fly or other special action.
+ *
+ * @var string function name
+ */
+ var $default_template_handler_func = '';
+
+ /**
+ * The file that contains the compiler class. This can a full
+ * pathname, or relative to the php_include path.
+ *
+ * @var string
+ */
+ var $compiler_file = 'Smarty_Compiler.class.php';
+
+ /**
+ * The class used for compiling templates.
+ *
+ * @var string
+ */
+ var $compiler_class = 'Smarty_Compiler';
+
+ /**
+ * The class used to load config vars.
+ *
+ * @var string
+ */
+ var $config_class = 'Config_File';
+
+/**#@+
+ * END Smarty Configuration Section
+ * There should be no need to touch anything below this line.
+ * @access private
+ */
+ /**
+ * error messages. true/false
+ *
+ * @var boolean
+ */
+ var $_error_msg = false;
+
+ /**
+ * where assigned template vars are kept
+ *
+ * @var array
+ */
+ var $_tpl_vars = array();
+
+ /**
+ * stores run-time $smarty.* vars
+ *
+ * @var null|array
+ */
+ var $_smarty_vars = null;
+
+ /**
+ * keeps track of sections
+ *
+ * @var array
+ */
+ var $_sections = array();
+
+ /**
+ * keeps track of foreach blocks
+ *
+ * @var array
+ */
+ var $_foreach = array();
+
+ /**
+ * keeps track of tag hierarchy
+ *
+ * @var array
+ */
+ var $_tag_stack = array();
+
+ /**
+ * configuration object
+ *
+ * @var Config_file
+ */
+ var $_conf_obj = null;
+
+ /**
+ * loaded configuration settings
+ *
+ * @var array
+ */
+ var $_config = array(array('vars' => array(), 'files' => array()));
+
+ /**
+ * md5 checksum of the string 'Smarty'
+ *
+ * @var string
+ */
+ var $_smarty_md5 = 'f8d698aea36fcbead2b9d5359ffca76f';
+
+ /**
+ * Smarty version number
+ *
+ * @var string
+ */
+ var $_version = '2.6.0';
+
+ /**
+ * current template inclusion depth
+ *
+ * @var integer
+ */
+ var $_inclusion_depth = 0;
+
+ /**
+ * for different compiled templates
+ *
+ * @var string
+ */
+ var $_compile_id = null;
+
+ /**
+ * text in URL to enable debug mode
+ *
+ * @var string
+ */
+ var $_smarty_debug_id = 'SMARTY_DEBUG';
+
+ /**
+ * debugging information for debug console
+ *
+ * @var array
+ */
+ var $_smarty_debug_info = array();
+
+ /**
+ * info that makes up a cache file
+ *
+ * @var array
+ */
+ var $_cache_info = array();
+
+ /**
+ * default file permissions
+ *
+ * @var integer
+ */
+ var $_file_perms = 0644;
+
+ /**
+ * default dir permissions
+ *
+ * @var integer
+ */
+ var $_dir_perms = 0771;
+
+ /**
+ * registered objects
+ *
+ * @var array
+ */
+ var $_reg_objects = array();
+
+ /**
+ * table keeping track of plugins
+ *
+ * @var array
+ */
+ var $_plugins = array(
+ 'modifier' => array(),
+ 'function' => array(),
+ 'block' => array(),
+ 'compiler' => array(),
+ 'prefilter' => array(),
+ 'postfilter' => array(),
+ 'outputfilter' => array(),
+ 'resource' => array(),
+ 'insert' => array());
+
+
+ /**
+ * cache serials
+ *
+ * @var array
+ */
+ var $_cache_serials = array();
+
+ /**
+ * name of optional cache include file
+ *
+ * @var string
+ */
+ var $_cache_include = null;
+
+ /**
+ * indicate if the current code is used in a compiled
+ * include
+ *
+ * @var string
+ */
+ var $_cache_including = false;
+
+ /**#@-*/
+ /**
+ * The class constructor.
+ *
+ * @uses $global_assign uses {@link assign()} to assign each corresponding
+ * value from $GLOBALS to the template vars
+ */
+ function Smarty()
+ {
+ foreach ($this->global_assign as $key => $var_name) {
+ if (is_array($var_name)) {
+ foreach ($var_name as $var) {
+ if (isset($GLOBALS[$key][$var])) {
+ $this->assign($var, $GLOBALS[$key][$var]);
+ } else {
+ $this->assign($var, $this->undefined);
+ }
+ }
+ } else {
+ if (isset($GLOBALS[$var_name])) {
+ $this->assign($var_name, $GLOBALS[$var_name]);
+ } else {
+ $this->assign($var_name, $this->undefined);
+ }
+ }
+ }
+ }
+
+
+ /**
+ * assigns values to template variables
+ *
+ * @param array|string $tpl_var the template variable name(s)
+ * @param mixed $value the value to assign
+ */
+ function assign($tpl_var, $value = null)
+ {
+ if (is_array($tpl_var)){
+ foreach ($tpl_var as $key => $val) {
+ if ($key != '') {
+ $this->_tpl_vars[$key] = $val;
+ }
+ }
+ } else {
+ if ($tpl_var != '')
+ $this->_tpl_vars[$tpl_var] = $value;
+ }
+ }
+
+ /**
+ * assigns values to template variables by reference
+ *
+ * @param string $tpl_var the template variable name
+ * @param mixed $value the referenced value to assign
+ */
+ function assign_by_ref($tpl_var, &$value)
+ {
+ if ($tpl_var != '')
+ $this->_tpl_vars[$tpl_var] = &$value;
+ }
+
+ /**
+ * appends values to template variables
+ *
+ * @param array|string $tpl_var the template variable name(s)
+ * @param mixed $value the value to append
+ */
+ function append($tpl_var, $value=null, $merge=false)
+ {
+ if (is_array($tpl_var)) {
+ // $tpl_var is an array, ignore $value
+ foreach ($tpl_var as $_key => $_val) {
+ if ($_key != '') {
+ if(!@is_array($this->_tpl_vars[$_key])) {
+ settype($this->_tpl_vars[$_key],'array');
+ }
+ if($merge && is_array($_val)) {
+ foreach($_val as $_mkey => $_mval) {
+ $this->_tpl_vars[$_key][$_mkey] = $_mval;
+ }
+ } else {
+ $this->_tpl_vars[$_key][] = $_val;
+ }
+ }
+ }
+ } else {
+ if ($tpl_var != '' && isset($value)) {
+ if(!@is_array($this->_tpl_vars[$tpl_var])) {
+ settype($this->_tpl_vars[$tpl_var],'array');
+ }
+ if($merge && is_array($value)) {
+ foreach($value as $_mkey => $_mval) {
+ $this->_tpl_vars[$tpl_var][$_mkey] = $_mval;
+ }
+ } else {
+ $this->_tpl_vars[$tpl_var][] = $value;
+ }
+ }
+ }
+ }
+
+ /**
+ * appends values to template variables by reference
+ *
+ * @param string $tpl_var the template variable name
+ * @param mixed $value the referenced value to append
+ */
+ function append_by_ref($tpl_var, &$value, $merge=false)
+ {
+ if ($tpl_var != '' && isset($value)) {
+ if(!@is_array($this->_tpl_vars[$tpl_var])) {
+ settype($this->_tpl_vars[$tpl_var],'array');
+ }
+ if ($merge && is_array($value)) {
+ foreach($value as $_key => $_val) {
+ $this->_tpl_vars[$tpl_var][$_key] = &$value[$_key];
+ }
+ } else {
+ $this->_tpl_vars[$tpl_var][] = &$value;
+ }
+ }
+ }
+
+
+ /**
+ * clear the given assigned template variable.
+ *
+ * @param string $tpl_var the template variable to clear
+ */
+ function clear_assign($tpl_var)
+ {
+ if (is_array($tpl_var))
+ foreach ($tpl_var as $curr_var)
+ unset($this->_tpl_vars[$curr_var]);
+ else
+ unset($this->_tpl_vars[$tpl_var]);
+ }
+
+
+ /**
+ * Registers custom function to be used in templates
+ *
+ * @param string $function the name of the template function
+ * @param string $function_impl the name of the PHP function to register
+ */
+ function register_function($function, $function_impl, $cacheable=true, $cache_attrs=null)
+ {
+ $this->_plugins['function'][$function] =
+ array($function_impl, null, null, false, $cacheable, $cache_attrs);
+
+ }
+
+ /**
+ * Unregisters custom function
+ *
+ * @param string $function name of template function
+ */
+ function unregister_function($function)
+ {
+ unset($this->_plugins['function'][$function]);
+ }
+
+ /**
+ * Registers object to be used in templates
+ *
+ * @param string $object name of template object
+ * @param object &$object_impl the referenced PHP object to register
+ * @param null|array $allowed list of allowed methods (empty = all)
+ * @param boolean $smarty_args smarty argument format, else traditional
+ * @param null|array $block_functs list of methods that are block format
+ */
+ function register_object($object, &$object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
+ {
+ settype($allowed, 'array');
+ settype($smarty_args, 'boolean');
+ $this->_reg_objects[$object] =
+ array(&$object_impl, $allowed, $smarty_args, $block_methods);
+ }
+
+ /**
+ * Unregisters object
+ *
+ * @param string $object name of template object
+ */
+ function unregister_object($object)
+ {
+ unset($this->_reg_objects[$object]);
+ }
+
+
+ /**
+ * Registers block function to be used in templates
+ *
+ * @param string $block name of template block
+ * @param string $block_impl PHP function to register
+ */
+ function register_block($block, $block_impl, $cacheable=true, $cache_attrs=null)
+ {
+ $this->_plugins['block'][$block] =
+ array($block_impl, null, null, false, $cacheable, $cache_attrs);
+ }
+
+ /**
+ * Unregisters block function
+ *
+ * @param string $block name of template function
+ */
+ function unregister_block($block)
+ {
+ unset($this->_plugins['block'][$block]);
+ }
+
+ /**
+ * Registers compiler function
+ *
+ * @param string $function name of template function
+ * @param string $function_impl name of PHP function to register
+ */
+ function register_compiler_function($function, $function_impl, $cacheable=true)
+ {
+ $this->_plugins['compiler'][$function] =
+ array($function_impl, null, null, false, $cacheable);
+ }
+
+ /**
+ * Unregisters compiler function
+ *
+ * @param string $function name of template function
+ */
+ function unregister_compiler_function($function)
+ {
+ unset($this->_plugins['compiler'][$function]);
+ }
+
+ /**
+ * Registers modifier to be used in templates
+ *
+ * @param string $modifier name of template modifier
+ * @param string $modifier_impl name of PHP function to register
+ */
+ function register_modifier($modifier, $modifier_impl)
+ {
+ $this->_plugins['modifier'][$modifier] =
+ array($modifier_impl, null, null, false);
+ }
+
+ /**
+ * Unregisters modifier
+ *
+ * @param string $modifier name of template modifier
+ */
+ function unregister_modifier($modifier)
+ {
+ unset($this->_plugins['modifier'][$modifier]);
+ }
+
+ /**
+ * Registers a resource to fetch a template
+ *
+ * @param string $type name of resource
+ * @param array $functions array of functions to handle resource
+ */
+ function register_resource($type, $functions)
+ {
+ if (count($functions)==4) {
+ $this->_plugins['resource'][$type] =
+ array($functions, false);
+
+ } elseif (count($functions)==5) {
+ $this->_plugins['resource'][$type] =
+ array(array(array(&$functions[0], $functions[1])
+ ,array(&$functions[0], $functions[2])
+ ,array(&$functions[0], $functions[3])
+ ,array(&$functions[0], $functions[4]))
+ ,false);
+
+ } else {
+ $this->trigger_error("malformed function-list for '$type' in register_resource");
+
+ }
+ }
+
+ /**
+ * Unregisters a resource
+ *
+ * @param string $type name of resource
+ */
+ function unregister_resource($type)
+ {
+ unset($this->_plugins['resource'][$type]);
+ }
+
+ /**
+ * Registers a prefilter function to apply
+ * to a template before compiling
+ *
+ * @param string $function name of PHP function to register
+ */
+ function register_prefilter($function)
+ {
+ $_name = (is_array($function)) ? $function[1] : $function;
+ $this->_plugins['prefilter'][$_name]
+ = array($function, null, null, false);
+ }
+
+ /**
+ * Unregisters a prefilter function
+ *
+ * @param string $function name of PHP function
+ */
+ function unregister_prefilter($function)
+ {
+ unset($this->_plugins['prefilter'][$function]);
+ }
+
+ /**
+ * Registers a postfilter function to apply
+ * to a compiled template after compilation
+ *
+ * @param string $function name of PHP function to register
+ */
+ function register_postfilter($function)
+ {
+ $_name = (is_array($function)) ? $function[1] : $function;
+ $this->_plugins['postfilter'][$_name]
+ = array($function, null, null, false);
+ }
+
+ /**
+ * Unregisters a postfilter function
+ *
+ * @param string $function name of PHP function
+ */
+ function unregister_postfilter($function)
+ {
+ unset($this->_plugins['postfilter'][$function]);
+ }
+
+ /**
+ * Registers an output filter function to apply
+ * to a template output
+ *
+ * @param string $function name of PHP function
+ */
+ function register_outputfilter($function)
+ {
+ $_name = (is_array($function)) ? $function[1] : $function;
+ $this->_plugins['outputfilter'][$_name]
+ = array($function, null, null, false);
+ }
+
+ /**
+ * Unregisters an outputfilter function
+ *
+ * @param string $function name of PHP function
+ */
+ function unregister_outputfilter($function)
+ {
+ unset($this->_plugins['outputfilter'][$function]);
+ }
+
+ /**
+ * load a filter of specified type and name
+ *
+ * @param string $type filter type
+ * @param string $name filter name
+ */
+ function load_filter($type, $name)
+ {
+ switch ($type) {
+ case 'output':
+ $_params = array('plugins' => array(array($type . 'filter', $name, null, null, false)));
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
+ smarty_core_load_plugins($_params, $this);
+ break;
+
+ case 'pre':
+ case 'post':
+ if (!isset($this->_plugins[$type . 'filter'][$name]))
+ $this->_plugins[$type . 'filter'][$name] = false;
+ break;
+ }
+ }
+
+ /**
+ * clear cached content for the given template and cache id
+ *
+ * @param string $tpl_file name of template file
+ * @param string $cache_id name of cache_id
+ * @param string $compile_id name of compile_id
+ * @param string $exp_time expiration time
+ * @return boolean
+ */
+ function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
+ {
+
+ if (!isset($compile_id))
+ $compile_id = $this->compile_id;
+
+ if (!isset($tpl_file))
+ $compile_id = null;
+
+ $_auto_id = $this->_get_auto_id($cache_id, $compile_id);
+
+ if (!empty($this->cache_handler_func)) {
+ return call_user_func_array($this->cache_handler_func,
+ array('clear', &$this, &$dummy, $tpl_file, $cache_id, $compile_id, $exp_time));
+ } else {
+ $_params = array('auto_base' => $this->cache_dir,
+ 'auto_source' => $tpl_file,
+ 'auto_id' => $_auto_id,
+ 'exp_time' => $exp_time);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
+ return smarty_core_rm_auto($_params, $this);
+ }
+
+ }
+
+
+ /**
+ * clear the entire contents of cache (all templates)
+ *
+ * @param string $exp_time expire time
+ * @return boolean results of {@link smarty_core_rm_auto()}
+ */
+ function clear_all_cache($exp_time = null)
+ {
+ if (!empty($this->cache_handler_func)) {
+ $dummy = null;
+ call_user_func_array($this->cache_handler_func,
+ array('clear', &$this, &$dummy, null, null, null, $exp_time));
+ } else {
+ $_params = array('auto_base' => $this->cache_dir,
+ 'auto_source' => null,
+ 'auto_id' => null,
+ 'exp_time' => $exp_time);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
+ return smarty_core_rm_auto($_params, $this);
+ }
+ }
+
+
+ /**
+ * test to see if valid cache exists for this template
+ *
+ * @param string $tpl_file name of template file
+ * @param string $cache_id
+ * @param string $compile_id
+ * @return string|false results of {@link _read_cache_file()}
+ */
+ function is_cached($tpl_file, $cache_id = null, $compile_id = null)
+ {
+ if (!$this->caching)
+ return false;
+
+ if (!isset($compile_id))
+ $compile_id = $this->compile_id;
+
+ $_params = array(
+ 'tpl_file' => $tpl_file,
+ 'cache_id' => $cache_id,
+ 'compile_id' => $compile_id
+ );
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.read_cache_file.php');
+ return smarty_core_read_cache_file($_params, $this);
+ }
+
+
+ /**
+ * clear all the assigned template variables.
+ *
+ */
+ function clear_all_assign()
+ {
+ $this->_tpl_vars = array();
+ }
+
+ /**
+ * clears compiled version of specified template resource,
+ * or all compiled template files if one is not specified.
+ * This function is for advanced use only, not normally needed.
+ *
+ * @param string $tpl_file
+ * @param string $compile_id
+ * @param string $exp_time
+ * @return boolean results of {@link smarty_core_rm_auto()}
+ */
+ function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
+ {
+ if (!isset($compile_id)) {
+ $compile_id = $this->compile_id;
+ }
+ $_params = array('auto_base' => $this->compile_dir,
+ 'auto_source' => $tpl_file,
+ 'auto_id' => $compile_id,
+ 'exp_time' => $exp_time,
+ 'extensions' => array('.inc', '.php'));
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
+ return smarty_core_rm_auto($_params, $this);
+ }
+
+ /**
+ * Checks whether requested template exists.
+ *
+ * @param string $tpl_file
+ * @return boolean
+ */
+ function template_exists($tpl_file)
+ {
+ $_params = array('resource_name' => $tpl_file, 'quiet'=>true, 'get_source'=>false);
+ return $this->_fetch_resource_info($_params);
+ }
+
+ /**
+ * Returns an array containing template variables
+ *
+ * @param string $name
+ * @param string $type
+ * @return array
+ */
+ function &get_template_vars($name=null)
+ {
+ if(!isset($name)) {
+ return $this->_tpl_vars;
+ }
+ if(isset($this->_tpl_vars[$name])) {
+ return $this->_tpl_vars[$name];
+ }
+ }
+
+ /**
+ * Returns an array containing config variables
+ *
+ * @param string $name
+ * @param string $type
+ * @return array
+ */
+ function &get_config_vars($name=null)
+ {
+ if(!isset($name) && is_array($this->_config[0])) {
+ return $this->_config[0]['vars'];
+ } else if(isset($this->_config[0]['vars'][$name])) {
+ return $this->_config[0]['vars'][$name];
+ }
+ }
+
+ /**
+ * trigger Smarty error
+ *
+ * @param string $error_msg
+ * @param integer $error_type
+ */
+ function trigger_error($error_msg, $error_type = E_USER_WARNING)
+ {
+ trigger_error("Smarty error: $error_msg", $error_type);
+ }
+
+
+ /**
+ * executes & displays the template results
+ *
+ * @param string $resource_name
+ * @param string $cache_id
+ * @param string $compile_id
+ */
+ function display($resource_name, $cache_id = null, $compile_id = null)
+ {
+ $this->fetch($resource_name, $cache_id, $compile_id, true);
+ }
+
+ /**
+ * executes & returns or displays the template results
+ *
+ * @param string $resource_name
+ * @param string $cache_id
+ * @param string $compile_id
+ * @param boolean $display
+ */
+ function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)
+ {
+ static $_cache_info = array();
+
+ $_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(error_reporting() & ~E_NOTICE);
+
+ if (!$this->debugging && $this->debugging_ctrl == 'URL'
+ && @strstr($GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING'], $this->_smarty_debug_id)) {
+ // enable debugging from URL
+ $this->debugging = true;
+ }
+
+ if ($this->debugging) {
+ // capture time for debugging info
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $_debug_start_time = smarty_core_get_microtime($_params, $this);
+ $this->_smarty_debug_info[] = array('type' => 'template',
+ 'filename' => $resource_name,
+ 'depth' => 0);
+ $_included_tpls_idx = count($this->_smarty_debug_info) - 1;
+ }
+
+ if (!isset($compile_id)) {
+ $compile_id = $this->compile_id;
+ }
+
+ $this->_compile_id = $compile_id;
+ $this->_inclusion_depth = 0;
+
+ if ($this->caching) {
+ // save old cache_info, initialize cache_info
+ array_push($_cache_info, $this->_cache_info);
+ $this->_cache_info = array();
+ $_params = array(
+ 'tpl_file' => $resource_name,
+ 'cache_id' => $cache_id,
+ 'compile_id' => $compile_id,
+ 'results' => null
+ );
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.read_cache_file.php');
+ if (smarty_core_read_cache_file($_params, $this)) {
+ $_smarty_results = $_params['results'];
+ if (@count($this->_cache_info['insert_tags'])) {
+ $_params = array('plugins' => $this->_cache_info['insert_tags']);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
+ smarty_core_load_plugins($_params, $this);
+ $_params = array('results' => $_smarty_results);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_cached_inserts.php');
+ $_smarty_results = smarty_core_process_cached_inserts($_params, $this);
+ }
+ if (@count($this->_cache_info['cache_serials'])) {
+ $_params = array('results' => $_smarty_results);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_compiled_include.php');
+ $_smarty_results = smarty_core_process_compiled_include($_params, $this);
+ }
+
+
+ if ($display) {
+ if ($this->debugging)
+ {
+ // capture time for debugging info
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $_debug_start_time;
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
+ $_smarty_results .= smarty_core_display_debug_console($_params, $this);
+ }
+ if ($this->cache_modified_check) {
+ $_last_modified_date = @substr($GLOBALS['HTTP_SERVER_VARS']['HTTP_IF_MODIFIED_SINCE'], 0, strpos($GLOBALS['HTTP_SERVER_VARS']['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
+ $_gmt_mtime = gmdate('D, d M Y H:i:s', $this->_cache_info['timestamp']).' GMT';
+ if (@count($this->_cache_info['insert_tags']) == 0
+ && !$this->_cache_serials
+ && $_gmt_mtime == $_last_modified_date) {
+ if (php_sapi_name()=='cgi')
+ header("Status: 304 Not Modified");
+ else
+ header("HTTP/1.1 304 Not Modified");
+
+ } else {
+ header("Last-Modified: ".$_gmt_mtime);
+ echo $_smarty_results;
+ }
+ } else {
+ echo $_smarty_results;
+ }
+ error_reporting($_smarty_old_error_level);
+ // restore initial cache_info
+ $this->_cache_info = array_pop($_cache_info);
+ return true;
+ } else {
+ error_reporting($_smarty_old_error_level);
+ // restore initial cache_info
+ $this->_cache_info = array_pop($_cache_info);
+ return $_smarty_results;
+ }
+ } else {
+ $this->_cache_info['template'][$resource_name] = true;
+ if ($this->cache_modified_check) {
+ header("Last-Modified: ".gmdate('D, d M Y H:i:s', time()).' GMT');
+ }
+ }
+ }
+
+ // load filters that are marked as autoload
+ if (count($this->autoload_filters)) {
+ foreach ($this->autoload_filters as $_filter_type => $_filters) {
+ foreach ($_filters as $_filter) {
+ $this->load_filter($_filter_type, $_filter);
+ }
+ }
+ }
+
+ $_smarty_compile_path = $this->_get_compile_path($resource_name);
+
+ // if we just need to display the results, don't perform output
+ // buffering - for speed
+ $_cache_including = $this->_cache_including;
+ $this->_cache_including = false;
+ if ($display && !$this->caching && count($this->_plugins['outputfilter']) == 0) {
+ if ($this->_is_compiled($resource_name, $_smarty_compile_path)
+ || $this->_compile_resource($resource_name, $_smarty_compile_path))
+ {
+ include($_smarty_compile_path);
+ }
+ } else {
+ ob_start();
+ if ($this->_is_compiled($resource_name, $_smarty_compile_path)
+ || $this->_compile_resource($resource_name, $_smarty_compile_path))
+ {
+ include($_smarty_compile_path);
+ }
+ $_smarty_results = ob_get_contents();
+ ob_end_clean();
+
+ foreach ((array)$this->_plugins['outputfilter'] as $_output_filter) {
+ $_smarty_results = call_user_func_array($_output_filter[0], array($_smarty_results, &$this));
+ }
+ }
+
+ if ($this->caching) {
+ $_params = array('tpl_file' => $resource_name,
+ 'cache_id' => $cache_id,
+ 'compile_id' => $compile_id,
+ 'results' => $_smarty_results);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_cache_file.php');
+ smarty_core_write_cache_file($_params, $this);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_cached_inserts.php');
+ $_smarty_results = smarty_core_process_cached_inserts($_params, $this);
+
+ if ($this->_cache_serials) {
+ // strip nocache-tags from output
+ $_smarty_results = preg_replace('!(\{/?nocache\:[0-9a-f]{32}#\d+\})!s'
+ ,''
+ ,$_smarty_results);
+ }
+ // restore initial cache_info
+ $this->_cache_info = array_pop($_cache_info);
+ }
+ $this->_cache_including = $_cache_including;
+
+ if ($display) {
+ if (isset($_smarty_results)) { echo $_smarty_results; }
+ if ($this->debugging) {
+ // capture time for debugging info
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = (smarty_core_get_microtime($_params, $this) - $_debug_start_time);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
+ echo smarty_core_display_debug_console($_params, $this);
+ }
+ error_reporting($_smarty_old_error_level);
+ return;
+ } else {
+ error_reporting($_smarty_old_error_level);
+ if (isset($_smarty_results)) { return $_smarty_results; }
+ }
+ }
+
+ /**
+ * load configuration values
+ *
+ * @param string $file
+ * @param string $section
+ * @param string $scope
+ */
+ function config_load($file, $section = null, $scope = 'global')
+ {
+ require_once($this->_get_plugin_filepath('function', 'config_load'));
+ smarty_function_config_load(array('file' => $file, 'section' => $section, 'scope' => $scope), $this);
+ }
+
+ /**
+ * return a reference to a registered object
+ *
+ * @param string $name
+ * @return object
+ */
+ function &get_registered_object($name) {
+ if (!isset($this->_reg_objects[$name]))
+ $this->_trigger_fatal_error("'$name' is not a registered object");
+
+ if (!is_object($this->_reg_objects[$name][0]))
+ $this->_trigger_fatal_error("registered '$name' is not an object");
+
+ return $this->_reg_objects[$name][0];
+ }
+
+ /**
+ * clear configuration values
+ *
+ * @param string $var
+ */
+ function clear_config($var = null)
+ {
+ if(!isset($var)) {
+ // clear all values
+ $this->_config = array(array('vars' => array(),
+ 'files' => array()));
+ } else {
+ unset($this->_config[0]['vars'][$var]);
+ }
+ }
+
+ /**
+ * get filepath of requested plugin
+ *
+ * @param string $type
+ * @param string $name
+ * @return string|false
+ */
+ function _get_plugin_filepath($type, $name)
+ {
+ $_params = array('type' => $type, 'name' => $name);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.assemble_plugin_filepath.php');
+ return smarty_core_assemble_plugin_filepath($_params, $this);
+ }
+
+ /**
+ * test if resource needs compiling
+ *
+ * @param string $resource_name
+ * @param string $compile_path
+ * @return boolean
+ */
+ function _is_compiled($resource_name, $compile_path)
+ {
+ if (!$this->force_compile && file_exists($compile_path)) {
+ if (!$this->compile_check) {
+ // no need to check compiled file
+ return true;
+ } else {
+ // get file source and timestamp
+ $_params = array('resource_name' => $resource_name, 'get_source'=>false);
+ if (!$this->_fetch_resource_info($_params, $this)) {
+ return false;
+ }
+ if ($_params['resource_timestamp'] <= filemtime($compile_path)) {
+ // template not expired, no recompile
+ return true;
+ } else {
+ // compile template
+ return false;
+ }
+ }
+ } else {
+ // compiled template does not exist, or forced compile
+ return false;
+ }
+ }
+
+ /**
+ * compile the template
+ *
+ * @param string $resource_name
+ * @param string $compile_path
+ * @return boolean
+ */
+ function _compile_resource($resource_name, $compile_path)
+ {
+
+ $_params = array('resource_name' => $resource_name);
+ if (!$this->_fetch_resource_info($_params)) {
+ return false;
+ }
+
+ $_source_content = $_params['source_content'];
+ $_resource_timestamp = $_params['resource_timestamp'];
+ $_cache_include = substr($compile_path, 0, -4).'.inc';
+
+ if ($this->_compile_source($resource_name, $_source_content, $_compiled_content, $_cache_include)) {
+ // if a _cache_serial was set, we also have to write an include-file:
+ if ($this->_cache_include_info) {
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_include.php');
+ smarty_core_write_compiled_include(array_merge($this->_cache_include_info, array('compiled_content'=>$_compiled_content)), $this);
+ }
+
+ $_params = array('compile_path'=>$compile_path, 'compiled_content' => $_compiled_content, 'resource_timestamp' => $_resource_timestamp);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php');
+ smarty_core_write_compiled_resource($_params, $this);
+
+ return true;
+ } else {
+ $this->trigger_error($smarty_compiler->_error_msg);
+ return false;
+ }
+
+ }
+
+ /**
+ * compile the given source
+ *
+ * @param string $resource_name
+ * @param string $source_content
+ * @param string $compiled_content
+ * @return boolean
+ */
+ function _compile_source($resource_name, &$source_content, &$compiled_content, $cache_include_path=null)
+ {
+ if (file_exists(SMARTY_DIR . $this->compiler_file)) {
+ require_once(SMARTY_DIR . $this->compiler_file);
+ } else {
+ // use include_path
+ require_once($this->compiler_file);
+ }
+
+
+ $smarty_compiler = new $this->compiler_class;
+
+ $smarty_compiler->template_dir = $this->template_dir;
+ $smarty_compiler->compile_dir = $this->compile_dir;
+ $smarty_compiler->plugins_dir = $this->plugins_dir;
+ $smarty_compiler->config_dir = $this->config_dir;
+ $smarty_compiler->force_compile = $this->force_compile;
+ $smarty_compiler->caching = $this->caching;
+ $smarty_compiler->php_handling = $this->php_handling;
+ $smarty_compiler->left_delimiter = $this->left_delimiter;
+ $smarty_compiler->right_delimiter = $this->right_delimiter;
+ $smarty_compiler->_version = $this->_version;
+ $smarty_compiler->security = $this->security;
+ $smarty_compiler->secure_dir = $this->secure_dir;
+ $smarty_compiler->security_settings = $this->security_settings;
+ $smarty_compiler->trusted_dir = $this->trusted_dir;
+ $smarty_compiler->_reg_objects = &$this->_reg_objects;
+ $smarty_compiler->_plugins = &$this->_plugins;
+ $smarty_compiler->_tpl_vars = &$this->_tpl_vars;
+ $smarty_compiler->default_modifiers = $this->default_modifiers;
+ $smarty_compiler->compile_id = $this->_compile_id;
+ $smarty_compiler->_config = $this->_config;
+ $smarty_compiler->request_use_auto_globals = $this->request_use_auto_globals;
+
+ $smarty_compiler->_cache_serial = null;
+ $smarty_compiler->_cache_include = $cache_include_path;
+
+
+ $_results = $smarty_compiler->_compile_file($resource_name, $source_content, $compiled_content);
+
+ if ($smarty_compiler->_cache_serial) {
+ $this->_cache_include_info = array(
+ 'cache_serial'=>$smarty_compiler->_cache_serial
+ ,'plugins_code'=>$smarty_compiler->_plugins_code
+ ,'include_file_path' => $cache_include_path);
+
+ } else {
+ $this->_cache_include_info = null;
+
+ }
+
+ return $_results;
+ }
+
+ /**
+ * Get the compile path for this resource
+ *
+ * @param string $resource_name
+ * @return string results of {@link _get_auto_filename()}
+ */
+ function _get_compile_path($resource_name)
+ {
+ return $this->_get_auto_filename($this->compile_dir, $resource_name,
+ $this->_compile_id) . '.php';
+ }
+
+ /**
+ * fetch the template info. Gets timestamp, and source
+ * if get_source is true
+ *
+ * sets $source_content to the source of the template, and
+ * $resource_timestamp to its time stamp
+ * @param string $resource_name
+ * @param string $source_content
+ * @param integer $resource_timestamp
+ * @param boolean $get_source
+ * @param boolean $quiet
+ * @return boolean
+ */
+
+ function _fetch_resource_info(&$params)
+ {
+ if(!isset($params['get_source'])) { $params['get_source'] = true; }
+ if(!isset($params['quiet'])) { $params['quiet'] = false; }
+
+ $_return = false;
+ $_params = array('resource_name' => $params['resource_name']) ;
+ if (isset($params['resource_base_path']))
+ $_params['resource_base_path'] = $params['resource_base_path'];
+
+ if ($this->_parse_resource_name($_params)) {
+ $_resource_type = $_params['resource_type'];
+ $_resource_name = $_params['resource_name'];
+ switch ($_resource_type) {
+ case 'file':
+ if ($params['get_source']) {
+ $params['source_content'] = $this->_read_file($_resource_name);
+ }
+ $params['resource_timestamp'] = filemtime($_resource_name);
+ $_return = is_file($_resource_name);
+ break;
+
+ default:
+ // call resource functions to fetch the template source and timestamp
+ if ($params['get_source']) {
+ $_source_return = isset($this->_plugins['resource'][$_resource_type]) &&
+ call_user_func_array($this->_plugins['resource'][$_resource_type][0][0],
+ array($_resource_name, &$params['source_content'], &$this));
+ } else {
+ $_source_return = true;
+ }
+
+ $_timestamp_return = isset($this->_plugins['resource'][$_resource_type]) &&
+ call_user_func_array($this->_plugins['resource'][$_resource_type][0][1],
+ array($_resource_name, &$params['resource_timestamp'], &$this));
+
+ $_return = $_source_return && $_timestamp_return;
+ break;
+ }
+ }
+
+ if (!$_return) {
+ // see if we can get a template with the default template handler
+ if (!empty($this->default_template_handler_func)) {
+ if (!is_callable($this->default_template_handler_func)) {
+ $this->trigger_error("default template handler function \"$this->default_template_handler_func\" doesn't exist.");
+ } else {
+ $_return = call_user_func_array(
+ $this->default_template_handler_func,
+ array($_params['resource_type'], $_params['resource_name'], &$params['source_content'], &$params['resource_timestamp'], &$this));
+ }
+ }
+ }
+
+ if (!$_return) {
+ if (!$params['quiet']) {
+ $this->trigger_error('unable to read resource: "' . $params['resource_name'] . '"');
+ }
+ } else if ($_return && $this->security) {
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
+ if (!smarty_core_is_secure($_params, $this)) {
+ if (!$params['quiet'])
+ $this->trigger_error('(secure mode) accessing "' . $params['resource_name'] . '" is not allowed');
+ $params['source_content'] = null;
+ $params['resource_timestamp'] = null;
+ return false;
+ }
+ }
+ return $_return;
+ }
+
+
+ /**
+ * parse out the type and name from the resource
+ *
+ * @param string $resource_base_path
+ * @param string $resource_name
+ * @param string $resource_type
+ * @param string $resource_name
+ * @return boolean
+ */
+
+ function _parse_resource_name(&$params)
+ {
+
+ // split tpl_path by the first colon
+ $_resource_name_parts = explode(':', $params['resource_name'], 2);
+
+ if (count($_resource_name_parts) == 1) {
+ // no resource type given
+ $params['resource_type'] = $this->default_resource_type;
+ $params['resource_name'] = $_resource_name_parts[0];
+ } else {
+ if(strlen($_resource_name_parts[0]) == 1) {
+ // 1 char is not resource type, but part of filepath
+ $params['resource_type'] = $this->default_resource_type;
+ $params['resource_name'] = $params['resource_name'];
+ } else {
+ $params['resource_type'] = $_resource_name_parts[0];
+ $params['resource_name'] = $_resource_name_parts[1];
+ }
+ }
+
+ if ($params['resource_type'] == 'file') {
+ if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $params['resource_name'])) {
+ // relative pathname to $params['resource_base_path']
+ // use the first directory where the file is found
+ if (isset($params['resource_base_path'])) {
+ $_resource_base_path = (array)$params['resource_base_path'];
+ } else {
+ $_resource_base_path = (array)$this->template_dir;
+ $_resource_base_path[] = '.';
+ }
+ foreach ($_resource_base_path as $_curr_path) {
+ $_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $params['resource_name'];
+ if (file_exists($_fullpath) && is_file($_fullpath)) {
+ $params['resource_name'] = $_fullpath;
+ return true;
+ }
+ // didn't find the file, try include_path
+ $_params = array('file_path' => $_fullpath);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
+ if(smarty_core_get_include_path($_params, $this)) {
+ $params['resource_name'] = $_params['new_file_path'];
+ return true;
+ }
+ }
+ return false;
+ }
+ } elseif (empty($this->_plugins['resource'][$params['resource_type']])) {
+ $_params = array('type' => $params['resource_type']);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_resource_plugin.php');
+ smarty_core_load_resource_plugin($_params, $this);
+ }
+
+ return true;
+ }
+
+
+ /**
+ * Handle modifiers
+ *
+ * @param string|null $modifier_name
+ * @param array|null $map_array
+ * @return string result of modifiers
+ */
+ function _run_mod_handler()
+ {
+ $_args = func_get_args();
+ list($_modifier_name, $_map_array) = array_splice($_args, 0, 2);
+ list($_func_name, $_tpl_file, $_tpl_line) =
+ $this->_plugins['modifier'][$_modifier_name];
+
+ $_var = $_args[0];
+ foreach ($_var as $_key => $_val) {
+ $_args[0] = $_val;
+ $_var[$_key] = call_user_func_array($_func_name, $_args);
+ }
+ return $_var;
+ }
+
+ /**
+ * Remove starting and ending quotes from the string
+ *
+ * @param string $string
+ * @return string
+ */
+ function _dequote($string)
+ {
+ if (($string{0} == "'" || $string{0} == '"') &&
+ $string{strlen($string)-1} == $string{0})
+ return substr($string, 1, -1);
+ else
+ return $string;
+ }
+
+
+ /**
+ * read in a file from line $start for $lines.
+ * read the entire file if $start and $lines are null.
+ *
+ * @param string $filename
+ * @param integer $start
+ * @param integer $lines
+ * @return string
+ */
+ function _read_file($filename, $start=null, $lines=null)
+ {
+ if (!($fd = @fopen($filename, 'r'))) {
+ return false;
+ }
+ flock($fd, LOCK_SH);
+ if ($start == null && $lines == null) {
+ // read the entire file
+ $contents = fread($fd, filesize($filename));
+ } else {
+ if ( $start > 1 ) {
+ // skip the first lines before $start
+ for ($loop=1; $loop < $start; $loop++) {
+ fgets($fd, 65536);
+ }
+ }
+ if ( $lines == null ) {
+ // read the rest of the file
+ while (!feof($fd)) {
+ $contents .= fgets($fd, 65536);
+ }
+ } else {
+ // read up to $lines lines
+ for ($loop=0; $loop < $lines; $loop++) {
+ $contents .= fgets($fd, 65536);
+ if (feof($fd)) {
+ break;
+ }
+ }
+ }
+ }
+ fclose($fd);
+ return $contents;
+ }
+
+ /**
+ * get a concrete filename for automagically created content
+ *
+ * @param string $auto_base
+ * @param string $auto_source
+ * @param string $auto_id
+ * @return string
+ * @staticvar string|null
+ * @staticvar string|null
+ */
+ function _get_auto_filename($auto_base, $auto_source = null, $auto_id = null)
+ {
+ $_compile_dir_sep = $this->use_sub_dirs ? DIRECTORY_SEPARATOR : '^';
+
+ if(@is_dir($auto_base)) {
+ $_return = $auto_base . DIRECTORY_SEPARATOR;
+ } else {
+ // auto_base not found, try include_path
+ $_params = array('file_path' => $auto_base);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
+ smarty_core_get_include_path($_params, $this);
+ $_return = isset($_params['new_file_path']) ? $_params['new_file_path'] . DIRECTORY_SEPARATOR : null;
+ }
+
+ if(isset($auto_id)) {
+ // make auto_id safe for directory names
+ $auto_id = str_replace('%7C',$_compile_dir_sep,(urlencode($auto_id)));
+ // split into separate directories
+ $_return .= $auto_id . $_compile_dir_sep;
+ }
+
+ if(isset($auto_source)) {
+ // make source name safe for filename
+ $_filename = urlencode(basename($auto_source));
+ $_crc32 = crc32($auto_source) . $_compile_dir_sep;
+ // prepend %% to avoid name conflicts with
+ // with $params['auto_id'] names
+ $_crc32 = '%%' . substr($_crc32,0,3) . $_compile_dir_sep . '%%' . $_crc32;
+ $_return .= $_crc32 . $_filename;
+ }
+
+ return $_return;
+ }
+
+ /**
+ * unlink a file, possibly using expiration time
+ *
+ * @param string $resource
+ * @param integer $exp_time
+ */
+ function _unlink($resource, $exp_time = null)
+ {
+ if(isset($exp_time)) {
+ if(time() - @filemtime($resource) >= $exp_time) {
+ return @unlink($resource);
+ }
+ } else {
+ return @unlink($resource);
+ }
+ }
+
+ /**
+ * returns an auto_id for auto-file-functions
+ *
+ * @param string $cache_id
+ * @param string $compile_id
+ * @return string|null
+ */
+ function _get_auto_id($cache_id=null, $compile_id=null) {
+ if (isset($cache_id))
+ return (isset($compile_id)) ? $cache_id . '|' . $compile_id : $cache_id;
+ elseif(isset($compile_id))
+ return $compile_id;
+ else
+ return null;
+ }
+
+ /**
+ * trigger Smarty plugin error
+ *
+ * @param string $error_msg
+ * @param string $tpl_file
+ * @param integer $tpl_line
+ * @param string $file
+ * @param integer $line
+ * @param integer $error_type
+ */
+ function _trigger_fatal_error($error_msg, $tpl_file = null, $tpl_line = null,
+ $file = null, $line = null, $error_type = E_USER_ERROR)
+ {
+ if(isset($file) && isset($line)) {
+ $info = ' ('.basename($file).", line $line)";
+ } else {
+ $info = null;
+ }
+ if (isset($tpl_line) && isset($tpl_file)) {
+ trigger_error("Smarty error: [in " . $tpl_file . " line " .
+ $tpl_line . "]: $error_msg$info", $error_type);
+ } else {
+ trigger_error("Smarty error: $error_msg$info", $error_type);
+ }
+ }
+
+
+ /**
+ * callback function for preg_replace, to call a non-cacheable block
+ * @return string
+ */
+ function _process_compiled_include_callback($match) {
+ $_func = '_smarty_tplfunc_'.$match[2].'_'.$match[3];
+ ob_start();
+ $_func($this);
+ $_ret = ob_get_contents();
+ ob_end_clean();
+ return $_ret;
+ }
+
+
+ /**
+ * called for included templates
+ *
+ * @param string $_smarty_include_tpl_file
+ * @param string $_smarty_include_vars
+ */
+
+ // $_smarty_include_tpl_file, $_smarty_include_vars
+
+ function _smarty_include($params)
+ {
+ if ($this->debugging) {
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $debug_start_time = smarty_core_get_microtime($_params, $this);
+ $this->_smarty_debug_info[] = array('type' => 'template',
+ 'filename' => $params['smarty_include_tpl_file'],
+ 'depth' => ++$this->_inclusion_depth);
+ $included_tpls_idx = count($this->_smarty_debug_info) - 1;
+ }
+
+ $this->_tpl_vars = array_merge($this->_tpl_vars, $params['smarty_include_vars']);
+
+ // config vars are treated as local, so push a copy of the
+ // current ones onto the front of the stack
+ array_unshift($this->_config, $this->_config[0]);
+
+ $_smarty_compile_path = $this->_get_compile_path($params['smarty_include_tpl_file']);
+
+
+ if ($this->_is_compiled($params['smarty_include_tpl_file'], $_smarty_compile_path)
+ || $this->_compile_resource($params['smarty_include_tpl_file'], $_smarty_compile_path))
+ {
+ include($_smarty_compile_path);
+ }
+
+ // pop the local vars off the front of the stack
+ array_shift($this->_config);
+
+ $this->_inclusion_depth--;
+
+ if ($this->debugging) {
+ // capture time for debugging info
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $this->_smarty_debug_info[$included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $debug_start_time;
+ }
+
+ if ($this->caching) {
+ $this->_cache_info['template'][$params['smarty_include_tpl_file']] = true;
+ }
+ }
+
+
+ /**
+ * get or set an array of cached attributes for function that is
+ * not cacheable
+ * @return array
+ */
+ function &_smarty_cache_attrs($cache_serial, $count) {
+ $_cache_attrs =& $this->_cache_info['cache_attrs'][$cache_serial][$count];
+
+ if ($this->_cache_including) {
+ /* return next set of cache_attrs */
+ $_return =& current($_cache_attrs);
+ next($_cache_attrs);
+ return $_return;
+
+ } else {
+ /* add a reference to a new set of cache_attrs */
+ $_cache_attrs[] = array();
+ return $_cache_attrs[count($_cache_attrs)-1];
+
+ }
+
+ }
+
+
+ /**
+ * wrapper for include() retaining $this
+ * @return mixed
+ */
+ function _include($filename, $once=false, $params=null)
+ {
+ if ($once) {
+ return include_once($filename);
+ } else {
+ return include($filename);
+ }
+ }
+
+
+ /**
+ * wrapper for eval() retaining $this
+ * @return mixed
+ */
+ function _eval($code, $params=null)
+ {
+ return eval($code);
+ }
+ /**#@-*/
+
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php
index 909cf53f50..317e3ba15b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php
@@ -1,2123 +1,2123 @@
-<?php
-
-/**
- * Project: Smarty: the PHP compiling template engine
- * File: Smarty_Compiler.class.php
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * You may contact the authors of Smarty by e-mail at:
- * monte@ispi.net
- * andrei@php.net
- *
- * Or, write to:
- * Monte Ohrt
- * Director of Technology, ispi
- * 237 S. 70th suite 220
- * Lincoln, NE 68510
- *
- * The latest version of Smarty can be obtained from:
- * http://smarty.php.net/
- *
- * @link http://smarty.php.net/
- * @author Monte Ohrt <monte@ispi.net>
- * @author Andrei Zmievski <andrei@php.net>
- * @version 2.6.0
- * @copyright 2001-2003 ispi of Lincoln, Inc.
- * @package Smarty
- */
-
-/* $Id$ */
-
-/**
- * Template compiling class
- * @package Smarty
- */
-class Smarty_Compiler extends Smarty {
-
- // internal vars
- /**#@+
- * @access private
- */
- var $_sectionelse_stack = array(); // keeps track of whether section had 'else' part
- var $_foreachelse_stack = array(); // keeps track of whether foreach had 'else' part
- var $_literal_blocks = array(); // keeps literal template blocks
- var $_php_blocks = array(); // keeps php code blocks
- var $_current_file = null; // the current template being compiled
- var $_current_line_no = 1; // line number for error messages
- var $_capture_stack = array(); // keeps track of nested capture buffers
- var $_plugin_info = array(); // keeps track of plugins to load
- var $_init_smarty_vars = false;
- var $_permitted_tokens = array('true','false','yes','no','on','off','null');
- var $_db_qstr_regexp = null; // regexps are setup in the constructor
- var $_si_qstr_regexp = null;
- var $_qstr_regexp = null;
- var $_func_regexp = null;
- var $_var_bracket_regexp = null;
- var $_dvar_guts_regexp = null;
- var $_dvar_regexp = null;
- var $_cvar_regexp = null;
- var $_svar_regexp = null;
- var $_avar_regexp = null;
- var $_mod_regexp = null;
- var $_var_regexp = null;
- var $_parenth_param_regexp = null;
- var $_func_call_regexp = null;
- var $_obj_ext_regexp = null;
- var $_obj_start_regexp = null;
- var $_obj_params_regexp = null;
- var $_obj_call_regexp = null;
- var $_cacheable_state = 0;
- var $_cache_attrs_count = 0;
- var $_nocache_count = 0;
- var $_cache_serial = null;
- var $_cache_include = null;
-
- var $_strip_depth = 0;
- var $_additional_newline = "\n";
-
- /**#@-*/
- /**
- * The class constructor.
- */
- function Smarty_Compiler()
- {
- // matches double quoted strings:
- // "foobar"
- // "foo\"bar"
- $this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"';
-
- // matches single quoted strings:
- // 'foobar'
- // 'foo\'bar'
- $this->_si_qstr_regexp = '\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'';
-
- // matches single or double quoted strings
- $this->_qstr_regexp = '(?:' . $this->_db_qstr_regexp . '|' . $this->_si_qstr_regexp . ')';
-
- // matches bracket portion of vars
- // [0]
- // [foo]
- // [$bar]
- $this->_var_bracket_regexp = '\[\$?[\w\.]+\]';
-
- // matches $ vars (not objects):
- // $foo
- // $foo.bar
- // $foo.bar.foobar
- // $foo[0]
- // $foo[$bar]
- // $foo[5][blah]
- // $foo[5].bar[$foobar][4]
- $this->_dvar_math_regexp = '[\+\-\*\/\%]';
- $this->_dvar_math_var_regexp = '[\$\w\.\+\-\*\/\%\d\>\[\]]';
- $this->_dvar_num_var_regexp = '\-?\d+(?:\.\d+)?' . $this->_dvar_math_var_regexp;
- $this->_dvar_guts_regexp = '\w+(?:' . $this->_var_bracket_regexp
- . ')*(?:\.\$?\w+(?:' . $this->_var_bracket_regexp . ')*)*(?:' . $this->_dvar_math_regexp . '(?:\-?\d+(?:\.\d+)?|' . $this->_dvar_math_var_regexp . ')*)?';
- $this->_dvar_regexp = '\$' . $this->_dvar_guts_regexp;
-
- // matches config vars:
- // #foo#
- // #foobar123_foo#
- $this->_cvar_regexp = '\#\w+\#';
-
- // matches section vars:
- // %foo.bar%
- $this->_svar_regexp = '\%\w+\.\w+\%';
-
- // matches all valid variables (no quotes, no modifiers)
- $this->_avar_regexp = '(?:' . $this->_dvar_regexp . '|'
- . $this->_cvar_regexp . '|' . $this->_svar_regexp . ')';
-
- // matches valid variable syntax:
- // $foo
- // $foo
- // #foo#
- // #foo#
- // "text"
- // "text"
- $this->_var_regexp = '(?:' . $this->_avar_regexp . '|' . $this->_qstr_regexp . ')';
-
- // matches valid object call (no objects allowed in parameters):
- // $foo->bar
- // $foo->bar()
- // $foo->bar("text")
- // $foo->bar($foo, $bar, "text")
- // $foo->bar($foo, "foo")
- // $foo->bar->foo()
- // $foo->bar->foo->bar()
- $this->_obj_ext_regexp = '\->(?:\$?' . $this->_dvar_guts_regexp . ')';
- $this->_obj_params_regexp = '\((?:\w+|'
- . $this->_var_regexp . '(?:\s*,\s*(?:(?:\w+|'
- . $this->_var_regexp . ')))*)?\)';
- $this->_obj_start_regexp = '(?:' . $this->_dvar_regexp . '(?:' . $this->_obj_ext_regexp . ')+)';
- $this->_obj_call_regexp = '(?:' . $this->_obj_start_regexp . '(?:' . $this->_obj_params_regexp . ')?)';
-
- // matches valid modifier syntax:
- // |foo
- // |@foo
- // |foo:"bar"
- // |foo:$bar
- // |foo:"bar":$foobar
- // |foo|bar
- // |foo:$foo->bar
- $this->_mod_regexp = '(?:\|@?\w+(?::(?>-?\w+|'
- . $this->_obj_call_regexp . '|' . $this->_avar_regexp . '|' . $this->_qstr_regexp .'))*)';
-
- // matches valid function name:
- // foo123
- // _foo_bar
- $this->_func_regexp = '[a-zA-Z_]\w*';
-
- // matches valid registered object:
- // foo->bar
- $this->_reg_obj_regexp = '[a-zA-Z_]\w*->[a-zA-Z_]\w*';
-
- // matches valid parameter values:
- // true
- // $foo
- // $foo|bar
- // #foo#
- // #foo#|bar
- // "text"
- // "text"|bar
- // $foo->bar
- $this->_param_regexp = '(?:\s*(?:' . $this->_obj_call_regexp . '|'
- . $this->_var_regexp . '|\w+)(?>' . $this->_mod_regexp . '*)\s*)';
-
- // matches valid parenthesised function parameters:
- //
- // "text"
- // $foo, $bar, "text"
- // $foo|bar, "foo"|bar, $foo->bar($foo)|bar
- $this->_parenth_param_regexp = '(?:\((?:\w+|'
- . $this->_param_regexp . '(?:\s*,\s*(?:(?:\w+|'
- . $this->_param_regexp . ')))*)?\))';
-
- // matches valid function call:
- // foo()
- // foo_bar($foo)
- // _foo_bar($foo,"bar")
- // foo123($foo,$foo->bar(),"foo")
- $this->_func_call_regexp = '(?:' . $this->_func_regexp . '\s*(?:'
- . $this->_parenth_param_regexp . '))';
- }
-
- /**
- * compile a resource
- *
- * sets $compiled_content to the compiled source
- * @param string $resource_name
- * @param string $source_content
- * @param string $compiled_content
- * @return true
- */
- function _compile_file($resource_name, $source_content, &$compiled_content)
- {
-
- if ($this->security) {
- // do not allow php syntax to be executed unless specified
- if ($this->php_handling == SMARTY_PHP_ALLOW &&
- !$this->security_settings['PHP_HANDLING']) {
- $this->php_handling = SMARTY_PHP_PASSTHRU;
- }
- }
-
- $this->_load_filters();
-
- $this->_current_file = $resource_name;
- $this->_current_line_no = 1;
- $ldq = preg_quote($this->left_delimiter, '!');
- $rdq = preg_quote($this->right_delimiter, '!');
-
- // run template source through prefilter functions
- if (count($this->_plugins['prefilter']) > 0) {
- foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
- if ($prefilter === false) continue;
- if ($prefilter[3] || is_callable($prefilter[0])) {
- $source_content = call_user_func_array($prefilter[0],
- array($source_content, &$this));
- $this->_plugins['prefilter'][$filter_name][3] = true;
- } else {
- $this->_trigger_fatal_error("[plugin] prefilter '$filter_name' is not implemented");
- }
- }
- }
-
- /* Annihilate the comments. */
- $source_content = preg_replace("!({$ldq})\*(.*?)\*({$rdq})!se",
- "'\\1*'.str_repeat(\"\n\", substr_count('\\2', \"\n\")) .'*\\3'",
- $source_content);
-
- /* Pull out the literal blocks. */
- preg_match_all("!{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}!s", $source_content, $_match);
- $this->_literal_blocks = $_match[1];
- $source_content = preg_replace("!{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}!s",
- $this->_quote_replace($this->left_delimiter.'literal'.$this->right_delimiter), $source_content);
-
- /* Pull out the php code blocks. */
- preg_match_all("!{$ldq}php{$rdq}(.*?){$ldq}/php{$rdq}!s", $source_content, $_match);
- $this->_php_blocks = $_match[1];
- $source_content = preg_replace("!{$ldq}php{$rdq}(.*?){$ldq}/php{$rdq}!s",
- $this->_quote_replace($this->left_delimiter.'php'.$this->right_delimiter), $source_content);
-
- /* Gather all template tags. */
- preg_match_all("!{$ldq}\s*(.*?)\s*{$rdq}!s", $source_content, $_match);
- $template_tags = $_match[1];
- /* Split content by template tags to obtain non-template content. */
- $text_blocks = preg_split("!{$ldq}.*?{$rdq}!s", $source_content);
-
- /* loop through text blocks */
- for ($curr_tb = 0, $for_max = count($text_blocks); $curr_tb < $for_max; $curr_tb++) {
- /* match anything resembling php tags */
- if (preg_match_all('!(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?php[\"\']?)!is', $text_blocks[$curr_tb], $sp_match)) {
- /* replace tags with placeholders to prevent recursive replacements */
- $sp_match[1] = array_unique($sp_match[1]);
- usort($sp_match[1], '_smarty_sort_length');
- for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
- $text_blocks[$curr_tb] = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$text_blocks[$curr_tb]);
- }
- /* process each one */
- for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
- if ($this->php_handling == SMARTY_PHP_PASSTHRU) {
- /* echo php contents */
- $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '<?php echo \''.str_replace("'", "\'", $sp_match[1][$curr_sp]).'\'; ?>'."\n", $text_blocks[$curr_tb]);
- } else if ($this->php_handling == SMARTY_PHP_QUOTE) {
- /* quote php tags */
- $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', htmlspecialchars($sp_match[1][$curr_sp]), $text_blocks[$curr_tb]);
- } else if ($this->php_handling == SMARTY_PHP_REMOVE) {
- /* remove php tags */
- $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '', $text_blocks[$curr_tb]);
- } else {
- /* SMARTY_PHP_ALLOW, but echo non php starting tags */
- $sp_match[1][$curr_sp] = preg_replace('%(<\?(?!php|=|$))%i', '<?php echo \'\\1\'?>'."\n", $sp_match[1][$curr_sp]);
- $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', $sp_match[1][$curr_sp], $text_blocks[$curr_tb]);
- }
- }
- }
- }
-
- /* Compile the template tags into PHP code. */
- $compiled_tags = array();
- for ($i = 0, $for_max = count($template_tags); $i < $for_max; $i++) {
- $this->_current_line_no += substr_count($text_blocks[$i], "\n");
- $compiled_tags[] = $this->_compile_tag($template_tags[$i]);
- $this->_current_line_no += substr_count($template_tags[$i], "\n");
- }
-
- $compiled_content = '';
-
- /* Interleave the compiled contents and text blocks to get the final result. */
- for ($i = 0, $for_max = count($compiled_tags); $i < $for_max; $i++) {
- if ($compiled_tags[$i] == '') {
- // tag result empty, remove first newline from following text block
- $text_blocks[$i+1] = preg_replace('!^(\r\n|\r|\n)!', '', $text_blocks[$i+1]);
- }
- $compiled_content .= $text_blocks[$i].$compiled_tags[$i];
- }
- $compiled_content .= $text_blocks[$i];
-
- /* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
- if (preg_match_all("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $compiled_content, $_match)) {
- $strip_tags = $_match[0];
- $strip_tags_modified = preg_replace("!{$ldq}/?strip{$rdq}|[\t ]+$|^[\t ]+!m", '', $strip_tags);
- $strip_tags_modified = preg_replace('![\r\n]+!m', '', $strip_tags_modified);
- for ($i = 0, $for_max = count($strip_tags); $i < $for_max; $i++)
- $compiled_content = preg_replace("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s",
- $this->_quote_replace($strip_tags_modified[$i]),
- $compiled_content, 1);
- }
-
- // remove \n from the end of the file, if any
- if (($_len=strlen($compiled_content)) && ($compiled_content{$_len - 1} == "\n" )) {
- $compiled_content = substr($compiled_content, 0, -1);
- }
-
- if (!empty($this->_cache_serial)) {
- $compiled_content = "<?php \$this->_cache_serials['".$this->_cache_include."'] = '".$this->_cache_serial."'; ?>" . $compiled_content;
- }
-
- // remove unnecessary close/open tags
- $compiled_content = preg_replace('!\?>\n?<\?php!', '', $compiled_content);
-
- // run compiled template through postfilter functions
- if (count($this->_plugins['postfilter']) > 0) {
- foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) {
- if ($postfilter === false) continue;
- if ($postfilter[3] || is_callable($postfilter[0])) {
- $compiled_content = call_user_func_array($postfilter[0],
- array($compiled_content, &$this));
- $this->_plugins['postfilter'][$filter_name][3] = true;
- } else {
- $this->_trigger_fatal_error("Smarty plugin error: postfilter '$filter_name' is not implemented");
- }
- }
- }
-
- // put header at the top of the compiled template
- $template_header = "<?php /* Smarty version ".$this->_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n";
- $template_header .= " compiled from ".strtr(urlencode($resource_name), array('%2F'=>'/', '%3A'=>':'))." */ ?>\n";
-
- /* Emit code to load needed plugins. */
- $this->_plugins_code = '';
- if (count($this->_plugin_info)) {
- $_plugins_params = "array('plugins' => array(";
- foreach ($this->_plugin_info as $plugin_type => $plugins) {
- foreach ($plugins as $plugin_name => $plugin_info) {
- $_plugins_params .= "array('$plugin_type', '$plugin_name', '$plugin_info[0]', $plugin_info[1], ";
- $_plugins_params .= $plugin_info[2] ? 'true),' : 'false),';
- }
- }
- $_plugins_params .= '))';
- $plugins_code = "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');\nsmarty_core_load_plugins($_plugins_params, \$this); ?>\n";
- $template_header .= $plugins_code;
- $this->_plugin_info = array();
- $this->_plugins_code = $plugins_code;
- }
-
- if ($this->_init_smarty_vars) {
- $template_header .= "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.assign_smarty_interface.php');\nsmarty_core_assign_smarty_interface(null, \$this); ?>\n";
- $this->_init_smarty_vars = false;
- }
-
- $compiled_content = $template_header . $compiled_content;
-
- return true;
- }
-
- /**
- * Compile a template tag
- *
- * @param string $template_tag
- * @return string
- */
- function _compile_tag($template_tag)
- {
- /* Matched comment. */
- if ($template_tag{0} == '*' && $template_tag{strlen($template_tag) - 1} == '*')
- return '';
-
- /* Split tag into two three parts: command, command modifiers and the arguments. */
- if(! preg_match('/^(?:(' . $this->_obj_call_regexp . '|' . $this->_var_regexp
- . '|\/?' . $this->_reg_obj_regexp . '|\/?' . $this->_func_regexp . ')(' . $this->_mod_regexp . '*))
- (?:\s+(.*))?$
- /xs', $template_tag, $match)) {
- $this->_syntax_error("unrecognized tag: $template_tag", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- $tag_command = $match[1];
- $tag_modifier = isset($match[2]) ? $match[2] : null;
- $tag_args = isset($match[3]) ? $match[3] : null;
-
- if (preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '$!', $tag_command)) {
- /* tag name is a variable or object */
- $_return = $this->_parse_var_props($tag_command . $tag_modifier, $this->_parse_attrs($tag_args));
- if(isset($_tag_attrs['assign'])) {
- return "<?php \$this->assign('" . $this->_dequote($_tag_attrs['assign']) . "', $_return ); ?>\n";
- } else {
- return "<?php echo $_return; ?>" . $this->_additional_newline;
- }
- }
-
- /* If the tag name is a registered object, we process it. */
- if (preg_match('!^\/?' . $this->_reg_obj_regexp . '$!', $tag_command)) {
- return $this->_compile_registered_object_tag($tag_command, $this->_parse_attrs($tag_args), $tag_modifier);
- }
-
- switch ($tag_command) {
- case 'include':
- return $this->_compile_include_tag($tag_args);
-
- case 'include_php':
- return $this->_compile_include_php_tag($tag_args);
-
- case 'if':
- return $this->_compile_if_tag($tag_args);
-
- case 'else':
- return '<?php else: ?>';
-
- case 'elseif':
- return $this->_compile_if_tag($tag_args, true);
-
- case '/if':
- return '<?php endif; ?>';
-
- case 'capture':
- return $this->_compile_capture_tag(true, $tag_args);
-
- case '/capture':
- return $this->_compile_capture_tag(false);
-
- case 'ldelim':
- return $this->left_delimiter;
-
- case 'rdelim':
- return $this->right_delimiter;
-
- case 'section':
- array_push($this->_sectionelse_stack, false);
- return $this->_compile_section_start($tag_args);
-
- case 'sectionelse':
- $this->_sectionelse_stack[count($this->_sectionelse_stack)-1] = true;
- return "<?php endfor; else: ?>";
-
- case '/section':
- if (array_pop($this->_sectionelse_stack))
- return "<?php endif; ?>";
- else
- return "<?php endfor; endif; ?>";
-
- case 'foreach':
- array_push($this->_foreachelse_stack, false);
- return $this->_compile_foreach_start($tag_args);
- break;
-
- case 'foreachelse':
- $this->_foreachelse_stack[count($this->_foreachelse_stack)-1] = true;
- return "<?php endforeach; unset(\$_from); else: ?>";
-
- case '/foreach':
- if (array_pop($this->_foreachelse_stack))
- return "<?php endif; ?>";
- else
- return "<?php endforeach; unset(\$_from); endif; ?>";
-
- case 'strip':
- case '/strip':
- if ($tag_command{0}=='/') {
- if (--$this->_strip_depth==0) { /* outermost closing {/strip} */
- $this->_additional_newline = "\n";
- return $this->left_delimiter.$tag_command.$this->right_delimiter;
- }
- } else {
- if ($this->_strip_depth++==0) { /* outermost opening {strip} */
- $this->_additional_newline = "";
- return $this->left_delimiter.$tag_command.$this->right_delimiter;
- }
- }
- return '';
-
- case 'literal':
- list (,$literal_block) = each($this->_literal_blocks);
- $this->_current_line_no += substr_count($literal_block, "\n");
- return "<?php echo '".str_replace("'", "\'", str_replace("\\", "\\\\", $literal_block))."'; ?>" . $this->_additional_newline;
-
- case 'php':
- if ($this->security && !$this->security_settings['PHP_TAGS']) {
- $this->_syntax_error("(secure mode) php tags not permitted", E_USER_WARNING, __FILE__, __LINE__);
- return;
- }
- list (,$php_block) = each($this->_php_blocks);
- $this->_current_line_no += substr_count($php_block, "\n");
- return '<?php '.$php_block.' ?>';
-
- case 'insert':
- return $this->_compile_insert_tag($tag_args);
-
- default:
- if ($this->_compile_compiler_tag($tag_command, $tag_args, $output)) {
- return $output;
- } else if ($this->_compile_block_tag($tag_command, $tag_args, $tag_modifier, $output)) {
- return $output;
- } else {
- return $this->_compile_custom_tag($tag_command, $tag_args, $tag_modifier);
- }
- }
- }
-
-
- /**
- * compile the custom compiler tag
- *
- * sets $output to the compiled custom compiler tag
- * @param string $tag_command
- * @param string $tag_args
- * @param string $output
- * @return boolean
- */
- function _compile_compiler_tag($tag_command, $tag_args, &$output)
- {
- $found = false;
- $have_function = true;
-
- /*
- * First we check if the compiler function has already been registered
- * or loaded from a plugin file.
- */
- if (isset($this->_plugins['compiler'][$tag_command])) {
- $found = true;
- $plugin_func = $this->_plugins['compiler'][$tag_command][0];
- if (!is_callable($plugin_func)) {
- $message = "compiler function '$tag_command' is not implemented";
- $have_function = false;
- }
- }
- /*
- * Otherwise we need to load plugin file and look for the function
- * inside it.
- */
- else if ($plugin_file = $this->_get_plugin_filepath('compiler', $tag_command)) {
- $found = true;
-
- include_once $plugin_file;
-
- $plugin_func = 'smarty_compiler_' . $tag_command;
- if (!is_callable($plugin_func)) {
- $message = "plugin function $plugin_func() not found in $plugin_file\n";
- $have_function = false;
- } else {
- $this->_plugins['compiler'][$tag_command] = array($plugin_func, null, null, null, true);
- }
- }
-
- /*
- * True return value means that we either found a plugin or a
- * dynamically registered function. False means that we didn't and the
- * compiler should now emit code to load custom function plugin for this
- * tag.
- */
- if ($found) {
- if ($have_function) {
- $output = call_user_func_array($plugin_func, array($tag_args, &$this));
- if($output != '') {
- $output = '<?php ' . $this->_push_cacheable_state('compiler', $tag_command)
- . $output
- . $this->_pop_cacheable_state('compiler', $tag_command) . ' ?>';
- }
- } else {
- $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__);
- }
- return true;
- } else {
- return false;
- }
- }
-
-
- /**
- * compile block function tag
- *
- * sets $output to compiled block function tag
- * @param string $tag_command
- * @param string $tag_args
- * @param string $tag_modifier
- * @param string $output
- * @return boolean
- */
- function _compile_block_tag($tag_command, $tag_args, $tag_modifier, &$output)
- {
- if ($tag_command{0} == '/') {
- $start_tag = false;
- $tag_command = substr($tag_command, 1);
- } else
- $start_tag = true;
-
- $found = false;
- $have_function = true;
-
- /*
- * First we check if the block function has already been registered
- * or loaded from a plugin file.
- */
- if (isset($this->_plugins['block'][$tag_command])) {
- $found = true;
- $plugin_func = $this->_plugins['block'][$tag_command][0];
- if (!is_callable($plugin_func)) {
- $message = "block function '$tag_command' is not implemented";
- $have_function = false;
- }
- }
- /*
- * Otherwise we need to load plugin file and look for the function
- * inside it.
- */
- else if ($plugin_file = $this->_get_plugin_filepath('block', $tag_command)) {
- $found = true;
-
- include_once $plugin_file;
-
- $plugin_func = 'smarty_block_' . $tag_command;
- if (!function_exists($plugin_func)) {
- $message = "plugin function $plugin_func() not found in $plugin_file\n";
- $have_function = false;
- } else {
- $this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, true);
-
- }
- }
-
- if (!$found) {
- return false;
- } else if (!$have_function) {
- $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__);
- return true;
- }
-
- /*
- * Even though we've located the plugin function, compilation
- * happens only once, so the plugin will still need to be loaded
- * at runtime for future requests.
- */
- $this->_add_plugin('block', $tag_command);
-
- if ($start_tag) {
- $output = '<?php ' . $this->_push_cacheable_state('block', $tag_command);
- $attrs = $this->_parse_attrs($tag_args);
- $arg_list = $this->_compile_arg_list('block', $tag_command, $attrs, $_cache_attrs='');
- $output .= "$_cache_attrs\$_params = \$this->_tag_stack[] = array('$tag_command', array(".implode(',', $arg_list).')); ';
- $output .= $this->_compile_plugin_call('block', $tag_command).'($_params[1], null, $this, $_block_repeat=true); unset($_params);';
- $output .= 'while ($_block_repeat) { ob_start(); ?>';
- } else {
- $output = '<?php $this->_block_content = ob_get_contents(); ob_end_clean(); ';
- $_out_tag_text = $this->_compile_plugin_call('block', $tag_command).'($this->_tag_stack[count($this->_tag_stack)-1][1], $this->_block_content, $this, $_block_repeat=false)';
- if ($tag_modifier != '') {
- $this->_parse_modifiers($_out_tag_text, $tag_modifier);
- }
- $output .= 'echo '.$_out_tag_text.'; } ';
- $output .= " array_pop(\$this->_tag_stack); " . $this->_pop_cacheable_state('block', $tag_command) . '?>';
- }
-
- return true;
- }
-
-
- /**
- * compile custom function tag
- *
- * @param string $tag_command
- * @param string $tag_args
- * @param string $tag_modifier
- * @return string
- */
- function _compile_custom_tag($tag_command, $tag_args, $tag_modifier)
- {
- $this->_add_plugin('function', $tag_command);
-
- $_cacheable_state = $this->_push_cacheable_state('function', $tag_command);
- $attrs = $this->_parse_attrs($tag_args);
- $arg_list = $this->_compile_arg_list('function', $tag_command, $attrs, $_cache_attrs='');
-
- $_return = $this->_compile_plugin_call('function', $tag_command).'(array('.implode(',', $arg_list)."), \$this)";
- if($tag_modifier != '') {
- $this->_parse_modifiers($_return, $tag_modifier);
- }
-
- if($_return != '') {
- $_return = '<?php ' . $_cacheable_state . $_cache_attrs . 'echo ' . $_return . ';'
- . $this->_pop_cacheable_state('function', $tag_command) . "?>" . $this->_additional_newline;
- }
-
- return $_return;
- }
-
- /**
- * compile a registered object tag
- *
- * @param string $tag_command
- * @param array $attrs
- * @param string $tag_modifier
- * @return string
- */
- function _compile_registered_object_tag($tag_command, $attrs, $tag_modifier)
- {
- if ($tag_command{0} == '/') {
- $start_tag = false;
- $tag_command = substr($tag_command, 1);
- } else {
- $start_tag = true;
- }
-
- list($object, $obj_comp) = explode('->', $tag_command);
-
- $arg_list = array();
- if(count($attrs)) {
- $_assign_var = false;
- foreach ($attrs as $arg_name => $arg_value) {
- if($arg_name == 'assign') {
- $_assign_var = $arg_value;
- unset($attrs['assign']);
- continue;
- }
- if (is_bool($arg_value))
- $arg_value = $arg_value ? 'true' : 'false';
- $arg_list[] = "'$arg_name' => $arg_value";
- }
- }
-
- if($this->_reg_objects[$object][2]) {
- // smarty object argument format
- $args = "array(".implode(',', (array)$arg_list)."), \$this";
- } else {
- // traditional argument format
- $args = implode(',', array_values($attrs));
- if (empty($args)) {
- $args = 'null';
- }
- }
-
- $prefix = '';
- $postfix = '';
- $newline = '';
- if(!is_object($this->_reg_objects[$object][0])) {
- $this->_trigger_fatal_error("registered '$object' is not an object");
- } elseif(!empty($this->_reg_objects[$object][1]) && !in_array($obj_comp, $this->_reg_objects[$object][1])) {
- $this->_trigger_fatal_error("'$obj_comp' is not a registered component of object '$object'");
- } elseif(method_exists($this->_reg_objects[$object][0], $obj_comp)) {
- // method
- if(in_array($obj_comp, $this->_reg_objects[$object][3])) {
- // block method
- if ($start_tag) {
- $prefix = "\$this->_tag_stack[] = array('$obj_comp', $args); ";
- $prefix .= "\$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], null, \$this, \$_block_repeat=true); ";
- $prefix .= "while (\$_block_repeat) { ob_start();";
- $return = null;
- $postfix = '';
- } else {
- $prefix = "\$this->_obj_block_content = ob_get_contents(); ob_end_clean(); ";
- $return = "\$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], \$this->_obj_block_content, \$this, \$_block_repeat=false)";
- $postfix = "} array_pop(\$this->_tag_stack);";
- }
- } else {
- // non-block method
- $return = "\$this->_reg_objects['$object'][0]->$obj_comp($args)";
- }
- } else {
- // property
- $return = "\$this->_reg_objects['$object'][0]->$obj_comp";
- }
-
- if($return != null) {
- if($tag_modifier != '') {
- $this->_parse_modifiers($return, $tag_modifier);
- }
-
- if(!empty($_assign_var)) {
- $output = "\$this->assign('" . $this->_dequote($_assign_var) ."', $return);";
- } else {
- $output = 'echo ' . $return . ';';
- $newline = $this->_additional_newline;
- }
- } else {
- $output = '';
- }
-
- return '<?php ' . $prefix . $output . $postfix . "?>" . $newline;
- }
-
- /**
- * Compile {insert ...} tag
- *
- * @param string $tag_args
- * @return string
- */
- function _compile_insert_tag($tag_args)
- {
- $attrs = $this->_parse_attrs($tag_args);
- $name = $this->_dequote($attrs['name']);
-
- if (empty($name)) {
- $this->_syntax_error("missing insert name", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- if (!empty($attrs['script'])) {
- $delayed_loading = true;
- } else {
- $delayed_loading = false;
- }
-
- foreach ($attrs as $arg_name => $arg_value) {
- if (is_bool($arg_value))
- $arg_value = $arg_value ? 'true' : 'false';
- $arg_list[] = "'$arg_name' => $arg_value";
- }
-
- $this->_add_plugin('insert', $name, $delayed_loading);
-
- $_params = "array('args' => array(".implode(', ', (array)$arg_list)."))";
-
- return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.run_insert_handler.php');\necho smarty_core_run_insert_handler($_params, \$this); ?>" . $this->_additional_newline;
- }
-
- /**
- * Compile {include ...} tag
- *
- * @param string $tag_args
- * @return string
- */
- function _compile_include_tag($tag_args)
- {
- $attrs = $this->_parse_attrs($tag_args);
- $arg_list = array();
-
- if (empty($attrs['file'])) {
- $this->_syntax_error("missing 'file' attribute in include tag", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- foreach ($attrs as $arg_name => $arg_value) {
- if ($arg_name == 'file') {
- $include_file = $arg_value;
- continue;
- } else if ($arg_name == 'assign') {
- $assign_var = $arg_value;
- continue;
- }
- if (is_bool($arg_value))
- $arg_value = $arg_value ? 'true' : 'false';
- $arg_list[] = "'$arg_name' => $arg_value";
- }
-
- $output = '<?php ';
-
- if (isset($assign_var)) {
- $output .= "ob_start();\n";
- }
-
- $output .=
- "\$_smarty_tpl_vars = \$this->_tpl_vars;\n";
-
-
- $_params = "array('smarty_include_tpl_file' => " . $include_file . ", 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))";
- $output .= "\$this->_smarty_include($_params);\n" .
- "\$this->_tpl_vars = \$_smarty_tpl_vars;\n" .
- "unset(\$_smarty_tpl_vars);\n";
-
- if (isset($assign_var)) {
- $output .= "\$this->assign(" . $assign_var . ", ob_get_contents()); ob_end_clean();\n";
- }
-
- $output .= ' ?>';
-
- return $output;
-
- }
-
- /**
- * Compile {include ...} tag
- *
- * @param string $tag_args
- * @return string
- */
- function _compile_include_php_tag($tag_args)
- {
- $attrs = $this->_parse_attrs($tag_args);
-
- if (empty($attrs['file'])) {
- $this->_syntax_error("missing 'file' attribute in include_php tag", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- $assign_var = (empty($attrs['assign'])) ? '' : $this->_dequote($attrs['assign']);
- $once_var = (empty($attrs['once']) || $attrs['once']=='false') ? 'false' : 'true';
-
- foreach($attrs as $arg_name => $arg_value) {
- if($arg_name != 'file' AND $arg_name != 'once' AND $arg_name != 'assign') {
- if(is_bool($arg_value))
- $arg_value = $arg_value ? 'true' : 'false';
- $arg_list[] = "'$arg_name' => $arg_value";
- }
- }
-
- $_params = "array('smarty_file' => " . $attrs['file'] . ", 'smarty_assign' => '$assign_var', 'smarty_once' => $once_var, 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))";
-
- return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.smarty_include_php.php');\nsmarty_core_smarty_include_php($_params, \$this); ?>" . $this->_additional_newline;
- }
-
-
- /**
- * Compile {section ...} tag
- *
- * @param string $tag_args
- * @return string
- */
- function _compile_section_start($tag_args)
- {
- $attrs = $this->_parse_attrs($tag_args);
- $arg_list = array();
-
- $output = '<?php ';
- $section_name = $attrs['name'];
- if (empty($section_name)) {
- $this->_syntax_error("missing section name", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- $output .= "if (isset(\$this->_sections[$section_name])) unset(\$this->_sections[$section_name]);\n";
- $section_props = "\$this->_sections[$section_name]";
-
- foreach ($attrs as $attr_name => $attr_value) {
- switch ($attr_name) {
- case 'loop':
- $output .= "{$section_props}['loop'] = is_array(\$_loop=$attr_value) ? count(\$_loop) : max(0, (int)\$_loop); unset(\$_loop);\n";
- break;
-
- case 'show':
- if (is_bool($attr_value))
- $show_attr_value = $attr_value ? 'true' : 'false';
- else
- $show_attr_value = "(bool)$attr_value";
- $output .= "{$section_props}['show'] = $show_attr_value;\n";
- break;
-
- case 'name':
- $output .= "{$section_props}['$attr_name'] = $attr_value;\n";
- break;
-
- case 'max':
- case 'start':
- $output .= "{$section_props}['$attr_name'] = (int)$attr_value;\n";
- break;
-
- case 'step':
- $output .= "{$section_props}['$attr_name'] = ((int)$attr_value) == 0 ? 1 : (int)$attr_value;\n";
- break;
-
- default:
- $this->_syntax_error("unknown section attribute - '$attr_name'", E_USER_ERROR, __FILE__, __LINE__);
- break;
- }
- }
-
- if (!isset($attrs['show']))
- $output .= "{$section_props}['show'] = true;\n";
-
- if (!isset($attrs['loop']))
- $output .= "{$section_props}['loop'] = 1;\n";
-
- if (!isset($attrs['max']))
- $output .= "{$section_props}['max'] = {$section_props}['loop'];\n";
- else
- $output .= "if ({$section_props}['max'] < 0)\n" .
- " {$section_props}['max'] = {$section_props}['loop'];\n";
-
- if (!isset($attrs['step']))
- $output .= "{$section_props}['step'] = 1;\n";
-
- if (!isset($attrs['start']))
- $output .= "{$section_props}['start'] = {$section_props}['step'] > 0 ? 0 : {$section_props}['loop']-1;\n";
- else {
- $output .= "if ({$section_props}['start'] < 0)\n" .
- " {$section_props}['start'] = max({$section_props}['step'] > 0 ? 0 : -1, {$section_props}['loop'] + {$section_props}['start']);\n" .
- "else\n" .
- " {$section_props}['start'] = min({$section_props}['start'], {$section_props}['step'] > 0 ? {$section_props}['loop'] : {$section_props}['loop']-1);\n";
- }
-
- $output .= "if ({$section_props}['show']) {\n";
- if (!isset($attrs['start']) && !isset($attrs['step']) && !isset($attrs['max'])) {
- $output .= " {$section_props}['total'] = {$section_props}['loop'];\n";
- } else {
- $output .= " {$section_props}['total'] = min(ceil(({$section_props}['step'] > 0 ? {$section_props}['loop'] - {$section_props}['start'] : {$section_props}['start']+1)/abs({$section_props}['step'])), {$section_props}['max']);\n";
- }
- $output .= " if ({$section_props}['total'] == 0)\n" .
- " {$section_props}['show'] = false;\n" .
- "} else\n" .
- " {$section_props}['total'] = 0;\n";
-
- $output .= "if ({$section_props}['show']):\n";
- $output .= "
- for ({$section_props}['index'] = {$section_props}['start'], {$section_props}['iteration'] = 1;
- {$section_props}['iteration'] <= {$section_props}['total'];
- {$section_props}['index'] += {$section_props}['step'], {$section_props}['iteration']++):\n";
- $output .= "{$section_props}['rownum'] = {$section_props}['iteration'];\n";
- $output .= "{$section_props}['index_prev'] = {$section_props}['index'] - {$section_props}['step'];\n";
- $output .= "{$section_props}['index_next'] = {$section_props}['index'] + {$section_props}['step'];\n";
- $output .= "{$section_props}['first'] = ({$section_props}['iteration'] == 1);\n";
- $output .= "{$section_props}['last'] = ({$section_props}['iteration'] == {$section_props}['total']);\n";
-
- $output .= "?>";
-
- return $output;
- }
-
-
- /**
- * Compile {foreach ...} tag.
- *
- * @param string $tag_args
- * @return string
- */
- function _compile_foreach_start($tag_args)
- {
- $attrs = $this->_parse_attrs($tag_args);
- $arg_list = array();
-
- if (empty($attrs['from'])) {
- $this->_syntax_error("missing 'from' attribute", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- if (empty($attrs['item'])) {
- $this->_syntax_error("missing 'item' attribute", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- $from = $attrs['from'];
- $item = $this->_dequote($attrs['item']);
- if (isset($attrs['name']))
- $name = $attrs['name'];
-
- $output = '<?php ';
- if (isset($name)) {
- $output .= "if (isset(\$this->_foreach[$name])) unset(\$this->_foreach[$name]);\n";
- $foreach_props = "\$this->_foreach[$name]";
- }
-
- $key_part = '';
-
- foreach ($attrs as $attr_name => $attr_value) {
- switch ($attr_name) {
- case 'key':
- $key = $this->_dequote($attrs['key']);
- $key_part = "\$this->_tpl_vars['$key'] => ";
- break;
-
- case 'name':
- $output .= "{$foreach_props}['$attr_name'] = $attr_value;\n";
- break;
- }
- }
-
- if (isset($name)) {
- $output .= "{$foreach_props}['total'] = count(\$_from = (array)$from);\n";
- $output .= "{$foreach_props}['show'] = {$foreach_props}['total'] > 0;\n";
- $output .= "if ({$foreach_props}['show']):\n";
- $output .= "{$foreach_props}['iteration'] = 0;\n";
- $output .= " foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n";
- $output .= " {$foreach_props}['iteration']++;\n";
- $output .= " {$foreach_props}['first'] = ({$foreach_props}['iteration'] == 1);\n";
- $output .= " {$foreach_props}['last'] = ({$foreach_props}['iteration'] == {$foreach_props}['total']);\n";
- } else {
- $output .= "if (count(\$_from = (array)$from)):\n";
- $output .= " foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n";
- }
- $output .= '?>';
-
- return $output;
- }
-
-
- /**
- * Compile {capture} .. {/capture} tags
- *
- * @param boolean $start true if this is the {capture} tag
- * @param string $tag_args
- * @return string
- */
-
- function _compile_capture_tag($start, $tag_args = '')
- {
- $attrs = $this->_parse_attrs($tag_args);
-
- if ($start) {
- if (isset($attrs['name']))
- $buffer = $attrs['name'];
- else
- $buffer = "'default'";
-
- if (isset($attrs['assign']))
- $assign = $attrs['assign'];
- else
- $assign = null;
- $output = "<?php ob_start(); ?>";
- $this->_capture_stack[] = array($buffer, $assign);
- } else {
- list($buffer, $assign) = array_pop($this->_capture_stack);
- $output = "<?php \$this->_smarty_vars['capture'][$buffer] = ob_get_contents(); ";
- if (isset($assign)) {
- $output .= " \$this->assign($assign, ob_get_contents());";
- }
- $output .= "ob_end_clean(); ?>";
- }
-
- return $output;
- }
-
- /**
- * Compile {if ...} tag
- *
- * @param string $tag_args
- * @param boolean $elseif if true, uses elseif instead of if
- * @return string
- */
- function _compile_if_tag($tag_args, $elseif = false)
- {
-
- /* Tokenize args for 'if' tag. */
- preg_match_all('/(?>
- ' . $this->_obj_call_regexp . '(?:' . $this->_mod_regexp . '*)? | # valid object call
- ' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)? | # var or quoted string
- \-?0[xX][0-9a-fA-F]+|\-?\d+(?:\.\d+)?|\.\d+|!==|===|==|!=|<>|<<|>>|<=|>=|\&\&|\|\||\(|\)|,|\!|\^|=|\&|\~|<|>|\||\%|\+|\-|\/|\*|\@ | # valid non-word token
- \b\w+\b | # valid word token
- \S+ # anything else
- )/x', $tag_args, $match);
-
- $tokens = $match[0];
-
- // make sure we have balanced parenthesis
- $token_count = array_count_values($tokens);
- if(isset($token_count['(']) && $token_count['('] != $token_count[')']) {
- $this->_syntax_error("unbalanced parenthesis in if statement", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- $is_arg_stack = array();
-
- for ($i = 0; $i < count($tokens); $i++) {
-
- $token = &$tokens[$i];
-
- switch (strtolower($token)) {
- case '!':
- case '%':
- case '!==':
- case '==':
- case '===':
- case '>':
- case '<':
- case '!=':
- case '<>':
- case '<<':
- case '>>':
- case '<=':
- case '>=':
- case '&&':
- case '||':
- case '|':
- case '^':
- case '&':
- case '~':
- case ')':
- case ',':
- case '+':
- case '-':
- case '*':
- case '/':
- case '@':
- break;
-
- case 'eq':
- $token = '==';
- break;
-
- case 'ne':
- case 'neq':
- $token = '!=';
- break;
-
- case 'lt':
- $token = '<';
- break;
-
- case 'le':
- case 'lte':
- $token = '<=';
- break;
-
- case 'gt':
- $token = '>';
- break;
-
- case 'ge':
- case 'gte':
- $token = '>=';
- break;
-
- case 'and':
- $token = '&&';
- break;
-
- case 'or':
- $token = '||';
- break;
-
- case 'not':
- $token = '!';
- break;
-
- case 'mod':
- $token = '%';
- break;
-
- case '(':
- array_push($is_arg_stack, $i);
- break;
-
- case 'is':
- /* If last token was a ')', we operate on the parenthesized
- expression. The start of the expression is on the stack.
- Otherwise, we operate on the last encountered token. */
- if ($tokens[$i-1] == ')')
- $is_arg_start = array_pop($is_arg_stack);
- else
- $is_arg_start = $i-1;
- /* Construct the argument for 'is' expression, so it knows
- what to operate on. */
- $is_arg = implode(' ', array_slice($tokens, $is_arg_start, $i - $is_arg_start));
-
- /* Pass all tokens from next one until the end to the
- 'is' expression parsing function. The function will
- return modified tokens, where the first one is the result
- of the 'is' expression and the rest are the tokens it
- didn't touch. */
- $new_tokens = $this->_parse_is_expr($is_arg, array_slice($tokens, $i+1));
-
- /* Replace the old tokens with the new ones. */
- array_splice($tokens, $is_arg_start, count($tokens), $new_tokens);
-
- /* Adjust argument start so that it won't change from the
- current position for the next iteration. */
- $i = $is_arg_start;
- break;
-
- default:
- if(preg_match('!^' . $this->_func_regexp . '$!', $token) ) {
- // function call
- if($this->security &&
- !in_array($token, $this->security_settings['IF_FUNCS'])) {
- $this->_syntax_error("(secure mode) '$token' not allowed in if statement", E_USER_ERROR, __FILE__, __LINE__);
- }
- } elseif(preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)$!', $token)) {
- // object or variable
- $token = $this->_parse_var_props($token);
- } elseif(is_numeric($token)) {
- // number, skip it
- } else {
- $this->_syntax_error("unidentified token '$token'", E_USER_ERROR, __FILE__, __LINE__);
- }
- break;
- }
- }
-
- if ($elseif)
- return '<?php elseif ('.implode(' ', $tokens).'): ?>';
- else
- return '<?php if ('.implode(' ', $tokens).'): ?>';
- }
-
-
- function _compile_arg_list($type, $name, $attrs, &$cache_code) {
- $arg_list = array();
-
- if (isset($type) && isset($name)
- && isset($this->_plugins[$type])
- && isset($this->_plugins[$type][$name])
- && empty($this->_plugins[$type][$name][4])
- && is_array($this->_plugins[$type][$name][5])
- ) {
- /* we have a list of parameters that should be cached */
- $_cache_attrs = $this->_plugins[$type][$name][5];
- $_count = $this->_cache_attrs_count++;
- $cache_code = "\$_cache_attrs =& \$this->_smarty_cache_attrs('$this->_cache_serial','$_count');";
-
- } else {
- /* no parameters are cached */
- $_cache_attrs = null;
- }
-
- foreach ($attrs as $arg_name => $arg_value) {
- if (is_bool($arg_value))
- $arg_value = $arg_value ? 'true' : 'false';
- if (is_null($arg_value))
- $arg_value = 'null';
- if ($_cache_attrs && in_array($arg_name, $_cache_attrs)) {
- $arg_list[] = "'$arg_name' => (\$this->_cache_including) ? \$_cache_attrs['$arg_name'] : (\$_cache_attrs['$arg_name']=$arg_value)";
- } else {
- $arg_list[] = "'$arg_name' => $arg_value";
- }
- }
- return $arg_list;
- }
-
- /**
- * Parse is expression
- *
- * @param string $is_arg
- * @param array $tokens
- * @return array
- */
- function _parse_is_expr($is_arg, $tokens)
- {
- $expr_end = 0;
- $negate_expr = false;
-
- if (($first_token = array_shift($tokens)) == 'not') {
- $negate_expr = true;
- $expr_type = array_shift($tokens);
- } else
- $expr_type = $first_token;
-
- switch ($expr_type) {
- case 'even':
- if (@$tokens[$expr_end] == 'by') {
- $expr_end++;
- $expr_arg = $tokens[$expr_end++];
- $expr = "!(($is_arg / $expr_arg) % " . $this->_parse_var_props($expr_arg) . ")";
- } else
- $expr = "!($is_arg % 2)";
- break;
-
- case 'odd':
- if (@$tokens[$expr_end] == 'by') {
- $expr_end++;
- $expr_arg = $tokens[$expr_end++];
- $expr = "(($is_arg / $expr_arg) % ". $this->_parse_var_props($expr_arg) . ")";
- } else
- $expr = "($is_arg % 2)";
- break;
-
- case 'div':
- if (@$tokens[$expr_end] == 'by') {
- $expr_end++;
- $expr_arg = $tokens[$expr_end++];
- $expr = "!($is_arg % " . $this->_parse_var_props($expr_arg) . ")";
- } else {
- $this->_syntax_error("expecting 'by' after 'div'", E_USER_ERROR, __FILE__, __LINE__);
- }
- break;
-
- default:
- $this->_syntax_error("unknown 'is' expression - '$expr_type'", E_USER_ERROR, __FILE__, __LINE__);
- break;
- }
-
- if ($negate_expr) {
- $expr = "!($expr)";
- }
-
- array_splice($tokens, 0, $expr_end, $expr);
-
- return $tokens;
- }
-
-
- /**
- * Parse attribute string
- *
- * @param string $tag_args
- * @return array
- */
- function _parse_attrs($tag_args)
- {
-
- /* Tokenize tag attributes. */
- preg_match_all('/(?:' . $this->_obj_call_regexp . '|' . $this->_qstr_regexp . ' | (?>[^"\'=\s]+)
- )+ |
- [=]
- /x', $tag_args, $match);
- $tokens = $match[0];
-
- $attrs = array();
- /* Parse state:
- 0 - expecting attribute name
- 1 - expecting '='
- 2 - expecting attribute value (not '=') */
- $state = 0;
-
- foreach ($tokens as $token) {
- switch ($state) {
- case 0:
- /* If the token is a valid identifier, we set attribute name
- and go to state 1. */
- if (preg_match('!^\w+$!', $token)) {
- $attr_name = $token;
- $state = 1;
- } else
- $this->_syntax_error("invalid attribute name: '$token'", E_USER_ERROR, __FILE__, __LINE__);
- break;
-
- case 1:
- /* If the token is '=', then we go to state 2. */
- if ($token == '=') {
- $state = 2;
- } else
- $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__);
- break;
-
- case 2:
- /* If token is not '=', we set the attribute value and go to
- state 0. */
- if ($token != '=') {
- /* We booleanize the token if it's a non-quoted possible
- boolean value. */
- if (preg_match('!^(on|yes|true)$!', $token)) {
- $token = 'true';
- } else if (preg_match('!^(off|no|false)$!', $token)) {
- $token = 'false';
- } else if ($token == 'null') {
- $token = 'null';
- } else if (preg_match('!^-?([0-9]+|0[xX][0-9a-fA-F]+)$!', $token)) {
- /* treat integer literally */
- } else if (!preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . ')*$!', $token)) {
- /* treat as a string, double-quote it escaping quotes */
- $token = '"'.addslashes($token).'"';
- }
-
- $attrs[$attr_name] = $token;
- $state = 0;
- } else
- $this->_syntax_error("'=' cannot be an attribute value", E_USER_ERROR, __FILE__, __LINE__);
- break;
- }
- $last_token = $token;
- }
-
- if($state != 0) {
- if($state == 1) {
- $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__);
- } else {
- $this->_syntax_error("missing attribute value", E_USER_ERROR, __FILE__, __LINE__);
- }
- }
-
- $this->_parse_vars_props($attrs);
-
- return $attrs;
- }
-
- /**
- * compile multiple variables and section properties tokens into
- * PHP code
- *
- * @param array $tokens
- */
- function _parse_vars_props(&$tokens)
- {
- foreach($tokens as $key => $val) {
- $tokens[$key] = $this->_parse_var_props($val);
- }
- }
-
- /**
- * compile single variable and section properties token into
- * PHP code
- *
- * @param string $val
- * @param string $tag_attrs
- * @return string
- */
- function _parse_var_props($val)
- {
- $val = trim($val);
-
- if(preg_match('!^(' . $this->_obj_call_regexp . '|' . $this->_dvar_regexp . ')(' . $this->_mod_regexp . '*)$!', $val, $match)) {
- // $ variable or object
- $return = $this->_parse_var($match[1]);
- if($match[2] != '') {
- $this->_parse_modifiers($return, $match[2]);
- }
- return $return;
- }
- elseif(preg_match('!^' . $this->_db_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
- // double quoted text
- preg_match('!^(' . $this->_db_qstr_regexp . ')('. $this->_mod_regexp . '*)$!', $val, $match);
- $return = $this->_expand_quoted_text($match[1]);
- if($match[2] != '') {
- $this->_parse_modifiers($return, $match[2]);
- }
- return $return;
- }
- elseif(preg_match('!^' . $this->_si_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
- // single quoted text
- preg_match('!^(' . $this->_si_qstr_regexp . ')('. $this->_mod_regexp . '*)$!', $val, $match);
- if($match[2] != '') {
- $this->_parse_modifiers($match[1], $match[2]);
- return $match[1];
- }
- }
- elseif(preg_match('!^' . $this->_cvar_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
- // config var
- return $this->_parse_conf_var($val);
- }
- elseif(preg_match('!^' . $this->_svar_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
- // section var
- return $this->_parse_section_prop($val);
- }
- elseif(!in_array($val, $this->_permitted_tokens) && !is_numeric($val)) {
- // literal string
- return $this->_expand_quoted_text('"' . $val .'"');
- }
- return $val;
- }
-
- /**
- * expand quoted text with embedded variables
- *
- * @param string $var_expr
- * @return string
- */
- function _expand_quoted_text($var_expr)
- {
- // if contains unescaped $, expand it
- if(preg_match_all('%(?:\`(?<!\\\\)\$' . $this->_dvar_guts_regexp . '\`)|(?:(?<!\\\\)\$\w+(\[[a-zA-Z0-9]+\])*)%', $var_expr, $_match)) {
- $_match = $_match[0];
- rsort($_match);
- reset($_match);
- foreach($_match as $_var) {
- $var_expr = str_replace ($_var, '".(' . $this->_parse_var(str_replace('`','',$_var)) . ')."', $var_expr);
- }
- $_return = preg_replace('%\.""|(?<!\\\\)""\.%', '', $var_expr);
- } else {
- $_return = $var_expr;
- }
- // replace double quoted literal string with single quotes
- $_return = preg_replace('!^"([\s\w]+)"$!',"'\\1'",$_return);
- return $_return;
- }
-
- /**
- * parse variable expression into PHP code
- *
- * @param string $var_expr
- * @param string $output
- * @return string
- */
- function _parse_var($var_expr)
- {
- $_has_math = false;
- $_math_vars = preg_split('!('.$this->_dvar_math_regexp.'|'.$this->_qstr_regexp.')!', $var_expr, -1, PREG_SPLIT_DELIM_CAPTURE);
-
- if(count($_math_vars) > 1) {
- $_first_var = "";
- $_complete_var = "";
- // simple check if there is any math, to stop recursion (due to modifiers with "xx % yy" as parameter)
- foreach($_math_vars as $_k => $_math_var) {
- $_math_var = $_math_vars[$_k];
-
- if(!empty($_math_var) || is_numeric($_math_var)) {
- // hit a math operator, so process the stuff which came before it
- if(preg_match('!^' . $this->_dvar_math_regexp . '$!', $_math_var)) {
- $_has_math = true;
- if(!empty($_complete_var) || is_numeric($_complete_var)) {
- $_output .= $this->_parse_var($_complete_var);
- }
-
- // just output the math operator to php
- $_output .= $_math_var;
-
- if(empty($_first_var))
- $_first_var = $_complete_var;
-
- $_complete_var = "";
- } else {
- // fetch multiple -> (like $foo->bar->baz ) which wouldn't get fetched else, because it would only get $foo->bar and treat the ->baz as "-" ">baz" then
- for($_i = $_k + 1; $_i <= count($_math_vars); $_i += 2) {
- // fetch -> because it gets splitted at - and move it back together
- if( /* prevent notice */ (isset($_math_vars[$_i]) && isset($_math_vars[$_i+1])) && ($_math_vars[$_i] === '-' && $_math_vars[$_i+1]{0} === '>')) {
- $_math_var .= $_math_vars[$_i].$_math_vars[$_i+1];
- $_math_vars[$_i] = $_math_vars[$_i+1] = '';
- } else {
- break;
- }
- }
- $_complete_var .= $_math_var;
- }
- }
- }
- if($_has_math) {
- if(!empty($_complete_var) || is_numeric($_complete_var))
- $_output .= $this->_parse_var($_complete_var, true);
-
- // get the modifiers working (only the last var from math + modifier is left)
- $var_expr = $_complete_var;
- }
- }
-
- // prevent cutting of first digit in the number (we _definitly_ got a number if the first char is a digit)
- if(is_numeric($var_expr{0}))
- $_var_ref = $var_expr;
- else
- $_var_ref = substr($var_expr, 1);
-
- if(!$_has_math) {
- // get [foo] and .foo and ->foo and (...) pieces
- preg_match_all('!(?:^\w+)|' . $this->_obj_params_regexp . '|(?:' . $this->_var_bracket_regexp . ')|->\$?\w+|\.\$?\w+|\S+!', $_var_ref, $match);
-
- $_indexes = $match[0];
- $_var_name = array_shift($_indexes);
-
- /* Handle $smarty.* variable references as a special case. */
- if ($_var_name == 'smarty') {
- /*
- * If the reference could be compiled, use the compiled output;
- * otherwise, fall back on the $smarty variable generated at
- * run-time.
- */
- if (($smarty_ref = $this->_compile_smarty_ref($_indexes)) !== null) {
- $_output = $smarty_ref;
- } else {
- $_var_name = substr(array_shift($_indexes), 1);
- $_output = "\$this->_smarty_vars['$_var_name']";
- }
- } elseif(is_numeric($_var_name) && is_numeric($var_expr{0})) {
- // because . is the operator for accessing arrays thru inidizes we need to put it together again for floating point numbers
- if(count($_indexes) > 0)
- {
- $_var_name .= implode("", $_indexes);
- $_indexes = array();
- }
- $_output = $_var_name;
- } else {
- $_output = "\$this->_tpl_vars['$_var_name']";
- }
-
- foreach ($_indexes as $_index) {
- if ($_index{0} == '[') {
- $_index = substr($_index, 1, -1);
- if (is_numeric($_index)) {
- $_output .= "[$_index]";
- } elseif ($_index{0} == '$') {
- if (strpos($_index, '.') !== false) {
- $_output .= '[' . $this->_parse_var($_index) . ']';
- } else {
- $_output .= "[\$this->_tpl_vars['" . substr($_index, 1) . "']]";
- }
- } else {
- $_var_parts = explode('.', $_index);
- $_var_section = $_var_parts[0];
- $_var_section_prop = isset($_var_parts[1]) ? $_var_parts[1] : 'index';
- $_output .= "[\$this->_sections['$_var_section']['$_var_section_prop']]";
- }
- } else if ($_index{0} == '.') {
- if ($_index{1} == '$')
- $_output .= "[\$this->_tpl_vars['" . substr($_index, 2) . "']]";
- else
- $_output .= "['" . substr($_index, 1) . "']";
- } else if (substr($_index,0,2) == '->') {
- if(substr($_index,2,2) == '__') {
- $this->_syntax_error('call to internal object members is not allowed', E_USER_ERROR, __FILE__, __LINE__);
- } elseif($this->security && substr($_index, 2, 1) == '_') {
- $this->_syntax_error('(secure) call to private object member is not allowed', E_USER_ERROR, __FILE__, __LINE__);
- } elseif ($_index{2} == '$') {
- if ($this->security) {
- $this->_syntax_error('(secure) call to dynamic object member is not allowed', E_USER_ERROR, __FILE__, __LINE__);
- } else {
- $_output .= '->{(($_var=$this->_tpl_vars[\''.substr($_index,3).'\']) && substr($_var,0,2)!=\'__\') ? $_var : $this->trigger_error("cannot access property \\"$_var\\"")}';
- }
- } else {
- $_output .= $_index;
- }
- } elseif ($_index{0} == '(') {
- $_index = $this->_parse_parenth_args($_index);
- $_output .= $_index;
- } else {
- $_output .= $_index;
- }
- }
- }
-
- return $_output;
- }
-
- /**
- * parse arguments in function call parenthesis
- *
- * @param string $parenth_args
- * @return string
- */
- function _parse_parenth_args($parenth_args)
- {
- preg_match_all('!' . $this->_param_regexp . '!',$parenth_args, $match);
- $match = $match[0];
- rsort($match);
- reset($match);
- $orig_vals = $match;
- $this->_parse_vars_props($match);
- return str_replace($orig_vals, $match, $parenth_args);
- }
-
- /**
- * parse configuration variable expression into PHP code
- *
- * @param string $conf_var_expr
- */
- function _parse_conf_var($conf_var_expr)
- {
- $parts = explode('|', $conf_var_expr, 2);
- $var_ref = $parts[0];
- $modifiers = isset($parts[1]) ? $parts[1] : '';
-
- $var_name = substr($var_ref, 1, -1);
-
- $output = "\$this->_config[0]['vars']['$var_name']";
-
- $this->_parse_modifiers($output, $modifiers);
-
- return $output;
- }
-
- /**
- * parse section property expression into PHP code
- *
- * @param string $section_prop_expr
- * @return string
- */
- function _parse_section_prop($section_prop_expr)
- {
- $parts = explode('|', $section_prop_expr, 2);
- $var_ref = $parts[0];
- $modifiers = isset($parts[1]) ? $parts[1] : '';
-
- preg_match('!%(\w+)\.(\w+)%!', $var_ref, $match);
- $section_name = $match[1];
- $prop_name = $match[2];
-
- $output = "\$this->_sections['$section_name']['$prop_name']";
-
- $this->_parse_modifiers($output, $modifiers);
-
- return $output;
- }
-
-
- /**
- * parse modifier chain into PHP code
- *
- * sets $output to parsed modified chain
- * @param string $output
- * @param string $modifier_string
- */
- function _parse_modifiers(&$output, $modifier_string)
- {
- preg_match_all('!\|(@?\w+)((?>:(?:'. $this->_qstr_regexp . '|[^|]+))*)!', '|' . $modifier_string, $_match);
- list(, $_modifiers, $modifier_arg_strings) = $_match;
-
- for ($_i = 0, $_for_max = count($_modifiers); $_i < $_for_max; $_i++) {
- $_modifier_name = $_modifiers[$_i];
-
- if($_modifier_name == 'smarty') {
- // skip smarty modifier
- continue;
- }
-
- preg_match_all('!:(' . $this->_qstr_regexp . '|[^:]+)!', $modifier_arg_strings[$_i], $_match);
- $_modifier_args = $_match[1];
-
- if ($_modifier_name{0} == '@') {
- $_map_array = false;
- $_modifier_name = substr($_modifier_name, 1);
- } else {
- $_map_array = true;
- }
-
- $this->_add_plugin('modifier', $_modifier_name);
- if (empty($this->_plugins['modifier'][$_modifier_name])
- && !$this->_get_plugin_filepath('modifier', $_modifier_name)
- && function_exists($_modifier_name)) {
- if ($this->security && !in_array($_modifier_name, $this->security_settings['MODIFIER_FUNCS'])) {
- $this->_trigger_fatal_error("[plugin] (secure mode) modifier '$_modifier_name' is not allowed" , $_tpl_file, $_tpl_line, __FILE__, __LINE__);
- } else {
- $this->_plugins['modifier'][$_modifier_name] = array($_modifier_name, null, null, false);
- }
- }
-
- $this->_parse_vars_props($_modifier_args);
-
- if($_modifier_name == 'default') {
- // supress notifications of default modifier vars and args
- if($output{0} == '$') {
- $output = '@' . $output;
- }
- if(isset($_modifier_args[0]) && $_modifier_args[0]{0} == '$') {
- $_modifier_args[0] = '@' . $_modifier_args[0];
- }
- }
- if (count($_modifier_args) > 0)
- $_modifier_args = ', '.implode(', ', $_modifier_args);
- else
- $_modifier_args = '';
-
- if ($_map_array) {
- $output = "((is_array(\$_tmp=$output)) ? \$this->_run_mod_handler('$_modifier_name', true, \$_tmp$_modifier_args) : " . $this->_compile_plugin_call('modifier', $_modifier_name) . "(\$_tmp$_modifier_args))";
-
- } else {
-
- $output = $this->_compile_plugin_call('modifier', $_modifier_name)."($output$_modifier_args)";
-
- }
- }
- }
-
-
- /**
- * add plugin
- *
- * @param string $type
- * @param string $name
- * @param boolean? $delayed_loading
- */
- function _add_plugin($type, $name, $delayed_loading = null)
- {
- if (!isset($this->_plugin_info[$type])) {
- $this->_plugin_info[$type] = array();
- }
- if (!isset($this->_plugin_info[$type][$name])) {
- $this->_plugin_info[$type][$name] = array($this->_current_file,
- $this->_current_line_no,
- $delayed_loading);
- }
- }
-
-
- /**
- * Compiles references of type $smarty.foo
- *
- * @param string $indexes
- * @return string
- */
- function _compile_smarty_ref(&$indexes)
- {
- /* Extract the reference name. */
- $_ref = substr($indexes[0], 1);
- foreach($indexes as $_index_no=>$_index) {
- if ($_index{0} != '.' && $_index_no<2 || !preg_match('!^(\.|\[|->)!', $_index)) {
- $this->_syntax_error('$smarty' . implode('', array_slice($indexes, 0, 2)) . ' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__);
- }
- }
-
- switch ($_ref) {
- case 'now':
- $compiled_ref = 'time()';
- $_max_index = 1;
- break;
-
- case 'foreach':
- case 'section':
- array_shift($indexes);
- $_var = $this->_parse_var_props(substr($indexes[0], 1));
- if ($_ref == 'foreach')
- $compiled_ref = "\$this->_foreach[$_var]";
- else
- $compiled_ref = "\$this->_sections[$_var]";
- break;
-
- case 'get':
- $compiled_ref = ($this->request_use_auto_globals) ? '$_GET' : "\$GLOBALS['HTTP_GET_VARS']";
- break;
-
- case 'post':
- $compiled_ref = ($this->request_use_auto_globals) ? '$_POST' : "\$GLOBALS['HTTP_POST_VARS']";
- break;
-
- case 'cookies':
- $compiled_ref = ($this->request_use_auto_globals) ? '$_COOKIE' : "\$GLOBALS['HTTP_COOKIE_VARS']";
- break;
-
- case 'env':
- $compiled_ref = ($this->request_use_auto_globals) ? '$_ENV' : "\$GLOBALS['HTTP_ENV_VARS']";
- break;
-
- case 'server':
- $compiled_ref = ($this->request_use_auto_globals) ? '$_SERVER' : "\$GLOBALS['HTTP_SERVER_VARS']";
- break;
-
- case 'session':
- $compiled_ref = ($this->request_use_auto_globals) ? '$_SESSION' : "\$GLOBALS['HTTP_SESSION_VARS']";
- break;
-
- /*
- * These cases are handled either at run-time or elsewhere in the
- * compiler.
- */
- case 'request':
- if ($this->request_use_auto_globals) {
- $compiled_ref = '$_REQUEST';
- break;
- } else {
- $this->_init_smarty_vars = true;
- }
- return null;
-
- case 'capture':
- return null;
-
- case 'template':
- $compiled_ref = "'$this->_current_file'";
- $_max_index = 1;
- break;
-
- case 'version':
- $compiled_ref = "'$this->_version'";
- $_max_index = 1;
- break;
-
- case 'const':
- array_shift($indexes);
- $_val = $this->_parse_var_props(substr($indexes[0],1));
- $compiled_ref = '@constant(' . $_val . ')';
- $_max_index = 1;
- break;
-
- case 'config':
- $compiled_ref = "\$this->_config[0]['vars']";
- $_max_index = 2;
- break;
-
- default:
- $this->_syntax_error('$smarty.' . $_ref . ' is an unknown reference', E_USER_ERROR, __FILE__, __LINE__);
- break;
- }
-
- if (isset($_max_index) && count($indexes) > $_max_index) {
- $this->_syntax_error('$smarty' . implode('', $indexes) .' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__);
- }
-
- array_shift($indexes);
- return $compiled_ref;
- }
-
- /**
- * compiles call to plugin of type $type with name $name
- * returns a string containing the function-name or method call
- * without the paramter-list that would have follow to make the
- * call valid php-syntax
- *
- * @param string $type
- * @param string $name
- * @return string
- */
- function _compile_plugin_call($type, $name) {
- if (isset($this->_plugins[$type][$name])) {
- /* plugin loaded */
- if (is_array($this->_plugins[$type][$name][0])) {
- return ((is_object($this->_plugins[$type][$name][0][0])) ?
- "\$this->_plugins['$type']['$name'][0][0]->" /* method callback */
- : (string)($this->_plugins[$type][$name][0][0]).'::' /* class callback */
- ). $this->_plugins[$type][$name][0][1];
-
- } else {
- /* function callback */
- return $this->_plugins[$type][$name][0];
-
- }
- } else {
- /* plugin not loaded -> auto-loadable-plugin */
- return 'smarty_'.$type.'_'.$name;
-
- }
- }
-
- /**
- * load pre- and post-filters
- */
- function _load_filters()
- {
- if (count($this->_plugins['prefilter']) > 0) {
- foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
- if ($prefilter === false) {
- unset($this->_plugins['prefilter'][$filter_name]);
- $_params = array('plugins' => array(array('prefilter', $filter_name, null, null, false)));
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
- smarty_core_load_plugins($_params, $this);
- }
- }
- }
- if (count($this->_plugins['postfilter']) > 0) {
- foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) {
- if ($postfilter === false) {
- unset($this->_plugins['postfilter'][$filter_name]);
- $_params = array('plugins' => array(array('postfilter', $filter_name, null, null, false)));
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
- smarty_core_load_plugins($_params, $this);
- }
- }
- }
- }
-
-
- /**
- * Quote subpattern references
- *
- * @param string $string
- * @return string
- */
- function _quote_replace($string)
- {
- return preg_replace('![\\$]\d!', '\\\\\\0', $string);
- }
-
- /**
- * display Smarty syntax error
- *
- * @param string $error_msg
- * @param integer $error_type
- * @param string $file
- * @param integer $line
- */
- function _syntax_error($error_msg, $error_type = E_USER_ERROR, $file=null, $line=null)
- {
- if(isset($file) && isset($line)) {
- $info = ' ('.basename($file).", line $line)";
- } else {
- $info = null;
- }
- trigger_error('Smarty: [in ' . $this->_current_file . ' line ' .
- $this->_current_line_no . "]: syntax error: $error_msg$info", $error_type);
- }
-
-
- /**
- * check if the compilation changes from cacheable to
- * non-cacheable state with the beginning of the current
- * plugin. return php-code to reflect the transition.
- * @return string
- */
- function _push_cacheable_state($type, $name) {
- $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4];
- if ($_cacheable
- || 0<$this->_cacheable_state++) return '';
- if (!isset($this->_cache_serial)) $this->_cache_serial = md5(uniqid('Smarty'));
- $_ret = 'if ($this->caching) { echo \'{nocache:'
- . $this->_cache_serial . '#' . $this->_nocache_count
- . '}\';}';
- return $_ret;
- }
-
-
- /**
- * check if the compilation changes from non-cacheable to
- * cacheable state with the end of the current plugin return
- * php-code to reflect the transition.
- * @return string
- */
- function _pop_cacheable_state($type, $name) {
- $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4];
- if ($_cacheable
- || --$this->_cacheable_state>0) return '';
- return 'if ($this->caching) { echo \'{/nocache:'
- . $this->_cache_serial . '#' . ($this->_nocache_count++)
- . '}\';}';
- }
-
-}
-
-/**
- * compare to values by their string length
- *
- * @access private
- * @param string $a
- * @param string $b
- * @return 0|-1|1
- */
-function _smarty_sort_length($a, $b)
-{
- if($a == $b)
- return 0;
-
- if(strlen($a) == strlen($b))
- return ($a > $b) ? -1 : 1;
-
- return (strlen($a) > strlen($b)) ? -1 : 1;
-}
-
-
-/* vim: set et: */
-
-?>
+<?php
+
+/**
+ * Project: Smarty: the PHP compiling template engine
+ * File: Smarty_Compiler.class.php
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * You may contact the authors of Smarty by e-mail at:
+ * monte@ispi.net
+ * andrei@php.net
+ *
+ * Or, write to:
+ * Monte Ohrt
+ * Director of Technology, ispi
+ * 237 S. 70th suite 220
+ * Lincoln, NE 68510
+ *
+ * The latest version of Smarty can be obtained from:
+ * http://smarty.php.net/
+ *
+ * @link http://smarty.php.net/
+ * @author Monte Ohrt <monte@ispi.net>
+ * @author Andrei Zmievski <andrei@php.net>
+ * @version 2.6.0
+ * @copyright 2001-2003 ispi of Lincoln, Inc.
+ * @package Smarty
+ */
+
+/* $Id$ */
+
+/**
+ * Template compiling class
+ * @package Smarty
+ */
+class Smarty_Compiler extends Smarty {
+
+ // internal vars
+ /**#@+
+ * @access private
+ */
+ var $_sectionelse_stack = array(); // keeps track of whether section had 'else' part
+ var $_foreachelse_stack = array(); // keeps track of whether foreach had 'else' part
+ var $_literal_blocks = array(); // keeps literal template blocks
+ var $_php_blocks = array(); // keeps php code blocks
+ var $_current_file = null; // the current template being compiled
+ var $_current_line_no = 1; // line number for error messages
+ var $_capture_stack = array(); // keeps track of nested capture buffers
+ var $_plugin_info = array(); // keeps track of plugins to load
+ var $_init_smarty_vars = false;
+ var $_permitted_tokens = array('true','false','yes','no','on','off','null');
+ var $_db_qstr_regexp = null; // regexps are setup in the constructor
+ var $_si_qstr_regexp = null;
+ var $_qstr_regexp = null;
+ var $_func_regexp = null;
+ var $_var_bracket_regexp = null;
+ var $_dvar_guts_regexp = null;
+ var $_dvar_regexp = null;
+ var $_cvar_regexp = null;
+ var $_svar_regexp = null;
+ var $_avar_regexp = null;
+ var $_mod_regexp = null;
+ var $_var_regexp = null;
+ var $_parenth_param_regexp = null;
+ var $_func_call_regexp = null;
+ var $_obj_ext_regexp = null;
+ var $_obj_start_regexp = null;
+ var $_obj_params_regexp = null;
+ var $_obj_call_regexp = null;
+ var $_cacheable_state = 0;
+ var $_cache_attrs_count = 0;
+ var $_nocache_count = 0;
+ var $_cache_serial = null;
+ var $_cache_include = null;
+
+ var $_strip_depth = 0;
+ var $_additional_newline = "\n";
+
+ /**#@-*/
+ /**
+ * The class constructor.
+ */
+ function Smarty_Compiler()
+ {
+ // matches double quoted strings:
+ // "foobar"
+ // "foo\"bar"
+ $this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"';
+
+ // matches single quoted strings:
+ // 'foobar'
+ // 'foo\'bar'
+ $this->_si_qstr_regexp = '\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'';
+
+ // matches single or double quoted strings
+ $this->_qstr_regexp = '(?:' . $this->_db_qstr_regexp . '|' . $this->_si_qstr_regexp . ')';
+
+ // matches bracket portion of vars
+ // [0]
+ // [foo]
+ // [$bar]
+ $this->_var_bracket_regexp = '\[\$?[\w\.]+\]';
+
+ // matches $ vars (not objects):
+ // $foo
+ // $foo.bar
+ // $foo.bar.foobar
+ // $foo[0]
+ // $foo[$bar]
+ // $foo[5][blah]
+ // $foo[5].bar[$foobar][4]
+ $this->_dvar_math_regexp = '[\+\-\*\/\%]';
+ $this->_dvar_math_var_regexp = '[\$\w\.\+\-\*\/\%\d\>\[\]]';
+ $this->_dvar_num_var_regexp = '\-?\d+(?:\.\d+)?' . $this->_dvar_math_var_regexp;
+ $this->_dvar_guts_regexp = '\w+(?:' . $this->_var_bracket_regexp
+ . ')*(?:\.\$?\w+(?:' . $this->_var_bracket_regexp . ')*)*(?:' . $this->_dvar_math_regexp . '(?:\-?\d+(?:\.\d+)?|' . $this->_dvar_math_var_regexp . ')*)?';
+ $this->_dvar_regexp = '\$' . $this->_dvar_guts_regexp;
+
+ // matches config vars:
+ // #foo#
+ // #foobar123_foo#
+ $this->_cvar_regexp = '\#\w+\#';
+
+ // matches section vars:
+ // %foo.bar%
+ $this->_svar_regexp = '\%\w+\.\w+\%';
+
+ // matches all valid variables (no quotes, no modifiers)
+ $this->_avar_regexp = '(?:' . $this->_dvar_regexp . '|'
+ . $this->_cvar_regexp . '|' . $this->_svar_regexp . ')';
+
+ // matches valid variable syntax:
+ // $foo
+ // $foo
+ // #foo#
+ // #foo#
+ // "text"
+ // "text"
+ $this->_var_regexp = '(?:' . $this->_avar_regexp . '|' . $this->_qstr_regexp . ')';
+
+ // matches valid object call (no objects allowed in parameters):
+ // $foo->bar
+ // $foo->bar()
+ // $foo->bar("text")
+ // $foo->bar($foo, $bar, "text")
+ // $foo->bar($foo, "foo")
+ // $foo->bar->foo()
+ // $foo->bar->foo->bar()
+ $this->_obj_ext_regexp = '\->(?:\$?' . $this->_dvar_guts_regexp . ')';
+ $this->_obj_params_regexp = '\((?:\w+|'
+ . $this->_var_regexp . '(?:\s*,\s*(?:(?:\w+|'
+ . $this->_var_regexp . ')))*)?\)';
+ $this->_obj_start_regexp = '(?:' . $this->_dvar_regexp . '(?:' . $this->_obj_ext_regexp . ')+)';
+ $this->_obj_call_regexp = '(?:' . $this->_obj_start_regexp . '(?:' . $this->_obj_params_regexp . ')?)';
+
+ // matches valid modifier syntax:
+ // |foo
+ // |@foo
+ // |foo:"bar"
+ // |foo:$bar
+ // |foo:"bar":$foobar
+ // |foo|bar
+ // |foo:$foo->bar
+ $this->_mod_regexp = '(?:\|@?\w+(?::(?>-?\w+|'
+ . $this->_obj_call_regexp . '|' . $this->_avar_regexp . '|' . $this->_qstr_regexp .'))*)';
+
+ // matches valid function name:
+ // foo123
+ // _foo_bar
+ $this->_func_regexp = '[a-zA-Z_]\w*';
+
+ // matches valid registered object:
+ // foo->bar
+ $this->_reg_obj_regexp = '[a-zA-Z_]\w*->[a-zA-Z_]\w*';
+
+ // matches valid parameter values:
+ // true
+ // $foo
+ // $foo|bar
+ // #foo#
+ // #foo#|bar
+ // "text"
+ // "text"|bar
+ // $foo->bar
+ $this->_param_regexp = '(?:\s*(?:' . $this->_obj_call_regexp . '|'
+ . $this->_var_regexp . '|\w+)(?>' . $this->_mod_regexp . '*)\s*)';
+
+ // matches valid parenthesised function parameters:
+ //
+ // "text"
+ // $foo, $bar, "text"
+ // $foo|bar, "foo"|bar, $foo->bar($foo)|bar
+ $this->_parenth_param_regexp = '(?:\((?:\w+|'
+ . $this->_param_regexp . '(?:\s*,\s*(?:(?:\w+|'
+ . $this->_param_regexp . ')))*)?\))';
+
+ // matches valid function call:
+ // foo()
+ // foo_bar($foo)
+ // _foo_bar($foo,"bar")
+ // foo123($foo,$foo->bar(),"foo")
+ $this->_func_call_regexp = '(?:' . $this->_func_regexp . '\s*(?:'
+ . $this->_parenth_param_regexp . '))';
+ }
+
+ /**
+ * compile a resource
+ *
+ * sets $compiled_content to the compiled source
+ * @param string $resource_name
+ * @param string $source_content
+ * @param string $compiled_content
+ * @return true
+ */
+ function _compile_file($resource_name, $source_content, &$compiled_content)
+ {
+
+ if ($this->security) {
+ // do not allow php syntax to be executed unless specified
+ if ($this->php_handling == SMARTY_PHP_ALLOW &&
+ !$this->security_settings['PHP_HANDLING']) {
+ $this->php_handling = SMARTY_PHP_PASSTHRU;
+ }
+ }
+
+ $this->_load_filters();
+
+ $this->_current_file = $resource_name;
+ $this->_current_line_no = 1;
+ $ldq = preg_quote($this->left_delimiter, '!');
+ $rdq = preg_quote($this->right_delimiter, '!');
+
+ // run template source through prefilter functions
+ if (count($this->_plugins['prefilter']) > 0) {
+ foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
+ if ($prefilter === false) continue;
+ if ($prefilter[3] || is_callable($prefilter[0])) {
+ $source_content = call_user_func_array($prefilter[0],
+ array($source_content, &$this));
+ $this->_plugins['prefilter'][$filter_name][3] = true;
+ } else {
+ $this->_trigger_fatal_error("[plugin] prefilter '$filter_name' is not implemented");
+ }
+ }
+ }
+
+ /* Annihilate the comments. */
+ $source_content = preg_replace("!({$ldq})\*(.*?)\*({$rdq})!se",
+ "'\\1*'.str_repeat(\"\n\", substr_count('\\2', \"\n\")) .'*\\3'",
+ $source_content);
+
+ /* Pull out the literal blocks. */
+ preg_match_all("!{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}!s", $source_content, $_match);
+ $this->_literal_blocks = $_match[1];
+ $source_content = preg_replace("!{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}!s",
+ $this->_quote_replace($this->left_delimiter.'literal'.$this->right_delimiter), $source_content);
+
+ /* Pull out the php code blocks. */
+ preg_match_all("!{$ldq}php{$rdq}(.*?){$ldq}/php{$rdq}!s", $source_content, $_match);
+ $this->_php_blocks = $_match[1];
+ $source_content = preg_replace("!{$ldq}php{$rdq}(.*?){$ldq}/php{$rdq}!s",
+ $this->_quote_replace($this->left_delimiter.'php'.$this->right_delimiter), $source_content);
+
+ /* Gather all template tags. */
+ preg_match_all("!{$ldq}\s*(.*?)\s*{$rdq}!s", $source_content, $_match);
+ $template_tags = $_match[1];
+ /* Split content by template tags to obtain non-template content. */
+ $text_blocks = preg_split("!{$ldq}.*?{$rdq}!s", $source_content);
+
+ /* loop through text blocks */
+ for ($curr_tb = 0, $for_max = count($text_blocks); $curr_tb < $for_max; $curr_tb++) {
+ /* match anything resembling php tags */
+ if (preg_match_all('!(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?php[\"\']?)!is', $text_blocks[$curr_tb], $sp_match)) {
+ /* replace tags with placeholders to prevent recursive replacements */
+ $sp_match[1] = array_unique($sp_match[1]);
+ usort($sp_match[1], '_smarty_sort_length');
+ for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
+ $text_blocks[$curr_tb] = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$text_blocks[$curr_tb]);
+ }
+ /* process each one */
+ for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
+ if ($this->php_handling == SMARTY_PHP_PASSTHRU) {
+ /* echo php contents */
+ $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '<?php echo \''.str_replace("'", "\'", $sp_match[1][$curr_sp]).'\'; ?>'."\n", $text_blocks[$curr_tb]);
+ } else if ($this->php_handling == SMARTY_PHP_QUOTE) {
+ /* quote php tags */
+ $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', htmlspecialchars($sp_match[1][$curr_sp]), $text_blocks[$curr_tb]);
+ } else if ($this->php_handling == SMARTY_PHP_REMOVE) {
+ /* remove php tags */
+ $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '', $text_blocks[$curr_tb]);
+ } else {
+ /* SMARTY_PHP_ALLOW, but echo non php starting tags */
+ $sp_match[1][$curr_sp] = preg_replace('%(<\?(?!php|=|$))%i', '<?php echo \'\\1\'?>'."\n", $sp_match[1][$curr_sp]);
+ $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', $sp_match[1][$curr_sp], $text_blocks[$curr_tb]);
+ }
+ }
+ }
+ }
+
+ /* Compile the template tags into PHP code. */
+ $compiled_tags = array();
+ for ($i = 0, $for_max = count($template_tags); $i < $for_max; $i++) {
+ $this->_current_line_no += substr_count($text_blocks[$i], "\n");
+ $compiled_tags[] = $this->_compile_tag($template_tags[$i]);
+ $this->_current_line_no += substr_count($template_tags[$i], "\n");
+ }
+
+ $compiled_content = '';
+
+ /* Interleave the compiled contents and text blocks to get the final result. */
+ for ($i = 0, $for_max = count($compiled_tags); $i < $for_max; $i++) {
+ if ($compiled_tags[$i] == '') {
+ // tag result empty, remove first newline from following text block
+ $text_blocks[$i+1] = preg_replace('!^(\r\n|\r|\n)!', '', $text_blocks[$i+1]);
+ }
+ $compiled_content .= $text_blocks[$i].$compiled_tags[$i];
+ }
+ $compiled_content .= $text_blocks[$i];
+
+ /* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
+ if (preg_match_all("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $compiled_content, $_match)) {
+ $strip_tags = $_match[0];
+ $strip_tags_modified = preg_replace("!{$ldq}/?strip{$rdq}|[\t ]+$|^[\t ]+!m", '', $strip_tags);
+ $strip_tags_modified = preg_replace('![\r\n]+!m', '', $strip_tags_modified);
+ for ($i = 0, $for_max = count($strip_tags); $i < $for_max; $i++)
+ $compiled_content = preg_replace("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s",
+ $this->_quote_replace($strip_tags_modified[$i]),
+ $compiled_content, 1);
+ }
+
+ // remove \n from the end of the file, if any
+ if (($_len=strlen($compiled_content)) && ($compiled_content{$_len - 1} == "\n" )) {
+ $compiled_content = substr($compiled_content, 0, -1);
+ }
+
+ if (!empty($this->_cache_serial)) {
+ $compiled_content = "<?php \$this->_cache_serials['".$this->_cache_include."'] = '".$this->_cache_serial."'; ?>" . $compiled_content;
+ }
+
+ // remove unnecessary close/open tags
+ $compiled_content = preg_replace('!\?>\n?<\?php!', '', $compiled_content);
+
+ // run compiled template through postfilter functions
+ if (count($this->_plugins['postfilter']) > 0) {
+ foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) {
+ if ($postfilter === false) continue;
+ if ($postfilter[3] || is_callable($postfilter[0])) {
+ $compiled_content = call_user_func_array($postfilter[0],
+ array($compiled_content, &$this));
+ $this->_plugins['postfilter'][$filter_name][3] = true;
+ } else {
+ $this->_trigger_fatal_error("Smarty plugin error: postfilter '$filter_name' is not implemented");
+ }
+ }
+ }
+
+ // put header at the top of the compiled template
+ $template_header = "<?php /* Smarty version ".$this->_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n";
+ $template_header .= " compiled from ".strtr(urlencode($resource_name), array('%2F'=>'/', '%3A'=>':'))." */ ?>\n";
+
+ /* Emit code to load needed plugins. */
+ $this->_plugins_code = '';
+ if (count($this->_plugin_info)) {
+ $_plugins_params = "array('plugins' => array(";
+ foreach ($this->_plugin_info as $plugin_type => $plugins) {
+ foreach ($plugins as $plugin_name => $plugin_info) {
+ $_plugins_params .= "array('$plugin_type', '$plugin_name', '$plugin_info[0]', $plugin_info[1], ";
+ $_plugins_params .= $plugin_info[2] ? 'true),' : 'false),';
+ }
+ }
+ $_plugins_params .= '))';
+ $plugins_code = "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');\nsmarty_core_load_plugins($_plugins_params, \$this); ?>\n";
+ $template_header .= $plugins_code;
+ $this->_plugin_info = array();
+ $this->_plugins_code = $plugins_code;
+ }
+
+ if ($this->_init_smarty_vars) {
+ $template_header .= "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.assign_smarty_interface.php');\nsmarty_core_assign_smarty_interface(null, \$this); ?>\n";
+ $this->_init_smarty_vars = false;
+ }
+
+ $compiled_content = $template_header . $compiled_content;
+
+ return true;
+ }
+
+ /**
+ * Compile a template tag
+ *
+ * @param string $template_tag
+ * @return string
+ */
+ function _compile_tag($template_tag)
+ {
+ /* Matched comment. */
+ if ($template_tag{0} == '*' && $template_tag{strlen($template_tag) - 1} == '*')
+ return '';
+
+ /* Split tag into two three parts: command, command modifiers and the arguments. */
+ if(! preg_match('/^(?:(' . $this->_obj_call_regexp . '|' . $this->_var_regexp
+ . '|\/?' . $this->_reg_obj_regexp . '|\/?' . $this->_func_regexp . ')(' . $this->_mod_regexp . '*))
+ (?:\s+(.*))?$
+ /xs', $template_tag, $match)) {
+ $this->_syntax_error("unrecognized tag: $template_tag", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ $tag_command = $match[1];
+ $tag_modifier = isset($match[2]) ? $match[2] : null;
+ $tag_args = isset($match[3]) ? $match[3] : null;
+
+ if (preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '$!', $tag_command)) {
+ /* tag name is a variable or object */
+ $_return = $this->_parse_var_props($tag_command . $tag_modifier, $this->_parse_attrs($tag_args));
+ if(isset($_tag_attrs['assign'])) {
+ return "<?php \$this->assign('" . $this->_dequote($_tag_attrs['assign']) . "', $_return ); ?>\n";
+ } else {
+ return "<?php echo $_return; ?>" . $this->_additional_newline;
+ }
+ }
+
+ /* If the tag name is a registered object, we process it. */
+ if (preg_match('!^\/?' . $this->_reg_obj_regexp . '$!', $tag_command)) {
+ return $this->_compile_registered_object_tag($tag_command, $this->_parse_attrs($tag_args), $tag_modifier);
+ }
+
+ switch ($tag_command) {
+ case 'include':
+ return $this->_compile_include_tag($tag_args);
+
+ case 'include_php':
+ return $this->_compile_include_php_tag($tag_args);
+
+ case 'if':
+ return $this->_compile_if_tag($tag_args);
+
+ case 'else':
+ return '<?php else: ?>';
+
+ case 'elseif':
+ return $this->_compile_if_tag($tag_args, true);
+
+ case '/if':
+ return '<?php endif; ?>';
+
+ case 'capture':
+ return $this->_compile_capture_tag(true, $tag_args);
+
+ case '/capture':
+ return $this->_compile_capture_tag(false);
+
+ case 'ldelim':
+ return $this->left_delimiter;
+
+ case 'rdelim':
+ return $this->right_delimiter;
+
+ case 'section':
+ array_push($this->_sectionelse_stack, false);
+ return $this->_compile_section_start($tag_args);
+
+ case 'sectionelse':
+ $this->_sectionelse_stack[count($this->_sectionelse_stack)-1] = true;
+ return "<?php endfor; else: ?>";
+
+ case '/section':
+ if (array_pop($this->_sectionelse_stack))
+ return "<?php endif; ?>";
+ else
+ return "<?php endfor; endif; ?>";
+
+ case 'foreach':
+ array_push($this->_foreachelse_stack, false);
+ return $this->_compile_foreach_start($tag_args);
+ break;
+
+ case 'foreachelse':
+ $this->_foreachelse_stack[count($this->_foreachelse_stack)-1] = true;
+ return "<?php endforeach; unset(\$_from); else: ?>";
+
+ case '/foreach':
+ if (array_pop($this->_foreachelse_stack))
+ return "<?php endif; ?>";
+ else
+ return "<?php endforeach; unset(\$_from); endif; ?>";
+
+ case 'strip':
+ case '/strip':
+ if ($tag_command{0}=='/') {
+ if (--$this->_strip_depth==0) { /* outermost closing {/strip} */
+ $this->_additional_newline = "\n";
+ return $this->left_delimiter.$tag_command.$this->right_delimiter;
+ }
+ } else {
+ if ($this->_strip_depth++==0) { /* outermost opening {strip} */
+ $this->_additional_newline = "";
+ return $this->left_delimiter.$tag_command.$this->right_delimiter;
+ }
+ }
+ return '';
+
+ case 'literal':
+ list (,$literal_block) = each($this->_literal_blocks);
+ $this->_current_line_no += substr_count($literal_block, "\n");
+ return "<?php echo '".str_replace("'", "\'", str_replace("\\", "\\\\", $literal_block))."'; ?>" . $this->_additional_newline;
+
+ case 'php':
+ if ($this->security && !$this->security_settings['PHP_TAGS']) {
+ $this->_syntax_error("(secure mode) php tags not permitted", E_USER_WARNING, __FILE__, __LINE__);
+ return;
+ }
+ list (,$php_block) = each($this->_php_blocks);
+ $this->_current_line_no += substr_count($php_block, "\n");
+ return '<?php '.$php_block.' ?>';
+
+ case 'insert':
+ return $this->_compile_insert_tag($tag_args);
+
+ default:
+ if ($this->_compile_compiler_tag($tag_command, $tag_args, $output)) {
+ return $output;
+ } else if ($this->_compile_block_tag($tag_command, $tag_args, $tag_modifier, $output)) {
+ return $output;
+ } else {
+ return $this->_compile_custom_tag($tag_command, $tag_args, $tag_modifier);
+ }
+ }
+ }
+
+
+ /**
+ * compile the custom compiler tag
+ *
+ * sets $output to the compiled custom compiler tag
+ * @param string $tag_command
+ * @param string $tag_args
+ * @param string $output
+ * @return boolean
+ */
+ function _compile_compiler_tag($tag_command, $tag_args, &$output)
+ {
+ $found = false;
+ $have_function = true;
+
+ /*
+ * First we check if the compiler function has already been registered
+ * or loaded from a plugin file.
+ */
+ if (isset($this->_plugins['compiler'][$tag_command])) {
+ $found = true;
+ $plugin_func = $this->_plugins['compiler'][$tag_command][0];
+ if (!is_callable($plugin_func)) {
+ $message = "compiler function '$tag_command' is not implemented";
+ $have_function = false;
+ }
+ }
+ /*
+ * Otherwise we need to load plugin file and look for the function
+ * inside it.
+ */
+ else if ($plugin_file = $this->_get_plugin_filepath('compiler', $tag_command)) {
+ $found = true;
+
+ include_once $plugin_file;
+
+ $plugin_func = 'smarty_compiler_' . $tag_command;
+ if (!is_callable($plugin_func)) {
+ $message = "plugin function $plugin_func() not found in $plugin_file\n";
+ $have_function = false;
+ } else {
+ $this->_plugins['compiler'][$tag_command] = array($plugin_func, null, null, null, true);
+ }
+ }
+
+ /*
+ * True return value means that we either found a plugin or a
+ * dynamically registered function. False means that we didn't and the
+ * compiler should now emit code to load custom function plugin for this
+ * tag.
+ */
+ if ($found) {
+ if ($have_function) {
+ $output = call_user_func_array($plugin_func, array($tag_args, &$this));
+ if($output != '') {
+ $output = '<?php ' . $this->_push_cacheable_state('compiler', $tag_command)
+ . $output
+ . $this->_pop_cacheable_state('compiler', $tag_command) . ' ?>';
+ }
+ } else {
+ $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__);
+ }
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+
+ /**
+ * compile block function tag
+ *
+ * sets $output to compiled block function tag
+ * @param string $tag_command
+ * @param string $tag_args
+ * @param string $tag_modifier
+ * @param string $output
+ * @return boolean
+ */
+ function _compile_block_tag($tag_command, $tag_args, $tag_modifier, &$output)
+ {
+ if ($tag_command{0} == '/') {
+ $start_tag = false;
+ $tag_command = substr($tag_command, 1);
+ } else
+ $start_tag = true;
+
+ $found = false;
+ $have_function = true;
+
+ /*
+ * First we check if the block function has already been registered
+ * or loaded from a plugin file.
+ */
+ if (isset($this->_plugins['block'][$tag_command])) {
+ $found = true;
+ $plugin_func = $this->_plugins['block'][$tag_command][0];
+ if (!is_callable($plugin_func)) {
+ $message = "block function '$tag_command' is not implemented";
+ $have_function = false;
+ }
+ }
+ /*
+ * Otherwise we need to load plugin file and look for the function
+ * inside it.
+ */
+ else if ($plugin_file = $this->_get_plugin_filepath('block', $tag_command)) {
+ $found = true;
+
+ include_once $plugin_file;
+
+ $plugin_func = 'smarty_block_' . $tag_command;
+ if (!function_exists($plugin_func)) {
+ $message = "plugin function $plugin_func() not found in $plugin_file\n";
+ $have_function = false;
+ } else {
+ $this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, true);
+
+ }
+ }
+
+ if (!$found) {
+ return false;
+ } else if (!$have_function) {
+ $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__);
+ return true;
+ }
+
+ /*
+ * Even though we've located the plugin function, compilation
+ * happens only once, so the plugin will still need to be loaded
+ * at runtime for future requests.
+ */
+ $this->_add_plugin('block', $tag_command);
+
+ if ($start_tag) {
+ $output = '<?php ' . $this->_push_cacheable_state('block', $tag_command);
+ $attrs = $this->_parse_attrs($tag_args);
+ $arg_list = $this->_compile_arg_list('block', $tag_command, $attrs, $_cache_attrs='');
+ $output .= "$_cache_attrs\$_params = \$this->_tag_stack[] = array('$tag_command', array(".implode(',', $arg_list).')); ';
+ $output .= $this->_compile_plugin_call('block', $tag_command).'($_params[1], null, $this, $_block_repeat=true); unset($_params);';
+ $output .= 'while ($_block_repeat) { ob_start(); ?>';
+ } else {
+ $output = '<?php $this->_block_content = ob_get_contents(); ob_end_clean(); ';
+ $_out_tag_text = $this->_compile_plugin_call('block', $tag_command).'($this->_tag_stack[count($this->_tag_stack)-1][1], $this->_block_content, $this, $_block_repeat=false)';
+ if ($tag_modifier != '') {
+ $this->_parse_modifiers($_out_tag_text, $tag_modifier);
+ }
+ $output .= 'echo '.$_out_tag_text.'; } ';
+ $output .= " array_pop(\$this->_tag_stack); " . $this->_pop_cacheable_state('block', $tag_command) . '?>';
+ }
+
+ return true;
+ }
+
+
+ /**
+ * compile custom function tag
+ *
+ * @param string $tag_command
+ * @param string $tag_args
+ * @param string $tag_modifier
+ * @return string
+ */
+ function _compile_custom_tag($tag_command, $tag_args, $tag_modifier)
+ {
+ $this->_add_plugin('function', $tag_command);
+
+ $_cacheable_state = $this->_push_cacheable_state('function', $tag_command);
+ $attrs = $this->_parse_attrs($tag_args);
+ $arg_list = $this->_compile_arg_list('function', $tag_command, $attrs, $_cache_attrs='');
+
+ $_return = $this->_compile_plugin_call('function', $tag_command).'(array('.implode(',', $arg_list)."), \$this)";
+ if($tag_modifier != '') {
+ $this->_parse_modifiers($_return, $tag_modifier);
+ }
+
+ if($_return != '') {
+ $_return = '<?php ' . $_cacheable_state . $_cache_attrs . 'echo ' . $_return . ';'
+ . $this->_pop_cacheable_state('function', $tag_command) . "?>" . $this->_additional_newline;
+ }
+
+ return $_return;
+ }
+
+ /**
+ * compile a registered object tag
+ *
+ * @param string $tag_command
+ * @param array $attrs
+ * @param string $tag_modifier
+ * @return string
+ */
+ function _compile_registered_object_tag($tag_command, $attrs, $tag_modifier)
+ {
+ if ($tag_command{0} == '/') {
+ $start_tag = false;
+ $tag_command = substr($tag_command, 1);
+ } else {
+ $start_tag = true;
+ }
+
+ list($object, $obj_comp) = explode('->', $tag_command);
+
+ $arg_list = array();
+ if(count($attrs)) {
+ $_assign_var = false;
+ foreach ($attrs as $arg_name => $arg_value) {
+ if($arg_name == 'assign') {
+ $_assign_var = $arg_value;
+ unset($attrs['assign']);
+ continue;
+ }
+ if (is_bool($arg_value))
+ $arg_value = $arg_value ? 'true' : 'false';
+ $arg_list[] = "'$arg_name' => $arg_value";
+ }
+ }
+
+ if($this->_reg_objects[$object][2]) {
+ // smarty object argument format
+ $args = "array(".implode(',', (array)$arg_list)."), \$this";
+ } else {
+ // traditional argument format
+ $args = implode(',', array_values($attrs));
+ if (empty($args)) {
+ $args = 'null';
+ }
+ }
+
+ $prefix = '';
+ $postfix = '';
+ $newline = '';
+ if(!is_object($this->_reg_objects[$object][0])) {
+ $this->_trigger_fatal_error("registered '$object' is not an object");
+ } elseif(!empty($this->_reg_objects[$object][1]) && !in_array($obj_comp, $this->_reg_objects[$object][1])) {
+ $this->_trigger_fatal_error("'$obj_comp' is not a registered component of object '$object'");
+ } elseif(method_exists($this->_reg_objects[$object][0], $obj_comp)) {
+ // method
+ if(in_array($obj_comp, $this->_reg_objects[$object][3])) {
+ // block method
+ if ($start_tag) {
+ $prefix = "\$this->_tag_stack[] = array('$obj_comp', $args); ";
+ $prefix .= "\$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], null, \$this, \$_block_repeat=true); ";
+ $prefix .= "while (\$_block_repeat) { ob_start();";
+ $return = null;
+ $postfix = '';
+ } else {
+ $prefix = "\$this->_obj_block_content = ob_get_contents(); ob_end_clean(); ";
+ $return = "\$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], \$this->_obj_block_content, \$this, \$_block_repeat=false)";
+ $postfix = "} array_pop(\$this->_tag_stack);";
+ }
+ } else {
+ // non-block method
+ $return = "\$this->_reg_objects['$object'][0]->$obj_comp($args)";
+ }
+ } else {
+ // property
+ $return = "\$this->_reg_objects['$object'][0]->$obj_comp";
+ }
+
+ if($return != null) {
+ if($tag_modifier != '') {
+ $this->_parse_modifiers($return, $tag_modifier);
+ }
+
+ if(!empty($_assign_var)) {
+ $output = "\$this->assign('" . $this->_dequote($_assign_var) ."', $return);";
+ } else {
+ $output = 'echo ' . $return . ';';
+ $newline = $this->_additional_newline;
+ }
+ } else {
+ $output = '';
+ }
+
+ return '<?php ' . $prefix . $output . $postfix . "?>" . $newline;
+ }
+
+ /**
+ * Compile {insert ...} tag
+ *
+ * @param string $tag_args
+ * @return string
+ */
+ function _compile_insert_tag($tag_args)
+ {
+ $attrs = $this->_parse_attrs($tag_args);
+ $name = $this->_dequote($attrs['name']);
+
+ if (empty($name)) {
+ $this->_syntax_error("missing insert name", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ if (!empty($attrs['script'])) {
+ $delayed_loading = true;
+ } else {
+ $delayed_loading = false;
+ }
+
+ foreach ($attrs as $arg_name => $arg_value) {
+ if (is_bool($arg_value))
+ $arg_value = $arg_value ? 'true' : 'false';
+ $arg_list[] = "'$arg_name' => $arg_value";
+ }
+
+ $this->_add_plugin('insert', $name, $delayed_loading);
+
+ $_params = "array('args' => array(".implode(', ', (array)$arg_list)."))";
+
+ return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.run_insert_handler.php');\necho smarty_core_run_insert_handler($_params, \$this); ?>" . $this->_additional_newline;
+ }
+
+ /**
+ * Compile {include ...} tag
+ *
+ * @param string $tag_args
+ * @return string
+ */
+ function _compile_include_tag($tag_args)
+ {
+ $attrs = $this->_parse_attrs($tag_args);
+ $arg_list = array();
+
+ if (empty($attrs['file'])) {
+ $this->_syntax_error("missing 'file' attribute in include tag", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ foreach ($attrs as $arg_name => $arg_value) {
+ if ($arg_name == 'file') {
+ $include_file = $arg_value;
+ continue;
+ } else if ($arg_name == 'assign') {
+ $assign_var = $arg_value;
+ continue;
+ }
+ if (is_bool($arg_value))
+ $arg_value = $arg_value ? 'true' : 'false';
+ $arg_list[] = "'$arg_name' => $arg_value";
+ }
+
+ $output = '<?php ';
+
+ if (isset($assign_var)) {
+ $output .= "ob_start();\n";
+ }
+
+ $output .=
+ "\$_smarty_tpl_vars = \$this->_tpl_vars;\n";
+
+
+ $_params = "array('smarty_include_tpl_file' => " . $include_file . ", 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))";
+ $output .= "\$this->_smarty_include($_params);\n" .
+ "\$this->_tpl_vars = \$_smarty_tpl_vars;\n" .
+ "unset(\$_smarty_tpl_vars);\n";
+
+ if (isset($assign_var)) {
+ $output .= "\$this->assign(" . $assign_var . ", ob_get_contents()); ob_end_clean();\n";
+ }
+
+ $output .= ' ?>';
+
+ return $output;
+
+ }
+
+ /**
+ * Compile {include ...} tag
+ *
+ * @param string $tag_args
+ * @return string
+ */
+ function _compile_include_php_tag($tag_args)
+ {
+ $attrs = $this->_parse_attrs($tag_args);
+
+ if (empty($attrs['file'])) {
+ $this->_syntax_error("missing 'file' attribute in include_php tag", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ $assign_var = (empty($attrs['assign'])) ? '' : $this->_dequote($attrs['assign']);
+ $once_var = (empty($attrs['once']) || $attrs['once']=='false') ? 'false' : 'true';
+
+ foreach($attrs as $arg_name => $arg_value) {
+ if($arg_name != 'file' AND $arg_name != 'once' AND $arg_name != 'assign') {
+ if(is_bool($arg_value))
+ $arg_value = $arg_value ? 'true' : 'false';
+ $arg_list[] = "'$arg_name' => $arg_value";
+ }
+ }
+
+ $_params = "array('smarty_file' => " . $attrs['file'] . ", 'smarty_assign' => '$assign_var', 'smarty_once' => $once_var, 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))";
+
+ return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.smarty_include_php.php');\nsmarty_core_smarty_include_php($_params, \$this); ?>" . $this->_additional_newline;
+ }
+
+
+ /**
+ * Compile {section ...} tag
+ *
+ * @param string $tag_args
+ * @return string
+ */
+ function _compile_section_start($tag_args)
+ {
+ $attrs = $this->_parse_attrs($tag_args);
+ $arg_list = array();
+
+ $output = '<?php ';
+ $section_name = $attrs['name'];
+ if (empty($section_name)) {
+ $this->_syntax_error("missing section name", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ $output .= "if (isset(\$this->_sections[$section_name])) unset(\$this->_sections[$section_name]);\n";
+ $section_props = "\$this->_sections[$section_name]";
+
+ foreach ($attrs as $attr_name => $attr_value) {
+ switch ($attr_name) {
+ case 'loop':
+ $output .= "{$section_props}['loop'] = is_array(\$_loop=$attr_value) ? count(\$_loop) : max(0, (int)\$_loop); unset(\$_loop);\n";
+ break;
+
+ case 'show':
+ if (is_bool($attr_value))
+ $show_attr_value = $attr_value ? 'true' : 'false';
+ else
+ $show_attr_value = "(bool)$attr_value";
+ $output .= "{$section_props}['show'] = $show_attr_value;\n";
+ break;
+
+ case 'name':
+ $output .= "{$section_props}['$attr_name'] = $attr_value;\n";
+ break;
+
+ case 'max':
+ case 'start':
+ $output .= "{$section_props}['$attr_name'] = (int)$attr_value;\n";
+ break;
+
+ case 'step':
+ $output .= "{$section_props}['$attr_name'] = ((int)$attr_value) == 0 ? 1 : (int)$attr_value;\n";
+ break;
+
+ default:
+ $this->_syntax_error("unknown section attribute - '$attr_name'", E_USER_ERROR, __FILE__, __LINE__);
+ break;
+ }
+ }
+
+ if (!isset($attrs['show']))
+ $output .= "{$section_props}['show'] = true;\n";
+
+ if (!isset($attrs['loop']))
+ $output .= "{$section_props}['loop'] = 1;\n";
+
+ if (!isset($attrs['max']))
+ $output .= "{$section_props}['max'] = {$section_props}['loop'];\n";
+ else
+ $output .= "if ({$section_props}['max'] < 0)\n" .
+ " {$section_props}['max'] = {$section_props}['loop'];\n";
+
+ if (!isset($attrs['step']))
+ $output .= "{$section_props}['step'] = 1;\n";
+
+ if (!isset($attrs['start']))
+ $output .= "{$section_props}['start'] = {$section_props}['step'] > 0 ? 0 : {$section_props}['loop']-1;\n";
+ else {
+ $output .= "if ({$section_props}['start'] < 0)\n" .
+ " {$section_props}['start'] = max({$section_props}['step'] > 0 ? 0 : -1, {$section_props}['loop'] + {$section_props}['start']);\n" .
+ "else\n" .
+ " {$section_props}['start'] = min({$section_props}['start'], {$section_props}['step'] > 0 ? {$section_props}['loop'] : {$section_props}['loop']-1);\n";
+ }
+
+ $output .= "if ({$section_props}['show']) {\n";
+ if (!isset($attrs['start']) && !isset($attrs['step']) && !isset($attrs['max'])) {
+ $output .= " {$section_props}['total'] = {$section_props}['loop'];\n";
+ } else {
+ $output .= " {$section_props}['total'] = min(ceil(({$section_props}['step'] > 0 ? {$section_props}['loop'] - {$section_props}['start'] : {$section_props}['start']+1)/abs({$section_props}['step'])), {$section_props}['max']);\n";
+ }
+ $output .= " if ({$section_props}['total'] == 0)\n" .
+ " {$section_props}['show'] = false;\n" .
+ "} else\n" .
+ " {$section_props}['total'] = 0;\n";
+
+ $output .= "if ({$section_props}['show']):\n";
+ $output .= "
+ for ({$section_props}['index'] = {$section_props}['start'], {$section_props}['iteration'] = 1;
+ {$section_props}['iteration'] <= {$section_props}['total'];
+ {$section_props}['index'] += {$section_props}['step'], {$section_props}['iteration']++):\n";
+ $output .= "{$section_props}['rownum'] = {$section_props}['iteration'];\n";
+ $output .= "{$section_props}['index_prev'] = {$section_props}['index'] - {$section_props}['step'];\n";
+ $output .= "{$section_props}['index_next'] = {$section_props}['index'] + {$section_props}['step'];\n";
+ $output .= "{$section_props}['first'] = ({$section_props}['iteration'] == 1);\n";
+ $output .= "{$section_props}['last'] = ({$section_props}['iteration'] == {$section_props}['total']);\n";
+
+ $output .= "?>";
+
+ return $output;
+ }
+
+
+ /**
+ * Compile {foreach ...} tag.
+ *
+ * @param string $tag_args
+ * @return string
+ */
+ function _compile_foreach_start($tag_args)
+ {
+ $attrs = $this->_parse_attrs($tag_args);
+ $arg_list = array();
+
+ if (empty($attrs['from'])) {
+ $this->_syntax_error("missing 'from' attribute", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ if (empty($attrs['item'])) {
+ $this->_syntax_error("missing 'item' attribute", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ $from = $attrs['from'];
+ $item = $this->_dequote($attrs['item']);
+ if (isset($attrs['name']))
+ $name = $attrs['name'];
+
+ $output = '<?php ';
+ if (isset($name)) {
+ $output .= "if (isset(\$this->_foreach[$name])) unset(\$this->_foreach[$name]);\n";
+ $foreach_props = "\$this->_foreach[$name]";
+ }
+
+ $key_part = '';
+
+ foreach ($attrs as $attr_name => $attr_value) {
+ switch ($attr_name) {
+ case 'key':
+ $key = $this->_dequote($attrs['key']);
+ $key_part = "\$this->_tpl_vars['$key'] => ";
+ break;
+
+ case 'name':
+ $output .= "{$foreach_props}['$attr_name'] = $attr_value;\n";
+ break;
+ }
+ }
+
+ if (isset($name)) {
+ $output .= "{$foreach_props}['total'] = count(\$_from = (array)$from);\n";
+ $output .= "{$foreach_props}['show'] = {$foreach_props}['total'] > 0;\n";
+ $output .= "if ({$foreach_props}['show']):\n";
+ $output .= "{$foreach_props}['iteration'] = 0;\n";
+ $output .= " foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n";
+ $output .= " {$foreach_props}['iteration']++;\n";
+ $output .= " {$foreach_props}['first'] = ({$foreach_props}['iteration'] == 1);\n";
+ $output .= " {$foreach_props}['last'] = ({$foreach_props}['iteration'] == {$foreach_props}['total']);\n";
+ } else {
+ $output .= "if (count(\$_from = (array)$from)):\n";
+ $output .= " foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n";
+ }
+ $output .= '?>';
+
+ return $output;
+ }
+
+
+ /**
+ * Compile {capture} .. {/capture} tags
+ *
+ * @param boolean $start true if this is the {capture} tag
+ * @param string $tag_args
+ * @return string
+ */
+
+ function _compile_capture_tag($start, $tag_args = '')
+ {
+ $attrs = $this->_parse_attrs($tag_args);
+
+ if ($start) {
+ if (isset($attrs['name']))
+ $buffer = $attrs['name'];
+ else
+ $buffer = "'default'";
+
+ if (isset($attrs['assign']))
+ $assign = $attrs['assign'];
+ else
+ $assign = null;
+ $output = "<?php ob_start(); ?>";
+ $this->_capture_stack[] = array($buffer, $assign);
+ } else {
+ list($buffer, $assign) = array_pop($this->_capture_stack);
+ $output = "<?php \$this->_smarty_vars['capture'][$buffer] = ob_get_contents(); ";
+ if (isset($assign)) {
+ $output .= " \$this->assign($assign, ob_get_contents());";
+ }
+ $output .= "ob_end_clean(); ?>";
+ }
+
+ return $output;
+ }
+
+ /**
+ * Compile {if ...} tag
+ *
+ * @param string $tag_args
+ * @param boolean $elseif if true, uses elseif instead of if
+ * @return string
+ */
+ function _compile_if_tag($tag_args, $elseif = false)
+ {
+
+ /* Tokenize args for 'if' tag. */
+ preg_match_all('/(?>
+ ' . $this->_obj_call_regexp . '(?:' . $this->_mod_regexp . '*)? | # valid object call
+ ' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)? | # var or quoted string
+ \-?0[xX][0-9a-fA-F]+|\-?\d+(?:\.\d+)?|\.\d+|!==|===|==|!=|<>|<<|>>|<=|>=|\&\&|\|\||\(|\)|,|\!|\^|=|\&|\~|<|>|\||\%|\+|\-|\/|\*|\@ | # valid non-word token
+ \b\w+\b | # valid word token
+ \S+ # anything else
+ )/x', $tag_args, $match);
+
+ $tokens = $match[0];
+
+ // make sure we have balanced parenthesis
+ $token_count = array_count_values($tokens);
+ if(isset($token_count['(']) && $token_count['('] != $token_count[')']) {
+ $this->_syntax_error("unbalanced parenthesis in if statement", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ $is_arg_stack = array();
+
+ for ($i = 0; $i < count($tokens); $i++) {
+
+ $token = &$tokens[$i];
+
+ switch (strtolower($token)) {
+ case '!':
+ case '%':
+ case '!==':
+ case '==':
+ case '===':
+ case '>':
+ case '<':
+ case '!=':
+ case '<>':
+ case '<<':
+ case '>>':
+ case '<=':
+ case '>=':
+ case '&&':
+ case '||':
+ case '|':
+ case '^':
+ case '&':
+ case '~':
+ case ')':
+ case ',':
+ case '+':
+ case '-':
+ case '*':
+ case '/':
+ case '@':
+ break;
+
+ case 'eq':
+ $token = '==';
+ break;
+
+ case 'ne':
+ case 'neq':
+ $token = '!=';
+ break;
+
+ case 'lt':
+ $token = '<';
+ break;
+
+ case 'le':
+ case 'lte':
+ $token = '<=';
+ break;
+
+ case 'gt':
+ $token = '>';
+ break;
+
+ case 'ge':
+ case 'gte':
+ $token = '>=';
+ break;
+
+ case 'and':
+ $token = '&&';
+ break;
+
+ case 'or':
+ $token = '||';
+ break;
+
+ case 'not':
+ $token = '!';
+ break;
+
+ case 'mod':
+ $token = '%';
+ break;
+
+ case '(':
+ array_push($is_arg_stack, $i);
+ break;
+
+ case 'is':
+ /* If last token was a ')', we operate on the parenthesized
+ expression. The start of the expression is on the stack.
+ Otherwise, we operate on the last encountered token. */
+ if ($tokens[$i-1] == ')')
+ $is_arg_start = array_pop($is_arg_stack);
+ else
+ $is_arg_start = $i-1;
+ /* Construct the argument for 'is' expression, so it knows
+ what to operate on. */
+ $is_arg = implode(' ', array_slice($tokens, $is_arg_start, $i - $is_arg_start));
+
+ /* Pass all tokens from next one until the end to the
+ 'is' expression parsing function. The function will
+ return modified tokens, where the first one is the result
+ of the 'is' expression and the rest are the tokens it
+ didn't touch. */
+ $new_tokens = $this->_parse_is_expr($is_arg, array_slice($tokens, $i+1));
+
+ /* Replace the old tokens with the new ones. */
+ array_splice($tokens, $is_arg_start, count($tokens), $new_tokens);
+
+ /* Adjust argument start so that it won't change from the
+ current position for the next iteration. */
+ $i = $is_arg_start;
+ break;
+
+ default:
+ if(preg_match('!^' . $this->_func_regexp . '$!', $token) ) {
+ // function call
+ if($this->security &&
+ !in_array($token, $this->security_settings['IF_FUNCS'])) {
+ $this->_syntax_error("(secure mode) '$token' not allowed in if statement", E_USER_ERROR, __FILE__, __LINE__);
+ }
+ } elseif(preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)$!', $token)) {
+ // object or variable
+ $token = $this->_parse_var_props($token);
+ } elseif(is_numeric($token)) {
+ // number, skip it
+ } else {
+ $this->_syntax_error("unidentified token '$token'", E_USER_ERROR, __FILE__, __LINE__);
+ }
+ break;
+ }
+ }
+
+ if ($elseif)
+ return '<?php elseif ('.implode(' ', $tokens).'): ?>';
+ else
+ return '<?php if ('.implode(' ', $tokens).'): ?>';
+ }
+
+
+ function _compile_arg_list($type, $name, $attrs, &$cache_code) {
+ $arg_list = array();
+
+ if (isset($type) && isset($name)
+ && isset($this->_plugins[$type])
+ && isset($this->_plugins[$type][$name])
+ && empty($this->_plugins[$type][$name][4])
+ && is_array($this->_plugins[$type][$name][5])
+ ) {
+ /* we have a list of parameters that should be cached */
+ $_cache_attrs = $this->_plugins[$type][$name][5];
+ $_count = $this->_cache_attrs_count++;
+ $cache_code = "\$_cache_attrs =& \$this->_smarty_cache_attrs('$this->_cache_serial','$_count');";
+
+ } else {
+ /* no parameters are cached */
+ $_cache_attrs = null;
+ }
+
+ foreach ($attrs as $arg_name => $arg_value) {
+ if (is_bool($arg_value))
+ $arg_value = $arg_value ? 'true' : 'false';
+ if (is_null($arg_value))
+ $arg_value = 'null';
+ if ($_cache_attrs && in_array($arg_name, $_cache_attrs)) {
+ $arg_list[] = "'$arg_name' => (\$this->_cache_including) ? \$_cache_attrs['$arg_name'] : (\$_cache_attrs['$arg_name']=$arg_value)";
+ } else {
+ $arg_list[] = "'$arg_name' => $arg_value";
+ }
+ }
+ return $arg_list;
+ }
+
+ /**
+ * Parse is expression
+ *
+ * @param string $is_arg
+ * @param array $tokens
+ * @return array
+ */
+ function _parse_is_expr($is_arg, $tokens)
+ {
+ $expr_end = 0;
+ $negate_expr = false;
+
+ if (($first_token = array_shift($tokens)) == 'not') {
+ $negate_expr = true;
+ $expr_type = array_shift($tokens);
+ } else
+ $expr_type = $first_token;
+
+ switch ($expr_type) {
+ case 'even':
+ if (@$tokens[$expr_end] == 'by') {
+ $expr_end++;
+ $expr_arg = $tokens[$expr_end++];
+ $expr = "!(($is_arg / $expr_arg) % " . $this->_parse_var_props($expr_arg) . ")";
+ } else
+ $expr = "!($is_arg % 2)";
+ break;
+
+ case 'odd':
+ if (@$tokens[$expr_end] == 'by') {
+ $expr_end++;
+ $expr_arg = $tokens[$expr_end++];
+ $expr = "(($is_arg / $expr_arg) % ". $this->_parse_var_props($expr_arg) . ")";
+ } else
+ $expr = "($is_arg % 2)";
+ break;
+
+ case 'div':
+ if (@$tokens[$expr_end] == 'by') {
+ $expr_end++;
+ $expr_arg = $tokens[$expr_end++];
+ $expr = "!($is_arg % " . $this->_parse_var_props($expr_arg) . ")";
+ } else {
+ $this->_syntax_error("expecting 'by' after 'div'", E_USER_ERROR, __FILE__, __LINE__);
+ }
+ break;
+
+ default:
+ $this->_syntax_error("unknown 'is' expression - '$expr_type'", E_USER_ERROR, __FILE__, __LINE__);
+ break;
+ }
+
+ if ($negate_expr) {
+ $expr = "!($expr)";
+ }
+
+ array_splice($tokens, 0, $expr_end, $expr);
+
+ return $tokens;
+ }
+
+
+ /**
+ * Parse attribute string
+ *
+ * @param string $tag_args
+ * @return array
+ */
+ function _parse_attrs($tag_args)
+ {
+
+ /* Tokenize tag attributes. */
+ preg_match_all('/(?:' . $this->_obj_call_regexp . '|' . $this->_qstr_regexp . ' | (?>[^"\'=\s]+)
+ )+ |
+ [=]
+ /x', $tag_args, $match);
+ $tokens = $match[0];
+
+ $attrs = array();
+ /* Parse state:
+ 0 - expecting attribute name
+ 1 - expecting '='
+ 2 - expecting attribute value (not '=') */
+ $state = 0;
+
+ foreach ($tokens as $token) {
+ switch ($state) {
+ case 0:
+ /* If the token is a valid identifier, we set attribute name
+ and go to state 1. */
+ if (preg_match('!^\w+$!', $token)) {
+ $attr_name = $token;
+ $state = 1;
+ } else
+ $this->_syntax_error("invalid attribute name: '$token'", E_USER_ERROR, __FILE__, __LINE__);
+ break;
+
+ case 1:
+ /* If the token is '=', then we go to state 2. */
+ if ($token == '=') {
+ $state = 2;
+ } else
+ $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__);
+ break;
+
+ case 2:
+ /* If token is not '=', we set the attribute value and go to
+ state 0. */
+ if ($token != '=') {
+ /* We booleanize the token if it's a non-quoted possible
+ boolean value. */
+ if (preg_match('!^(on|yes|true)$!', $token)) {
+ $token = 'true';
+ } else if (preg_match('!^(off|no|false)$!', $token)) {
+ $token = 'false';
+ } else if ($token == 'null') {
+ $token = 'null';
+ } else if (preg_match('!^-?([0-9]+|0[xX][0-9a-fA-F]+)$!', $token)) {
+ /* treat integer literally */
+ } else if (!preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . ')*$!', $token)) {
+ /* treat as a string, double-quote it escaping quotes */
+ $token = '"'.addslashes($token).'"';
+ }
+
+ $attrs[$attr_name] = $token;
+ $state = 0;
+ } else
+ $this->_syntax_error("'=' cannot be an attribute value", E_USER_ERROR, __FILE__, __LINE__);
+ break;
+ }
+ $last_token = $token;
+ }
+
+ if($state != 0) {
+ if($state == 1) {
+ $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__);
+ } else {
+ $this->_syntax_error("missing attribute value", E_USER_ERROR, __FILE__, __LINE__);
+ }
+ }
+
+ $this->_parse_vars_props($attrs);
+
+ return $attrs;
+ }
+
+ /**
+ * compile multiple variables and section properties tokens into
+ * PHP code
+ *
+ * @param array $tokens
+ */
+ function _parse_vars_props(&$tokens)
+ {
+ foreach($tokens as $key => $val) {
+ $tokens[$key] = $this->_parse_var_props($val);
+ }
+ }
+
+ /**
+ * compile single variable and section properties token into
+ * PHP code
+ *
+ * @param string $val
+ * @param string $tag_attrs
+ * @return string
+ */
+ function _parse_var_props($val)
+ {
+ $val = trim($val);
+
+ if(preg_match('!^(' . $this->_obj_call_regexp . '|' . $this->_dvar_regexp . ')(' . $this->_mod_regexp . '*)$!', $val, $match)) {
+ // $ variable or object
+ $return = $this->_parse_var($match[1]);
+ if($match[2] != '') {
+ $this->_parse_modifiers($return, $match[2]);
+ }
+ return $return;
+ }
+ elseif(preg_match('!^' . $this->_db_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
+ // double quoted text
+ preg_match('!^(' . $this->_db_qstr_regexp . ')('. $this->_mod_regexp . '*)$!', $val, $match);
+ $return = $this->_expand_quoted_text($match[1]);
+ if($match[2] != '') {
+ $this->_parse_modifiers($return, $match[2]);
+ }
+ return $return;
+ }
+ elseif(preg_match('!^' . $this->_si_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
+ // single quoted text
+ preg_match('!^(' . $this->_si_qstr_regexp . ')('. $this->_mod_regexp . '*)$!', $val, $match);
+ if($match[2] != '') {
+ $this->_parse_modifiers($match[1], $match[2]);
+ return $match[1];
+ }
+ }
+ elseif(preg_match('!^' . $this->_cvar_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
+ // config var
+ return $this->_parse_conf_var($val);
+ }
+ elseif(preg_match('!^' . $this->_svar_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
+ // section var
+ return $this->_parse_section_prop($val);
+ }
+ elseif(!in_array($val, $this->_permitted_tokens) && !is_numeric($val)) {
+ // literal string
+ return $this->_expand_quoted_text('"' . $val .'"');
+ }
+ return $val;
+ }
+
+ /**
+ * expand quoted text with embedded variables
+ *
+ * @param string $var_expr
+ * @return string
+ */
+ function _expand_quoted_text($var_expr)
+ {
+ // if contains unescaped $, expand it
+ if(preg_match_all('%(?:\`(?<!\\\\)\$' . $this->_dvar_guts_regexp . '\`)|(?:(?<!\\\\)\$\w+(\[[a-zA-Z0-9]+\])*)%', $var_expr, $_match)) {
+ $_match = $_match[0];
+ rsort($_match);
+ reset($_match);
+ foreach($_match as $_var) {
+ $var_expr = str_replace ($_var, '".(' . $this->_parse_var(str_replace('`','',$_var)) . ')."', $var_expr);
+ }
+ $_return = preg_replace('%\.""|(?<!\\\\)""\.%', '', $var_expr);
+ } else {
+ $_return = $var_expr;
+ }
+ // replace double quoted literal string with single quotes
+ $_return = preg_replace('!^"([\s\w]+)"$!',"'\\1'",$_return);
+ return $_return;
+ }
+
+ /**
+ * parse variable expression into PHP code
+ *
+ * @param string $var_expr
+ * @param string $output
+ * @return string
+ */
+ function _parse_var($var_expr)
+ {
+ $_has_math = false;
+ $_math_vars = preg_split('!('.$this->_dvar_math_regexp.'|'.$this->_qstr_regexp.')!', $var_expr, -1, PREG_SPLIT_DELIM_CAPTURE);
+
+ if(count($_math_vars) > 1) {
+ $_first_var = "";
+ $_complete_var = "";
+ // simple check if there is any math, to stop recursion (due to modifiers with "xx % yy" as parameter)
+ foreach($_math_vars as $_k => $_math_var) {
+ $_math_var = $_math_vars[$_k];
+
+ if(!empty($_math_var) || is_numeric($_math_var)) {
+ // hit a math operator, so process the stuff which came before it
+ if(preg_match('!^' . $this->_dvar_math_regexp . '$!', $_math_var)) {
+ $_has_math = true;
+ if(!empty($_complete_var) || is_numeric($_complete_var)) {
+ $_output .= $this->_parse_var($_complete_var);
+ }
+
+ // just output the math operator to php
+ $_output .= $_math_var;
+
+ if(empty($_first_var))
+ $_first_var = $_complete_var;
+
+ $_complete_var = "";
+ } else {
+ // fetch multiple -> (like $foo->bar->baz ) which wouldn't get fetched else, because it would only get $foo->bar and treat the ->baz as "-" ">baz" then
+ for($_i = $_k + 1; $_i <= count($_math_vars); $_i += 2) {
+ // fetch -> because it gets splitted at - and move it back together
+ if( /* prevent notice */ (isset($_math_vars[$_i]) && isset($_math_vars[$_i+1])) && ($_math_vars[$_i] === '-' && $_math_vars[$_i+1]{0} === '>')) {
+ $_math_var .= $_math_vars[$_i].$_math_vars[$_i+1];
+ $_math_vars[$_i] = $_math_vars[$_i+1] = '';
+ } else {
+ break;
+ }
+ }
+ $_complete_var .= $_math_var;
+ }
+ }
+ }
+ if($_has_math) {
+ if(!empty($_complete_var) || is_numeric($_complete_var))
+ $_output .= $this->_parse_var($_complete_var, true);
+
+ // get the modifiers working (only the last var from math + modifier is left)
+ $var_expr = $_complete_var;
+ }
+ }
+
+ // prevent cutting of first digit in the number (we _definitly_ got a number if the first char is a digit)
+ if(is_numeric($var_expr{0}))
+ $_var_ref = $var_expr;
+ else
+ $_var_ref = substr($var_expr, 1);
+
+ if(!$_has_math) {
+ // get [foo] and .foo and ->foo and (...) pieces
+ preg_match_all('!(?:^\w+)|' . $this->_obj_params_regexp . '|(?:' . $this->_var_bracket_regexp . ')|->\$?\w+|\.\$?\w+|\S+!', $_var_ref, $match);
+
+ $_indexes = $match[0];
+ $_var_name = array_shift($_indexes);
+
+ /* Handle $smarty.* variable references as a special case. */
+ if ($_var_name == 'smarty') {
+ /*
+ * If the reference could be compiled, use the compiled output;
+ * otherwise, fall back on the $smarty variable generated at
+ * run-time.
+ */
+ if (($smarty_ref = $this->_compile_smarty_ref($_indexes)) !== null) {
+ $_output = $smarty_ref;
+ } else {
+ $_var_name = substr(array_shift($_indexes), 1);
+ $_output = "\$this->_smarty_vars['$_var_name']";
+ }
+ } elseif(is_numeric($_var_name) && is_numeric($var_expr{0})) {
+ // because . is the operator for accessing arrays thru inidizes we need to put it together again for floating point numbers
+ if(count($_indexes) > 0)
+ {
+ $_var_name .= implode("", $_indexes);
+ $_indexes = array();
+ }
+ $_output = $_var_name;
+ } else {
+ $_output = "\$this->_tpl_vars['$_var_name']";
+ }
+
+ foreach ($_indexes as $_index) {
+ if ($_index{0} == '[') {
+ $_index = substr($_index, 1, -1);
+ if (is_numeric($_index)) {
+ $_output .= "[$_index]";
+ } elseif ($_index{0} == '$') {
+ if (strpos($_index, '.') !== false) {
+ $_output .= '[' . $this->_parse_var($_index) . ']';
+ } else {
+ $_output .= "[\$this->_tpl_vars['" . substr($_index, 1) . "']]";
+ }
+ } else {
+ $_var_parts = explode('.', $_index);
+ $_var_section = $_var_parts[0];
+ $_var_section_prop = isset($_var_parts[1]) ? $_var_parts[1] : 'index';
+ $_output .= "[\$this->_sections['$_var_section']['$_var_section_prop']]";
+ }
+ } else if ($_index{0} == '.') {
+ if ($_index{1} == '$')
+ $_output .= "[\$this->_tpl_vars['" . substr($_index, 2) . "']]";
+ else
+ $_output .= "['" . substr($_index, 1) . "']";
+ } else if (substr($_index,0,2) == '->') {
+ if(substr($_index,2,2) == '__') {
+ $this->_syntax_error('call to internal object members is not allowed', E_USER_ERROR, __FILE__, __LINE__);
+ } elseif($this->security && substr($_index, 2, 1) == '_') {
+ $this->_syntax_error('(secure) call to private object member is not allowed', E_USER_ERROR, __FILE__, __LINE__);
+ } elseif ($_index{2} == '$') {
+ if ($this->security) {
+ $this->_syntax_error('(secure) call to dynamic object member is not allowed', E_USER_ERROR, __FILE__, __LINE__);
+ } else {
+ $_output .= '->{(($_var=$this->_tpl_vars[\''.substr($_index,3).'\']) && substr($_var,0,2)!=\'__\') ? $_var : $this->trigger_error("cannot access property \\"$_var\\"")}';
+ }
+ } else {
+ $_output .= $_index;
+ }
+ } elseif ($_index{0} == '(') {
+ $_index = $this->_parse_parenth_args($_index);
+ $_output .= $_index;
+ } else {
+ $_output .= $_index;
+ }
+ }
+ }
+
+ return $_output;
+ }
+
+ /**
+ * parse arguments in function call parenthesis
+ *
+ * @param string $parenth_args
+ * @return string
+ */
+ function _parse_parenth_args($parenth_args)
+ {
+ preg_match_all('!' . $this->_param_regexp . '!',$parenth_args, $match);
+ $match = $match[0];
+ rsort($match);
+ reset($match);
+ $orig_vals = $match;
+ $this->_parse_vars_props($match);
+ return str_replace($orig_vals, $match, $parenth_args);
+ }
+
+ /**
+ * parse configuration variable expression into PHP code
+ *
+ * @param string $conf_var_expr
+ */
+ function _parse_conf_var($conf_var_expr)
+ {
+ $parts = explode('|', $conf_var_expr, 2);
+ $var_ref = $parts[0];
+ $modifiers = isset($parts[1]) ? $parts[1] : '';
+
+ $var_name = substr($var_ref, 1, -1);
+
+ $output = "\$this->_config[0]['vars']['$var_name']";
+
+ $this->_parse_modifiers($output, $modifiers);
+
+ return $output;
+ }
+
+ /**
+ * parse section property expression into PHP code
+ *
+ * @param string $section_prop_expr
+ * @return string
+ */
+ function _parse_section_prop($section_prop_expr)
+ {
+ $parts = explode('|', $section_prop_expr, 2);
+ $var_ref = $parts[0];
+ $modifiers = isset($parts[1]) ? $parts[1] : '';
+
+ preg_match('!%(\w+)\.(\w+)%!', $var_ref, $match);
+ $section_name = $match[1];
+ $prop_name = $match[2];
+
+ $output = "\$this->_sections['$section_name']['$prop_name']";
+
+ $this->_parse_modifiers($output, $modifiers);
+
+ return $output;
+ }
+
+
+ /**
+ * parse modifier chain into PHP code
+ *
+ * sets $output to parsed modified chain
+ * @param string $output
+ * @param string $modifier_string
+ */
+ function _parse_modifiers(&$output, $modifier_string)
+ {
+ preg_match_all('!\|(@?\w+)((?>:(?:'. $this->_qstr_regexp . '|[^|]+))*)!', '|' . $modifier_string, $_match);
+ list(, $_modifiers, $modifier_arg_strings) = $_match;
+
+ for ($_i = 0, $_for_max = count($_modifiers); $_i < $_for_max; $_i++) {
+ $_modifier_name = $_modifiers[$_i];
+
+ if($_modifier_name == 'smarty') {
+ // skip smarty modifier
+ continue;
+ }
+
+ preg_match_all('!:(' . $this->_qstr_regexp . '|[^:]+)!', $modifier_arg_strings[$_i], $_match);
+ $_modifier_args = $_match[1];
+
+ if ($_modifier_name{0} == '@') {
+ $_map_array = false;
+ $_modifier_name = substr($_modifier_name, 1);
+ } else {
+ $_map_array = true;
+ }
+
+ $this->_add_plugin('modifier', $_modifier_name);
+ if (empty($this->_plugins['modifier'][$_modifier_name])
+ && !$this->_get_plugin_filepath('modifier', $_modifier_name)
+ && function_exists($_modifier_name)) {
+ if ($this->security && !in_array($_modifier_name, $this->security_settings['MODIFIER_FUNCS'])) {
+ $this->_trigger_fatal_error("[plugin] (secure mode) modifier '$_modifier_name' is not allowed" , $_tpl_file, $_tpl_line, __FILE__, __LINE__);
+ } else {
+ $this->_plugins['modifier'][$_modifier_name] = array($_modifier_name, null, null, false);
+ }
+ }
+
+ $this->_parse_vars_props($_modifier_args);
+
+ if($_modifier_name == 'default') {
+ // supress notifications of default modifier vars and args
+ if($output{0} == '$') {
+ $output = '@' . $output;
+ }
+ if(isset($_modifier_args[0]) && $_modifier_args[0]{0} == '$') {
+ $_modifier_args[0] = '@' . $_modifier_args[0];
+ }
+ }
+ if (count($_modifier_args) > 0)
+ $_modifier_args = ', '.implode(', ', $_modifier_args);
+ else
+ $_modifier_args = '';
+
+ if ($_map_array) {
+ $output = "((is_array(\$_tmp=$output)) ? \$this->_run_mod_handler('$_modifier_name', true, \$_tmp$_modifier_args) : " . $this->_compile_plugin_call('modifier', $_modifier_name) . "(\$_tmp$_modifier_args))";
+
+ } else {
+
+ $output = $this->_compile_plugin_call('modifier', $_modifier_name)."($output$_modifier_args)";
+
+ }
+ }
+ }
+
+
+ /**
+ * add plugin
+ *
+ * @param string $type
+ * @param string $name
+ * @param boolean? $delayed_loading
+ */
+ function _add_plugin($type, $name, $delayed_loading = null)
+ {
+ if (!isset($this->_plugin_info[$type])) {
+ $this->_plugin_info[$type] = array();
+ }
+ if (!isset($this->_plugin_info[$type][$name])) {
+ $this->_plugin_info[$type][$name] = array($this->_current_file,
+ $this->_current_line_no,
+ $delayed_loading);
+ }
+ }
+
+
+ /**
+ * Compiles references of type $smarty.foo
+ *
+ * @param string $indexes
+ * @return string
+ */
+ function _compile_smarty_ref(&$indexes)
+ {
+ /* Extract the reference name. */
+ $_ref = substr($indexes[0], 1);
+ foreach($indexes as $_index_no=>$_index) {
+ if ($_index{0} != '.' && $_index_no<2 || !preg_match('!^(\.|\[|->)!', $_index)) {
+ $this->_syntax_error('$smarty' . implode('', array_slice($indexes, 0, 2)) . ' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__);
+ }
+ }
+
+ switch ($_ref) {
+ case 'now':
+ $compiled_ref = 'time()';
+ $_max_index = 1;
+ break;
+
+ case 'foreach':
+ case 'section':
+ array_shift($indexes);
+ $_var = $this->_parse_var_props(substr($indexes[0], 1));
+ if ($_ref == 'foreach')
+ $compiled_ref = "\$this->_foreach[$_var]";
+ else
+ $compiled_ref = "\$this->_sections[$_var]";
+ break;
+
+ case 'get':
+ $compiled_ref = ($this->request_use_auto_globals) ? '$_GET' : "\$GLOBALS['HTTP_GET_VARS']";
+ break;
+
+ case 'post':
+ $compiled_ref = ($this->request_use_auto_globals) ? '$_POST' : "\$GLOBALS['HTTP_POST_VARS']";
+ break;
+
+ case 'cookies':
+ $compiled_ref = ($this->request_use_auto_globals) ? '$_COOKIE' : "\$GLOBALS['HTTP_COOKIE_VARS']";
+ break;
+
+ case 'env':
+ $compiled_ref = ($this->request_use_auto_globals) ? '$_ENV' : "\$GLOBALS['HTTP_ENV_VARS']";
+ break;
+
+ case 'server':
+ $compiled_ref = ($this->request_use_auto_globals) ? '$_SERVER' : "\$GLOBALS['HTTP_SERVER_VARS']";
+ break;
+
+ case 'session':
+ $compiled_ref = ($this->request_use_auto_globals) ? '$_SESSION' : "\$GLOBALS['HTTP_SESSION_VARS']";
+ break;
+
+ /*
+ * These cases are handled either at run-time or elsewhere in the
+ * compiler.
+ */
+ case 'request':
+ if ($this->request_use_auto_globals) {
+ $compiled_ref = '$_REQUEST';
+ break;
+ } else {
+ $this->_init_smarty_vars = true;
+ }
+ return null;
+
+ case 'capture':
+ return null;
+
+ case 'template':
+ $compiled_ref = "'$this->_current_file'";
+ $_max_index = 1;
+ break;
+
+ case 'version':
+ $compiled_ref = "'$this->_version'";
+ $_max_index = 1;
+ break;
+
+ case 'const':
+ array_shift($indexes);
+ $_val = $this->_parse_var_props(substr($indexes[0],1));
+ $compiled_ref = '@constant(' . $_val . ')';
+ $_max_index = 1;
+ break;
+
+ case 'config':
+ $compiled_ref = "\$this->_config[0]['vars']";
+ $_max_index = 2;
+ break;
+
+ default:
+ $this->_syntax_error('$smarty.' . $_ref . ' is an unknown reference', E_USER_ERROR, __FILE__, __LINE__);
+ break;
+ }
+
+ if (isset($_max_index) && count($indexes) > $_max_index) {
+ $this->_syntax_error('$smarty' . implode('', $indexes) .' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ array_shift($indexes);
+ return $compiled_ref;
+ }
+
+ /**
+ * compiles call to plugin of type $type with name $name
+ * returns a string containing the function-name or method call
+ * without the paramter-list that would have follow to make the
+ * call valid php-syntax
+ *
+ * @param string $type
+ * @param string $name
+ * @return string
+ */
+ function _compile_plugin_call($type, $name) {
+ if (isset($this->_plugins[$type][$name])) {
+ /* plugin loaded */
+ if (is_array($this->_plugins[$type][$name][0])) {
+ return ((is_object($this->_plugins[$type][$name][0][0])) ?
+ "\$this->_plugins['$type']['$name'][0][0]->" /* method callback */
+ : (string)($this->_plugins[$type][$name][0][0]).'::' /* class callback */
+ ). $this->_plugins[$type][$name][0][1];
+
+ } else {
+ /* function callback */
+ return $this->_plugins[$type][$name][0];
+
+ }
+ } else {
+ /* plugin not loaded -> auto-loadable-plugin */
+ return 'smarty_'.$type.'_'.$name;
+
+ }
+ }
+
+ /**
+ * load pre- and post-filters
+ */
+ function _load_filters()
+ {
+ if (count($this->_plugins['prefilter']) > 0) {
+ foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
+ if ($prefilter === false) {
+ unset($this->_plugins['prefilter'][$filter_name]);
+ $_params = array('plugins' => array(array('prefilter', $filter_name, null, null, false)));
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
+ smarty_core_load_plugins($_params, $this);
+ }
+ }
+ }
+ if (count($this->_plugins['postfilter']) > 0) {
+ foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) {
+ if ($postfilter === false) {
+ unset($this->_plugins['postfilter'][$filter_name]);
+ $_params = array('plugins' => array(array('postfilter', $filter_name, null, null, false)));
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
+ smarty_core_load_plugins($_params, $this);
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Quote subpattern references
+ *
+ * @param string $string
+ * @return string
+ */
+ function _quote_replace($string)
+ {
+ return preg_replace('![\\$]\d!', '\\\\\\0', $string);
+ }
+
+ /**
+ * display Smarty syntax error
+ *
+ * @param string $error_msg
+ * @param integer $error_type
+ * @param string $file
+ * @param integer $line
+ */
+ function _syntax_error($error_msg, $error_type = E_USER_ERROR, $file=null, $line=null)
+ {
+ if(isset($file) && isset($line)) {
+ $info = ' ('.basename($file).", line $line)";
+ } else {
+ $info = null;
+ }
+ trigger_error('Smarty: [in ' . $this->_current_file . ' line ' .
+ $this->_current_line_no . "]: syntax error: $error_msg$info", $error_type);
+ }
+
+
+ /**
+ * check if the compilation changes from cacheable to
+ * non-cacheable state with the beginning of the current
+ * plugin. return php-code to reflect the transition.
+ * @return string
+ */
+ function _push_cacheable_state($type, $name) {
+ $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4];
+ if ($_cacheable
+ || 0<$this->_cacheable_state++) return '';
+ if (!isset($this->_cache_serial)) $this->_cache_serial = md5(uniqid('Smarty'));
+ $_ret = 'if ($this->caching) { echo \'{nocache:'
+ . $this->_cache_serial . '#' . $this->_nocache_count
+ . '}\';}';
+ return $_ret;
+ }
+
+
+ /**
+ * check if the compilation changes from non-cacheable to
+ * cacheable state with the end of the current plugin return
+ * php-code to reflect the transition.
+ * @return string
+ */
+ function _pop_cacheable_state($type, $name) {
+ $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4];
+ if ($_cacheable
+ || --$this->_cacheable_state>0) return '';
+ return 'if ($this->caching) { echo \'{/nocache:'
+ . $this->_cache_serial . '#' . ($this->_nocache_count++)
+ . '}\';}';
+ }
+
+}
+
+/**
+ * compare to values by their string length
+ *
+ * @access private
+ * @param string $a
+ * @param string $b
+ * @return 0|-1|1
+ */
+function _smarty_sort_length($a, $b)
+{
+ if($a == $b)
+ return 0;
+
+ if(strlen($a) == strlen($b))
+ return ($a > $b) ? -1 : 1;
+
+ return (strlen($a) > strlen($b)) ? -1 : 1;
+}
+
+
+/* vim: set et: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php
index 4c40ae90cd..ec44f8e421 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php
@@ -1,62 +1,62 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * assemble filepath of requested plugin
- *
- * @param string $type
- * @param string $name
- * @return string|false
- */
-function smarty_core_assemble_plugin_filepath($params, &$smarty)
-{
-
- $_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
- $_return = false;
-
- foreach ((array)$smarty->plugins_dir as $_plugin_dir) {
-
- $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
-
- // see if path is relative
- if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $_plugin_dir)) {
- $_relative_paths[] = $_plugin_dir;
- // relative path, see if it is in the SMARTY_DIR
- if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
- $_return = SMARTY_DIR . $_plugin_filepath;
- break;
- }
- }
- // try relative to cwd (or absolute)
- if (@is_readable($_plugin_filepath)) {
- $_return = $_plugin_filepath;
- break;
- }
- }
-
- if($_return === false) {
- // still not found, try PHP include_path
- if(isset($_relative_paths)) {
- foreach ((array)$_relative_paths as $_plugin_dir) {
-
- $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
-
- $_params = array('file_path' => $_plugin_filepath);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
- if(smarty_core_get_include_path($_params, $smarty)) {
- return $_params['new_file_path'];
- }
- }
- }
- }
-
- return $_return;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * assemble filepath of requested plugin
+ *
+ * @param string $type
+ * @param string $name
+ * @return string|false
+ */
+function smarty_core_assemble_plugin_filepath($params, &$smarty)
+{
+
+ $_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
+ $_return = false;
+
+ foreach ((array)$smarty->plugins_dir as $_plugin_dir) {
+
+ $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
+
+ // see if path is relative
+ if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $_plugin_dir)) {
+ $_relative_paths[] = $_plugin_dir;
+ // relative path, see if it is in the SMARTY_DIR
+ if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
+ $_return = SMARTY_DIR . $_plugin_filepath;
+ break;
+ }
+ }
+ // try relative to cwd (or absolute)
+ if (@is_readable($_plugin_filepath)) {
+ $_return = $_plugin_filepath;
+ break;
+ }
+ }
+
+ if($_return === false) {
+ // still not found, try PHP include_path
+ if(isset($_relative_paths)) {
+ foreach ((array)$_relative_paths as $_plugin_dir) {
+
+ $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
+
+ $_params = array('file_path' => $_plugin_filepath);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
+ if(smarty_core_get_include_path($_params, $smarty)) {
+ return $_params['new_file_path'];
+ }
+ }
+ }
+ }
+
+ return $_return;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php
index 500ba9a96a..7e65a73ec2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php
@@ -1,43 +1,43 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty assign_smarty_interface core plugin
- *
- * Type: core<br>
- * Name: assign_smarty_interface<br>
- * Purpose: assign the $smarty interface variable
- * @param array Format: null
- * @param Smarty
- */
-function smarty_core_assign_smarty_interface($params, &$smarty)
-{
- if (isset($smarty->_smarty_vars) && isset($smarty->_smarty_vars['request'])) {
- return;
- }
-
- $_globals_map = array('g' => 'HTTP_GET_VARS',
- 'p' => 'HTTP_POST_VARS',
- 'c' => 'HTTP_COOKIE_VARS',
- 's' => 'HTTP_SERVER_VARS',
- 'e' => 'HTTP_ENV_VARS');
-
- $_smarty_vars_request = array();
-
- foreach (preg_split('!!', strtolower($smarty->request_vars_order)) as $_c) {
- if (isset($_globals_map[$_c])) {
- $_smarty_vars_request = array_merge($_smarty_vars_request, $GLOBALS[$_globals_map[$_c]]);
- }
- }
- $_smarty_vars_request = @array_merge($_smarty_vars_request, $GLOBALS['HTTP_SESSION_VARS']);
-
- $smarty->_smarty_vars['request'] = $_smarty_vars_request;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty assign_smarty_interface core plugin
+ *
+ * Type: core<br>
+ * Name: assign_smarty_interface<br>
+ * Purpose: assign the $smarty interface variable
+ * @param array Format: null
+ * @param Smarty
+ */
+function smarty_core_assign_smarty_interface($params, &$smarty)
+{
+ if (isset($smarty->_smarty_vars) && isset($smarty->_smarty_vars['request'])) {
+ return;
+ }
+
+ $_globals_map = array('g' => 'HTTP_GET_VARS',
+ 'p' => 'HTTP_POST_VARS',
+ 'c' => 'HTTP_COOKIE_VARS',
+ 's' => 'HTTP_SERVER_VARS',
+ 'e' => 'HTTP_ENV_VARS');
+
+ $_smarty_vars_request = array();
+
+ foreach (preg_split('!!', strtolower($smarty->request_vars_order)) as $_c) {
+ if (isset($_globals_map[$_c])) {
+ $_smarty_vars_request = array_merge($_smarty_vars_request, $GLOBALS[$_globals_map[$_c]]);
+ }
+ }
+ $_smarty_vars_request = @array_merge($_smarty_vars_request, $GLOBALS['HTTP_SESSION_VARS']);
+
+ $smarty->_smarty_vars['request'] = $_smarty_vars_request;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php
index b57d50eaf3..999cf59302 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php
@@ -1,79 +1,79 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * create full directory structure
- *
- * @param string $dir
- */
-
-// $dir
-
-function smarty_core_create_dir_structure($params, &$smarty)
-{
- if (!file_exists($params['dir'])) {
- $_open_basedir_ini = ini_get('open_basedir');
-
- if (DIRECTORY_SEPARATOR=='/') {
- /* unix-style paths */
- $_dir = $params['dir'];
- $_dir_parts = preg_split('!/+!', $_dir, -1, PREG_SPLIT_NO_EMPTY);
- $_new_dir = ($_dir{0}=='/') ? '/' : getcwd().'/';
- if($_use_open_basedir = !empty($_open_basedir_ini)) {
- $_open_basedirs = explode(':', $_open_basedir_ini);
- }
-
- } else {
- /* other-style paths */
- $_dir = str_replace('\\','/', $params['dir']);
- $_dir_parts = preg_split('!/+!', $_dir, -1, PREG_SPLIT_NO_EMPTY);
- if (preg_match('!^((//)|([a-zA-Z]:/))!', $_dir, $_root_dir)) {
- /* leading "//" for network volume, or "[letter]:/" for full path */
- $_new_dir = $_root_dir[1];
- /* remove drive-letter from _dir_parts */
- if (isset($_root_dir[3])) array_shift($_dir_parts);
-
- } else {
- $_new_dir = str_replace('\\', '/', getcwd()).'/';
-
- }
-
- if($_use_open_basedir = !empty($_open_basedir_ini)) {
- $_open_basedirs = explode(';', str_replace('\\', '/', $_open_basedir_ini));
- }
-
- }
-
- /* all paths use "/" only from here */
- foreach ($_dir_parts as $_dir_part) {
- $_new_dir .= $_dir_part;
-
- if ($_use_open_basedir) {
- // do not attempt to test or make directories outside of open_basedir
- $_make_new_dir = false;
- foreach ($_open_basedirs as $_open_basedir) {
- if (substr($_new_dir, 0, strlen($_open_basedir)) == $_open_basedir) {
- $_make_new_dir = true;
- break;
- }
- }
- } else {
- $_make_new_dir = true;
- }
-
- if ($_make_new_dir && !file_exists($_new_dir) && !@mkdir($_new_dir, $smarty->_dir_perms) && !is_dir($_new_dir)) {
- $smarty->trigger_error("problem creating directory '" . $_new_dir . "'");
- return false;
- }
- $_new_dir .= '/';
- }
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * create full directory structure
+ *
+ * @param string $dir
+ */
+
+// $dir
+
+function smarty_core_create_dir_structure($params, &$smarty)
+{
+ if (!file_exists($params['dir'])) {
+ $_open_basedir_ini = ini_get('open_basedir');
+
+ if (DIRECTORY_SEPARATOR=='/') {
+ /* unix-style paths */
+ $_dir = $params['dir'];
+ $_dir_parts = preg_split('!/+!', $_dir, -1, PREG_SPLIT_NO_EMPTY);
+ $_new_dir = ($_dir{0}=='/') ? '/' : getcwd().'/';
+ if($_use_open_basedir = !empty($_open_basedir_ini)) {
+ $_open_basedirs = explode(':', $_open_basedir_ini);
+ }
+
+ } else {
+ /* other-style paths */
+ $_dir = str_replace('\\','/', $params['dir']);
+ $_dir_parts = preg_split('!/+!', $_dir, -1, PREG_SPLIT_NO_EMPTY);
+ if (preg_match('!^((//)|([a-zA-Z]:/))!', $_dir, $_root_dir)) {
+ /* leading "//" for network volume, or "[letter]:/" for full path */
+ $_new_dir = $_root_dir[1];
+ /* remove drive-letter from _dir_parts */
+ if (isset($_root_dir[3])) array_shift($_dir_parts);
+
+ } else {
+ $_new_dir = str_replace('\\', '/', getcwd()).'/';
+
+ }
+
+ if($_use_open_basedir = !empty($_open_basedir_ini)) {
+ $_open_basedirs = explode(';', str_replace('\\', '/', $_open_basedir_ini));
+ }
+
+ }
+
+ /* all paths use "/" only from here */
+ foreach ($_dir_parts as $_dir_part) {
+ $_new_dir .= $_dir_part;
+
+ if ($_use_open_basedir) {
+ // do not attempt to test or make directories outside of open_basedir
+ $_make_new_dir = false;
+ foreach ($_open_basedirs as $_open_basedir) {
+ if (substr($_new_dir, 0, strlen($_open_basedir)) == $_open_basedir) {
+ $_make_new_dir = true;
+ break;
+ }
+ }
+ } else {
+ $_make_new_dir = true;
+ }
+
+ if ($_make_new_dir && !file_exists($_new_dir) && !@mkdir($_new_dir, $smarty->_dir_perms) && !is_dir($_new_dir)) {
+ $smarty->trigger_error("problem creating directory '" . $_new_dir . "'");
+ return false;
+ }
+ $_new_dir .= '/';
+ }
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php
index 252c4478bc..c509ff72f3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php
@@ -1,60 +1,60 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty debug_console function plugin
- *
- * Type: core<br>
- * Name: display_debug_console<br>
- * Purpose: display the javascript debug console window
- * @param array Format: null
- * @param Smarty
- */
-function smarty_core_display_debug_console($params, &$smarty)
-{
- // we must force compile the debug template in case the environment
- // changed between separate applications.
-
- if(empty($smarty->debug_tpl)) {
- // set path to debug template from SMARTY_DIR
- $smarty->debug_tpl = SMARTY_DIR . 'debug.tpl';
- if($smarty->security && is_file($smarty->debug_tpl)) {
- $smarty->secure_dir[] = dirname(realpath($smarty->debug_tpl));
- }
- }
-
- $_ldelim_orig = $smarty->left_delimiter;
- $_rdelim_orig = $smarty->right_delimiter;
-
- $smarty->left_delimiter = '{';
- $smarty->right_delimiter = '}';
-
- $_compile_id_orig = $smarty->_compile_id;
- $smarty->_compile_id = null;
-
- $_compile_path = $smarty->_get_compile_path($smarty->debug_tpl);
- if ($smarty->_compile_resource($smarty->debug_tpl, $_compile_path))
- {
- ob_start();
- $smarty->_include($_compile_path);
- $_results = ob_get_contents();
- ob_end_clean();
- } else {
- $_results = '';
- }
-
- $smarty->_compile_id = $_compile_id_orig;
-
- $smarty->left_delimiter = $_ldelim_orig;
- $smarty->right_delimiter = $_rdelim_orig;
-
- return $_results;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty debug_console function plugin
+ *
+ * Type: core<br>
+ * Name: display_debug_console<br>
+ * Purpose: display the javascript debug console window
+ * @param array Format: null
+ * @param Smarty
+ */
+function smarty_core_display_debug_console($params, &$smarty)
+{
+ // we must force compile the debug template in case the environment
+ // changed between separate applications.
+
+ if(empty($smarty->debug_tpl)) {
+ // set path to debug template from SMARTY_DIR
+ $smarty->debug_tpl = SMARTY_DIR . 'debug.tpl';
+ if($smarty->security && is_file($smarty->debug_tpl)) {
+ $smarty->secure_dir[] = dirname(realpath($smarty->debug_tpl));
+ }
+ }
+
+ $_ldelim_orig = $smarty->left_delimiter;
+ $_rdelim_orig = $smarty->right_delimiter;
+
+ $smarty->left_delimiter = '{';
+ $smarty->right_delimiter = '}';
+
+ $_compile_id_orig = $smarty->_compile_id;
+ $smarty->_compile_id = null;
+
+ $_compile_path = $smarty->_get_compile_path($smarty->debug_tpl);
+ if ($smarty->_compile_resource($smarty->debug_tpl, $_compile_path))
+ {
+ ob_start();
+ $smarty->_include($_compile_path);
+ $_results = ob_get_contents();
+ ob_end_clean();
+ } else {
+ $_results = '';
+ }
+
+ $smarty->_compile_id = $_compile_id_orig;
+
+ $smarty->left_delimiter = $_ldelim_orig;
+ $smarty->right_delimiter = $_rdelim_orig;
+
+ return $_results;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php
index 855eed308e..eb7188cdcb 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php
@@ -1,44 +1,44 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Get path to file from include_path
- *
- * @param string $file_path
- * @param string $new_file_path
- * @return boolean
- * @staticvar array|null
- */
-
-// $file_path, &$new_file_path
-
-function smarty_core_get_include_path(&$params, &$smarty)
-{
- static $_path_array = null;
-
- if(!isset($_path_array)) {
- $_ini_include_path = ini_get('include_path');
-
- if(strstr($_ini_include_path,';')) {
- // windows pathnames
- $_path_array = explode(';',$_ini_include_path);
- } else {
- $_path_array = explode(':',$_ini_include_path);
- }
- }
- foreach ($_path_array as $_include_path) {
- if (file_exists($_include_path . DIRECTORY_SEPARATOR . $params['file_path'])) {
- $params['new_file_path'] = $_include_path . DIRECTORY_SEPARATOR . $params['file_path'];
- return true;
- }
- }
- return false;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Get path to file from include_path
+ *
+ * @param string $file_path
+ * @param string $new_file_path
+ * @return boolean
+ * @staticvar array|null
+ */
+
+// $file_path, &$new_file_path
+
+function smarty_core_get_include_path(&$params, &$smarty)
+{
+ static $_path_array = null;
+
+ if(!isset($_path_array)) {
+ $_ini_include_path = ini_get('include_path');
+
+ if(strstr($_ini_include_path,';')) {
+ // windows pathnames
+ $_path_array = explode(';',$_ini_include_path);
+ } else {
+ $_path_array = explode(':',$_ini_include_path);
+ }
+ }
+ foreach ($_path_array as $_include_path) {
+ if (file_exists($_include_path . DIRECTORY_SEPARATOR . $params['file_path'])) {
+ $params['new_file_path'] = $_include_path . DIRECTORY_SEPARATOR . $params['file_path'];
+ return true;
+ }
+ }
+ return false;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php
index 3c998a71f0..f1a28e0425 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php
@@ -1,23 +1,23 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Get seconds and microseconds
- * @return double
- */
-function smarty_core_get_microtime($params, &$smarty)
-{
- $mtime = microtime();
- $mtime = explode(" ", $mtime);
- $mtime = (double)($mtime[1]) + (double)($mtime[0]);
- return ($mtime);
-}
-
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Get seconds and microseconds
+ * @return double
+ */
+function smarty_core_get_microtime($params, &$smarty)
+{
+ $mtime = microtime();
+ $mtime = explode(" ", $mtime);
+ $mtime = (double)($mtime[1]) + (double)($mtime[0]);
+ return ($mtime);
+}
+
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php
index 5279ad21ee..8121acf8b0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php
@@ -1,80 +1,80 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Retrieves PHP script resource
- *
- * sets $php_resource to the returned resource
- * @param string $resource
- * @param string $resource_type
- * @param $php_resource
- * @return boolean
- */
-
-function smarty_core_get_php_resource(&$params, &$smarty)
-{
-
- $params['resource_base_path'] = $smarty->trusted_dir;
- $smarty->_parse_resource_name($params, $smarty);
-
- /*
- * Find out if the resource exists.
- */
-
- if ($params['resource_type'] == 'file') {
- $_readable = false;
- if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
- $_readable = true;
- } else {
- // test for file in include_path
- $_params = array('file_path' => $params['resource_name']);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
- if(smarty_core_get_include_path($_params, $smarty)) {
- $_include_path = $_params['new_file_path'];
- $_readable = true;
- }
- }
- } else if ($params['resource_type'] != 'file') {
- $_template_source = null;
- $_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
- && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
- array($params['resource_name'], &$_template_source, &$smarty));
- }
-
- /*
- * Set the error function, depending on which class calls us.
- */
- if (method_exists($smarty, '_syntax_error')) {
- $_error_funcc = '_syntax_error';
- } else {
- $_error_funcc = 'trigger_error';
- }
-
- if ($_readable) {
- if ($smarty->security) {
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_trusted.php');
- if (!smarty_core_is_trusted($params, $smarty)) {
- $smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted');
- return false;
- }
- }
- } else {
- $smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable');
- return false;
- }
-
- if ($params['resource_type'] == 'file') {
- $params['php_resource'] = $params['resource_name'];
- } else {
- $params['php_resource'] = $_template_source;
- }
- return true;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Retrieves PHP script resource
+ *
+ * sets $php_resource to the returned resource
+ * @param string $resource
+ * @param string $resource_type
+ * @param $php_resource
+ * @return boolean
+ */
+
+function smarty_core_get_php_resource(&$params, &$smarty)
+{
+
+ $params['resource_base_path'] = $smarty->trusted_dir;
+ $smarty->_parse_resource_name($params, $smarty);
+
+ /*
+ * Find out if the resource exists.
+ */
+
+ if ($params['resource_type'] == 'file') {
+ $_readable = false;
+ if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
+ $_readable = true;
+ } else {
+ // test for file in include_path
+ $_params = array('file_path' => $params['resource_name']);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
+ if(smarty_core_get_include_path($_params, $smarty)) {
+ $_include_path = $_params['new_file_path'];
+ $_readable = true;
+ }
+ }
+ } else if ($params['resource_type'] != 'file') {
+ $_template_source = null;
+ $_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
+ && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
+ array($params['resource_name'], &$_template_source, &$smarty));
+ }
+
+ /*
+ * Set the error function, depending on which class calls us.
+ */
+ if (method_exists($smarty, '_syntax_error')) {
+ $_error_funcc = '_syntax_error';
+ } else {
+ $_error_funcc = 'trigger_error';
+ }
+
+ if ($_readable) {
+ if ($smarty->security) {
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_trusted.php');
+ if (!smarty_core_is_trusted($params, $smarty)) {
+ $smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted');
+ return false;
+ }
+ }
+ } else {
+ $smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable');
+ return false;
+ }
+
+ if ($params['resource_type'] == 'file') {
+ $params['php_resource'] = $params['resource_name'];
+ } else {
+ $params['php_resource'] = $_template_source;
+ }
+ return true;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php
index d635820842..877886b885 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php
@@ -1,59 +1,59 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * determines if a resource is secure or not.
- *
- * @param string $resource_type
- * @param string $resource_name
- * @return boolean
- */
-
-// $resource_type, $resource_name
-
-function smarty_core_is_secure($params, &$smarty)
-{
- static $check_template_dir = true;
-
- if (!$smarty->security || $smarty->security_settings['INCLUDE_ANY']) {
- return true;
- }
-
- $_smarty_secure = false;
- if ($params['resource_type'] == 'file') {
- if($check_template_dir) {
- if (!in_array($smarty->template_dir, $smarty->secure_dir))
- // add template_dir to secure_dir array
- array_unshift($smarty->secure_dir, $smarty->template_dir);
- $check_template_dir = false;
- }
- if (!empty($smarty->secure_dir)) {
- $_rp = realpath($params['resource_name']);
- foreach ((array)$smarty->secure_dir as $curr_dir) {
- if ( !empty($curr_dir) && is_readable ($curr_dir)) {
- $_cd = realpath($curr_dir);
- if (strncmp($_rp, $_cd, strlen($_cd)) == 0
- && $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) {
- $_smarty_secure = true;
- break;
- }
- }
- }
- }
- } else {
- // resource is not on local file system
- $_smarty_secure = call_user_func_array(
- $smarty->_plugins['resource'][$params['resource_type']][0][2],
- array($params['resource_name'], &$_smarty_secure, &$smarty));
- }
-
- return $_smarty_secure;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * determines if a resource is secure or not.
+ *
+ * @param string $resource_type
+ * @param string $resource_name
+ * @return boolean
+ */
+
+// $resource_type, $resource_name
+
+function smarty_core_is_secure($params, &$smarty)
+{
+ static $check_template_dir = true;
+
+ if (!$smarty->security || $smarty->security_settings['INCLUDE_ANY']) {
+ return true;
+ }
+
+ $_smarty_secure = false;
+ if ($params['resource_type'] == 'file') {
+ if($check_template_dir) {
+ if (!in_array($smarty->template_dir, $smarty->secure_dir))
+ // add template_dir to secure_dir array
+ array_unshift($smarty->secure_dir, $smarty->template_dir);
+ $check_template_dir = false;
+ }
+ if (!empty($smarty->secure_dir)) {
+ $_rp = realpath($params['resource_name']);
+ foreach ((array)$smarty->secure_dir as $curr_dir) {
+ if ( !empty($curr_dir) && is_readable ($curr_dir)) {
+ $_cd = realpath($curr_dir);
+ if (strncmp($_rp, $_cd, strlen($_cd)) == 0
+ && $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) {
+ $_smarty_secure = true;
+ break;
+ }
+ }
+ }
+ }
+ } else {
+ // resource is not on local file system
+ $_smarty_secure = call_user_func_array(
+ $smarty->_plugins['resource'][$params['resource_type']][0][2],
+ array($params['resource_name'], &$_smarty_secure, &$smarty));
+ }
+
+ return $_smarty_secure;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php
index 478d3d30db..c90e3ef992 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php
@@ -1,50 +1,50 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**#@+
- * @access private
- */
-/**
- * determines if a resource is trusted or not
- *
- * @param string $resource_type
- * @param string $resource_name
- * @return boolean
- */
-
- // $resource_type, $resource_name
-
-function smarty_core_is_trusted($params, &$smarty)
-{
- $_smarty_trusted = false;
- if ($params['resource_type'] == 'file') {
- if (!empty($smarty->trusted_dir)) {
- $_rp = realpath($params['resource_name']);
- foreach ((array)$smarty->trusted_dir as $curr_dir) {
- if (!empty($curr_dir) && is_readable ($curr_dir)) {
- $_cd = realpath($curr_dir);
- if (strncmp($_rp, $_cd, strlen($_cd)) == 0
- && $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) {
- $_smarty_trusted = true;
- break;
- }
- }
- }
- }
-
- } else {
- // resource is not on local file system
- $_smarty_trusted = call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][3],
- array($params['resource_name'], $smarty));
- }
-
- return $_smarty_trusted;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**#@+
+ * @access private
+ */
+/**
+ * determines if a resource is trusted or not
+ *
+ * @param string $resource_type
+ * @param string $resource_name
+ * @return boolean
+ */
+
+ // $resource_type, $resource_name
+
+function smarty_core_is_trusted($params, &$smarty)
+{
+ $_smarty_trusted = false;
+ if ($params['resource_type'] == 'file') {
+ if (!empty($smarty->trusted_dir)) {
+ $_rp = realpath($params['resource_name']);
+ foreach ((array)$smarty->trusted_dir as $curr_dir) {
+ if (!empty($curr_dir) && is_readable ($curr_dir)) {
+ $_cd = realpath($curr_dir);
+ if (strncmp($_rp, $_cd, strlen($_cd)) == 0
+ && $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) {
+ $_smarty_trusted = true;
+ break;
+ }
+ }
+ }
+ }
+
+ } else {
+ // resource is not on local file system
+ $_smarty_trusted = call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][3],
+ array($params['resource_name'], $smarty));
+ }
+
+ return $_smarty_trusted;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php
index 6f412ec99a..6db1dc51d2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php
@@ -1,125 +1,125 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Load requested plugins
- *
- * @param array $plugins
- */
-
-// $plugins
-
-function smarty_core_load_plugins($params, &$smarty)
-{
-
- foreach ($params['plugins'] as $_plugin_info) {
- list($_type, $_name, $_tpl_file, $_tpl_line, $_delayed_loading) = $_plugin_info;
- $_plugin = &$smarty->_plugins[$_type][$_name];
-
- /*
- * We do not load plugin more than once for each instance of Smarty.
- * The following code checks for that. The plugin can also be
- * registered dynamically at runtime, in which case template file
- * and line number will be unknown, so we fill them in.
- *
- * The final element of the info array is a flag that indicates
- * whether the dynamically registered plugin function has been
- * checked for existence yet or not.
- */
- if (isset($_plugin)) {
- if (empty($_plugin[3])) {
- if (!is_callable($_plugin[0])) {
- $smarty->_trigger_fatal_error("[plugin] $_type '$_name' is not implemented", $_tpl_file, $_tpl_line, __FILE__, __LINE__);
- } else {
- $_plugin[1] = $_tpl_file;
- $_plugin[2] = $_tpl_line;
- $_plugin[3] = true;
- if (!isset($_plugin[4])) $_plugin[4] = true; /* cacheable */
- }
- }
- continue;
- } else if ($_type == 'insert') {
- /*
- * For backwards compatibility, we check for insert functions in
- * the symbol table before trying to load them as a plugin.
- */
- $_plugin_func = 'insert_' . $_name;
- if (function_exists($_plugin_func)) {
- $_plugin = array($_plugin_func, $_tpl_file, $_tpl_line, true, false);
- continue;
- }
- }
-
- $_plugin_file = $smarty->_get_plugin_filepath($_type, $_name);
-
- if (! $_found = ($_plugin_file != false)) {
- $_message = "could not load plugin file '$_type.$_name.php'\n";
- }
-
- /*
- * If plugin file is found, it -must- provide the properly named
- * plugin function. In case it doesn't, simply output the error and
- * do not fall back on any other method.
- */
- if ($_found) {
- include_once $_plugin_file;
-
- $_plugin_func = 'smarty_' . $_type . '_' . $_name;
- if (!function_exists($_plugin_func)) {
- $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", $_tpl_file, $_tpl_line, __FILE__, __LINE__);
- continue;
- }
- }
- /*
- * In case of insert plugins, their code may be loaded later via
- * 'script' attribute.
- */
- else if ($_type == 'insert' && $_delayed_loading) {
- $_plugin_func = 'smarty_' . $_type . '_' . $_name;
- $_found = true;
- }
-
- /*
- * Plugin specific processing and error checking.
- */
- if (!$_found) {
- if ($_type == 'modifier') {
- /*
- * In case modifier falls back on using PHP functions
- * directly, we only allow those specified in the security
- * context.
- */
- if ($smarty->security && !in_array($_name, $smarty->security_settings['MODIFIER_FUNCS'])) {
- $_message = "(secure mode) modifier '$_name' is not allowed";
- } else {
- if (!function_exists($_name)) {
- $_message = "modifier '$_name' is not implemented";
- } else {
- $_plugin_func = $_name;
- $_found = true;
- }
- }
- } else if ($_type == 'function') {
- /*
- * This is a catch-all situation.
- */
- $_message = "unknown tag - '$_name'";
- }
- }
-
- if ($_found) {
- $smarty->_plugins[$_type][$_name] = array($_plugin_func, $_tpl_file, $_tpl_line, true, true);
- } else {
- // output error
- $smarty->_trigger_fatal_error('[plugin] ' . $_message, $_tpl_file, $_tpl_line, __FILE__, __LINE__);
- }
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Load requested plugins
+ *
+ * @param array $plugins
+ */
+
+// $plugins
+
+function smarty_core_load_plugins($params, &$smarty)
+{
+
+ foreach ($params['plugins'] as $_plugin_info) {
+ list($_type, $_name, $_tpl_file, $_tpl_line, $_delayed_loading) = $_plugin_info;
+ $_plugin = &$smarty->_plugins[$_type][$_name];
+
+ /*
+ * We do not load plugin more than once for each instance of Smarty.
+ * The following code checks for that. The plugin can also be
+ * registered dynamically at runtime, in which case template file
+ * and line number will be unknown, so we fill them in.
+ *
+ * The final element of the info array is a flag that indicates
+ * whether the dynamically registered plugin function has been
+ * checked for existence yet or not.
+ */
+ if (isset($_plugin)) {
+ if (empty($_plugin[3])) {
+ if (!is_callable($_plugin[0])) {
+ $smarty->_trigger_fatal_error("[plugin] $_type '$_name' is not implemented", $_tpl_file, $_tpl_line, __FILE__, __LINE__);
+ } else {
+ $_plugin[1] = $_tpl_file;
+ $_plugin[2] = $_tpl_line;
+ $_plugin[3] = true;
+ if (!isset($_plugin[4])) $_plugin[4] = true; /* cacheable */
+ }
+ }
+ continue;
+ } else if ($_type == 'insert') {
+ /*
+ * For backwards compatibility, we check for insert functions in
+ * the symbol table before trying to load them as a plugin.
+ */
+ $_plugin_func = 'insert_' . $_name;
+ if (function_exists($_plugin_func)) {
+ $_plugin = array($_plugin_func, $_tpl_file, $_tpl_line, true, false);
+ continue;
+ }
+ }
+
+ $_plugin_file = $smarty->_get_plugin_filepath($_type, $_name);
+
+ if (! $_found = ($_plugin_file != false)) {
+ $_message = "could not load plugin file '$_type.$_name.php'\n";
+ }
+
+ /*
+ * If plugin file is found, it -must- provide the properly named
+ * plugin function. In case it doesn't, simply output the error and
+ * do not fall back on any other method.
+ */
+ if ($_found) {
+ include_once $_plugin_file;
+
+ $_plugin_func = 'smarty_' . $_type . '_' . $_name;
+ if (!function_exists($_plugin_func)) {
+ $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", $_tpl_file, $_tpl_line, __FILE__, __LINE__);
+ continue;
+ }
+ }
+ /*
+ * In case of insert plugins, their code may be loaded later via
+ * 'script' attribute.
+ */
+ else if ($_type == 'insert' && $_delayed_loading) {
+ $_plugin_func = 'smarty_' . $_type . '_' . $_name;
+ $_found = true;
+ }
+
+ /*
+ * Plugin specific processing and error checking.
+ */
+ if (!$_found) {
+ if ($_type == 'modifier') {
+ /*
+ * In case modifier falls back on using PHP functions
+ * directly, we only allow those specified in the security
+ * context.
+ */
+ if ($smarty->security && !in_array($_name, $smarty->security_settings['MODIFIER_FUNCS'])) {
+ $_message = "(secure mode) modifier '$_name' is not allowed";
+ } else {
+ if (!function_exists($_name)) {
+ $_message = "modifier '$_name' is not implemented";
+ } else {
+ $_plugin_func = $_name;
+ $_found = true;
+ }
+ }
+ } else if ($_type == 'function') {
+ /*
+ * This is a catch-all situation.
+ */
+ $_message = "unknown tag - '$_name'";
+ }
+ }
+
+ if ($_found) {
+ $smarty->_plugins[$_type][$_name] = array($_plugin_func, $_tpl_file, $_tpl_line, true, true);
+ } else {
+ // output error
+ $smarty->_trigger_fatal_error('[plugin] ' . $_message, $_tpl_file, $_tpl_line, __FILE__, __LINE__);
+ }
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php
index 8a084f1b67..a7d37d1afc 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php
@@ -1,74 +1,74 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * load a resource plugin
- *
- * @param string $type
- */
-
-// $type
-
-function smarty_core_load_resource_plugin($params, &$smarty)
-{
- /*
- * Resource plugins are not quite like the other ones, so they are
- * handled differently. The first element of plugin info is the array of
- * functions provided by the plugin, the second one indicates whether
- * all of them exist or not.
- */
-
- $_plugin = &$smarty->_plugins['resource'][$params['type']];
- if (isset($_plugin)) {
- if (!$_plugin[1] && count($_plugin[0])) {
- $_plugin[1] = true;
- foreach ($_plugin[0] as $_plugin_func) {
- if (!is_callable($_plugin_func)) {
- $_plugin[1] = false;
- break;
- }
- }
- }
-
- if (!$_plugin[1]) {
- $smarty->_trigger_fatal_error("[plugin] resource '" . $params['type'] . "' is not implemented", null, null, __FILE__, __LINE__);
- }
-
- return;
- }
-
- $_plugin_file = $smarty->_get_plugin_filepath('resource', $params['type']);
- $_found = ($_plugin_file != false);
-
- if ($_found) { /*
- * If the plugin file is found, it -must- provide the properly named
- * plugin functions.
- */
- include_once($_plugin_file);
-
- /*
- * Locate functions that we require the plugin to provide.
- */
- $_resource_ops = array('source', 'timestamp', 'secure', 'trusted');
- $_resource_funcs = array();
- foreach ($_resource_ops as $_op) {
- $_plugin_func = 'smarty_resource_' . $params['type'] . '_' . $_op;
- if (!function_exists($_plugin_func)) {
- $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", null, null, __FILE__, __LINE__);
- return;
- } else {
- $_resource_funcs[] = $_plugin_func;
- }
- }
-
- $smarty->_plugins['resource'][$params['type']] = array($_resource_funcs, true);
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * load a resource plugin
+ *
+ * @param string $type
+ */
+
+// $type
+
+function smarty_core_load_resource_plugin($params, &$smarty)
+{
+ /*
+ * Resource plugins are not quite like the other ones, so they are
+ * handled differently. The first element of plugin info is the array of
+ * functions provided by the plugin, the second one indicates whether
+ * all of them exist or not.
+ */
+
+ $_plugin = &$smarty->_plugins['resource'][$params['type']];
+ if (isset($_plugin)) {
+ if (!$_plugin[1] && count($_plugin[0])) {
+ $_plugin[1] = true;
+ foreach ($_plugin[0] as $_plugin_func) {
+ if (!is_callable($_plugin_func)) {
+ $_plugin[1] = false;
+ break;
+ }
+ }
+ }
+
+ if (!$_plugin[1]) {
+ $smarty->_trigger_fatal_error("[plugin] resource '" . $params['type'] . "' is not implemented", null, null, __FILE__, __LINE__);
+ }
+
+ return;
+ }
+
+ $_plugin_file = $smarty->_get_plugin_filepath('resource', $params['type']);
+ $_found = ($_plugin_file != false);
+
+ if ($_found) { /*
+ * If the plugin file is found, it -must- provide the properly named
+ * plugin functions.
+ */
+ include_once($_plugin_file);
+
+ /*
+ * Locate functions that we require the plugin to provide.
+ */
+ $_resource_ops = array('source', 'timestamp', 'secure', 'trusted');
+ $_resource_funcs = array();
+ foreach ($_resource_ops as $_op) {
+ $_plugin_func = 'smarty_resource_' . $params['type'] . '_' . $_op;
+ if (!function_exists($_plugin_func)) {
+ $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", null, null, __FILE__, __LINE__);
+ return;
+ } else {
+ $_resource_funcs[] = $_plugin_func;
+ }
+ }
+
+ $smarty->_plugins['resource'][$params['type']] = array($_resource_funcs, true);
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php
index 42c3269814..0e368fdd60 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php
@@ -1,71 +1,71 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Replace cached inserts with the actual results
- *
- * @param string $results
- * @return string
- */
-function smarty_core_process_cached_inserts($params, &$smarty)
-{
- preg_match_all('!'.$smarty->_smarty_md5.'{insert_cache (.*)}'.$smarty->_smarty_md5.'!Uis',
- $params['results'], $match);
- list($cached_inserts, $insert_args) = $match;
-
- for ($i = 0, $for_max = count($cached_inserts); $i < $for_max; $i++) {
- if ($smarty->debugging) {
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $debug_start_time = smarty_core_get_microtime($_params, $smarty);
- }
-
- $args = unserialize($insert_args[$i]);
- $name = $args['name'];
-
- if (isset($args['script'])) {
- $_params = array('resource_name' => $smarty->_dequote($args['script']));
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
- if(!smarty_core_get_php_resource($_params, $smarty)) {
- return false;
- }
- $resource_type = $_params['resource_type'];
- $php_resource = $_params['php_resource'];
-
-
- if ($resource_type == 'file') {
- $smarty->_include($php_resource, true);
- } else {
- $smarty->_eval($php_resource);
- }
- }
-
- $function_name = $smarty->_plugins['insert'][$name][0];
- if (empty($args['assign'])) {
- $replace = $function_name($args, $smarty);
- } else {
- $smarty->assign($args['assign'], $function_name($args, $smarty));
- $replace = '';
- }
-
- $params['results'] = str_replace($cached_inserts[$i], $replace, $params['results']);
- if ($smarty->debugging) {
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $smarty->_smarty_debug_info[] = array('type' => 'insert',
- 'filename' => 'insert_'.$name,
- 'depth' => $smarty->_inclusion_depth,
- 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $debug_start_time);
- }
- }
-
- return $params['results'];
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Replace cached inserts with the actual results
+ *
+ * @param string $results
+ * @return string
+ */
+function smarty_core_process_cached_inserts($params, &$smarty)
+{
+ preg_match_all('!'.$smarty->_smarty_md5.'{insert_cache (.*)}'.$smarty->_smarty_md5.'!Uis',
+ $params['results'], $match);
+ list($cached_inserts, $insert_args) = $match;
+
+ for ($i = 0, $for_max = count($cached_inserts); $i < $for_max; $i++) {
+ if ($smarty->debugging) {
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $debug_start_time = smarty_core_get_microtime($_params, $smarty);
+ }
+
+ $args = unserialize($insert_args[$i]);
+ $name = $args['name'];
+
+ if (isset($args['script'])) {
+ $_params = array('resource_name' => $smarty->_dequote($args['script']));
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
+ if(!smarty_core_get_php_resource($_params, $smarty)) {
+ return false;
+ }
+ $resource_type = $_params['resource_type'];
+ $php_resource = $_params['php_resource'];
+
+
+ if ($resource_type == 'file') {
+ $smarty->_include($php_resource, true);
+ } else {
+ $smarty->_eval($php_resource);
+ }
+ }
+
+ $function_name = $smarty->_plugins['insert'][$name][0];
+ if (empty($args['assign'])) {
+ $replace = $function_name($args, $smarty);
+ } else {
+ $smarty->assign($args['assign'], $function_name($args, $smarty));
+ $replace = '';
+ }
+
+ $params['results'] = str_replace($cached_inserts[$i], $replace, $params['results']);
+ if ($smarty->debugging) {
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $smarty->_smarty_debug_info[] = array('type' => 'insert',
+ 'filename' => 'insert_'.$name,
+ 'depth' => $smarty->_inclusion_depth,
+ 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $debug_start_time);
+ }
+ }
+
+ return $params['results'];
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php
index 52ecc64216..3e1d4c15a0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php
@@ -1,32 +1,32 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Replace nocache-tags by results of the corresponding non-cacheable
- * functions and return it
- *
- * @param string $compiled_tpl
- * @param string $cached_source
- * @return string
- */
-
-function smarty_core_process_compiled_include($params, &$smarty)
-{
- $_cache_including = $smarty->_cache_including;
- $smarty->_cache_including = true;
-
- $_return = $params['results'];
- foreach ($smarty->_cache_serials as $_include_file_path=>$_cache_serial) {
- $_return = preg_replace_callback('!(\{nocache\:('.$_cache_serial.')#(\d+)\})!s',
- array(&$smarty, '_process_compiled_include_callback'),
- $_return);
- }
- $smarty->_cache_including = $_cache_including;
- return $_return;
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Replace nocache-tags by results of the corresponding non-cacheable
+ * functions and return it
+ *
+ * @param string $compiled_tpl
+ * @param string $cached_source
+ * @return string
+ */
+
+function smarty_core_process_compiled_include($params, &$smarty)
+{
+ $_cache_including = $smarty->_cache_including;
+ $smarty->_cache_including = true;
+
+ $_return = $params['results'];
+ foreach ($smarty->_cache_serials as $_include_file_path=>$_cache_serial) {
+ $_return = preg_replace_callback('!(\{nocache\:('.$_cache_serial.')#(\d+)\})!s',
+ array(&$smarty, '_process_compiled_include_callback'),
+ $_return);
+ }
+ $smarty->_cache_including = $_cache_including;
+ return $_return;
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php
index 60ec924e9a..2ab428111d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php
@@ -1,111 +1,111 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * read a cache file, determine if it needs to be
- * regenerated or not
- *
- * @param string $tpl_file
- * @param string $cache_id
- * @param string $compile_id
- * @param string $results
- * @return boolean
- */
-
-// $tpl_file, $cache_id, $compile_id, &$results
-
-function smarty_core_read_cache_file(&$params, &$smarty)
-{
- static $content_cache = array();
-
- if ($smarty->force_compile) {
- // force compile enabled, always regenerate
- return false;
- }
-
- if (isset($content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']])) {
- list($params['results'], $smarty->_cache_info) = $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']];
- return true;
- }
-
- if (!empty($smarty->cache_handler_func)) {
- // use cache_handler function
- call_user_func_array($smarty->cache_handler_func,
- array('read', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null));
- } else {
- // use local cache file
- $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']);
- $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id);
- $params['results'] = $smarty->_read_file($_cache_file);
- }
-
- if (empty($params['results'])) {
- // nothing to parse (error?), regenerate cache
- return false;
- }
-
- $cache_split = explode("\n", $params['results'], 2);
- $cache_header = $cache_split[0];
-
- $_cache_info = unserialize($cache_header);
-
- if ($smarty->caching == 2 && isset ($_cache_info['expires'])){
- // caching by expiration time
- if ($_cache_info['expires'] > -1 && (time() > $_cache_info['expires'])) {
- // cache expired, regenerate
- return false;
- }
- } else {
- // caching by lifetime
- if ($smarty->cache_lifetime > -1 && (time() - $_cache_info['timestamp'] > $smarty->cache_lifetime)) {
- // cache expired, regenerate
- return false;
- }
- }
-
- if ($smarty->compile_check) {
- $_params = array('get_source' => false, 'quiet'=>true);
- foreach (array_keys($_cache_info['template']) as $_template_dep) {
- $_params['resource_name'] = $_template_dep;
- if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) {
- // template file has changed, regenerate cache
- return false;
- }
- }
-
- if (isset($_cache_info['config'])) {
- $_params = array('resource_base_path' => $smarty->config_dir, 'get_source' => false, 'quiet'=>true);
- foreach (array_keys($_cache_info['config']) as $_config_dep) {
- $_params['resource_name'] = $_config_dep;
- if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) {
- // config file has changed, regenerate cache
- return false;
- }
- }
- }
- }
-
- foreach ($_cache_info['cache_serials'] as $_include_file_path=>$_cache_serial) {
- if (empty($smarty->_cache_serials[$_include_file_path])) {
- $smarty->_include($_include_file_path, true);
- }
-
- if ($smarty->_cache_serials[$_include_file_path] != $_cache_serial) {
- /* regenerate */
- return false;
- }
- }
- $params['results'] = $cache_split[1];
- $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']] = array($params['results'], $_cache_info);
-
- $smarty->_cache_info = $_cache_info;
- return true;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * read a cache file, determine if it needs to be
+ * regenerated or not
+ *
+ * @param string $tpl_file
+ * @param string $cache_id
+ * @param string $compile_id
+ * @param string $results
+ * @return boolean
+ */
+
+// $tpl_file, $cache_id, $compile_id, &$results
+
+function smarty_core_read_cache_file(&$params, &$smarty)
+{
+ static $content_cache = array();
+
+ if ($smarty->force_compile) {
+ // force compile enabled, always regenerate
+ return false;
+ }
+
+ if (isset($content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']])) {
+ list($params['results'], $smarty->_cache_info) = $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']];
+ return true;
+ }
+
+ if (!empty($smarty->cache_handler_func)) {
+ // use cache_handler function
+ call_user_func_array($smarty->cache_handler_func,
+ array('read', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null));
+ } else {
+ // use local cache file
+ $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']);
+ $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id);
+ $params['results'] = $smarty->_read_file($_cache_file);
+ }
+
+ if (empty($params['results'])) {
+ // nothing to parse (error?), regenerate cache
+ return false;
+ }
+
+ $cache_split = explode("\n", $params['results'], 2);
+ $cache_header = $cache_split[0];
+
+ $_cache_info = unserialize($cache_header);
+
+ if ($smarty->caching == 2 && isset ($_cache_info['expires'])){
+ // caching by expiration time
+ if ($_cache_info['expires'] > -1 && (time() > $_cache_info['expires'])) {
+ // cache expired, regenerate
+ return false;
+ }
+ } else {
+ // caching by lifetime
+ if ($smarty->cache_lifetime > -1 && (time() - $_cache_info['timestamp'] > $smarty->cache_lifetime)) {
+ // cache expired, regenerate
+ return false;
+ }
+ }
+
+ if ($smarty->compile_check) {
+ $_params = array('get_source' => false, 'quiet'=>true);
+ foreach (array_keys($_cache_info['template']) as $_template_dep) {
+ $_params['resource_name'] = $_template_dep;
+ if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) {
+ // template file has changed, regenerate cache
+ return false;
+ }
+ }
+
+ if (isset($_cache_info['config'])) {
+ $_params = array('resource_base_path' => $smarty->config_dir, 'get_source' => false, 'quiet'=>true);
+ foreach (array_keys($_cache_info['config']) as $_config_dep) {
+ $_params['resource_name'] = $_config_dep;
+ if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) {
+ // config file has changed, regenerate cache
+ return false;
+ }
+ }
+ }
+ }
+
+ foreach ($_cache_info['cache_serials'] as $_include_file_path=>$_cache_serial) {
+ if (empty($smarty->_cache_serials[$_include_file_path])) {
+ $smarty->_include($_include_file_path, true);
+ }
+
+ if ($smarty->_cache_serials[$_include_file_path] != $_cache_serial) {
+ /* regenerate */
+ return false;
+ }
+ }
+ $params['results'] = $cache_split[1];
+ $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']] = array($params['results'], $_cache_info);
+
+ $smarty->_cache_info = $_cache_info;
+ return true;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php
index d3cbfe2837..b7cdaf8c5d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php
@@ -1,71 +1,71 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * delete an automagically created file by name and id
- *
- * @param string $auto_base
- * @param string $auto_source
- * @param string $auto_id
- * @param integer $exp_time
- * @return boolean
- */
-
-// $auto_base, $auto_source = null, $auto_id = null, $exp_time = null
-
-function smarty_core_rm_auto($params, &$smarty)
-{
- if (!@is_dir($params['auto_base']))
- return false;
-
- if(!isset($params['auto_id']) && !isset($params['auto_source'])) {
- $_params = array(
- 'dirname' => $params['auto_base'],
- 'level' => 0,
- 'exp_time' => $params['exp_time']
- );
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
- $_res = smarty_core_rmdir($_params, $smarty);
- } else {
- $_tname = $smarty->_get_auto_filename($params['auto_base'], $params['auto_source'], $params['auto_id']);
-
- if(isset($params['auto_source'])) {
- if (isset($params['extensions'])) {
- $_res = false;
- foreach ((array)$params['extensions'] as $_extension)
- $_res |= $smarty->_unlink($_tname.$_extension, $params['exp_time']);
- } else {
- $_res = $smarty->_unlink($_tname, $params['exp_time']);
- }
- } elseif ($smarty->use_sub_dirs) {
- $_params = array(
- 'dirname' => $_tname,
- 'level' => 1,
- 'exp_time' => $params['exp_time']
- );
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
- $_res = smarty_core_rmdir($_params, $smarty);
- } else {
- // remove matching file names
- $_handle = opendir($params['auto_base']);
- $_res = true;
- while (false !== ($_filename = readdir($_handle))) {
- if($_filename == '.' || $_filename == '..') {
- continue;
- } elseif (substr($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, 0, strlen($_tname)) == $_tname) {
- $_res &= (bool)$smarty->_unlink($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, $params['exp_time']);
- }
- }
- }
- }
-
- return $_res;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * delete an automagically created file by name and id
+ *
+ * @param string $auto_base
+ * @param string $auto_source
+ * @param string $auto_id
+ * @param integer $exp_time
+ * @return boolean
+ */
+
+// $auto_base, $auto_source = null, $auto_id = null, $exp_time = null
+
+function smarty_core_rm_auto($params, &$smarty)
+{
+ if (!@is_dir($params['auto_base']))
+ return false;
+
+ if(!isset($params['auto_id']) && !isset($params['auto_source'])) {
+ $_params = array(
+ 'dirname' => $params['auto_base'],
+ 'level' => 0,
+ 'exp_time' => $params['exp_time']
+ );
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
+ $_res = smarty_core_rmdir($_params, $smarty);
+ } else {
+ $_tname = $smarty->_get_auto_filename($params['auto_base'], $params['auto_source'], $params['auto_id']);
+
+ if(isset($params['auto_source'])) {
+ if (isset($params['extensions'])) {
+ $_res = false;
+ foreach ((array)$params['extensions'] as $_extension)
+ $_res |= $smarty->_unlink($_tname.$_extension, $params['exp_time']);
+ } else {
+ $_res = $smarty->_unlink($_tname, $params['exp_time']);
+ }
+ } elseif ($smarty->use_sub_dirs) {
+ $_params = array(
+ 'dirname' => $_tname,
+ 'level' => 1,
+ 'exp_time' => $params['exp_time']
+ );
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
+ $_res = smarty_core_rmdir($_params, $smarty);
+ } else {
+ // remove matching file names
+ $_handle = opendir($params['auto_base']);
+ $_res = true;
+ while (false !== ($_filename = readdir($_handle))) {
+ if($_filename == '.' || $_filename == '..') {
+ continue;
+ } elseif (substr($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, 0, strlen($_tname)) == $_tname) {
+ $_res &= (bool)$smarty->_unlink($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, $params['exp_time']);
+ }
+ }
+ }
+ }
+
+ return $_res;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php
index f149469dab..38df822cea 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php
@@ -1,55 +1,55 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * delete a dir recursively (level=0 -> keep root)
- * WARNING: no tests, it will try to remove what you tell it!
- *
- * @param string $dirname
- * @param integer $level
- * @param integer $exp_time
- * @return boolean
- */
-
-// $dirname, $level = 1, $exp_time = null
-
-function smarty_core_rmdir($params, &$smarty)
-{
- if(!isset($params['level'])) { $params['level'] = 1; }
- if(!isset($params['exp_time'])) { $params['exp_time'] = null; }
-
- if($_handle = @opendir($params['dirname'])) {
-
- while (false !== ($_entry = readdir($_handle))) {
- if ($_entry != '.' && $_entry != '..') {
- if (@is_dir($params['dirname'] . DIRECTORY_SEPARATOR . $_entry)) {
- $_params = array(
- 'dirname' => $params['dirname'] . DIRECTORY_SEPARATOR . $_entry,
- 'level' => $params['level'] + 1,
- 'exp_time' => $params['exp_time']
- );
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
- smarty_core_rmdir($_params, $smarty);
- }
- else {
- $smarty->_unlink($params['dirname'] . DIRECTORY_SEPARATOR . $_entry, $params['exp_time']);
- }
- }
- }
- closedir($_handle);
- }
-
- if ($params['level']) {
- return @rmdir($params['dirname']);
- }
- return (bool)$_handle;
-
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * delete a dir recursively (level=0 -> keep root)
+ * WARNING: no tests, it will try to remove what you tell it!
+ *
+ * @param string $dirname
+ * @param integer $level
+ * @param integer $exp_time
+ * @return boolean
+ */
+
+// $dirname, $level = 1, $exp_time = null
+
+function smarty_core_rmdir($params, &$smarty)
+{
+ if(!isset($params['level'])) { $params['level'] = 1; }
+ if(!isset($params['exp_time'])) { $params['exp_time'] = null; }
+
+ if($_handle = @opendir($params['dirname'])) {
+
+ while (false !== ($_entry = readdir($_handle))) {
+ if ($_entry != '.' && $_entry != '..') {
+ if (@is_dir($params['dirname'] . DIRECTORY_SEPARATOR . $_entry)) {
+ $_params = array(
+ 'dirname' => $params['dirname'] . DIRECTORY_SEPARATOR . $_entry,
+ 'level' => $params['level'] + 1,
+ 'exp_time' => $params['exp_time']
+ );
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
+ smarty_core_rmdir($_params, $smarty);
+ }
+ else {
+ $smarty->_unlink($params['dirname'] . DIRECTORY_SEPARATOR . $_entry, $params['exp_time']);
+ }
+ }
+ }
+ closedir($_handle);
+ }
+
+ if ($params['level']) {
+ return @rmdir($params['dirname']);
+ }
+ return (bool)$_handle;
+
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php
index a40f8b2488..aa391ab3b2 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php
@@ -1,71 +1,71 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Handle insert tags
- *
- * @param array $args
- * @return string
- */
-function smarty_core_run_insert_handler($params, &$smarty)
-{
-
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- if ($smarty->debugging) {
- $_params = array();
- $_debug_start_time = smarty_core_get_microtime($_params, $smarty);
- }
-
- if ($smarty->caching) {
- $_arg_string = serialize($params['args']);
- $_name = $params['args']['name'];
- if (!isset($smarty->_cache_info['insert_tags'][$_name])) {
- $smarty->_cache_info['insert_tags'][$_name] = array('insert',
- $_name,
- $smarty->_plugins['insert'][$_name][1],
- $smarty->_plugins['insert'][$_name][2],
- !empty($params['args']['script']) ? true : false);
- }
- return $smarty->_smarty_md5."{insert_cache $_arg_string}".$smarty->_smarty_md5;
- } else {
- if (isset($params['args']['script'])) {
- $_params = array('resource_name' => $smarty->_dequote($params['args']['script']));
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
- if(!smarty_core_get_php_resource($_params, $smarty)) {
- return false;
- }
-
- if ($_params['resource_type'] == 'file') {
- $smarty->_include($_params['php_resource'], true);
- } else {
- $smarty->_eval($_params['php_resource']);
- }
- unset($params['args']['script']);
- }
-
- $_funcname = $smarty->_plugins['insert'][$params['args']['name']][0];
- $_content = $_funcname($params['args'], $smarty);
- if ($smarty->debugging) {
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $smarty->_smarty_debug_info[] = array('type' => 'insert',
- 'filename' => 'insert_'.$params['args']['name'],
- 'depth' => $smarty->_inclusion_depth,
- 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
- }
-
- if (!empty($params['args']["assign"])) {
- $smarty->assign($params['args']["assign"], $_content);
- } else {
- return $_content;
- }
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Handle insert tags
+ *
+ * @param array $args
+ * @return string
+ */
+function smarty_core_run_insert_handler($params, &$smarty)
+{
+
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ if ($smarty->debugging) {
+ $_params = array();
+ $_debug_start_time = smarty_core_get_microtime($_params, $smarty);
+ }
+
+ if ($smarty->caching) {
+ $_arg_string = serialize($params['args']);
+ $_name = $params['args']['name'];
+ if (!isset($smarty->_cache_info['insert_tags'][$_name])) {
+ $smarty->_cache_info['insert_tags'][$_name] = array('insert',
+ $_name,
+ $smarty->_plugins['insert'][$_name][1],
+ $smarty->_plugins['insert'][$_name][2],
+ !empty($params['args']['script']) ? true : false);
+ }
+ return $smarty->_smarty_md5."{insert_cache $_arg_string}".$smarty->_smarty_md5;
+ } else {
+ if (isset($params['args']['script'])) {
+ $_params = array('resource_name' => $smarty->_dequote($params['args']['script']));
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
+ if(!smarty_core_get_php_resource($_params, $smarty)) {
+ return false;
+ }
+
+ if ($_params['resource_type'] == 'file') {
+ $smarty->_include($_params['php_resource'], true);
+ } else {
+ $smarty->_eval($_params['php_resource']);
+ }
+ unset($params['args']['script']);
+ }
+
+ $_funcname = $smarty->_plugins['insert'][$params['args']['name']][0];
+ $_content = $_funcname($params['args'], $smarty);
+ if ($smarty->debugging) {
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $smarty->_smarty_debug_info[] = array('type' => 'insert',
+ 'filename' => 'insert_'.$params['args']['name'],
+ 'depth' => $smarty->_inclusion_depth,
+ 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
+ }
+
+ if (!empty($params['args']["assign"])) {
+ $smarty->assign($params['args']["assign"], $_content);
+ } else {
+ return $_content;
+ }
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php
index 9efc46ac05..4b3164801a 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php
@@ -1,50 +1,50 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * called for included php files within templates
- *
- * @param string $smarty_file
- * @param string $smarty_assign variable to assign the included template's
- * output into
- * @param boolean $smarty_once uses include_once if this is true
- * @param array $smarty_include_vars associative array of vars from
- * {include file="blah" var=$var}
- */
-
-// $file, $assign, $once, $_smarty_include_vars
-
-function smarty_core_smarty_include_php($params, &$smarty)
-{
- $_params = array('resource_name' => $params['smarty_file']);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
- smarty_core_get_php_resource($_params, $smarty);
- $_smarty_resource_type = $_params['resource_type'];
- $_smarty_php_resource = $_params['php_resource'];
-
- if (!empty($params['smarty_assign'])) {
- ob_start();
- if ($_smarty_resource_type == 'file') {
- $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']);
- } else {
- $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']);
- }
- $smarty->assign($params['smarty_assign'], ob_get_contents());
- ob_end_clean();
- } else {
- if ($_smarty_resource_type == 'file') {
- $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']);
- } else {
- $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']);
- }
- }
-}
-
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * called for included php files within templates
+ *
+ * @param string $smarty_file
+ * @param string $smarty_assign variable to assign the included template's
+ * output into
+ * @param boolean $smarty_once uses include_once if this is true
+ * @param array $smarty_include_vars associative array of vars from
+ * {include file="blah" var=$var}
+ */
+
+// $file, $assign, $once, $_smarty_include_vars
+
+function smarty_core_smarty_include_php($params, &$smarty)
+{
+ $_params = array('resource_name' => $params['smarty_file']);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
+ smarty_core_get_php_resource($_params, $smarty);
+ $_smarty_resource_type = $_params['resource_type'];
+ $_smarty_php_resource = $_params['php_resource'];
+
+ if (!empty($params['smarty_assign'])) {
+ ob_start();
+ if ($_smarty_resource_type == 'file') {
+ $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']);
+ } else {
+ $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']);
+ }
+ $smarty->assign($params['smarty_assign'], ob_get_contents());
+ ob_end_clean();
+ } else {
+ if ($_smarty_resource_type == 'file') {
+ $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']);
+ } else {
+ $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']);
+ }
+ }
+}
+
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php
index 47f1b8ec23..7429ad98a8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php
@@ -1,73 +1,73 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Prepend the cache information to the cache file
- * and write it
- *
- * @param string $tpl_file
- * @param string $cache_id
- * @param string $compile_id
- * @param string $results
- * @return true|null
- */
-
- // $tpl_file, $cache_id, $compile_id, $results
-
-function smarty_core_write_cache_file($params, &$smarty)
-{
-
- // put timestamp in cache header
- $smarty->_cache_info['timestamp'] = time();
- if ($smarty->cache_lifetime > -1){
- // expiration set
- $smarty->_cache_info['expires'] = $smarty->_cache_info['timestamp'] + $smarty->cache_lifetime;
- } else {
- // cache will never expire
- $smarty->_cache_info['expires'] = -1;
- }
-
- // collapse {nocache...}-tags
- $params['results'] = preg_replace('!((\{nocache\:([0-9a-f]{32})#(\d+)\})'
- .'.*'
- .'{/nocache\:\\3#\\4\})!Us'
- ,'\\2'
- ,$params['results']);
- $smarty->_cache_info['cache_serials'] = $smarty->_cache_serials;
-
- // prepend the cache header info into cache file
- $params['results'] = serialize($smarty->_cache_info)."\n".$params['results'];
-
- if (!empty($smarty->cache_handler_func)) {
- // use cache_handler function
- call_user_func_array($smarty->cache_handler_func,
- array('write', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null));
- } else {
- // use local cache file
-
- if(!@is_writable($smarty->cache_dir)) {
- // cache_dir not writable, see if it exists
- if(!@is_dir($smarty->cache_dir)) {
- $smarty->trigger_error('the $cache_dir \'' . $smarty->cache_dir . '\' does not exist, or is not a directory.', E_USER_ERROR);
- return false;
- }
- $smarty->trigger_error('unable to write to $cache_dir \'' . realpath($smarty->cache_dir) . '\'. Be sure $cache_dir is writable by the web server user.', E_USER_ERROR);
- return false;
- }
-
- $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']);
- $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id);
- $_params = array('filename' => $_cache_file, 'contents' => $params['results'], 'create_dirs' => true);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
- smarty_core_write_file($_params, $smarty);
- return true;
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Prepend the cache information to the cache file
+ * and write it
+ *
+ * @param string $tpl_file
+ * @param string $cache_id
+ * @param string $compile_id
+ * @param string $results
+ * @return true|null
+ */
+
+ // $tpl_file, $cache_id, $compile_id, $results
+
+function smarty_core_write_cache_file($params, &$smarty)
+{
+
+ // put timestamp in cache header
+ $smarty->_cache_info['timestamp'] = time();
+ if ($smarty->cache_lifetime > -1){
+ // expiration set
+ $smarty->_cache_info['expires'] = $smarty->_cache_info['timestamp'] + $smarty->cache_lifetime;
+ } else {
+ // cache will never expire
+ $smarty->_cache_info['expires'] = -1;
+ }
+
+ // collapse {nocache...}-tags
+ $params['results'] = preg_replace('!((\{nocache\:([0-9a-f]{32})#(\d+)\})'
+ .'.*'
+ .'{/nocache\:\\3#\\4\})!Us'
+ ,'\\2'
+ ,$params['results']);
+ $smarty->_cache_info['cache_serials'] = $smarty->_cache_serials;
+
+ // prepend the cache header info into cache file
+ $params['results'] = serialize($smarty->_cache_info)."\n".$params['results'];
+
+ if (!empty($smarty->cache_handler_func)) {
+ // use cache_handler function
+ call_user_func_array($smarty->cache_handler_func,
+ array('write', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null));
+ } else {
+ // use local cache file
+
+ if(!@is_writable($smarty->cache_dir)) {
+ // cache_dir not writable, see if it exists
+ if(!@is_dir($smarty->cache_dir)) {
+ $smarty->trigger_error('the $cache_dir \'' . $smarty->cache_dir . '\' does not exist, or is not a directory.', E_USER_ERROR);
+ return false;
+ }
+ $smarty->trigger_error('unable to write to $cache_dir \'' . realpath($smarty->cache_dir) . '\'. Be sure $cache_dir is writable by the web server user.', E_USER_ERROR);
+ return false;
+ }
+
+ $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']);
+ $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id);
+ $_params = array('filename' => $_cache_file, 'contents' => $params['results'], 'create_dirs' => true);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
+ smarty_core_write_file($_params, $smarty);
+ return true;
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php
index 4124f35504..9c6a49199c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php
@@ -1,59 +1,59 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Extract non-cacheable parts out of compiled template and write it
- *
- * @param string $compile_path
- * @param string $template_compiled
- * @param integer $template_timestamp
- * @return boolean
- */
-
-function smarty_core_write_compiled_include($params, &$smarty)
-{
- $_tag_start = 'if \(\$this->caching\) \{ echo \'\{nocache\:('.$params['cache_serial'].')#(\d+)\}\';\}';
- $_tag_end = 'if \(\$this->caching\) \{ echo \'\{/nocache\:(\\2)#(\\3)\}\';\}';
-
- preg_match_all('!('.$_tag_start.'(.*)'.$_tag_end.')!Us',
- $params['compiled_content'], $_match_source, PREG_SET_ORDER);
-
- // no nocache-parts found: done
- if (count($_match_source)==0) return;
-
- // convert the matched php-code to functions
- $_include_compiled = "<?php /* funky header here */\n\n";
-
- $_compile_path = $params['include_file_path'];
-
- $smarty->_cache_serials[$_compile_path] = $params['cache_serial'];
- $_include_compiled .= "\$this->_cache_serials['".$_compile_path."'] = '".$params['cache_serial']."';\n\n?>";
-
- $_include_compiled .= $params['plugins_code'];
- $_include_compiled .= "<?php";
- for ($_i = 0, $_for_max = count($_match_source); $_i < $_for_max; $_i++) {
- $_match =& $_match_source[$_i];
- $_include_compiled .= "
-function _smarty_tplfunc_$_match[2]_$_match[3](&\$this)
-{
-$_match[4]
-}
-
-";
- }
- $_include_compiled .= "\n\n?>\n";
-
- $_params = array('filename' => $_compile_path,
- 'contents' => $_include_compiled, 'create_dirs' => true);
-
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
- smarty_core_write_file($_params, $smarty);
- return true;
-}
-
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Extract non-cacheable parts out of compiled template and write it
+ *
+ * @param string $compile_path
+ * @param string $template_compiled
+ * @param integer $template_timestamp
+ * @return boolean
+ */
+
+function smarty_core_write_compiled_include($params, &$smarty)
+{
+ $_tag_start = 'if \(\$this->caching\) \{ echo \'\{nocache\:('.$params['cache_serial'].')#(\d+)\}\';\}';
+ $_tag_end = 'if \(\$this->caching\) \{ echo \'\{/nocache\:(\\2)#(\\3)\}\';\}';
+
+ preg_match_all('!('.$_tag_start.'(.*)'.$_tag_end.')!Us',
+ $params['compiled_content'], $_match_source, PREG_SET_ORDER);
+
+ // no nocache-parts found: done
+ if (count($_match_source)==0) return;
+
+ // convert the matched php-code to functions
+ $_include_compiled = "<?php /* funky header here */\n\n";
+
+ $_compile_path = $params['include_file_path'];
+
+ $smarty->_cache_serials[$_compile_path] = $params['cache_serial'];
+ $_include_compiled .= "\$this->_cache_serials['".$_compile_path."'] = '".$params['cache_serial']."';\n\n?>";
+
+ $_include_compiled .= $params['plugins_code'];
+ $_include_compiled .= "<?php";
+ for ($_i = 0, $_for_max = count($_match_source); $_i < $_for_max; $_i++) {
+ $_match =& $_match_source[$_i];
+ $_include_compiled .= "
+function _smarty_tplfunc_$_match[2]_$_match[3](&\$this)
+{
+$_match[4]
+}
+
+";
+ }
+ $_include_compiled .= "\n\n?>\n";
+
+ $_params = array('filename' => $_compile_path,
+ 'contents' => $_include_compiled, 'create_dirs' => true);
+
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
+ smarty_core_write_file($_params, $smarty);
+ return true;
+}
+
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php
index cd5cfb5638..09b50d3b0a 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php
@@ -1,37 +1,37 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * write the compiled resource
- *
- * @param string $compile_path
- * @param string $compiled_content
- * @param integer $resource_timestamp
- * @return true
- */
-function smarty_core_write_compiled_resource($params, &$smarty)
-{
- if(!@is_writable($smarty->compile_dir)) {
- // compile_dir not writable, see if it exists
- if(!@is_dir($smarty->compile_dir)) {
- $smarty->trigger_error('the $compile_dir \'' . $smarty->compile_dir . '\' does not exist, or is not a directory.', E_USER_ERROR);
- return false;
- }
- $smarty->trigger_error('unable to write to $compile_dir \'' . realpath($smarty->compile_dir) . '\'. Be sure $compile_dir is writable by the web server user.', E_USER_ERROR);
- return false;
- }
-
- $_params = array('filename' => $params['compile_path'], 'contents' => $params['compiled_content'], 'create_dirs' => true);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
- smarty_core_write_file($_params, $smarty);
- touch($params['compile_path'], $params['resource_timestamp']);
- return true;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * write the compiled resource
+ *
+ * @param string $compile_path
+ * @param string $compiled_content
+ * @param integer $resource_timestamp
+ * @return true
+ */
+function smarty_core_write_compiled_resource($params, &$smarty)
+{
+ if(!@is_writable($smarty->compile_dir)) {
+ // compile_dir not writable, see if it exists
+ if(!@is_dir($smarty->compile_dir)) {
+ $smarty->trigger_error('the $compile_dir \'' . $smarty->compile_dir . '\' does not exist, or is not a directory.', E_USER_ERROR);
+ return false;
+ }
+ $smarty->trigger_error('unable to write to $compile_dir \'' . realpath($smarty->compile_dir) . '\'. Be sure $compile_dir is writable by the web server user.', E_USER_ERROR);
+ return false;
+ }
+
+ $_params = array('filename' => $params['compile_path'], 'contents' => $params['compiled_content'], 'create_dirs' => true);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
+ smarty_core_write_file($_params, $smarty);
+ touch($params['compile_path'], $params['resource_timestamp']);
+ return true;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php
index 534a3828a2..c92454d4e8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php
@@ -1,48 +1,48 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * write out a file to disk
- *
- * @param string $filename
- * @param string $contents
- * @param boolean $create_dirs
- * @return boolean
- */
-function smarty_core_write_file($params, &$smarty)
-{
- $_dirname = dirname($params['filename']);
-
- if ($params['create_dirs']) {
- $_params = array('dir' => $_dirname);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.create_dir_structure.php');
- smarty_core_create_dir_structure($_params, $smarty);
- }
-
- // write to tmp file, then rename it to avoid
- // file locking race condition
- $_tmp_file = $_dirname . DIRECTORY_SEPARATOR . uniqid('');
-
- if (!($fd = @fopen($_tmp_file, 'w'))) {
- $smarty->trigger_error("problem writing temporary file '$_tmp_file'");
- return false;
- }
-
- fwrite($fd, $params['contents']);
- fclose($fd);
- if(file_exists($params['filename'])) {
- @unlink($params['filename']);
- }
- @rename($_tmp_file, $params['filename']);
- @chmod($params['filename'], $smarty->_file_perms);
-
- return true;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * write out a file to disk
+ *
+ * @param string $filename
+ * @param string $contents
+ * @param boolean $create_dirs
+ * @return boolean
+ */
+function smarty_core_write_file($params, &$smarty)
+{
+ $_dirname = dirname($params['filename']);
+
+ if ($params['create_dirs']) {
+ $_params = array('dir' => $_dirname);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.create_dir_structure.php');
+ smarty_core_create_dir_structure($_params, $smarty);
+ }
+
+ // write to tmp file, then rename it to avoid
+ // file locking race condition
+ $_tmp_file = $_dirname . DIRECTORY_SEPARATOR . uniqid('');
+
+ if (!($fd = @fopen($_tmp_file, 'w'))) {
+ $smarty->trigger_error("problem writing temporary file '$_tmp_file'");
+ return false;
+ }
+
+ fwrite($fd, $params['contents']);
+ fclose($fd);
+ if(file_exists($params['filename'])) {
+ @unlink($params['filename']);
+ }
+ @rename($_tmp_file, $params['filename']);
+ @chmod($params['filename'], $smarty->_file_perms);
+
+ return true;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/debug.tpl b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/debug.tpl
index ab717db76f..01265fb445 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/debug.tpl
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/debug.tpl
@@ -1,64 +1,64 @@
-{* Smarty *}
-
-{* debug.tpl, last updated version 2.0.1 *}
-
-{assign_debug_info}
-
-{if isset($_smarty_debug_output) and $_smarty_debug_output eq "html"}
- <table border=0 width=100%>
- <tr bgcolor=#cccccc><th colspan=2>Smarty Debug Console</th></tr>
- <tr bgcolor=#cccccc><td colspan=2><b>included templates & config files (load time in seconds):</b></td></tr>
- {section name=templates loop=$_debug_tpls}
- <tr bgcolor={if %templates.index% is even}#eeeeee{else}#fafafa{/if}><td colspan=2><tt>{section name=indent loop=$_debug_tpls[templates].depth}&nbsp;&nbsp;&nbsp;{/section}<font color={if $_debug_tpls[templates].type eq "template"}brown{elseif $_debug_tpls[templates].type eq "insert"}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html}</font>{if isset($_debug_tpls[templates].exec_time)} <font size=-1><i>({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if %templates.index% eq 0} (total){/if}</i></font>{/if}</tt></td></tr>
- {sectionelse}
- <tr bgcolor=#eeeeee><td colspan=2><tt><i>no templates included</i></tt></td></tr>
- {/section}
- <tr bgcolor=#cccccc><td colspan=2><b>assigned template variables:</b></td></tr>
- {section name=vars loop=$_debug_keys}
- <tr bgcolor={if %vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=blue>{ldelim}${$_debug_keys[vars]}{rdelim}</font></tt></td><td nowrap><tt><font color=green>{$_debug_vals[vars]|@debug_print_var}</font></tt></td></tr>
- {sectionelse}
- <tr bgcolor=#eeeeee><td colspan=2><tt><i>no template variables assigned</i></tt></td></tr>
- {/section}
- <tr bgcolor=#cccccc><td colspan=2><b>assigned config file variables (outer template scope):</b></td></tr>
- {section name=config_vars loop=$_debug_config_keys}
- <tr bgcolor={if %config_vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=maroon>{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}</font></tt></td><td><tt><font color=green>{$_debug_config_vals[config_vars]|@debug_print_var}</font></tt></td></tr>
- {sectionelse}
- <tr bgcolor=#eeeeee><td colspan=2><tt><i>no config vars assigned</i></tt></td></tr>
- {/section}
- </table>
-</BODY></HTML>
-{else}
-<SCRIPT language=javascript>
- if( self.name == '' ) {ldelim}
- var title = 'Console';
- {rdelim}
- else {ldelim}
- var title = 'Console_' + self.name;
- {rdelim}
- _smarty_console = window.open("",title.value,"width=680,height=600,resizable,scrollbars=yes");
- _smarty_console.document.write("<HTML><TITLE>Smarty Debug Console_"+self.name+"</TITLE><BODY bgcolor=#ffffff>");
- _smarty_console.document.write("<table border=0 width=100%>");
- _smarty_console.document.write("<tr bgcolor=#cccccc><th colspan=2>Smarty Debug Console</th></tr>");
- _smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>included templates & config files (load time in seconds):</b></td></tr>");
- {section name=templates loop=$_debug_tpls}
- _smarty_console.document.write("<tr bgcolor={if %templates.index% is even}#eeeeee{else}#fafafa{/if}><td colspan=2><tt>{section name=indent loop=$_debug_tpls[templates].depth}&nbsp;&nbsp;&nbsp;{/section}<font color={if $_debug_tpls[templates].type eq "template"}brown{elseif $_debug_tpls[templates].type eq "insert"}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html|escape:javascript}</font>{if isset($_debug_tpls[templates].exec_time)} <font size=-1><i>({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if %templates.index% eq 0} (total){/if}</i></font>{/if}</tt></td></tr>");
- {sectionelse}
- _smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no templates included</i></tt></td></tr>");
- {/section}
- _smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned template variables:</b></td></tr>");
- {section name=vars loop=$_debug_keys}
- _smarty_console.document.write("<tr bgcolor={if %vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=blue>{ldelim}${$_debug_keys[vars]}{rdelim}</font></tt></td><td nowrap><tt><font color=green>{$_debug_vals[vars]|@debug_print_var|escape:javascript}</font></tt></td></tr>");
- {sectionelse}
- _smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no template variables assigned</i></tt></td></tr>");
- {/section}
- _smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned config file variables (outer template scope):</b></td></tr>");
- {section name=config_vars loop=$_debug_config_keys}
- _smarty_console.document.write("<tr bgcolor={if %config_vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=maroon>{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}</font></tt></td><td><tt><font color=green>{$_debug_config_vals[config_vars]|@debug_print_var|escape:javascript}</font></tt></td></tr>");
- {sectionelse}
- _smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no config vars assigned</i></tt></td></tr>");
- {/section}
- _smarty_console.document.write("</table>");
- _smarty_console.document.write("</BODY></HTML>");
- _smarty_console.document.close();
-</SCRIPT>
-{/if}
+{* Smarty *}
+
+{* debug.tpl, last updated version 2.0.1 *}
+
+{assign_debug_info}
+
+{if isset($_smarty_debug_output) and $_smarty_debug_output eq "html"}
+ <table border=0 width=100%>
+ <tr bgcolor=#cccccc><th colspan=2>Smarty Debug Console</th></tr>
+ <tr bgcolor=#cccccc><td colspan=2><b>included templates & config files (load time in seconds):</b></td></tr>
+ {section name=templates loop=$_debug_tpls}
+ <tr bgcolor={if %templates.index% is even}#eeeeee{else}#fafafa{/if}><td colspan=2><tt>{section name=indent loop=$_debug_tpls[templates].depth}&nbsp;&nbsp;&nbsp;{/section}<font color={if $_debug_tpls[templates].type eq "template"}brown{elseif $_debug_tpls[templates].type eq "insert"}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html}</font>{if isset($_debug_tpls[templates].exec_time)} <font size=-1><i>({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if %templates.index% eq 0} (total){/if}</i></font>{/if}</tt></td></tr>
+ {sectionelse}
+ <tr bgcolor=#eeeeee><td colspan=2><tt><i>no templates included</i></tt></td></tr>
+ {/section}
+ <tr bgcolor=#cccccc><td colspan=2><b>assigned template variables:</b></td></tr>
+ {section name=vars loop=$_debug_keys}
+ <tr bgcolor={if %vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=blue>{ldelim}${$_debug_keys[vars]}{rdelim}</font></tt></td><td nowrap><tt><font color=green>{$_debug_vals[vars]|@debug_print_var}</font></tt></td></tr>
+ {sectionelse}
+ <tr bgcolor=#eeeeee><td colspan=2><tt><i>no template variables assigned</i></tt></td></tr>
+ {/section}
+ <tr bgcolor=#cccccc><td colspan=2><b>assigned config file variables (outer template scope):</b></td></tr>
+ {section name=config_vars loop=$_debug_config_keys}
+ <tr bgcolor={if %config_vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=maroon>{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}</font></tt></td><td><tt><font color=green>{$_debug_config_vals[config_vars]|@debug_print_var}</font></tt></td></tr>
+ {sectionelse}
+ <tr bgcolor=#eeeeee><td colspan=2><tt><i>no config vars assigned</i></tt></td></tr>
+ {/section}
+ </table>
+</BODY></HTML>
+{else}
+<SCRIPT language=javascript>
+ if( self.name == '' ) {ldelim}
+ var title = 'Console';
+ {rdelim}
+ else {ldelim}
+ var title = 'Console_' + self.name;
+ {rdelim}
+ _smarty_console = window.open("",title.value,"width=680,height=600,resizable,scrollbars=yes");
+ _smarty_console.document.write("<HTML><TITLE>Smarty Debug Console_"+self.name+"</TITLE><BODY bgcolor=#ffffff>");
+ _smarty_console.document.write("<table border=0 width=100%>");
+ _smarty_console.document.write("<tr bgcolor=#cccccc><th colspan=2>Smarty Debug Console</th></tr>");
+ _smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>included templates & config files (load time in seconds):</b></td></tr>");
+ {section name=templates loop=$_debug_tpls}
+ _smarty_console.document.write("<tr bgcolor={if %templates.index% is even}#eeeeee{else}#fafafa{/if}><td colspan=2><tt>{section name=indent loop=$_debug_tpls[templates].depth}&nbsp;&nbsp;&nbsp;{/section}<font color={if $_debug_tpls[templates].type eq "template"}brown{elseif $_debug_tpls[templates].type eq "insert"}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html|escape:javascript}</font>{if isset($_debug_tpls[templates].exec_time)} <font size=-1><i>({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if %templates.index% eq 0} (total){/if}</i></font>{/if}</tt></td></tr>");
+ {sectionelse}
+ _smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no templates included</i></tt></td></tr>");
+ {/section}
+ _smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned template variables:</b></td></tr>");
+ {section name=vars loop=$_debug_keys}
+ _smarty_console.document.write("<tr bgcolor={if %vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=blue>{ldelim}${$_debug_keys[vars]}{rdelim}</font></tt></td><td nowrap><tt><font color=green>{$_debug_vals[vars]|@debug_print_var|escape:javascript}</font></tt></td></tr>");
+ {sectionelse}
+ _smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no template variables assigned</i></tt></td></tr>");
+ {/section}
+ _smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned config file variables (outer template scope):</b></td></tr>");
+ {section name=config_vars loop=$_debug_config_keys}
+ _smarty_console.document.write("<tr bgcolor={if %config_vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=maroon>{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}</font></tt></td><td><tt><font color=green>{$_debug_config_vals[config_vars]|@debug_print_var|escape:javascript}</font></tt></td></tr>");
+ {sectionelse}
+ _smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no config vars assigned</i></tt></td></tr>");
+ {/section}
+ _smarty_console.document.write("</table>");
+ _smarty_console.document.write("</BODY></HTML>");
+ _smarty_console.document.close();
+</SCRIPT>
+{/if}
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php
index a25df36069..b03ce78c96 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php
@@ -1,35 +1,35 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty {strip}{/strip} block plugin
- *
- * Type: block function<br>
- * Name: strip<br>
- * Purpose: strip unwanted white space from text<br>
- * @link http://smarty.php.net/manual/en/language.function.strip.php {strip}
- * (Smarty online manual)
- * @param array unused, no parameters for this block
- * @param string content of {strip}{/strip} tags
- * @param Smarty clever method emulation
- * @return string $content stripped of whitespace
- */
-function smarty_block_strip($params, $content, &$this)
-{
- /* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
- $_strip_search = array(
- "![\t ]+$|^[\t ]+!m", // remove leading/trailing space chars
- '%[\r\n]+%m'); // remove CRs and newlines
- $_strip_replace = array(
- '',
- '');
- return preg_replace($_strip_search, $_strip_replace, $content);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty {strip}{/strip} block plugin
+ *
+ * Type: block function<br>
+ * Name: strip<br>
+ * Purpose: strip unwanted white space from text<br>
+ * @link http://smarty.php.net/manual/en/language.function.strip.php {strip}
+ * (Smarty online manual)
+ * @param array unused, no parameters for this block
+ * @param string content of {strip}{/strip} tags
+ * @param Smarty clever method emulation
+ * @return string $content stripped of whitespace
+ */
+function smarty_block_strip($params, $content, &$this)
+{
+ /* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
+ $_strip_search = array(
+ "![\t ]+$|^[\t ]+!m", // remove leading/trailing space chars
+ '%[\r\n]+%m'); // remove CRs and newlines
+ $_strip_replace = array(
+ '',
+ '');
+ return preg_replace($_strip_search, $_strip_replace, $content);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php
index f3462c211f..7ddccc7041 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php
@@ -1,83 +1,83 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty {textformat}{/textformat} block plugin
- *
- * Type: block function<br>
- * Name: textformat<br>
- * Purpose: format text a certain way with preset styles
- * or custom wrap/indent settings<br>
- * @link http://smarty.php.net/manual/en/language.function.textformat.php {textformat}
- * (Smarty online manual)
- * @param array
- * <pre>
- * Params: style: string (email)
- * indent: integer (0)
- * wrap: integer (80)
- * wrap_char string ("\n")
- * indent_char: string (" ")
- * wrap_boundary: boolean (true)
- * </pre>
- * @param string contents of the block
- * @param Smarty clever simulation of a method
- * @return string string $content re-formatted
- */
-function smarty_block_textformat($params, $content, &$smarty)
-{
- $style = null;
- $indent = 0;
- $indent_first = 0;
- $indent_char = ' ';
- $wrap = 80;
- $wrap_char = "\n";
- $wrap_cut = false;
- $assign = null;
-
- if($content == null) {
- return true;
- }
-
- extract($params);
-
- if($style == 'email') {
- $wrap = 72;
- }
-
- // split into paragraphs
- $paragraphs = preg_split('![\r\n][\r\n]!',$content);
- $output = '';
-
- foreach($paragraphs as $paragraph) {
- if($paragraph == '') {
- continue;
- }
- // convert mult. spaces & special chars to single space
- $paragraph = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'),array(' ',''),$paragraph);
- // indent first line
- if($indent_first > 0) {
- $paragraph = str_repeat($indent_char,$indent_first) . $paragraph;
- }
- // wordwrap sentences
- $paragraph = wordwrap($paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
- // indent lines
- if($indent > 0) {
- $paragraph = preg_replace('!^!m',str_repeat($indent_char,$indent),$paragraph);
- }
- $output .= $paragraph . $wrap_char . $wrap_char;
- }
-
- if($assign != null) {
- $smarty->assign($assign,$output);
- } else {
- return $output;
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty {textformat}{/textformat} block plugin
+ *
+ * Type: block function<br>
+ * Name: textformat<br>
+ * Purpose: format text a certain way with preset styles
+ * or custom wrap/indent settings<br>
+ * @link http://smarty.php.net/manual/en/language.function.textformat.php {textformat}
+ * (Smarty online manual)
+ * @param array
+ * <pre>
+ * Params: style: string (email)
+ * indent: integer (0)
+ * wrap: integer (80)
+ * wrap_char string ("\n")
+ * indent_char: string (" ")
+ * wrap_boundary: boolean (true)
+ * </pre>
+ * @param string contents of the block
+ * @param Smarty clever simulation of a method
+ * @return string string $content re-formatted
+ */
+function smarty_block_textformat($params, $content, &$smarty)
+{
+ $style = null;
+ $indent = 0;
+ $indent_first = 0;
+ $indent_char = ' ';
+ $wrap = 80;
+ $wrap_char = "\n";
+ $wrap_cut = false;
+ $assign = null;
+
+ if($content == null) {
+ return true;
+ }
+
+ extract($params);
+
+ if($style == 'email') {
+ $wrap = 72;
+ }
+
+ // split into paragraphs
+ $paragraphs = preg_split('![\r\n][\r\n]!',$content);
+ $output = '';
+
+ foreach($paragraphs as $paragraph) {
+ if($paragraph == '') {
+ continue;
+ }
+ // convert mult. spaces & special chars to single space
+ $paragraph = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'),array(' ',''),$paragraph);
+ // indent first line
+ if($indent_first > 0) {
+ $paragraph = str_repeat($indent_char,$indent_first) . $paragraph;
+ }
+ // wordwrap sentences
+ $paragraph = wordwrap($paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
+ // indent lines
+ if($indent > 0) {
+ $paragraph = preg_replace('!^!m',str_repeat($indent_char,$indent),$paragraph);
+ }
+ $output .= $paragraph . $wrap_char . $wrap_char;
+ }
+
+ if($assign != null) {
+ $smarty->assign($assign,$output);
+ } else {
+ return $output;
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php
index c04be8bc05..ad23f043db 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php
@@ -1,38 +1,38 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty {assign} function plugin
- *
- * Type: function<br>
- * Name: assign<br>
- * Purpose: assign a value to a template variable
- * @link http://smarty.php.net/manual/en/language.custom.functions.php#LANGUAGE.FUNCTION.ASSIGN {assign}
- * (Smarty online manual)
- * @param array Format: array('var' => variable name, 'value' => value to assign)
- * @param Smarty
- */
-function smarty_function_assign($params, &$smarty)
-{
- extract($params);
-
- if (empty($var)) {
- $smarty->trigger_error("assign: missing 'var' parameter");
- return;
- }
-
- if (!in_array('value', array_keys($params))) {
- $smarty->trigger_error("assign: missing 'value' parameter");
- return;
- }
-
- $smarty->assign($var, $value);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty {assign} function plugin
+ *
+ * Type: function<br>
+ * Name: assign<br>
+ * Purpose: assign a value to a template variable
+ * @link http://smarty.php.net/manual/en/language.custom.functions.php#LANGUAGE.FUNCTION.ASSIGN {assign}
+ * (Smarty online manual)
+ * @param array Format: array('var' => variable name, 'value' => value to assign)
+ * @param Smarty
+ */
+function smarty_function_assign($params, &$smarty)
+{
+ extract($params);
+
+ if (empty($var)) {
+ $smarty->trigger_error("assign: missing 'var' parameter");
+ return;
+ }
+
+ if (!in_array('value', array_keys($params))) {
+ $smarty->trigger_error("assign: missing 'value' parameter");
+ return;
+ }
+
+ $smarty->assign($var, $value);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php
index 59ddaa1637..c281ce879d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php
@@ -1,39 +1,39 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty {assign_debug_info} function plugin
- *
- * Type: function<br>
- * Name: assign_debug_info<br>
- * Purpose: assign debug info to the template<br>
- * @param array unused in this plugin, this plugin uses {@link Smarty::$_config},
- * {@link Smarty::$_tpl_vars} and {@link Smarty::$_smarty_debug_info}
- * @param Smarty
- */
-function smarty_function_assign_debug_info($params, &$smarty)
-{
- $assigned_vars = $smarty->_tpl_vars;
- ksort($assigned_vars);
- if (@is_array($smarty->_config[0])) {
- $config_vars = $smarty->_config[0];
- ksort($config_vars);
- $smarty->assign("_debug_config_keys", array_keys($config_vars));
- $smarty->assign("_debug_config_vals", array_values($config_vars));
- }
-
- $included_templates = $smarty->_smarty_debug_info;
-
- $smarty->assign("_debug_keys", array_keys($assigned_vars));
- $smarty->assign("_debug_vals", array_values($assigned_vars));
-
- $smarty->assign("_debug_tpls", $included_templates);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty {assign_debug_info} function plugin
+ *
+ * Type: function<br>
+ * Name: assign_debug_info<br>
+ * Purpose: assign debug info to the template<br>
+ * @param array unused in this plugin, this plugin uses {@link Smarty::$_config},
+ * {@link Smarty::$_tpl_vars} and {@link Smarty::$_smarty_debug_info}
+ * @param Smarty
+ */
+function smarty_function_assign_debug_info($params, &$smarty)
+{
+ $assigned_vars = $smarty->_tpl_vars;
+ ksort($assigned_vars);
+ if (@is_array($smarty->_config[0])) {
+ $config_vars = $smarty->_config[0];
+ ksort($config_vars);
+ $smarty->assign("_debug_config_keys", array_keys($config_vars));
+ $smarty->assign("_debug_config_vals", array_values($config_vars));
+ }
+
+ $included_templates = $smarty->_smarty_debug_info;
+
+ $smarty->assign("_debug_keys", array_keys($assigned_vars));
+ $smarty->assign("_debug_vals", array_values($assigned_vars));
+
+ $smarty->assign("_debug_tpls", $included_templates);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php
index d9d65b954e..12b74620de 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php
@@ -1,130 +1,130 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty {config_load} function plugin
- *
- * Type: function<br>
- * Name: config_load<br>
- * Purpose: load config file vars
- * @link http://smarty.php.net/manual/en/language.function.config.load.php {config_load}
- * (Smarty online manual)
- * @param array Format:
- * <pre>
- * array('file' => required config file name,
- * 'section' => optional config file section to load
- * 'scope' => local/parent/global
- * 'global' => overrides scope, setting to parent if true)
- * </pre>
- * @param Smarty
- */
-function smarty_function_config_load($params, &$smarty)
-{
- if ($smarty->debugging) {
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $_debug_start_time = smarty_core_get_microtime($_params, $smarty);
- }
-
- $_file = isset($params['file']) ? $smarty->_dequote($params['file']) : null;
- $_section = isset($params['section']) ? $smarty->_dequote($params['section']) : null;
- $_scope = isset($params['scope']) ? $smarty->_dequote($params['scope']) : 'global';
- $_global = isset($params['global']) ? $smarty->_dequote($params['global']) : false;
-
- if (!isset($_file) || strlen($_file) == 0) {
- $smarty->_syntax_error("missing 'file' attribute in config_load tag", E_USER_ERROR, __FILE__, __LINE__);
- }
-
- if (isset($_scope)) {
- if ($_scope != 'local' &&
- $_scope != 'parent' &&
- $_scope != 'global') {
- $smarty->_syntax_error("invalid 'scope' attribute value", E_USER_ERROR, __FILE__, __LINE__);
- }
- } else {
- if ($_global) {
- $_scope = 'parent';
- } else {
- $_scope = 'local';
- }
- }
-
- if(@is_dir($smarty->config_dir)) {
- $_config_dir = $smarty->config_dir;
- } else {
- // config_dir not found, try include_path
- $_params = array('file_path' => $smarty->config_dir);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
- smarty_core_get_include_path($_params, $smarty);
- $_config_dir = $_params['new_file_path'];
- }
-
- $_file_path = $_config_dir . DIRECTORY_SEPARATOR . $_file;
- if (isset($_section))
- $_compile_file = $smarty->_get_compile_path($_file_path.'|'.$_section);
- else
- $_compile_file = $smarty->_get_compile_path($_file_path);
-
- if($smarty->force_compile
- || !file_exists($_compile_file)
- || ($smarty->compile_check
- && !$smarty->_is_compiled($_file_path, $_compile_file))) {
- // compile config file
- if(!is_object($smarty->_conf_obj)) {
- require_once SMARTY_DIR . $smarty->config_class . '.class.php';
- $smarty->_conf_obj = new $smarty->config_class($_config_dir);
- $smarty->_conf_obj->overwrite = $smarty->config_overwrite;
- $smarty->_conf_obj->booleanize = $smarty->config_booleanize;
- $smarty->_conf_obj->read_hidden = $smarty->config_read_hidden;
- $smarty->_conf_obj->fix_newlines = $smarty->config_fix_newlines;
- $smarty->_conf_obj->set_path = $_config_dir;
- }
- $_config_vars = array_merge($smarty->_conf_obj->get($_file),
- $smarty->_conf_obj->get($_file, $_section));
- if(function_exists('var_export')) {
- $_output = '<?php $_config_vars = ' . var_export($_config_vars, true) . '; ?>';
- } else {
- $_output = '<?php $_config_vars = unserialize(\'' . strtr(serialize($_config_vars),array('\''=>'\\\'', '\\'=>'\\\\')) . '\'); ?>';
- }
- $_params = (array('compile_path' => $_compile_file, 'compiled_content' => $_output, 'resource_timestamp' => filemtime($_file_path)));
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php');
- smarty_core_write_compiled_resource($_params, $smarty);
- } else {
- include($_compile_file);
- }
-
- if ($smarty->caching) {
- $smarty->_cache_info['config'][$_file] = true;
- }
-
- $smarty->_config[0]['vars'] = @array_merge($smarty->_config[0]['vars'], $_config_vars);
- $smarty->_config[0]['files'][$_file] = true;
-
- if ($_scope == 'parent') {
- $smarty->_config[1]['vars'] = @array_merge($smarty->_config[1]['vars'], $_config_vars);
- $smarty->_config[1]['files'][$_file] = true;
- } else if ($_scope == 'global') {
- for ($i = 1, $for_max = count($smarty->_config); $i < $for_max; $i++) {
- $smarty->_config[$i]['vars'] = @array_merge($smarty->_config[$i]['vars'], $_config_vars);
- $smarty->_config[$i]['files'][$_file] = true;
- }
- }
-
- if ($smarty->debugging) {
- $_params = array();
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
- $smarty->_smarty_debug_info[] = array('type' => 'config',
- 'filename' => $_file.' ['.$_section.'] '.$_scope,
- 'depth' => $smarty->_inclusion_depth,
- 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
- }
-
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty {config_load} function plugin
+ *
+ * Type: function<br>
+ * Name: config_load<br>
+ * Purpose: load config file vars
+ * @link http://smarty.php.net/manual/en/language.function.config.load.php {config_load}
+ * (Smarty online manual)
+ * @param array Format:
+ * <pre>
+ * array('file' => required config file name,
+ * 'section' => optional config file section to load
+ * 'scope' => local/parent/global
+ * 'global' => overrides scope, setting to parent if true)
+ * </pre>
+ * @param Smarty
+ */
+function smarty_function_config_load($params, &$smarty)
+{
+ if ($smarty->debugging) {
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $_debug_start_time = smarty_core_get_microtime($_params, $smarty);
+ }
+
+ $_file = isset($params['file']) ? $smarty->_dequote($params['file']) : null;
+ $_section = isset($params['section']) ? $smarty->_dequote($params['section']) : null;
+ $_scope = isset($params['scope']) ? $smarty->_dequote($params['scope']) : 'global';
+ $_global = isset($params['global']) ? $smarty->_dequote($params['global']) : false;
+
+ if (!isset($_file) || strlen($_file) == 0) {
+ $smarty->_syntax_error("missing 'file' attribute in config_load tag", E_USER_ERROR, __FILE__, __LINE__);
+ }
+
+ if (isset($_scope)) {
+ if ($_scope != 'local' &&
+ $_scope != 'parent' &&
+ $_scope != 'global') {
+ $smarty->_syntax_error("invalid 'scope' attribute value", E_USER_ERROR, __FILE__, __LINE__);
+ }
+ } else {
+ if ($_global) {
+ $_scope = 'parent';
+ } else {
+ $_scope = 'local';
+ }
+ }
+
+ if(@is_dir($smarty->config_dir)) {
+ $_config_dir = $smarty->config_dir;
+ } else {
+ // config_dir not found, try include_path
+ $_params = array('file_path' => $smarty->config_dir);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
+ smarty_core_get_include_path($_params, $smarty);
+ $_config_dir = $_params['new_file_path'];
+ }
+
+ $_file_path = $_config_dir . DIRECTORY_SEPARATOR . $_file;
+ if (isset($_section))
+ $_compile_file = $smarty->_get_compile_path($_file_path.'|'.$_section);
+ else
+ $_compile_file = $smarty->_get_compile_path($_file_path);
+
+ if($smarty->force_compile
+ || !file_exists($_compile_file)
+ || ($smarty->compile_check
+ && !$smarty->_is_compiled($_file_path, $_compile_file))) {
+ // compile config file
+ if(!is_object($smarty->_conf_obj)) {
+ require_once SMARTY_DIR . $smarty->config_class . '.class.php';
+ $smarty->_conf_obj = new $smarty->config_class($_config_dir);
+ $smarty->_conf_obj->overwrite = $smarty->config_overwrite;
+ $smarty->_conf_obj->booleanize = $smarty->config_booleanize;
+ $smarty->_conf_obj->read_hidden = $smarty->config_read_hidden;
+ $smarty->_conf_obj->fix_newlines = $smarty->config_fix_newlines;
+ $smarty->_conf_obj->set_path = $_config_dir;
+ }
+ $_config_vars = array_merge($smarty->_conf_obj->get($_file),
+ $smarty->_conf_obj->get($_file, $_section));
+ if(function_exists('var_export')) {
+ $_output = '<?php $_config_vars = ' . var_export($_config_vars, true) . '; ?>';
+ } else {
+ $_output = '<?php $_config_vars = unserialize(\'' . strtr(serialize($_config_vars),array('\''=>'\\\'', '\\'=>'\\\\')) . '\'); ?>';
+ }
+ $_params = (array('compile_path' => $_compile_file, 'compiled_content' => $_output, 'resource_timestamp' => filemtime($_file_path)));
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php');
+ smarty_core_write_compiled_resource($_params, $smarty);
+ } else {
+ include($_compile_file);
+ }
+
+ if ($smarty->caching) {
+ $smarty->_cache_info['config'][$_file] = true;
+ }
+
+ $smarty->_config[0]['vars'] = @array_merge($smarty->_config[0]['vars'], $_config_vars);
+ $smarty->_config[0]['files'][$_file] = true;
+
+ if ($_scope == 'parent') {
+ $smarty->_config[1]['vars'] = @array_merge($smarty->_config[1]['vars'], $_config_vars);
+ $smarty->_config[1]['files'][$_file] = true;
+ } else if ($_scope == 'global') {
+ for ($i = 1, $for_max = count($smarty->_config); $i < $for_max; $i++) {
+ $smarty->_config[$i]['vars'] = @array_merge($smarty->_config[$i]['vars'], $_config_vars);
+ $smarty->_config[$i]['files'][$_file] = true;
+ }
+ }
+
+ if ($smarty->debugging) {
+ $_params = array();
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
+ $smarty->_smarty_debug_info[] = array('type' => 'config',
+ 'filename' => $_file.' ['.$_section.'] '.$_scope,
+ 'depth' => $smarty->_inclusion_depth,
+ 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
+ }
+
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php
index 8d17d2bb23..2536c14ea3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php
@@ -1,88 +1,88 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {counter} function plugin
- *
- * Type: function<br>
- * Name: counter<br>
- * Purpose: print out a counter value
- * @link http://smarty.php.net/manual/en/language.function.counter.php {counter}
- * (Smarty online manual)
- * @param array parameters
- * @param Smarty
- * @return string|null
- */
-function smarty_function_counter($params, &$smarty)
-{
- static $counters = array();
-
- extract($params);
-
- if (!isset($name)) {
- if(isset($id)) {
- $name = $id;
- } else {
- $name = "default";
- }
- }
-
- if (!isset($counters[$name])) {
- $counters[$name] = array(
- 'start'=>1,
- 'skip'=>1,
- 'direction'=>'up',
- 'count'=>1
- );
- }
- $counter =& $counters[$name];
-
- if (isset($start)) {
- $counter['start'] = $counter['count'] = $start;
- }
-
- if (!empty($assign)) {
- $counter['assign'] = $assign;
- }
-
- if (isset($counter['assign'])) {
- $smarty->assign($counter['assign'], $counter['count']);
- }
-
- if (isset($print)) {
- $print = (bool)$print;
- } else {
- $print = empty($counter['assign']);
- }
-
- if ($print) {
- $retval = $counter['count'];
- } else {
- $retval = null;
- }
-
- if (isset($skip)) {
- $counter['skip'] = $skip;
- }
-
- if (isset($direction)) {
- $counter['direction'] = $direction;
- }
-
- if ($counter['direction'] == "down")
- $counter['count'] -= $counter['skip'];
- else
- $counter['count'] += $counter['skip'];
-
- return $retval;
-
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {counter} function plugin
+ *
+ * Type: function<br>
+ * Name: counter<br>
+ * Purpose: print out a counter value
+ * @link http://smarty.php.net/manual/en/language.function.counter.php {counter}
+ * (Smarty online manual)
+ * @param array parameters
+ * @param Smarty
+ * @return string|null
+ */
+function smarty_function_counter($params, &$smarty)
+{
+ static $counters = array();
+
+ extract($params);
+
+ if (!isset($name)) {
+ if(isset($id)) {
+ $name = $id;
+ } else {
+ $name = "default";
+ }
+ }
+
+ if (!isset($counters[$name])) {
+ $counters[$name] = array(
+ 'start'=>1,
+ 'skip'=>1,
+ 'direction'=>'up',
+ 'count'=>1
+ );
+ }
+ $counter =& $counters[$name];
+
+ if (isset($start)) {
+ $counter['start'] = $counter['count'] = $start;
+ }
+
+ if (!empty($assign)) {
+ $counter['assign'] = $assign;
+ }
+
+ if (isset($counter['assign'])) {
+ $smarty->assign($counter['assign'], $counter['count']);
+ }
+
+ if (isset($print)) {
+ $print = (bool)$print;
+ } else {
+ $print = empty($counter['assign']);
+ }
+
+ if ($print) {
+ $retval = $counter['count'];
+ } else {
+ $retval = null;
+ }
+
+ if (isset($skip)) {
+ $counter['skip'] = $skip;
+ }
+
+ if (isset($direction)) {
+ $counter['direction'] = $direction;
+ }
+
+ if ($counter['direction'] == "down")
+ $counter['count'] -= $counter['skip'];
+ else
+ $counter['count'] += $counter['skip'];
+
+ return $retval;
+
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php
index c2e899d0d1..d5909a61a3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php
@@ -1,119 +1,119 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty {cycle} function plugin
- *
- * Type: function<br>
- * Name: cycle<br>
- * Date: May 3, 2002<br>
- * Purpose: cycle through given values<br>
- * Input:
- * - name = name of cycle (optional)
- * - values = comma separated list of values to cycle,
- * or an array of values to cycle
- * (this can be left out for subsequent calls)
- * - reset = boolean - resets given var to true
- * - print = boolean - print var or not. default is true
- * - advance = boolean - whether or not to advance the cycle
- * - delimiter = the value delimiter, default is ","
- * - assign = boolean, assigns to template var instead of
- * printed.
- *
- * Examples:<br>
- * <pre>
- * {cycle values="#eeeeee,#d0d0d0d"}
- * {cycle name=row values="one,two,three" reset=true}
- * {cycle name=row}
- * </pre>
- * @link http://smarty.php.net/manual/en/language.function.cycle.php {cycle}
- * (Smarty online manual)
- * @author Monte Ohrt <monte@ispi.net>
- * @author credit to Mark Priatel <mpriatel@rogers.com>
- * @author credit to Gerard <gerard@interfold.com>
- * @author credit to Jason Sweat <jsweat_php@yahoo.com>
- * @version 1.3
- * @param array
- * @param Smarty
- * @return string|null
- */
-function smarty_function_cycle($params, &$smarty)
-{
- static $cycle_vars;
-
- extract($params);
-
- if (empty($name)) {
- $name = 'default';
- }
-
- if (!isset($print)) {
- $print = true;
- }
-
- if (!isset($advance)) {
- $advance = true;
- }
-
- if (!isset($reset)) {
- $reset = false;
- }
-
- if (!in_array('values', array_keys($params))) {
- if(!isset($cycle_vars[$name]['values'])) {
- $smarty->trigger_error("cycle: missing 'values' parameter");
- return;
- }
- } else {
- if(isset($cycle_vars[$name]['values'])
- && $cycle_vars[$name]['values'] != $values ) {
- $cycle_vars[$name]['index'] = 0;
- }
- $cycle_vars[$name]['values'] = $values;
- }
-
- if (isset($delimiter)) {
- $cycle_vars[$name]['delimiter'] = $delimiter;
- } elseif (!isset($cycle_vars[$name]['delimiter'])) {
- $cycle_vars[$name]['delimiter'] = ',';
- }
-
- if(!is_array($cycle_vars[$name]['values'])) {
- $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']);
- } else {
- $cycle_array = $cycle_vars[$name]['values'];
- }
-
- if(!isset($cycle_vars[$name]['index']) || $reset ) {
- $cycle_vars[$name]['index'] = 0;
- }
-
- if (isset($assign)) {
- $print = false;
- $smarty->assign($assign, $cycle_array[$cycle_vars[$name]['index']]);
- }
-
- if($print) {
- $retval = $cycle_array[$cycle_vars[$name]['index']];
- } else {
- $retval = null;
- }
-
- if($advance) {
- if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) {
- $cycle_vars[$name]['index'] = 0;
- } else {
- $cycle_vars[$name]['index']++;
- }
- }
-
- return $retval;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty {cycle} function plugin
+ *
+ * Type: function<br>
+ * Name: cycle<br>
+ * Date: May 3, 2002<br>
+ * Purpose: cycle through given values<br>
+ * Input:
+ * - name = name of cycle (optional)
+ * - values = comma separated list of values to cycle,
+ * or an array of values to cycle
+ * (this can be left out for subsequent calls)
+ * - reset = boolean - resets given var to true
+ * - print = boolean - print var or not. default is true
+ * - advance = boolean - whether or not to advance the cycle
+ * - delimiter = the value delimiter, default is ","
+ * - assign = boolean, assigns to template var instead of
+ * printed.
+ *
+ * Examples:<br>
+ * <pre>
+ * {cycle values="#eeeeee,#d0d0d0d"}
+ * {cycle name=row values="one,two,three" reset=true}
+ * {cycle name=row}
+ * </pre>
+ * @link http://smarty.php.net/manual/en/language.function.cycle.php {cycle}
+ * (Smarty online manual)
+ * @author Monte Ohrt <monte@ispi.net>
+ * @author credit to Mark Priatel <mpriatel@rogers.com>
+ * @author credit to Gerard <gerard@interfold.com>
+ * @author credit to Jason Sweat <jsweat_php@yahoo.com>
+ * @version 1.3
+ * @param array
+ * @param Smarty
+ * @return string|null
+ */
+function smarty_function_cycle($params, &$smarty)
+{
+ static $cycle_vars;
+
+ extract($params);
+
+ if (empty($name)) {
+ $name = 'default';
+ }
+
+ if (!isset($print)) {
+ $print = true;
+ }
+
+ if (!isset($advance)) {
+ $advance = true;
+ }
+
+ if (!isset($reset)) {
+ $reset = false;
+ }
+
+ if (!in_array('values', array_keys($params))) {
+ if(!isset($cycle_vars[$name]['values'])) {
+ $smarty->trigger_error("cycle: missing 'values' parameter");
+ return;
+ }
+ } else {
+ if(isset($cycle_vars[$name]['values'])
+ && $cycle_vars[$name]['values'] != $values ) {
+ $cycle_vars[$name]['index'] = 0;
+ }
+ $cycle_vars[$name]['values'] = $values;
+ }
+
+ if (isset($delimiter)) {
+ $cycle_vars[$name]['delimiter'] = $delimiter;
+ } elseif (!isset($cycle_vars[$name]['delimiter'])) {
+ $cycle_vars[$name]['delimiter'] = ',';
+ }
+
+ if(!is_array($cycle_vars[$name]['values'])) {
+ $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']);
+ } else {
+ $cycle_array = $cycle_vars[$name]['values'];
+ }
+
+ if(!isset($cycle_vars[$name]['index']) || $reset ) {
+ $cycle_vars[$name]['index'] = 0;
+ }
+
+ if (isset($assign)) {
+ $print = false;
+ $smarty->assign($assign, $cycle_array[$cycle_vars[$name]['index']]);
+ }
+
+ if($print) {
+ $retval = $cycle_array[$cycle_vars[$name]['index']];
+ } else {
+ $retval = null;
+ }
+
+ if($advance) {
+ if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) {
+ $cycle_vars[$name]['index'] = 0;
+ } else {
+ $cycle_vars[$name]['index']++;
+ }
+ }
+
+ return $retval;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php
index 5fe02f30c4..2452d625e8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php
@@ -1,35 +1,35 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {debug} function plugin
- *
- * Type: function<br>
- * Name: debug<br>
- * Date: July 1, 2002<br>
- * Purpose: popup debug window
- * @link http://smarty.php.net/manual/en/language.function.debug.php {debug}
- * (Smarty online manual)
- * @author Monte Ohrt <monte@ispi.net>
- * @version 1.0
- * @param array
- * @param Smarty
- * @return string output from {@link Smarty::_generate_debug_output()}
- */
-function smarty_function_debug($params, &$smarty)
-{
- if($params['output']) {
- $smarty->assign('_smarty_debug_output',$params['output']);
- }
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
- return smarty_core_display_debug_console(null, $smarty);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {debug} function plugin
+ *
+ * Type: function<br>
+ * Name: debug<br>
+ * Date: July 1, 2002<br>
+ * Purpose: popup debug window
+ * @link http://smarty.php.net/manual/en/language.function.debug.php {debug}
+ * (Smarty online manual)
+ * @author Monte Ohrt <monte@ispi.net>
+ * @version 1.0
+ * @param array
+ * @param Smarty
+ * @return string output from {@link Smarty::_generate_debug_output()}
+ */
+function smarty_function_debug($params, &$smarty)
+{
+ if($params['output']) {
+ $smarty->assign('_smarty_debug_output',$params['output']);
+ }
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
+ return smarty_core_display_debug_console(null, $smarty);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php
index e694387648..3a4b8b2b8c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php
@@ -1,48 +1,48 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {eval} function plugin
- *
- * Type: function<br>
- * Name: eval<br>
- * Purpose: evaluate a template variable as a template<br>
- * @link http://smarty.php.net/manual/en/language.function.eval.php {eval}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- */
-function smarty_function_eval($params, &$smarty)
-{
-
- if (!isset($params['var'])) {
- $smarty->trigger_error("eval: missing 'var' parameter");
- return;
- }
-
- if($params['var'] == '') {
- return;
- }
-
- $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled);
-
- ob_start();
- $smarty->_eval('?>' . $_var_compiled);
- $_contents = ob_get_contents();
- ob_end_clean();
-
- if (!empty($params['assign'])) {
- $smarty->assign($params['assign'], $_contents);
- } else {
- return $_contents;
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {eval} function plugin
+ *
+ * Type: function<br>
+ * Name: eval<br>
+ * Purpose: evaluate a template variable as a template<br>
+ * @link http://smarty.php.net/manual/en/language.function.eval.php {eval}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ */
+function smarty_function_eval($params, &$smarty)
+{
+
+ if (!isset($params['var'])) {
+ $smarty->trigger_error("eval: missing 'var' parameter");
+ return;
+ }
+
+ if($params['var'] == '') {
+ return;
+ }
+
+ $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled);
+
+ ob_start();
+ $smarty->_eval('?>' . $_var_compiled);
+ $_contents = ob_get_contents();
+ ob_end_clean();
+
+ if (!empty($params['assign'])) {
+ $smarty->assign($params['assign'], $_contents);
+ } else {
+ return $_contents;
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php
index 082c3483cc..b013b8c37d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php
@@ -1,217 +1,217 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {fetch} plugin
- *
- * Type: function<br>
- * Name: fetch<br>
- * Purpose: fetch file, web or ftp data and display results
- * @link http://smarty.php.net/manual/en/language.function.fetch.php {fetch}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- * @return string|null if the assign parameter is passed, Smarty assigns the
- * result to a template variable
- */
-function smarty_function_fetch($params, &$smarty)
-{
- if (empty($params['file'])) {
- $smarty->_trigger_fatal_error("[plugin] parameter 'file' cannot be empty");
- return;
- }
-
- if ($smarty->security && !preg_match('!^(http|ftp)://!i', $params['file'])) {
- $_params = array('resource_type' => 'file', 'resource_name' => $params['file']);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
- if(!smarty_core_is_secure($_params, $smarty)) {
- $smarty->_trigger_fatal_error('[plugin] (secure mode) fetch \'' . $params['file'] . '\' is not allowed');
- return;
- }
-
- // fetch the file
- if($fp = @fopen($params['file'],'r')) {
- while(!feof($fp)) {
- $content .= fgets ($fp,4096);
- }
- fclose($fp);
- } else {
- $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] . '\'');
- return;
- }
- } else {
- // not a local file
- if(preg_match('!^http://!i',$params['file'])) {
- // http fetch
- if($uri_parts = parse_url($params['file'])) {
- // set defaults
- $host = $server_name = $uri_parts['host'];
- $timeout = 30;
- $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
- $agent = "Smarty Template Engine ".$smarty->_version;
- $referer = "";
- $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/';
- $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : '';
- $_is_proxy = false;
- if(empty($uri_parts['port'])) {
- $port = 80;
- } else {
- $port = $uri_parts['port'];
- }
- if(empty($uri_parts['user'])) {
- $user = '';
- }
- // loop through parameters, setup headers
- foreach($params as $param_key => $param_value) {
- switch($param_key) {
- case "file":
- case "assign":
- case "assign_headers":
- break;
- case "user":
- if(!empty($param_value)) {
- $user = $param_value;
- }
- break;
- case "pass":
- if(!empty($param_value)) {
- $pass = $param_value;
- }
- break;
- case "accept":
- if(!empty($param_value)) {
- $accept = $param_value;
- }
- break;
- case "header":
- if(!empty($param_value)) {
- if(!preg_match('![\w\d-]+: .+!',$param_value)) {
- $smarty->_trigger_fatal_error("[plugin] invalid header format '".$param_value."'");
- return;
- } else {
- $extra_headers[] = $param_value;
- }
- }
- break;
- case "proxy_host":
- if(!empty($param_value)) {
- $proxy_host = $param_value;
- }
- break;
- case "proxy_port":
- if(!preg_match('!\D!', $param_value)) {
- $proxy_port = (int) $param_value;
- } else {
- $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'");
- return;
- }
- break;
- case "agent":
- if(!empty($param_value)) {
- $agent = $param_value;
- }
- break;
- case "referer":
- if(!empty($param_value)) {
- $referer = $param_value;
- }
- break;
- case "timeout":
- if(!preg_match('!\D!', $param_value)) {
- $timeout = (int) $param_value;
- } else {
- $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'");
- return;
- }
- break;
- default:
- $smarty->_trigger_fatal_error("[plugin] unrecognized attribute '".$param_key."'");
- return;
- }
- }
- if(!empty($proxy_host) && !empty($proxy_port)) {
- $_is_proxy = true;
- $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout);
- } else {
- $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout);
- }
-
- if(!$fp) {
- $smarty->_trigger_fatal_error("[plugin] unable to fetch: $errstr ($errno)");
- return;
- } else {
- if($_is_proxy) {
- fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n");
- } else {
- fputs($fp, "GET $uri HTTP/1.0\r\n");
- }
- if(!empty($host)) {
- fputs($fp, "Host: $host\r\n");
- }
- if(!empty($accept)) {
- fputs($fp, "Accept: $accept\r\n");
- }
- if(!empty($agent)) {
- fputs($fp, "User-Agent: $agent\r\n");
- }
- if(!empty($referer)) {
- fputs($fp, "Referer: $referer\r\n");
- }
- if(isset($extra_headers) && is_array($extra_headers)) {
- foreach($extra_headers as $curr_header) {
- fputs($fp, $curr_header."\r\n");
- }
- }
- if(!empty($user) && !empty($pass)) {
- fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n");
- }
-
- $content = '';
- fputs($fp, "\r\n");
- while(!feof($fp)) {
- $content .= fgets($fp,4096);
- }
- fclose($fp);
- $csplit = split("\r\n\r\n",$content,2);
-
- $content = $csplit[1];
-
- if(!empty($params['assign_headers'])) {
- $smarty->assign($params['assign_headers'],split("\r\n",$csplit[0]));
- }
- }
- } else {
- $smarty->_trigger_fatal_error("[plugin] unable to parse URL, check syntax");
- return;
- }
- } else {
- // ftp fetch
- if($fp = @fopen($params['file'],'r')) {
- while(!feof($fp)) {
- $content .= fgets ($fp,4096);
- }
- fclose($fp);
- } else {
- $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] .'\'');
- return;
- }
- }
-
- }
-
-
- if (!empty($params['assign'])) {
- $smarty->assign($params['assign'],$content);
- } else {
- return $content;
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {fetch} plugin
+ *
+ * Type: function<br>
+ * Name: fetch<br>
+ * Purpose: fetch file, web or ftp data and display results
+ * @link http://smarty.php.net/manual/en/language.function.fetch.php {fetch}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ * @return string|null if the assign parameter is passed, Smarty assigns the
+ * result to a template variable
+ */
+function smarty_function_fetch($params, &$smarty)
+{
+ if (empty($params['file'])) {
+ $smarty->_trigger_fatal_error("[plugin] parameter 'file' cannot be empty");
+ return;
+ }
+
+ if ($smarty->security && !preg_match('!^(http|ftp)://!i', $params['file'])) {
+ $_params = array('resource_type' => 'file', 'resource_name' => $params['file']);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
+ if(!smarty_core_is_secure($_params, $smarty)) {
+ $smarty->_trigger_fatal_error('[plugin] (secure mode) fetch \'' . $params['file'] . '\' is not allowed');
+ return;
+ }
+
+ // fetch the file
+ if($fp = @fopen($params['file'],'r')) {
+ while(!feof($fp)) {
+ $content .= fgets ($fp,4096);
+ }
+ fclose($fp);
+ } else {
+ $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] . '\'');
+ return;
+ }
+ } else {
+ // not a local file
+ if(preg_match('!^http://!i',$params['file'])) {
+ // http fetch
+ if($uri_parts = parse_url($params['file'])) {
+ // set defaults
+ $host = $server_name = $uri_parts['host'];
+ $timeout = 30;
+ $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
+ $agent = "Smarty Template Engine ".$smarty->_version;
+ $referer = "";
+ $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/';
+ $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : '';
+ $_is_proxy = false;
+ if(empty($uri_parts['port'])) {
+ $port = 80;
+ } else {
+ $port = $uri_parts['port'];
+ }
+ if(empty($uri_parts['user'])) {
+ $user = '';
+ }
+ // loop through parameters, setup headers
+ foreach($params as $param_key => $param_value) {
+ switch($param_key) {
+ case "file":
+ case "assign":
+ case "assign_headers":
+ break;
+ case "user":
+ if(!empty($param_value)) {
+ $user = $param_value;
+ }
+ break;
+ case "pass":
+ if(!empty($param_value)) {
+ $pass = $param_value;
+ }
+ break;
+ case "accept":
+ if(!empty($param_value)) {
+ $accept = $param_value;
+ }
+ break;
+ case "header":
+ if(!empty($param_value)) {
+ if(!preg_match('![\w\d-]+: .+!',$param_value)) {
+ $smarty->_trigger_fatal_error("[plugin] invalid header format '".$param_value."'");
+ return;
+ } else {
+ $extra_headers[] = $param_value;
+ }
+ }
+ break;
+ case "proxy_host":
+ if(!empty($param_value)) {
+ $proxy_host = $param_value;
+ }
+ break;
+ case "proxy_port":
+ if(!preg_match('!\D!', $param_value)) {
+ $proxy_port = (int) $param_value;
+ } else {
+ $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'");
+ return;
+ }
+ break;
+ case "agent":
+ if(!empty($param_value)) {
+ $agent = $param_value;
+ }
+ break;
+ case "referer":
+ if(!empty($param_value)) {
+ $referer = $param_value;
+ }
+ break;
+ case "timeout":
+ if(!preg_match('!\D!', $param_value)) {
+ $timeout = (int) $param_value;
+ } else {
+ $smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'");
+ return;
+ }
+ break;
+ default:
+ $smarty->_trigger_fatal_error("[plugin] unrecognized attribute '".$param_key."'");
+ return;
+ }
+ }
+ if(!empty($proxy_host) && !empty($proxy_port)) {
+ $_is_proxy = true;
+ $fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout);
+ } else {
+ $fp = fsockopen($server_name,$port,$errno,$errstr,$timeout);
+ }
+
+ if(!$fp) {
+ $smarty->_trigger_fatal_error("[plugin] unable to fetch: $errstr ($errno)");
+ return;
+ } else {
+ if($_is_proxy) {
+ fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n");
+ } else {
+ fputs($fp, "GET $uri HTTP/1.0\r\n");
+ }
+ if(!empty($host)) {
+ fputs($fp, "Host: $host\r\n");
+ }
+ if(!empty($accept)) {
+ fputs($fp, "Accept: $accept\r\n");
+ }
+ if(!empty($agent)) {
+ fputs($fp, "User-Agent: $agent\r\n");
+ }
+ if(!empty($referer)) {
+ fputs($fp, "Referer: $referer\r\n");
+ }
+ if(isset($extra_headers) && is_array($extra_headers)) {
+ foreach($extra_headers as $curr_header) {
+ fputs($fp, $curr_header."\r\n");
+ }
+ }
+ if(!empty($user) && !empty($pass)) {
+ fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n");
+ }
+
+ $content = '';
+ fputs($fp, "\r\n");
+ while(!feof($fp)) {
+ $content .= fgets($fp,4096);
+ }
+ fclose($fp);
+ $csplit = split("\r\n\r\n",$content,2);
+
+ $content = $csplit[1];
+
+ if(!empty($params['assign_headers'])) {
+ $smarty->assign($params['assign_headers'],split("\r\n",$csplit[0]));
+ }
+ }
+ } else {
+ $smarty->_trigger_fatal_error("[plugin] unable to parse URL, check syntax");
+ return;
+ }
+ } else {
+ // ftp fetch
+ if($fp = @fopen($params['file'],'r')) {
+ while(!feof($fp)) {
+ $content .= fgets ($fp,4096);
+ }
+ fclose($fp);
+ } else {
+ $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] .'\'');
+ return;
+ }
+ }
+
+ }
+
+
+ if (!empty($params['assign'])) {
+ $smarty->assign($params['assign'],$content);
+ } else {
+ return $content;
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php
index 6b32c59466..c146fc19f0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php
@@ -1,135 +1,135 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {html_checkboxes} function plugin
- *
- * File: function.html_checkboxes.php<br>
- * Type: function<br>
- * Name: html_checkboxes<br>
- * Date: 24.Feb.2003<br>
- * Purpose: Prints out a list of checkbox input types<br>
- * Input:<br>
- * - name (optional) - string default "checkbox"
- * - values (required) - array
- * - options (optional) - associative array
- * - checked (optional) - array default not set
- * - separator (optional) - ie <br> or &nbsp;
- * - output (optional) - without this one the buttons don't have names
- * Examples:
- * <pre>
- * {html_checkboxes values=$ids output=$names}
- * {html_checkboxes values=$ids name='box' separator='<br>' output=$names}
- * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names}
- * </pre>
- * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
- * (Smarty online manual)
- * @author Christopher Kvarme <christopher.kvarme@flashjab.com>
- * @author credits to Monte Ohrt <monte@ispi.net>
- * @version 1.0
- * @param array
- * @param Smarty
- * @return string
- * @uses smarty_function_escape_special_chars()
- */
-function smarty_function_html_checkboxes($params, &$smarty)
-{
- require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
-
- $name = 'checkbox';
- $values = null;
- $options = null;
- $selected = null;
- $separator = '';
- $labels = true;
- $output = null;
-
- $extra = '';
-
- foreach($params as $_key => $_val) {
- switch($_key) {
- case 'name':
- case 'separator':
- $$_key = $_val;
- break;
-
- case 'labels':
- $$_key = (bool)$_val;
- break;
-
- case 'options':
- $$_key = (array)$_val;
- break;
-
- case 'values':
- case 'output':
- $$_key = array_values((array)$_val);
- break;
-
- case 'checked':
- case 'selected':
- $selected = array_values((array)$_val);
- break;
-
- case 'checkboxes':
- $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING);
- $options = (array)$_val;
- break;
-
- default:
- if(!is_array($_val)) {
- $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
- } else {
- $smarty->trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
- break;
- }
- }
-
- if (!isset($options) && !isset($values))
- return ''; /* raise error here? */
-
- settype($selected, 'array');
- $_html_result = '';
-
- if (is_array($options)) {
-
- foreach ($options as $_key=>$_val)
- $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
-
-
- } else {
- foreach ($values as $_i=>$_key) {
- $_val = isset($output[$_i]) ? $output[$_i] : '';
- $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
- }
-
- }
-
- return $_html_result;
-
-}
-
-function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels) {
- $_output = '';
- if ($labels) $_output .= '<label>';
- $_output .= '<input type="checkbox" name="'
- . smarty_function_escape_special_chars($name) . '[]" value="'
- . smarty_function_escape_special_chars($value) . '"';
-
- if (in_array($value, $selected)) {
- $_output .= ' checked="checked"';
- }
- $_output .= $extra . ' />' . $output;
- if ($labels) $_output .= '</label>';
- $_output .= $separator . "\n";
-
- return $_output;
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {html_checkboxes} function plugin
+ *
+ * File: function.html_checkboxes.php<br>
+ * Type: function<br>
+ * Name: html_checkboxes<br>
+ * Date: 24.Feb.2003<br>
+ * Purpose: Prints out a list of checkbox input types<br>
+ * Input:<br>
+ * - name (optional) - string default "checkbox"
+ * - values (required) - array
+ * - options (optional) - associative array
+ * - checked (optional) - array default not set
+ * - separator (optional) - ie <br> or &nbsp;
+ * - output (optional) - without this one the buttons don't have names
+ * Examples:
+ * <pre>
+ * {html_checkboxes values=$ids output=$names}
+ * {html_checkboxes values=$ids name='box' separator='<br>' output=$names}
+ * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names}
+ * </pre>
+ * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
+ * (Smarty online manual)
+ * @author Christopher Kvarme <christopher.kvarme@flashjab.com>
+ * @author credits to Monte Ohrt <monte@ispi.net>
+ * @version 1.0
+ * @param array
+ * @param Smarty
+ * @return string
+ * @uses smarty_function_escape_special_chars()
+ */
+function smarty_function_html_checkboxes($params, &$smarty)
+{
+ require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
+
+ $name = 'checkbox';
+ $values = null;
+ $options = null;
+ $selected = null;
+ $separator = '';
+ $labels = true;
+ $output = null;
+
+ $extra = '';
+
+ foreach($params as $_key => $_val) {
+ switch($_key) {
+ case 'name':
+ case 'separator':
+ $$_key = $_val;
+ break;
+
+ case 'labels':
+ $$_key = (bool)$_val;
+ break;
+
+ case 'options':
+ $$_key = (array)$_val;
+ break;
+
+ case 'values':
+ case 'output':
+ $$_key = array_values((array)$_val);
+ break;
+
+ case 'checked':
+ case 'selected':
+ $selected = array_values((array)$_val);
+ break;
+
+ case 'checkboxes':
+ $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING);
+ $options = (array)$_val;
+ break;
+
+ default:
+ if(!is_array($_val)) {
+ $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
+ } else {
+ $smarty->trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
+ }
+ break;
+ }
+ }
+
+ if (!isset($options) && !isset($values))
+ return ''; /* raise error here? */
+
+ settype($selected, 'array');
+ $_html_result = '';
+
+ if (is_array($options)) {
+
+ foreach ($options as $_key=>$_val)
+ $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
+
+
+ } else {
+ foreach ($values as $_i=>$_key) {
+ $_val = isset($output[$_i]) ? $output[$_i] : '';
+ $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
+ }
+
+ }
+
+ return $_html_result;
+
+}
+
+function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels) {
+ $_output = '';
+ if ($labels) $_output .= '<label>';
+ $_output .= '<input type="checkbox" name="'
+ . smarty_function_escape_special_chars($name) . '[]" value="'
+ . smarty_function_escape_special_chars($value) . '"';
+
+ if (in_array($value, $selected)) {
+ $_output .= ' checked="checked"';
+ }
+ $_output .= $extra . ' />' . $output;
+ if ($labels) $_output .= '</label>';
+ $_output .= $separator . "\n";
+
+ return $_output;
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php
index 5ddbe4a197..2fcdb4e19e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php
@@ -1,143 +1,143 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {html_image} function plugin
- *
- * Type: function<br>
- * Name: html_image<br>
- * Date: Feb 24, 2003<br>
- * Purpose: format HTML tags for the image<br>
- * Input:<br>
- * - file = file (and path) of image (required)
- * - border = border width (optional, default 0)
- * - height = image height (optional, default actual height)
- * - image =image width (optional, default actual width)
- * - basedir = base directory for absolute paths, default
- * is environment variable DOCUMENT_ROOT
- *
- * Examples: {html_image file="images/masthead.gif"}
- * Output: <img src="images/masthead.gif" border=0 width=400 height=23>
- * @link http://smarty.php.net/manual/en/language.function.html.image.php {html_image}
- * (Smarty online manual)
- * @author Monte Ohrt <monte@ispi.net>
- * @author credits to Duda <duda@big.hu> - wrote first image function
- * in repository, helped with lots of functionality
- * @version 1.0
- * @param array
- * @param Smarty
- * @return string
- * @uses smarty_function_escape_special_chars()
- */
-function smarty_function_html_image($params, &$smarty)
-{
- require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
-
- $alt = '';
- $file = '';
- $border = 0;
- $height = '';
- $width = '';
- $extra = '';
- $prefix = '';
- $suffix = '';
- $basedir = isset($GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'])
- ? $GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'] : '';
- if(strstr($GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'], 'Mac')) {
- $dpi_default = 72;
- } else {
- $dpi_default = 96;
- }
-
- foreach($params as $_key => $_val) {
- switch($_key) {
- case 'file':
- case 'border':
- case 'height':
- case 'width':
- case 'dpi':
- case 'basedir':
- $$_key = $_val;
- break;
-
- case 'alt':
- if(!is_array($_val)) {
- $$_key = smarty_function_escape_special_chars($_val);
- } else {
- $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
- break;
-
- case 'link':
- case 'href':
- $prefix = '<a href="' . $_val . '">';
- $suffix = '</a>';
- break;
-
- default:
- if(!is_array($_val)) {
- $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
- } else {
- $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
- break;
- }
- }
-
- if (empty($file)) {
- $smarty->trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE);
- return;
- }
-
- if (substr($file,0,1) == '/') {
- $_image_path = $basedir . $file;
- } else {
- $_image_path = $file;
- }
-
- if(!isset($params['width']) || !isset($params['height'])) {
- if(!$_image_data = @getimagesize($_image_path)) {
- if(!file_exists($_image_path)) {
- $smarty->trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE);
- return;
- } else if(!is_readable($_image_path)) {
- $smarty->trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE);
- return;
- } else {
- $smarty->trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE);
- return;
- }
- }
- $_params = array('resource_type' => 'file', 'resource_name' => $_image_path);
- require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
- if(!$smarty->security && !smarty_core_is_secure($_params, $smarty)) {
- $smarty->trigger_error("html_image: (secure) '$_image_path' not in secure directory", E_USER_NOTICE);
- return;
- }
-
- if(!isset($params['width'])) {
- $width = $_image_data[0];
- }
- if(!isset($params['height'])) {
- $height = $_image_data[1];
- }
-
- }
-
- if(isset($params['dpi'])) {
- $_resize = $dpi_default/$params['dpi'];
- $width = round($width * $_resize);
- $height = round($height * $_resize);
- }
-
- return $prefix . '<img src="'.$file.'" alt="'.$alt.'" border="'.$border.'" width="'.$width.'" height="'.$height.'"'.$extra.' />' . $suffix;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {html_image} function plugin
+ *
+ * Type: function<br>
+ * Name: html_image<br>
+ * Date: Feb 24, 2003<br>
+ * Purpose: format HTML tags for the image<br>
+ * Input:<br>
+ * - file = file (and path) of image (required)
+ * - border = border width (optional, default 0)
+ * - height = image height (optional, default actual height)
+ * - image =image width (optional, default actual width)
+ * - basedir = base directory for absolute paths, default
+ * is environment variable DOCUMENT_ROOT
+ *
+ * Examples: {html_image file="images/masthead.gif"}
+ * Output: <img src="images/masthead.gif" border=0 width=400 height=23>
+ * @link http://smarty.php.net/manual/en/language.function.html.image.php {html_image}
+ * (Smarty online manual)
+ * @author Monte Ohrt <monte@ispi.net>
+ * @author credits to Duda <duda@big.hu> - wrote first image function
+ * in repository, helped with lots of functionality
+ * @version 1.0
+ * @param array
+ * @param Smarty
+ * @return string
+ * @uses smarty_function_escape_special_chars()
+ */
+function smarty_function_html_image($params, &$smarty)
+{
+ require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
+
+ $alt = '';
+ $file = '';
+ $border = 0;
+ $height = '';
+ $width = '';
+ $extra = '';
+ $prefix = '';
+ $suffix = '';
+ $basedir = isset($GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'])
+ ? $GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'] : '';
+ if(strstr($GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'], 'Mac')) {
+ $dpi_default = 72;
+ } else {
+ $dpi_default = 96;
+ }
+
+ foreach($params as $_key => $_val) {
+ switch($_key) {
+ case 'file':
+ case 'border':
+ case 'height':
+ case 'width':
+ case 'dpi':
+ case 'basedir':
+ $$_key = $_val;
+ break;
+
+ case 'alt':
+ if(!is_array($_val)) {
+ $$_key = smarty_function_escape_special_chars($_val);
+ } else {
+ $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
+ }
+ break;
+
+ case 'link':
+ case 'href':
+ $prefix = '<a href="' . $_val . '">';
+ $suffix = '</a>';
+ break;
+
+ default:
+ if(!is_array($_val)) {
+ $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
+ } else {
+ $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
+ }
+ break;
+ }
+ }
+
+ if (empty($file)) {
+ $smarty->trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE);
+ return;
+ }
+
+ if (substr($file,0,1) == '/') {
+ $_image_path = $basedir . $file;
+ } else {
+ $_image_path = $file;
+ }
+
+ if(!isset($params['width']) || !isset($params['height'])) {
+ if(!$_image_data = @getimagesize($_image_path)) {
+ if(!file_exists($_image_path)) {
+ $smarty->trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE);
+ return;
+ } else if(!is_readable($_image_path)) {
+ $smarty->trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE);
+ return;
+ } else {
+ $smarty->trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE);
+ return;
+ }
+ }
+ $_params = array('resource_type' => 'file', 'resource_name' => $_image_path);
+ require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
+ if(!$smarty->security && !smarty_core_is_secure($_params, $smarty)) {
+ $smarty->trigger_error("html_image: (secure) '$_image_path' not in secure directory", E_USER_NOTICE);
+ return;
+ }
+
+ if(!isset($params['width'])) {
+ $width = $_image_data[0];
+ }
+ if(!isset($params['height'])) {
+ $height = $_image_data[1];
+ }
+
+ }
+
+ if(isset($params['dpi'])) {
+ $_resize = $dpi_default/$params['dpi'];
+ $width = round($width * $_resize);
+ $height = round($height * $_resize);
+ }
+
+ return $prefix . '<img src="'.$file.'" alt="'.$alt.'" border="'.$border.'" width="'.$width.'" height="'.$height.'"'.$extra.' />' . $suffix;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php
index dfc38c834c..1b10653c21 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php
@@ -1,118 +1,118 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {html_options} function plugin
- *
- * Type: function<br>
- * Name: html_options<br>
- * Input:<br>
- * - name (optional) - string default "select"
- * - values (required if no options supplied) - array
- * - options (required if no values supplied) - associative array
- * - selected (optional) - string default not set
- * - output (required if not options supplied) - array
- * Purpose: Prints the list of <option> tags generated from
- * the passed parameters
- * @link http://smarty.php.net/manual/en/language.function.html.options.php {html_image}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- * @return string
- * @uses smarty_function_escape_special_chars()
- */
-function smarty_function_html_options($params, &$smarty)
-{
- require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
-
- $name = null;
- $values = null;
- $options = null;
- $selected = array();
- $output = null;
-
- $extra = '';
-
- foreach($params as $_key => $_val) {
- switch($_key) {
- case 'name':
- $$_key = (string)$_val;
- break;
-
- case 'options':
- $$_key = (array)$_val;
- break;
-
- case 'selected':
- case 'values':
- case 'output':
- $$_key = array_values((array)$_val);
- break;
-
- default:
- if(!is_array($_val)) {
- $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
- } else {
- $smarty->trigger_error("html_options: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
- break;
- }
- }
-
- if (!isset($options) && !isset($values))
- return ''; /* raise error here? */
-
- $_html_result = '';
-
- if (is_array($options)) {
-
- foreach ($options as $_key=>$_val)
- $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);
-
- } else {
-
- foreach ((array)$values as $_i=>$_key) {
- $_val = isset($output[$_i]) ? $output[$_i] : '';
- $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);
- }
-
- }
-
- if(!empty($name)) {
- $_html_result = '<select name="' . $name . '"' . $extra . '>' . "\n" . $_html_result . '</select>' . "\n";
- }
-
- return $_html_result;
-
-}
-
-function smarty_function_html_options_optoutput($key, $value, $selected) {
- if(!is_array($value)) {
- $_html_result = '<option label="' . smarty_function_escape_special_chars($value) . '" value="' .
- smarty_function_escape_special_chars($key) . '"';
- if (in_array($key, $selected))
- $_html_result .= ' selected="selected"';
- $_html_result .= '>' . smarty_function_escape_special_chars($value) . '</option>' . "\n";
- } else {
- $_html_result = smarty_function_html_options_optgroup($key, $value, $selected);
- }
- return $_html_result;
-}
-
-function smarty_function_html_options_optgroup($key, $values, $selected) {
- $optgroup_html = '<optgroup label="' . smarty_function_escape_special_chars($key) . '">' . "\n";
- foreach ($values as $key => $value) {
- $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected);
- }
- $optgroup_html .= "</optgroup>\n";
- return $optgroup_html;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {html_options} function plugin
+ *
+ * Type: function<br>
+ * Name: html_options<br>
+ * Input:<br>
+ * - name (optional) - string default "select"
+ * - values (required if no options supplied) - array
+ * - options (required if no values supplied) - associative array
+ * - selected (optional) - string default not set
+ * - output (required if not options supplied) - array
+ * Purpose: Prints the list of <option> tags generated from
+ * the passed parameters
+ * @link http://smarty.php.net/manual/en/language.function.html.options.php {html_image}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ * @return string
+ * @uses smarty_function_escape_special_chars()
+ */
+function smarty_function_html_options($params, &$smarty)
+{
+ require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
+
+ $name = null;
+ $values = null;
+ $options = null;
+ $selected = array();
+ $output = null;
+
+ $extra = '';
+
+ foreach($params as $_key => $_val) {
+ switch($_key) {
+ case 'name':
+ $$_key = (string)$_val;
+ break;
+
+ case 'options':
+ $$_key = (array)$_val;
+ break;
+
+ case 'selected':
+ case 'values':
+ case 'output':
+ $$_key = array_values((array)$_val);
+ break;
+
+ default:
+ if(!is_array($_val)) {
+ $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
+ } else {
+ $smarty->trigger_error("html_options: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
+ }
+ break;
+ }
+ }
+
+ if (!isset($options) && !isset($values))
+ return ''; /* raise error here? */
+
+ $_html_result = '';
+
+ if (is_array($options)) {
+
+ foreach ($options as $_key=>$_val)
+ $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);
+
+ } else {
+
+ foreach ((array)$values as $_i=>$_key) {
+ $_val = isset($output[$_i]) ? $output[$_i] : '';
+ $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);
+ }
+
+ }
+
+ if(!empty($name)) {
+ $_html_result = '<select name="' . $name . '"' . $extra . '>' . "\n" . $_html_result . '</select>' . "\n";
+ }
+
+ return $_html_result;
+
+}
+
+function smarty_function_html_options_optoutput($key, $value, $selected) {
+ if(!is_array($value)) {
+ $_html_result = '<option label="' . smarty_function_escape_special_chars($value) . '" value="' .
+ smarty_function_escape_special_chars($key) . '"';
+ if (in_array($key, $selected))
+ $_html_result .= ' selected="selected"';
+ $_html_result .= '>' . smarty_function_escape_special_chars($value) . '</option>' . "\n";
+ } else {
+ $_html_result = smarty_function_html_options_optgroup($key, $value, $selected);
+ }
+ return $_html_result;
+}
+
+function smarty_function_html_options_optgroup($key, $values, $selected) {
+ $optgroup_html = '<optgroup label="' . smarty_function_escape_special_chars($key) . '">' . "\n";
+ foreach ($values as $key => $value) {
+ $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected);
+ }
+ $optgroup_html .= "</optgroup>\n";
+ return $optgroup_html;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php
index f505239194..b80e9bc2c8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php
@@ -1,138 +1,138 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {html_radios} function plugin
- *
- * File: function.html_radios.php<br>
- * Type: function<br>
- * Name: html_radios<br>
- * Date: 24.Feb.2003<br>
- * Purpose: Prints out a list of radio input types<br>
- * Input:<br>
- * - name (optional) - string default "radio"
- * - values (required) - array
- * - options (optional) - associative array
- * - checked (optional) - array default not set
- * - separator (optional) - ie <br> or &nbsp;
- * - output (optional) - without this one the buttons don't have names
- * Examples:
- * <pre>
- * {html_radios values=$ids output=$names}
- * {html_radios values=$ids name='box' separator='<br>' output=$names}
- * {html_radios values=$ids checked=$checked separator='<br>' output=$names}
- * </pre>
- * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
- * (Smarty online manual)
- * @author Christopher Kvarme <christopher.kvarme@flashjab.com>
- * @author credits to Monte Ohrt <monte@ispi.net>
- * @version 1.0
- * @param array
- * @param Smarty
- * @return string
- * @uses smarty_function_escape_special_chars()
- */
-function smarty_function_html_radios($params, &$smarty)
-{
- require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
-
- $name = 'radio';
- $values = null;
- $options = null;
- $selected = null;
- $separator = '';
- $labels = true;
- $output = null;
- $extra = '';
-
- foreach($params as $_key => $_val) {
- switch($_key) {
- case 'name':
- case 'separator':
- $$_key = (string)$_val;
- break;
-
- case 'checked':
- case 'selected':
- if(is_array($_val)) {
- $smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING);
- } else {
- $selected = (string)$_val;
- }
- break;
-
- case 'labels':
- $$_key = (bool)$_val;
- break;
-
- case 'options':
- $$_key = (array)$_val;
- break;
-
- case 'values':
- case 'output':
- $$_key = array_values((array)$_val);
- break;
-
- case 'radios':
- $smarty->trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING);
- $options = (array)$_val;
- break;
-
-
- default:
- if(!is_array($_val)) {
- $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
- } else {
- $smarty->trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
- }
- break;
- }
- }
-
- if (!isset($options) && !isset($values))
- return ''; /* raise error here? */
-
- $_html_result = '';
-
- if (isset($options) && is_array($options)) {
-
- foreach ((array)$options as $_key=>$_val)
- $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
-
- } else {
-
- foreach ((array)$values as $_i=>$_key) {
- $_val = isset($output[$_i]) ? $output[$_i] : '';
- $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
- }
-
- }
-
- return $_html_result;
-
-}
-
-function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels) {
- $_output = '';
- if ($labels) $_output .= '<label>';
- $_output .= '<input type="radio" name="'
- . smarty_function_escape_special_chars($name) . '" value="'
- . smarty_function_escape_special_chars($value) . '"';
-
- if ($value==$selected) {
- $_output .= ' checked="checked"';
- }
- $_output .= $extra . ' />' . $output;
- if ($labels) $_output .= '</label>';
- $_output .= $separator . "\n";
-
- return $_output;
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {html_radios} function plugin
+ *
+ * File: function.html_radios.php<br>
+ * Type: function<br>
+ * Name: html_radios<br>
+ * Date: 24.Feb.2003<br>
+ * Purpose: Prints out a list of radio input types<br>
+ * Input:<br>
+ * - name (optional) - string default "radio"
+ * - values (required) - array
+ * - options (optional) - associative array
+ * - checked (optional) - array default not set
+ * - separator (optional) - ie <br> or &nbsp;
+ * - output (optional) - without this one the buttons don't have names
+ * Examples:
+ * <pre>
+ * {html_radios values=$ids output=$names}
+ * {html_radios values=$ids name='box' separator='<br>' output=$names}
+ * {html_radios values=$ids checked=$checked separator='<br>' output=$names}
+ * </pre>
+ * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
+ * (Smarty online manual)
+ * @author Christopher Kvarme <christopher.kvarme@flashjab.com>
+ * @author credits to Monte Ohrt <monte@ispi.net>
+ * @version 1.0
+ * @param array
+ * @param Smarty
+ * @return string
+ * @uses smarty_function_escape_special_chars()
+ */
+function smarty_function_html_radios($params, &$smarty)
+{
+ require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
+
+ $name = 'radio';
+ $values = null;
+ $options = null;
+ $selected = null;
+ $separator = '';
+ $labels = true;
+ $output = null;
+ $extra = '';
+
+ foreach($params as $_key => $_val) {
+ switch($_key) {
+ case 'name':
+ case 'separator':
+ $$_key = (string)$_val;
+ break;
+
+ case 'checked':
+ case 'selected':
+ if(is_array($_val)) {
+ $smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING);
+ } else {
+ $selected = (string)$_val;
+ }
+ break;
+
+ case 'labels':
+ $$_key = (bool)$_val;
+ break;
+
+ case 'options':
+ $$_key = (array)$_val;
+ break;
+
+ case 'values':
+ case 'output':
+ $$_key = array_values((array)$_val);
+ break;
+
+ case 'radios':
+ $smarty->trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING);
+ $options = (array)$_val;
+ break;
+
+
+ default:
+ if(!is_array($_val)) {
+ $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
+ } else {
+ $smarty->trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
+ }
+ break;
+ }
+ }
+
+ if (!isset($options) && !isset($values))
+ return ''; /* raise error here? */
+
+ $_html_result = '';
+
+ if (isset($options) && is_array($options)) {
+
+ foreach ((array)$options as $_key=>$_val)
+ $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
+
+ } else {
+
+ foreach ((array)$values as $_i=>$_key) {
+ $_val = isset($output[$_i]) ? $output[$_i] : '';
+ $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
+ }
+
+ }
+
+ return $_html_result;
+
+}
+
+function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels) {
+ $_output = '';
+ if ($labels) $_output .= '<label>';
+ $_output .= '<input type="radio" name="'
+ . smarty_function_escape_special_chars($name) . '" value="'
+ . smarty_function_escape_special_chars($value) . '"';
+
+ if ($value==$selected) {
+ $_output .= ' checked="checked"';
+ }
+ $_output .= $extra . ' />' . $output;
+ if ($labels) $_output .= '</label>';
+ $_output .= $separator . "\n";
+
+ return $_output;
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php
index a607f5558b..dd90e921e3 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php
@@ -1,243 +1,243 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty {html_select_date} plugin
- *
- * Type: function<br>
- * Name: html_select_date<br>
- * Purpose: Prints the dropdowns for date selection.
- *
- * ChangeLog:<br>
- * - 1.0 initial release
- * - 1.1 added support for +/- N syntax for begin
- * and end year values. (Monte)
- * - 1.2 added support for yyyy-mm-dd syntax for
- * time value. (Jan Rosier)
- * - 1.3 added support for choosing format for
- * month values (Gary Loescher)
- * - 1.3.1 added support for choosing format for
- * day values (Marcus Bointon)
- * @link http://smarty.php.net/manual/en/language.function.html.select.date.php {html_select_date}
- * (Smarty online manual)
- * @version 1.3
- * @author Andrei Zmievski
- * @param array
- * @param Smarty
- * @return string
- */
-function smarty_function_html_select_date($params, &$smarty)
-{
- require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
- require_once $smarty->_get_plugin_filepath('function','html_options');
- /* Default values. */
- $prefix = "Date_";
- $start_year = strftime("%Y");
- $end_year = $start_year;
- $display_days = true;
- $display_months = true;
- $display_years = true;
- $month_format = "%B";
- /* Write months as numbers by default GL */
- $month_value_format = "%m";
- $day_format = "%02d";
- /* Write day values using this format MB */
- $day_value_format = "%d";
- $year_as_text = false;
- /* Display years in reverse order? Ie. 2000,1999,.... */
- $reverse_years = false;
- /* Should the select boxes be part of an array when returned from PHP?
- e.g. setting it to "birthday", would create "birthday[Day]",
- "birthday[Month]" & "birthday[Year]". Can be combined with prefix */
- $field_array = null;
- /* <select size>'s of the different <select> tags.
- If not set, uses default dropdown. */
- $day_size = null;
- $month_size = null;
- $year_size = null;
- /* Unparsed attributes common to *ALL* the <select>/<input> tags.
- An example might be in the template: all_extra ='class ="foo"'. */
- $all_extra = null;
- /* Separate attributes for the tags. */
- $day_extra = null;
- $month_extra = null;
- $year_extra = null;
- /* Order in which to display the fields.
- "D" -> day, "M" -> month, "Y" -> year. */
- $field_order = 'MDY';
- /* String printed between the different fields. */
- $field_separator = "\n";
- $time = time();
-
-
- extract($params);
-
- // If $time is not in format yyyy-mm-dd
- if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $time)) {
- // then $time is empty or unix timestamp or mysql timestamp
- // using smarty_make_timestamp to get an unix timestamp and
- // strftime to make yyyy-mm-dd
- $time = strftime('%Y-%m-%d', smarty_make_timestamp($time));
- }
- // Now split this in pieces, which later can be used to set the select
- $time = explode("-", $time);
-
- // make syntax "+N" or "-N" work with start_year and end_year
- if (preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match)) {
- if ($match[1] == '+') {
- $end_year = strftime('%Y') + $match[2];
- } else {
- $end_year = strftime('%Y') - $match[2];
- }
- }
- if (preg_match('!^(\+|\-)\s*(\d+)$!', $start_year, $match)) {
- if ($match[1] == '+') {
- $start_year = strftime('%Y') + $match[2];
- } else {
- $start_year = strftime('%Y') - $match[2];
- }
- }
-
- $field_order = strtoupper($field_order);
-
- $html_result = $month_result = $day_result = $year_result = "";
-
- if ($display_months) {
- $month_names = array();
- $month_values = array();
-
- for ($i = 1; $i <= 12; $i++) {
- $month_names[] = strftime($month_format, mktime(0, 0, 0, $i, 1, 2000));
- $month_values[] = strftime($month_value_format, mktime(0, 0, 0, $i, 1, 2000));
- }
-
- $month_result .= '<select name=';
- if (null !== $field_array){
- $month_result .= '"' . $field_array . '[' . $prefix . 'Month]"';
- } else {
- $month_result .= '"' . $prefix . 'Month"';
- }
- if (null !== $month_size){
- $month_result .= ' size="' . $month_size . '"';
- }
- if (null !== $month_extra){
- $month_result .= ' ' . $month_extra;
- }
- if (null !== $all_extra){
- $month_result .= ' ' . $all_extra;
- }
- $month_result .= '>'."\n";
-
- $month_result .= smarty_function_html_options(array('output' => $month_names,
- 'values' => $month_values,
- 'selected' => $month_values[$time[1]-1],
- 'print_result' => false),
- $smarty);
-
- $month_result .= '</select>';
- }
-
- if ($display_days) {
- $days = array();
- for ($i = 1; $i <= 31; $i++) {
- $days[] = sprintf($day_format, $i);
- $day_values[] = sprintf($day_value_format, $i);
- }
-
- $day_result .= '<select name=';
- if (null !== $field_array){
- $day_result .= '"' . $field_array . '[' . $prefix . 'Day]"';
- } else {
- $day_result .= '"' . $prefix . 'Day"';
- }
- if (null !== $day_size){
- $day_result .= ' size="' . $day_size . '"';
- }
- if (null !== $all_extra){
- $day_result .= ' ' . $all_extra;
- }
- if (null !== $day_extra){
- $day_result .= ' ' . $day_extra;
- }
- $day_result .= '>'."\n";
- $day_result .= smarty_function_html_options(array('output' => $days,
- 'values' => $day_values,
- 'selected' => $time[2],
- 'print_result' => false),
- $smarty);
- $day_result .= '</select>';
- }
-
- if ($display_years) {
- if (null !== $field_array){
- $year_name = $field_array . '[' . $prefix . 'Year]';
- } else {
- $year_name = $prefix . 'Year';
- }
- if ($year_as_text) {
- $year_result .= '<input type="text" name="' . $year_name . '" value="' . $time[0] . '" size="4" maxlength="4"';
- if (null !== $all_extra){
- $year_result .= ' ' . $all_extra;
- }
- if (null !== $year_extra){
- $year_result .= ' ' . $year_extra;
- }
- $year_result .= '>';
- } else {
- $years = range((int)$start_year, (int)$end_year);
- if ($reverse_years) {
- rsort($years, SORT_NUMERIC);
- }
-
- $year_result .= '<select name="' . $year_name . '"';
- if (null !== $year_size){
- $year_result .= ' size="' . $year_size . '"';
- }
- if (null !== $all_extra){
- $year_result .= ' ' . $all_extra;
- }
- if (null !== $year_extra){
- $year_result .= ' ' . $year_extra;
- }
- $year_result .= '>'."\n";
- $year_result .= smarty_function_html_options(array('output' => $years,
- 'values' => $years,
- 'selected' => $time[0],
- 'print_result' => false),
- $smarty);
- $year_result .= '</select>';
- }
- }
-
- // Loop thru the field_order field
- for ($i = 0; $i <= 2; $i++){
- $c = substr($field_order, $i, 1);
- switch ($c){
- case 'D':
- $html_result .= $day_result;
- break;
-
- case 'M':
- $html_result .= $month_result;
- break;
-
- case 'Y':
- $html_result .= $year_result;
- break;
- }
- // Add the field seperator
- if($i != 2) {
- $html_result .= $field_separator;
- }
- }
-
- return $html_result;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty {html_select_date} plugin
+ *
+ * Type: function<br>
+ * Name: html_select_date<br>
+ * Purpose: Prints the dropdowns for date selection.
+ *
+ * ChangeLog:<br>
+ * - 1.0 initial release
+ * - 1.1 added support for +/- N syntax for begin
+ * and end year values. (Monte)
+ * - 1.2 added support for yyyy-mm-dd syntax for
+ * time value. (Jan Rosier)
+ * - 1.3 added support for choosing format for
+ * month values (Gary Loescher)
+ * - 1.3.1 added support for choosing format for
+ * day values (Marcus Bointon)
+ * @link http://smarty.php.net/manual/en/language.function.html.select.date.php {html_select_date}
+ * (Smarty online manual)
+ * @version 1.3
+ * @author Andrei Zmievski
+ * @param array
+ * @param Smarty
+ * @return string
+ */
+function smarty_function_html_select_date($params, &$smarty)
+{
+ require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
+ require_once $smarty->_get_plugin_filepath('function','html_options');
+ /* Default values. */
+ $prefix = "Date_";
+ $start_year = strftime("%Y");
+ $end_year = $start_year;
+ $display_days = true;
+ $display_months = true;
+ $display_years = true;
+ $month_format = "%B";
+ /* Write months as numbers by default GL */
+ $month_value_format = "%m";
+ $day_format = "%02d";
+ /* Write day values using this format MB */
+ $day_value_format = "%d";
+ $year_as_text = false;
+ /* Display years in reverse order? Ie. 2000,1999,.... */
+ $reverse_years = false;
+ /* Should the select boxes be part of an array when returned from PHP?
+ e.g. setting it to "birthday", would create "birthday[Day]",
+ "birthday[Month]" & "birthday[Year]". Can be combined with prefix */
+ $field_array = null;
+ /* <select size>'s of the different <select> tags.
+ If not set, uses default dropdown. */
+ $day_size = null;
+ $month_size = null;
+ $year_size = null;
+ /* Unparsed attributes common to *ALL* the <select>/<input> tags.
+ An example might be in the template: all_extra ='class ="foo"'. */
+ $all_extra = null;
+ /* Separate attributes for the tags. */
+ $day_extra = null;
+ $month_extra = null;
+ $year_extra = null;
+ /* Order in which to display the fields.
+ "D" -> day, "M" -> month, "Y" -> year. */
+ $field_order = 'MDY';
+ /* String printed between the different fields. */
+ $field_separator = "\n";
+ $time = time();
+
+
+ extract($params);
+
+ // If $time is not in format yyyy-mm-dd
+ if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $time)) {
+ // then $time is empty or unix timestamp or mysql timestamp
+ // using smarty_make_timestamp to get an unix timestamp and
+ // strftime to make yyyy-mm-dd
+ $time = strftime('%Y-%m-%d', smarty_make_timestamp($time));
+ }
+ // Now split this in pieces, which later can be used to set the select
+ $time = explode("-", $time);
+
+ // make syntax "+N" or "-N" work with start_year and end_year
+ if (preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match)) {
+ if ($match[1] == '+') {
+ $end_year = strftime('%Y') + $match[2];
+ } else {
+ $end_year = strftime('%Y') - $match[2];
+ }
+ }
+ if (preg_match('!^(\+|\-)\s*(\d+)$!', $start_year, $match)) {
+ if ($match[1] == '+') {
+ $start_year = strftime('%Y') + $match[2];
+ } else {
+ $start_year = strftime('%Y') - $match[2];
+ }
+ }
+
+ $field_order = strtoupper($field_order);
+
+ $html_result = $month_result = $day_result = $year_result = "";
+
+ if ($display_months) {
+ $month_names = array();
+ $month_values = array();
+
+ for ($i = 1; $i <= 12; $i++) {
+ $month_names[] = strftime($month_format, mktime(0, 0, 0, $i, 1, 2000));
+ $month_values[] = strftime($month_value_format, mktime(0, 0, 0, $i, 1, 2000));
+ }
+
+ $month_result .= '<select name=';
+ if (null !== $field_array){
+ $month_result .= '"' . $field_array . '[' . $prefix . 'Month]"';
+ } else {
+ $month_result .= '"' . $prefix . 'Month"';
+ }
+ if (null !== $month_size){
+ $month_result .= ' size="' . $month_size . '"';
+ }
+ if (null !== $month_extra){
+ $month_result .= ' ' . $month_extra;
+ }
+ if (null !== $all_extra){
+ $month_result .= ' ' . $all_extra;
+ }
+ $month_result .= '>'."\n";
+
+ $month_result .= smarty_function_html_options(array('output' => $month_names,
+ 'values' => $month_values,
+ 'selected' => $month_values[$time[1]-1],
+ 'print_result' => false),
+ $smarty);
+
+ $month_result .= '</select>';
+ }
+
+ if ($display_days) {
+ $days = array();
+ for ($i = 1; $i <= 31; $i++) {
+ $days[] = sprintf($day_format, $i);
+ $day_values[] = sprintf($day_value_format, $i);
+ }
+
+ $day_result .= '<select name=';
+ if (null !== $field_array){
+ $day_result .= '"' . $field_array . '[' . $prefix . 'Day]"';
+ } else {
+ $day_result .= '"' . $prefix . 'Day"';
+ }
+ if (null !== $day_size){
+ $day_result .= ' size="' . $day_size . '"';
+ }
+ if (null !== $all_extra){
+ $day_result .= ' ' . $all_extra;
+ }
+ if (null !== $day_extra){
+ $day_result .= ' ' . $day_extra;
+ }
+ $day_result .= '>'."\n";
+ $day_result .= smarty_function_html_options(array('output' => $days,
+ 'values' => $day_values,
+ 'selected' => $time[2],
+ 'print_result' => false),
+ $smarty);
+ $day_result .= '</select>';
+ }
+
+ if ($display_years) {
+ if (null !== $field_array){
+ $year_name = $field_array . '[' . $prefix . 'Year]';
+ } else {
+ $year_name = $prefix . 'Year';
+ }
+ if ($year_as_text) {
+ $year_result .= '<input type="text" name="' . $year_name . '" value="' . $time[0] . '" size="4" maxlength="4"';
+ if (null !== $all_extra){
+ $year_result .= ' ' . $all_extra;
+ }
+ if (null !== $year_extra){
+ $year_result .= ' ' . $year_extra;
+ }
+ $year_result .= '>';
+ } else {
+ $years = range((int)$start_year, (int)$end_year);
+ if ($reverse_years) {
+ rsort($years, SORT_NUMERIC);
+ }
+
+ $year_result .= '<select name="' . $year_name . '"';
+ if (null !== $year_size){
+ $year_result .= ' size="' . $year_size . '"';
+ }
+ if (null !== $all_extra){
+ $year_result .= ' ' . $all_extra;
+ }
+ if (null !== $year_extra){
+ $year_result .= ' ' . $year_extra;
+ }
+ $year_result .= '>'."\n";
+ $year_result .= smarty_function_html_options(array('output' => $years,
+ 'values' => $years,
+ 'selected' => $time[0],
+ 'print_result' => false),
+ $smarty);
+ $year_result .= '</select>';
+ }
+ }
+
+ // Loop thru the field_order field
+ for ($i = 0; $i <= 2; $i++){
+ $c = substr($field_order, $i, 1);
+ switch ($c){
+ case 'D':
+ $html_result .= $day_result;
+ break;
+
+ case 'M':
+ $html_result .= $month_result;
+ break;
+
+ case 'Y':
+ $html_result .= $year_result;
+ break;
+ }
+ // Add the field seperator
+ if($i != 2) {
+ $html_result .= $field_separator;
+ }
+ }
+
+ return $html_result;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php
index 4643136bc2..969c13e62d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php
@@ -1,163 +1,163 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {html_select_time} function plugin
- *
- * Type: function<br>
- * Name: html_select_time<br>
- * Purpose: Prints the dropdowns for time selection
- * @link http://smarty.php.net/manual/en/language.function.html.select.time.php {html_select_time}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- * @return string
- * @uses smarty_make_timestamp()
- */
-function smarty_function_html_select_time($params, &$smarty)
-{
- require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
- require_once $smarty->_get_plugin_filepath('function','html_options');
- /* Default values. */
- $prefix = "Time_";
- $time = time();
- $display_hours = true;
- $display_minutes = true;
- $display_seconds = true;
- $display_meridian = true;
- $use_24_hours = true;
- $minute_interval = 1;
- $second_interval = 1;
- /* Should the select boxes be part of an array when returned from PHP?
- e.g. setting it to "birthday", would create "birthday[Hour]",
- "birthday[Minute]", "birthday[Seconds]" & "birthday[Meridian]".
- Can be combined with prefix. */
- $field_array = null;
- $all_extra = null;
- $hour_extra = null;
- $minute_extra = null;
- $second_extra = null;
- $meridian_extra = null;
-
- extract($params);
-
- $time = smarty_make_timestamp($time);
-
- $html_result = '';
-
- if ($display_hours) {
- $hours = $use_24_hours ? range(0, 23) : range(1, 12);
- $hour_fmt = $use_24_hours ? '%H' : '%I';
- for ($i = 0, $for_max = count($hours); $i < $for_max; $i++)
- $hours[$i] = sprintf('%02d', $hours[$i]);
- $html_result .= '<select name=';
- if (null !== $field_array) {
- $html_result .= '"' . $field_array . '[' . $prefix . 'Hour]"';
- } else {
- $html_result .= '"' . $prefix . 'Hour"';
- }
- if (null !== $hour_extra){
- $html_result .= ' ' . $hour_extra;
- }
- if (null !== $all_extra){
- $html_result .= ' ' . $all_extra;
- }
- $html_result .= '>'."\n";
- $html_result .= smarty_function_html_options(array('output' => $hours,
- 'values' => $hours,
- 'selected' => strftime($hour_fmt, $time),
- 'print_result' => false),
- $smarty);
- $html_result .= "</select>\n";
- }
-
- if ($display_minutes) {
- $all_minutes = range(0, 59);
- for ($i = 0, $for_max = count($all_minutes); $i < $for_max; $i+= $minute_interval)
- $minutes[] = sprintf('%02d', $all_minutes[$i]);
- $selected = intval(floor(strftime('%M', $time) / $minute_interval) * $minute_interval);
- $html_result .= '<select name=';
- if (null !== $field_array) {
- $html_result .= '"' . $field_array . '[' . $prefix . 'Minute]"';
- } else {
- $html_result .= '"' . $prefix . 'Minute"';
- }
- if (null !== $minute_extra){
- $html_result .= ' ' . $minute_extra;
- }
- if (null !== $all_extra){
- $html_result .= ' ' . $all_extra;
- }
- $html_result .= '>'."\n";
-
- $html_result .= smarty_function_html_options(array('output' => $minutes,
- 'values' => $minutes,
- 'selected' => $selected,
- 'print_result' => false),
- $smarty);
- $html_result .= "</select>\n";
- }
-
- if ($display_seconds) {
- $all_seconds = range(0, 59);
- for ($i = 0, $for_max = count($all_seconds); $i < $for_max; $i+= $second_interval)
- $seconds[] = sprintf('%02d', $all_seconds[$i]);
- $selected = intval(floor(strftime('%S', $time) / $second_interval) * $second_interval);
- $html_result .= '<select name=';
- if (null !== $field_array) {
- $html_result .= '"' . $field_array . '[' . $prefix . 'Second]"';
- } else {
- $html_result .= '"' . $prefix . 'Second"';
- }
-
- if (null !== $second_extra){
- $html_result .= ' ' . $second_extra;
- }
- if (null !== $all_extra){
- $html_result .= ' ' . $all_extra;
- }
- $html_result .= '>'."\n";
-
- $html_result .= smarty_function_html_options(array('output' => $seconds,
- 'values' => $seconds,
- 'selected' => $selected,
- 'print_result' => false),
- $smarty);
- $html_result .= "</select>\n";
- }
-
- if ($display_meridian && !$use_24_hours) {
- $html_result .= '<select name=';
- if (null !== $field_array) {
- $html_result .= '"' . $field_array . '[' . $prefix . 'Meridian]"';
- } else {
- $html_result .= '"' . $prefix . 'Meridian"';
- }
-
- if (null !== $meridian_extra){
- $html_result .= ' ' . $meridian_extra;
- }
- if (null !== $all_extra){
- $html_result .= ' ' . $all_extra;
- }
- $html_result .= '>'."\n";
-
- $html_result .= smarty_function_html_options(array('output' => array('AM', 'PM'),
- 'values' => array('am', 'pm'),
- 'selected' => strtolower(strftime('%p', $time)),
- 'print_result' => false),
- $smarty);
- $html_result .= "</select>\n";
- }
-
- return $html_result;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {html_select_time} function plugin
+ *
+ * Type: function<br>
+ * Name: html_select_time<br>
+ * Purpose: Prints the dropdowns for time selection
+ * @link http://smarty.php.net/manual/en/language.function.html.select.time.php {html_select_time}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ * @return string
+ * @uses smarty_make_timestamp()
+ */
+function smarty_function_html_select_time($params, &$smarty)
+{
+ require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
+ require_once $smarty->_get_plugin_filepath('function','html_options');
+ /* Default values. */
+ $prefix = "Time_";
+ $time = time();
+ $display_hours = true;
+ $display_minutes = true;
+ $display_seconds = true;
+ $display_meridian = true;
+ $use_24_hours = true;
+ $minute_interval = 1;
+ $second_interval = 1;
+ /* Should the select boxes be part of an array when returned from PHP?
+ e.g. setting it to "birthday", would create "birthday[Hour]",
+ "birthday[Minute]", "birthday[Seconds]" & "birthday[Meridian]".
+ Can be combined with prefix. */
+ $field_array = null;
+ $all_extra = null;
+ $hour_extra = null;
+ $minute_extra = null;
+ $second_extra = null;
+ $meridian_extra = null;
+
+ extract($params);
+
+ $time = smarty_make_timestamp($time);
+
+ $html_result = '';
+
+ if ($display_hours) {
+ $hours = $use_24_hours ? range(0, 23) : range(1, 12);
+ $hour_fmt = $use_24_hours ? '%H' : '%I';
+ for ($i = 0, $for_max = count($hours); $i < $for_max; $i++)
+ $hours[$i] = sprintf('%02d', $hours[$i]);
+ $html_result .= '<select name=';
+ if (null !== $field_array) {
+ $html_result .= '"' . $field_array . '[' . $prefix . 'Hour]"';
+ } else {
+ $html_result .= '"' . $prefix . 'Hour"';
+ }
+ if (null !== $hour_extra){
+ $html_result .= ' ' . $hour_extra;
+ }
+ if (null !== $all_extra){
+ $html_result .= ' ' . $all_extra;
+ }
+ $html_result .= '>'."\n";
+ $html_result .= smarty_function_html_options(array('output' => $hours,
+ 'values' => $hours,
+ 'selected' => strftime($hour_fmt, $time),
+ 'print_result' => false),
+ $smarty);
+ $html_result .= "</select>\n";
+ }
+
+ if ($display_minutes) {
+ $all_minutes = range(0, 59);
+ for ($i = 0, $for_max = count($all_minutes); $i < $for_max; $i+= $minute_interval)
+ $minutes[] = sprintf('%02d', $all_minutes[$i]);
+ $selected = intval(floor(strftime('%M', $time) / $minute_interval) * $minute_interval);
+ $html_result .= '<select name=';
+ if (null !== $field_array) {
+ $html_result .= '"' . $field_array . '[' . $prefix . 'Minute]"';
+ } else {
+ $html_result .= '"' . $prefix . 'Minute"';
+ }
+ if (null !== $minute_extra){
+ $html_result .= ' ' . $minute_extra;
+ }
+ if (null !== $all_extra){
+ $html_result .= ' ' . $all_extra;
+ }
+ $html_result .= '>'."\n";
+
+ $html_result .= smarty_function_html_options(array('output' => $minutes,
+ 'values' => $minutes,
+ 'selected' => $selected,
+ 'print_result' => false),
+ $smarty);
+ $html_result .= "</select>\n";
+ }
+
+ if ($display_seconds) {
+ $all_seconds = range(0, 59);
+ for ($i = 0, $for_max = count($all_seconds); $i < $for_max; $i+= $second_interval)
+ $seconds[] = sprintf('%02d', $all_seconds[$i]);
+ $selected = intval(floor(strftime('%S', $time) / $second_interval) * $second_interval);
+ $html_result .= '<select name=';
+ if (null !== $field_array) {
+ $html_result .= '"' . $field_array . '[' . $prefix . 'Second]"';
+ } else {
+ $html_result .= '"' . $prefix . 'Second"';
+ }
+
+ if (null !== $second_extra){
+ $html_result .= ' ' . $second_extra;
+ }
+ if (null !== $all_extra){
+ $html_result .= ' ' . $all_extra;
+ }
+ $html_result .= '>'."\n";
+
+ $html_result .= smarty_function_html_options(array('output' => $seconds,
+ 'values' => $seconds,
+ 'selected' => $selected,
+ 'print_result' => false),
+ $smarty);
+ $html_result .= "</select>\n";
+ }
+
+ if ($display_meridian && !$use_24_hours) {
+ $html_result .= '<select name=';
+ if (null !== $field_array) {
+ $html_result .= '"' . $field_array . '[' . $prefix . 'Meridian]"';
+ } else {
+ $html_result .= '"' . $prefix . 'Meridian"';
+ }
+
+ if (null !== $meridian_extra){
+ $html_result .= ' ' . $meridian_extra;
+ }
+ if (null !== $all_extra){
+ $html_result .= ' ' . $all_extra;
+ }
+ $html_result .= '>'."\n";
+
+ $html_result .= smarty_function_html_options(array('output' => array('AM', 'PM'),
+ 'values' => array('am', 'pm'),
+ 'selected' => strtolower(strftime('%p', $time)),
+ 'print_result' => false),
+ $smarty);
+ $html_result .= "</select>\n";
+ }
+
+ return $html_result;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php
index ece9c8c574..33be01aaf8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php
@@ -1,113 +1,113 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {html_table} function plugin
- *
- * Type: function<br>
- * Name: html_table<br>
- * Date: Feb 17, 2003<br>
- * Purpose: make an html table from an array of data<br>
- * Input:<br>
- * - loop = array to loop through
- * - cols = number of columns
- * - rows = number of rows
- * - table_attr = table attributes
- * - tr_attr = table row attributes (arrays are cycled)
- * - td_attr = table cell attributes (arrays are cycled)
- * - trailpad = value to pad trailing cells with
- * - vdir = vertical direction (default: "down", means top-to-bottom)
- * - hdir = horizontal direction (default: "right", means left-to-right)
- * - inner = inner loop (default "cols": print $loop line by line,
- * $loop will be printed column by column otherwise)
- *
- *
- * Examples:
- * <pre>
- * {table loop=$data}
- * {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
- * {table loop=$data cols=4 tr_attr=$colors}
- * </pre>
- * @author Monte Ohrt <monte@ispi.net>
- * @version 1.0
- * @link http://smarty.php.net/manual/en/language.function.html.table.php {html_table}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- * @return string
- */
-function smarty_function_html_table($params, &$smarty)
-{
- $table_attr = 'border="1"';
- $tr_attr = '';
- $td_attr = '';
- $cols = 3;
- $rows = 3;
- $trailpad = '&nbsp;';
- $vdir = 'down';
- $hdir = 'right';
- $inner = 'cols';
-
- extract($params);
-
- if (!isset($loop)) {
- $smarty->trigger_error("html_table: missing 'loop' parameter");
- return;
- }
-
- $loop_count = count($loop);
- if (empty($params['rows'])) {
- /* no rows specified */
- $rows = ceil($loop_count/$cols);
- } elseif (empty($params['cols'])) {
- if (!empty($params['rows'])) {
- /* no cols specified, but rows */
- $cols = ceil($loop_count/$rows);
- }
- }
-
- $output = "<table $table_attr>\n";
-
- for ($r=0; $r<$rows; $r++) {
- $output .= "<tr" . smarty_function_html_table_cycle('tr', $tr_attr, $r) . ">\n";
- $rx = ($vdir == 'down') ? $r*$cols : ($rows-1-$r)*$cols;
-
- for ($c=0; $c<$cols; $c++) {
- $x = ($hdir == 'right') ? $rx+$c : $rx+$cols-1-$c;
- if ($inner!='cols') {
- /* shuffle x to loop over rows*/
- $x = floor($x/$cols) + ($x%$cols)*$rows;
- }
-
- if ($x<$loop_count) {
- $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">" . $loop[$x] . "</td>\n";
- } else {
- $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">$trailpad</td>\n";
- }
- }
- $output .= "</tr>\n";
- }
- $output .= "</table>\n";
-
- return $output;
-}
-
-function smarty_function_html_table_cycle($name, $var, $no) {
- if(!is_array($var)) {
- $ret = $var;
- } else {
- $ret = $var[$no % count($var)];
- }
-
- return ($ret) ? ' '.$ret : '';
-}
-
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {html_table} function plugin
+ *
+ * Type: function<br>
+ * Name: html_table<br>
+ * Date: Feb 17, 2003<br>
+ * Purpose: make an html table from an array of data<br>
+ * Input:<br>
+ * - loop = array to loop through
+ * - cols = number of columns
+ * - rows = number of rows
+ * - table_attr = table attributes
+ * - tr_attr = table row attributes (arrays are cycled)
+ * - td_attr = table cell attributes (arrays are cycled)
+ * - trailpad = value to pad trailing cells with
+ * - vdir = vertical direction (default: "down", means top-to-bottom)
+ * - hdir = horizontal direction (default: "right", means left-to-right)
+ * - inner = inner loop (default "cols": print $loop line by line,
+ * $loop will be printed column by column otherwise)
+ *
+ *
+ * Examples:
+ * <pre>
+ * {table loop=$data}
+ * {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
+ * {table loop=$data cols=4 tr_attr=$colors}
+ * </pre>
+ * @author Monte Ohrt <monte@ispi.net>
+ * @version 1.0
+ * @link http://smarty.php.net/manual/en/language.function.html.table.php {html_table}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ * @return string
+ */
+function smarty_function_html_table($params, &$smarty)
+{
+ $table_attr = 'border="1"';
+ $tr_attr = '';
+ $td_attr = '';
+ $cols = 3;
+ $rows = 3;
+ $trailpad = '&nbsp;';
+ $vdir = 'down';
+ $hdir = 'right';
+ $inner = 'cols';
+
+ extract($params);
+
+ if (!isset($loop)) {
+ $smarty->trigger_error("html_table: missing 'loop' parameter");
+ return;
+ }
+
+ $loop_count = count($loop);
+ if (empty($params['rows'])) {
+ /* no rows specified */
+ $rows = ceil($loop_count/$cols);
+ } elseif (empty($params['cols'])) {
+ if (!empty($params['rows'])) {
+ /* no cols specified, but rows */
+ $cols = ceil($loop_count/$rows);
+ }
+ }
+
+ $output = "<table $table_attr>\n";
+
+ for ($r=0; $r<$rows; $r++) {
+ $output .= "<tr" . smarty_function_html_table_cycle('tr', $tr_attr, $r) . ">\n";
+ $rx = ($vdir == 'down') ? $r*$cols : ($rows-1-$r)*$cols;
+
+ for ($c=0; $c<$cols; $c++) {
+ $x = ($hdir == 'right') ? $rx+$c : $rx+$cols-1-$c;
+ if ($inner!='cols') {
+ /* shuffle x to loop over rows*/
+ $x = floor($x/$cols) + ($x%$cols)*$rows;
+ }
+
+ if ($x<$loop_count) {
+ $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">" . $loop[$x] . "</td>\n";
+ } else {
+ $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">$trailpad</td>\n";
+ }
+ }
+ $output .= "</tr>\n";
+ }
+ $output .= "</table>\n";
+
+ return $output;
+}
+
+function smarty_function_html_table_cycle($name, $var, $no) {
+ if(!is_array($var)) {
+ $ret = $var;
+ } else {
+ $ret = $var[$no % count($var)];
+ }
+
+ return ($ret) ? ' '.$ret : '';
+}
+
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php
index 9273ba3985..f6e3de0c1b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php
@@ -1,140 +1,140 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {mailto} function plugin
- *
- * Type: function<br>
- * Name: mailto<br>
- * Date: May 21, 2002
- * Purpose: automate mailto address link creation, and optionally
- * encode them.<br>
- * Input:<br>
- * - address = e-mail address
- * - text = (optional) text to display, default is address
- * - encode = (optional) can be one of:
- * * none : no encoding (default)
- * * javascript : encode with javascript
- * * hex : encode with hexidecimal (no javascript)
- * - cc = (optional) address(es) to carbon copy
- * - bcc = (optional) address(es) to blind carbon copy
- * - subject = (optional) e-mail subject
- * - newsgroups = (optional) newsgroup(s) to post to
- * - followupto = (optional) address(es) to follow up to
- * - extra = (optional) extra tags for the href link
- *
- * Examples:
- * <pre>
- * {mailto address="me@domain.com"}
- * {mailto address="me@domain.com" encode="javascript"}
- * {mailto address="me@domain.com" encode="hex"}
- * {mailto address="me@domain.com" subject="Hello to you!"}
- * {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
- * {mailto address="me@domain.com" extra='class="mailto"'}
- * </pre>
- * @link http://smarty.php.net/manual/en/language.function.mailto.php {mailto}
- * (Smarty online manual)
- * @version 1.2
- * @author Monte Ohrt <monte@ispi.net>
- * @author credits to Jason Sweat (added cc, bcc and subject functionality)
- * @param array
- * @param Smarty
- * @return string
- */
-function smarty_function_mailto($params, &$smarty)
-{
- $extra = '';
- extract($params);
-
- if (empty($address)) {
- $smarty->trigger_error("mailto: missing 'address' parameter");
- return;
- }
-
- if (empty($text)) {
- $text = $address;
- }
-
- // netscape and mozilla do not decode %40 (@) in BCC field (bug?)
- // so, don't encode it.
-
- $mail_parms = array();
- if (!empty($cc)) {
- $mail_parms[] = 'cc='.str_replace('%40','@',rawurlencode($cc));
- }
-
- if (!empty($bcc)) {
- $mail_parms[] = 'bcc='.str_replace('%40','@',rawurlencode($bcc));
- }
-
- if (!empty($subject)) {
- $mail_parms[] = 'subject='.rawurlencode($subject);
- }
-
- if (!empty($newsgroups)) {
- $mail_parms[] = 'newsgroups='.rawurlencode($newsgroups);
- }
-
- if (!empty($followupto)) {
- $mail_parms[] = 'followupto='.str_replace('%40','@',rawurlencode($followupto));
- }
-
- $mail_parm_vals = '';
- for ($i=0; $i<count($mail_parms); $i++) {
- $mail_parm_vals .= (0==$i) ? '?' : '&';
- $mail_parm_vals .= $mail_parms[$i];
- }
- $address .= $mail_parm_vals;
-
- if (empty($encode)) {
- $encode = 'none';
- } elseif (!in_array($encode,array('javascript','hex','none')) ) {
- $smarty->trigger_error("mailto: 'encode' parameter must be none, javascript or hex");
- return;
- }
-
- if ($encode == 'javascript' ) {
- $string = 'document.write(\'<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>\');';
-
- for ($x=0; $x < strlen($string); $x++) {
- $js_encode .= '%' . bin2hex($string[$x]);
- }
-
- return '<script type="text/javascript" language="javascript">eval(unescape(\''.$js_encode.'\'))</script>';
-
- } elseif ($encode == 'hex') {
-
- preg_match('!^(.*)(\?.*)$!',$address,$match);
- if(!empty($match[2])) {
- $smarty->trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.");
- return;
- }
- for ($x=0; $x < strlen($address); $x++) {
- if(preg_match('!\w!',$address[$x])) {
- $address_encode .= '%' . bin2hex($address[$x]);
- } else {
- $address_encode .= $address[$x];
- }
- }
- for ($x=0; $x < strlen($text); $x++) {
- $text_encode .= '&#x' . bin2hex($text[$x]).';';
- }
-
- return '<a href="mailto:'.$address_encode.'" '.$extra.'>'.$text_encode.'</a>';
-
- } else {
- // no encoding
- return '<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>';
-
- }
-
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {mailto} function plugin
+ *
+ * Type: function<br>
+ * Name: mailto<br>
+ * Date: May 21, 2002
+ * Purpose: automate mailto address link creation, and optionally
+ * encode them.<br>
+ * Input:<br>
+ * - address = e-mail address
+ * - text = (optional) text to display, default is address
+ * - encode = (optional) can be one of:
+ * * none : no encoding (default)
+ * * javascript : encode with javascript
+ * * hex : encode with hexidecimal (no javascript)
+ * - cc = (optional) address(es) to carbon copy
+ * - bcc = (optional) address(es) to blind carbon copy
+ * - subject = (optional) e-mail subject
+ * - newsgroups = (optional) newsgroup(s) to post to
+ * - followupto = (optional) address(es) to follow up to
+ * - extra = (optional) extra tags for the href link
+ *
+ * Examples:
+ * <pre>
+ * {mailto address="me@domain.com"}
+ * {mailto address="me@domain.com" encode="javascript"}
+ * {mailto address="me@domain.com" encode="hex"}
+ * {mailto address="me@domain.com" subject="Hello to you!"}
+ * {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
+ * {mailto address="me@domain.com" extra='class="mailto"'}
+ * </pre>
+ * @link http://smarty.php.net/manual/en/language.function.mailto.php {mailto}
+ * (Smarty online manual)
+ * @version 1.2
+ * @author Monte Ohrt <monte@ispi.net>
+ * @author credits to Jason Sweat (added cc, bcc and subject functionality)
+ * @param array
+ * @param Smarty
+ * @return string
+ */
+function smarty_function_mailto($params, &$smarty)
+{
+ $extra = '';
+ extract($params);
+
+ if (empty($address)) {
+ $smarty->trigger_error("mailto: missing 'address' parameter");
+ return;
+ }
+
+ if (empty($text)) {
+ $text = $address;
+ }
+
+ // netscape and mozilla do not decode %40 (@) in BCC field (bug?)
+ // so, don't encode it.
+
+ $mail_parms = array();
+ if (!empty($cc)) {
+ $mail_parms[] = 'cc='.str_replace('%40','@',rawurlencode($cc));
+ }
+
+ if (!empty($bcc)) {
+ $mail_parms[] = 'bcc='.str_replace('%40','@',rawurlencode($bcc));
+ }
+
+ if (!empty($subject)) {
+ $mail_parms[] = 'subject='.rawurlencode($subject);
+ }
+
+ if (!empty($newsgroups)) {
+ $mail_parms[] = 'newsgroups='.rawurlencode($newsgroups);
+ }
+
+ if (!empty($followupto)) {
+ $mail_parms[] = 'followupto='.str_replace('%40','@',rawurlencode($followupto));
+ }
+
+ $mail_parm_vals = '';
+ for ($i=0; $i<count($mail_parms); $i++) {
+ $mail_parm_vals .= (0==$i) ? '?' : '&';
+ $mail_parm_vals .= $mail_parms[$i];
+ }
+ $address .= $mail_parm_vals;
+
+ if (empty($encode)) {
+ $encode = 'none';
+ } elseif (!in_array($encode,array('javascript','hex','none')) ) {
+ $smarty->trigger_error("mailto: 'encode' parameter must be none, javascript or hex");
+ return;
+ }
+
+ if ($encode == 'javascript' ) {
+ $string = 'document.write(\'<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>\');';
+
+ for ($x=0; $x < strlen($string); $x++) {
+ $js_encode .= '%' . bin2hex($string[$x]);
+ }
+
+ return '<script type="text/javascript" language="javascript">eval(unescape(\''.$js_encode.'\'))</script>';
+
+ } elseif ($encode == 'hex') {
+
+ preg_match('!^(.*)(\?.*)$!',$address,$match);
+ if(!empty($match[2])) {
+ $smarty->trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.");
+ return;
+ }
+ for ($x=0; $x < strlen($address); $x++) {
+ if(preg_match('!\w!',$address[$x])) {
+ $address_encode .= '%' . bin2hex($address[$x]);
+ } else {
+ $address_encode .= $address[$x];
+ }
+ }
+ for ($x=0; $x < strlen($text); $x++) {
+ $text_encode .= '&#x' . bin2hex($text[$x]).';';
+ }
+
+ return '<a href="mailto:'.$address_encode.'" '.$extra.'>'.$text_encode.'</a>';
+
+ } else {
+ // no encoding
+ return '<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>';
+
+ }
+
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php
index d2b5d82992..c080d4dfe6 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php
@@ -1,82 +1,82 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {math} function plugin
- *
- * Type: function<br>
- * Name: math<br>
- * Purpose: handle math computations in template<br>
- * @link http://smarty.php.net/manual/en/language.function.math.php {math}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- * @return string
- */
-function smarty_function_math($params, &$smarty)
-{
- // be sure equation parameter is present
- if (empty($params['equation'])) {
- $smarty->trigger_error("math: missing equation parameter");
- return;
- }
-
- $equation = $params['equation'];
-
- // make sure parenthesis are balanced
- if (substr_count($equation,"(") != substr_count($equation,")")) {
- $smarty->trigger_error("math: unbalanced parenthesis");
- return;
- }
-
- // match all vars in equation, make sure all are passed
- preg_match_all("!\!(0x)([a-zA-Z][a-zA-Z0-9_]*)!",$equation, $match);
- $allowed_funcs = array('int','abs','ceil','cos','exp','floor','log','log10',
- 'max','min','pi','pow','rand','round','sin','sqrt','srand','tan');
- foreach($match[2] as $curr_var) {
- if (!in_array($curr_var,array_keys($params)) && !in_array($curr_var, $allowed_funcs)) {
- $smarty->trigger_error("math: parameter $curr_var not passed as argument");
- return;
- }
- }
-
- foreach($params as $key => $val) {
- if ($key != "equation" && $key != "format" && $key != "assign") {
- // make sure value is not empty
- if (strlen($val)==0) {
- $smarty->trigger_error("math: parameter $key is empty");
- return;
- }
- if (!is_numeric($val)) {
- $smarty->trigger_error("math: parameter $key: is not numeric");
- return;
- }
- $equation = preg_replace("/\b$key\b/",$val, $equation);
- }
- }
-
- eval("\$smarty_math_result = ".$equation.";");
-
- if (empty($params['format'])) {
- if (empty($params['assign'])) {
- return $smarty_math_result;
- } else {
- $smarty->assign($params['assign'],$smarty_math_result);
- }
- } else {
- if (empty($params['assign'])){
- printf($params['format'],$smarty_math_result);
- } else {
- $smarty->assign($params['assign'],sprintf($params['format'],$smarty_math_result));
- }
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {math} function plugin
+ *
+ * Type: function<br>
+ * Name: math<br>
+ * Purpose: handle math computations in template<br>
+ * @link http://smarty.php.net/manual/en/language.function.math.php {math}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ * @return string
+ */
+function smarty_function_math($params, &$smarty)
+{
+ // be sure equation parameter is present
+ if (empty($params['equation'])) {
+ $smarty->trigger_error("math: missing equation parameter");
+ return;
+ }
+
+ $equation = $params['equation'];
+
+ // make sure parenthesis are balanced
+ if (substr_count($equation,"(") != substr_count($equation,")")) {
+ $smarty->trigger_error("math: unbalanced parenthesis");
+ return;
+ }
+
+ // match all vars in equation, make sure all are passed
+ preg_match_all("!\!(0x)([a-zA-Z][a-zA-Z0-9_]*)!",$equation, $match);
+ $allowed_funcs = array('int','abs','ceil','cos','exp','floor','log','log10',
+ 'max','min','pi','pow','rand','round','sin','sqrt','srand','tan');
+ foreach($match[2] as $curr_var) {
+ if (!in_array($curr_var,array_keys($params)) && !in_array($curr_var, $allowed_funcs)) {
+ $smarty->trigger_error("math: parameter $curr_var not passed as argument");
+ return;
+ }
+ }
+
+ foreach($params as $key => $val) {
+ if ($key != "equation" && $key != "format" && $key != "assign") {
+ // make sure value is not empty
+ if (strlen($val)==0) {
+ $smarty->trigger_error("math: parameter $key is empty");
+ return;
+ }
+ if (!is_numeric($val)) {
+ $smarty->trigger_error("math: parameter $key: is not numeric");
+ return;
+ }
+ $equation = preg_replace("/\b$key\b/",$val, $equation);
+ }
+ }
+
+ eval("\$smarty_math_result = ".$equation.";");
+
+ if (empty($params['format'])) {
+ if (empty($params['assign'])) {
+ return $smarty_math_result;
+ } else {
+ $smarty->assign($params['assign'],$smarty_math_result);
+ }
+ } else {
+ if (empty($params['assign'])){
+ printf($params['format'],$smarty_math_result);
+ } else {
+ $smarty->assign($params['assign'],sprintf($params['format'],$smarty_math_result));
+ }
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php
index 0eb4fcb32a..d1030a7a02 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php
@@ -1,87 +1,87 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {popup} function plugin
- *
- * Type: function<br>
- * Name: popup<br>
- * Purpose: make text pop up in windows via overlib
- * @link http://smarty.php.net/manual/en/language.function.popup.php {popup}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- * @return string
- */
-function smarty_function_popup($params, &$smarty)
-{
- extract($params);
-
- if (empty($text) && !isset($inarray) && empty($function)) {
- $smarty->trigger_error("overlib: attribute 'text' or 'inarray' or 'function' required");
- return false;
- }
-
- if (empty($trigger)) { $trigger = "onmouseover"; }
-
- $retval = $trigger . '="return overlib(\''.preg_replace(array("!'!","![\r\n]!"),array("\'",'\r'),$text).'\'';
- if ($sticky) { $retval .= ",STICKY"; }
- if (!empty($caption)) { $retval .= ",CAPTION,'".str_replace("'","\'",$caption)."'"; }
- if (!empty($fgcolor)) { $retval .= ",FGCOLOR,'$fgcolor'"; }
- if (!empty($bgcolor)) { $retval .= ",BGCOLOR,'$bgcolor'"; }
- if (!empty($textcolor)) { $retval .= ",TEXTCOLOR,'$textcolor'"; }
- if (!empty($capcolor)) { $retval .= ",CAPCOLOR,'$capcolor'"; }
- if (!empty($closecolor)) { $retval .= ",CLOSECOLOR,'$closecolor'"; }
- if (!empty($textfont)) { $retval .= ",TEXTFONT,'$textfont'"; }
- if (!empty($captionfont)) { $retval .= ",CAPTIONFONT,'$captionfont'"; }
- if (!empty($closefont)) { $retval .= ",CLOSEFONT,'$closefont'"; }
- if (!empty($textsize)) { $retval .= ",TEXTSIZE,$textsize"; }
- if (!empty($captionsize)) { $retval .= ",CAPTIONSIZE,$captionsize"; }
- if (!empty($closesize)) { $retval .= ",CLOSESIZE,$closesize"; }
- if (!empty($width)) { $retval .= ",WIDTH,$width"; }
- if (!empty($height)) { $retval .= ",HEIGHT,$height"; }
- if (!empty($left)) { $retval .= ",LEFT"; }
- if (!empty($right)) { $retval .= ",RIGHT"; }
- if (!empty($center)) { $retval .= ",CENTER"; }
- if (!empty($above)) { $retval .= ",ABOVE"; }
- if (!empty($below)) { $retval .= ",BELOW"; }
- if (isset($border)) { $retval .= ",BORDER,$border"; }
- if (isset($offsetx)) { $retval .= ",OFFSETX,$offsetx"; }
- if (isset($offsety)) { $retval .= ",OFFSETY,$offsety"; }
- if (!empty($fgbackground)) { $retval .= ",FGBACKGROUND,'$fgbackground'"; }
- if (!empty($bgbackground)) { $retval .= ",BGBACKGROUND,'$bgbackground'"; }
- if (!empty($closetext)) { $retval .= ",CLOSETEXT,'".str_replace("'","\'",$closetext)."'"; }
- if (!empty($noclose)) { $retval .= ",NOCLOSE"; }
- if (!empty($status)) { $retval .= ",STATUS,'".str_replace("'","\'",$status)."'"; }
- if (!empty($autostatus)) { $retval .= ",AUTOSTATUS"; }
- if (!empty($autostatuscap)) { $retval .= ",AUTOSTATUSCAP"; }
- if (isset($inarray)) { $retval .= ",INARRAY,'$inarray'"; }
- if (isset($caparray)) { $retval .= ",CAPARRAY,'$caparray'"; }
- if (!empty($capicon)) { $retval .= ",CAPICON,'$capicon'"; }
- if (!empty($snapx)) { $retval .= ",SNAPX,$snapx"; }
- if (!empty($snapy)) { $retval .= ",SNAPY,$snapy"; }
- if (isset($fixx)) { $retval .= ",FIXX,$fixx"; }
- if (isset($fixy)) { $retval .= ",FIXY,$fixy"; }
- if (!empty($background)) { $retval .= ",BACKGROUND,'$background'"; }
- if (!empty($padx)) { $retval .= ",PADX,$padx"; }
- if (!empty($pady)) { $retval .= ",PADY,$pady"; }
- if (!empty($fullhtml)) { $retval .= ",FULLHTML"; }
- if (!empty($frame)) { $retval .= ",FRAME,'$frame'"; }
- if (isset($timeout)) { $retval .= ",TIMEOUT,$timeout"; }
- if (!empty($function)) { $retval .= ",FUNCTION,'$function'"; }
- if (isset($delay)) { $retval .= ",DELAY,$delay"; }
- if (!empty($hauto)) { $retval .= ",HAUTO"; }
- if (!empty($vauto)) { $retval .= ",VAUTO"; }
- $retval .= ');" onmouseout="nd();"';
-
- return $retval;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {popup} function plugin
+ *
+ * Type: function<br>
+ * Name: popup<br>
+ * Purpose: make text pop up in windows via overlib
+ * @link http://smarty.php.net/manual/en/language.function.popup.php {popup}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ * @return string
+ */
+function smarty_function_popup($params, &$smarty)
+{
+ extract($params);
+
+ if (empty($text) && !isset($inarray) && empty($function)) {
+ $smarty->trigger_error("overlib: attribute 'text' or 'inarray' or 'function' required");
+ return false;
+ }
+
+ if (empty($trigger)) { $trigger = "onmouseover"; }
+
+ $retval = $trigger . '="return overlib(\''.preg_replace(array("!'!","![\r\n]!"),array("\'",'\r'),$text).'\'';
+ if ($sticky) { $retval .= ",STICKY"; }
+ if (!empty($caption)) { $retval .= ",CAPTION,'".str_replace("'","\'",$caption)."'"; }
+ if (!empty($fgcolor)) { $retval .= ",FGCOLOR,'$fgcolor'"; }
+ if (!empty($bgcolor)) { $retval .= ",BGCOLOR,'$bgcolor'"; }
+ if (!empty($textcolor)) { $retval .= ",TEXTCOLOR,'$textcolor'"; }
+ if (!empty($capcolor)) { $retval .= ",CAPCOLOR,'$capcolor'"; }
+ if (!empty($closecolor)) { $retval .= ",CLOSECOLOR,'$closecolor'"; }
+ if (!empty($textfont)) { $retval .= ",TEXTFONT,'$textfont'"; }
+ if (!empty($captionfont)) { $retval .= ",CAPTIONFONT,'$captionfont'"; }
+ if (!empty($closefont)) { $retval .= ",CLOSEFONT,'$closefont'"; }
+ if (!empty($textsize)) { $retval .= ",TEXTSIZE,$textsize"; }
+ if (!empty($captionsize)) { $retval .= ",CAPTIONSIZE,$captionsize"; }
+ if (!empty($closesize)) { $retval .= ",CLOSESIZE,$closesize"; }
+ if (!empty($width)) { $retval .= ",WIDTH,$width"; }
+ if (!empty($height)) { $retval .= ",HEIGHT,$height"; }
+ if (!empty($left)) { $retval .= ",LEFT"; }
+ if (!empty($right)) { $retval .= ",RIGHT"; }
+ if (!empty($center)) { $retval .= ",CENTER"; }
+ if (!empty($above)) { $retval .= ",ABOVE"; }
+ if (!empty($below)) { $retval .= ",BELOW"; }
+ if (isset($border)) { $retval .= ",BORDER,$border"; }
+ if (isset($offsetx)) { $retval .= ",OFFSETX,$offsetx"; }
+ if (isset($offsety)) { $retval .= ",OFFSETY,$offsety"; }
+ if (!empty($fgbackground)) { $retval .= ",FGBACKGROUND,'$fgbackground'"; }
+ if (!empty($bgbackground)) { $retval .= ",BGBACKGROUND,'$bgbackground'"; }
+ if (!empty($closetext)) { $retval .= ",CLOSETEXT,'".str_replace("'","\'",$closetext)."'"; }
+ if (!empty($noclose)) { $retval .= ",NOCLOSE"; }
+ if (!empty($status)) { $retval .= ",STATUS,'".str_replace("'","\'",$status)."'"; }
+ if (!empty($autostatus)) { $retval .= ",AUTOSTATUS"; }
+ if (!empty($autostatuscap)) { $retval .= ",AUTOSTATUSCAP"; }
+ if (isset($inarray)) { $retval .= ",INARRAY,'$inarray'"; }
+ if (isset($caparray)) { $retval .= ",CAPARRAY,'$caparray'"; }
+ if (!empty($capicon)) { $retval .= ",CAPICON,'$capicon'"; }
+ if (!empty($snapx)) { $retval .= ",SNAPX,$snapx"; }
+ if (!empty($snapy)) { $retval .= ",SNAPY,$snapy"; }
+ if (isset($fixx)) { $retval .= ",FIXX,$fixx"; }
+ if (isset($fixy)) { $retval .= ",FIXY,$fixy"; }
+ if (!empty($background)) { $retval .= ",BACKGROUND,'$background'"; }
+ if (!empty($padx)) { $retval .= ",PADX,$padx"; }
+ if (!empty($pady)) { $retval .= ",PADY,$pady"; }
+ if (!empty($fullhtml)) { $retval .= ",FULLHTML"; }
+ if (!empty($frame)) { $retval .= ",FRAME,'$frame'"; }
+ if (isset($timeout)) { $retval .= ",TIMEOUT,$timeout"; }
+ if (!empty($function)) { $retval .= ",FUNCTION,'$function'"; }
+ if (isset($delay)) { $retval .= ",DELAY,$delay"; }
+ if (!empty($hauto)) { $retval .= ",HAUTO"; }
+ if (!empty($vauto)) { $retval .= ",VAUTO"; }
+ $retval .= ');" onmouseout="nd();"';
+
+ return $retval;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php
index e06de696cb..d9b42bd0ef 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php
@@ -1,39 +1,39 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty {popup_init} function plugin
- *
- * Type: function<br>
- * Name: popup_init<br>
- * Purpose: initialize overlib
- * @link http://smarty.php.net/manual/en/language.function.popup.init.php {popup_init}
- * (Smarty online manual)
- * @param array
- * @param Smarty
- * @return string
- */
-function smarty_function_popup_init($params, &$smarty)
-{
- $zindex = 1000;
-
- if (!empty($params['zindex'])) {
- $zindex = $params['zindex'];
- }
-
- if (!empty($params['src'])) {
- return '<div id="overDiv" style="position:absolute; visibility:hidden; z-index:'.$zindex.';"></div>' . "\n"
- . '<script type="text/javascript" language="JavaScript" src="'.$params['src'].'"></script>' . "\n";
- } else {
- $smarty->trigger_error("popup_init: missing src parameter");
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty {popup_init} function plugin
+ *
+ * Type: function<br>
+ * Name: popup_init<br>
+ * Purpose: initialize overlib
+ * @link http://smarty.php.net/manual/en/language.function.popup.init.php {popup_init}
+ * (Smarty online manual)
+ * @param array
+ * @param Smarty
+ * @return string
+ */
+function smarty_function_popup_init($params, &$smarty)
+{
+ $zindex = 1000;
+
+ if (!empty($params['zindex'])) {
+ $zindex = $params['zindex'];
+ }
+
+ if (!empty($params['src'])) {
+ return '<div id="overDiv" style="position:absolute; visibility:hidden; z-index:'.$zindex.';"></div>' . "\n"
+ . '<script type="text/javascript" language="JavaScript" src="'.$params['src'].'"></script>' . "\n";
+ } else {
+ $smarty->trigger_error("popup_init: missing src parameter");
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php
index 382032c19d..4278b37803 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php
@@ -1,20 +1,20 @@
-<?php
-/** @package Smarty
-* @subpackage plugins */
-
-/**
- * Smarty plugin
- * -------------------------------------------------------------
- * Type: function
- * Name: assign
- * Purpose: assign a value to a template variable
- * -------------------------------------------------------------
- */
-function smarty_function_var_dump($params, &$smarty)
-{
- var_dump('<pre>',$params,'</pre>');
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/** @package Smarty
+* @subpackage plugins */
+
+/**
+ * Smarty plugin
+ * -------------------------------------------------------------
+ * Type: function
+ * Name: assign
+ * Purpose: assign a value to a template variable
+ * -------------------------------------------------------------
+ */
+function smarty_function_var_dump($params, &$smarty)
+{
+ var_dump('<pre>',$params,'</pre>');
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php
index 464d5f8485..41d63edafa 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php
@@ -1,25 +1,25 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty capitalize modifier plugin
- *
- * Type: modifier<br>
- * Name: capitalize<br>
- * Purpose: capitalize words in the string
- * @link http://smarty.php.net/manual/en/language.modifiers.php#LANGUAGE.MODIFIER.CAPITALIZE
- * capitalize (Smarty online manual)
- * @param string
- * @return string
- */
-function smarty_modifier_capitalize($string)
-{
- return ucwords($string);
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty capitalize modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: capitalize<br>
+ * Purpose: capitalize words in the string
+ * @link http://smarty.php.net/manual/en/language.modifiers.php#LANGUAGE.MODIFIER.CAPITALIZE
+ * capitalize (Smarty online manual)
+ * @param string
+ * @return string
+ */
+function smarty_modifier_capitalize($string)
+{
+ return ucwords($string);
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php
index 176ee7ae18..8dc7324041 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php
@@ -1,33 +1,33 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty cat modifier plugin
- *
- * Type: modifier<br>
- * Name: cat<br>
- * Date: Feb 24, 2003
- * Purpose: catenate a value to a variable
- * Input: string to catenate
- * Example: {$var|cat:"foo"}
- * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
- * (Smarty online manual)
- * @author Monte Ohrt <monte@ispi.net>
- * @version 1.0
- * @param string
- * @param string
- * @return string
- */
-function smarty_modifier_cat($string, $cat)
-{
- return $string . $cat;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty cat modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: cat<br>
+ * Date: Feb 24, 2003
+ * Purpose: catenate a value to a variable
+ * Input: string to catenate
+ * Example: {$var|cat:"foo"}
+ * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
+ * (Smarty online manual)
+ * @author Monte Ohrt <monte@ispi.net>
+ * @version 1.0
+ * @param string
+ * @param string
+ * @return string
+ */
+function smarty_modifier_cat($string, $cat)
+{
+ return $string . $cat;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php
index 2fb7c898e0..49ce655e85 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php
@@ -1,31 +1,31 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty count_characters modifier plugin
- *
- * Type: modifier<br>
- * Name: count_characteres<br>
- * Purpose: count the number of characters in a text
- * @link http://smarty.php.net/manual/en/language.modifier.count.characters.php
- * count_characters (Smarty online manual)
- * @param string
- * @param boolean include whitespace in the character count
- * @return integer
- */
-function smarty_modifier_count_characters($string, $include_spaces = false)
-{
- if ($include_spaces)
- return(strlen($string));
-
- return preg_match_all("/[^\s]/",$string, $match);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty count_characters modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: count_characteres<br>
+ * Purpose: count the number of characters in a text
+ * @link http://smarty.php.net/manual/en/language.modifier.count.characters.php
+ * count_characters (Smarty online manual)
+ * @param string
+ * @param boolean include whitespace in the character count
+ * @return integer
+ */
+function smarty_modifier_count_characters($string, $include_spaces = false)
+{
+ if ($include_spaces)
+ return(strlen($string));
+
+ return preg_match_all("/[^\s]/",$string, $match);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php
index 5f6278fe80..6a9833c97c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php
@@ -1,28 +1,28 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty count_paragraphs modifier plugin
- *
- * Type: modifier<br>
- * Name: count_paragraphs<br>
- * Purpose: count the number of paragraphs in a text
- * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php
- * count_paragraphs (Smarty online manual)
- * @param string
- * @return integer
- */
-function smarty_modifier_count_paragraphs($string)
-{
- // count \r or \n characters
- return count(preg_split('/[\r\n]+/', $string));
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty count_paragraphs modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: count_paragraphs<br>
+ * Purpose: count the number of paragraphs in a text
+ * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php
+ * count_paragraphs (Smarty online manual)
+ * @param string
+ * @return integer
+ */
+function smarty_modifier_count_paragraphs($string)
+{
+ // count \r or \n characters
+ return count(preg_split('/[\r\n]+/', $string));
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php
index 2f3ba65e23..0c210f08fe 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php
@@ -1,28 +1,28 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty count_sentences modifier plugin
- *
- * Type: modifier<br>
- * Name: count_sentences
- * Purpose: count the number of sentences in a text
- * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php
- * count_sentences (Smarty online manual)
- * @param string
- * @return integer
- */
-function smarty_modifier_count_sentences($string)
-{
- // find periods with a word before but not after.
- return preg_match_all('/[^\s]\.(?!\w)/', $string, $match);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty count_sentences modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: count_sentences
+ * Purpose: count the number of sentences in a text
+ * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php
+ * count_sentences (Smarty online manual)
+ * @param string
+ * @return integer
+ */
+function smarty_modifier_count_sentences($string)
+{
+ // find periods with a word before but not after.
+ return preg_match_all('/[^\s]\.(?!\w)/', $string, $match);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php
index a686e4b453..42c8a741c5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php
@@ -1,32 +1,32 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty count_words modifier plugin
- *
- * Type: modifier<br>
- * Name: count_words<br>
- * Purpose: count the number of words in a text
- * @link http://smarty.php.net/manual/en/language.modifier.count.words.php
- * count_words (Smarty online manual)
- * @param string
- * @return integer
- */
-function smarty_modifier_count_words($string)
-{
- // split text by ' ',\r,\n,\f,\t
- $split_array = preg_split('/\s+/',$string);
- // count matches that contain alphanumerics
- $word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array);
-
- return count($word_count);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty count_words modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: count_words<br>
+ * Purpose: count the number of words in a text
+ * @link http://smarty.php.net/manual/en/language.modifier.count.words.php
+ * count_words (Smarty online manual)
+ * @param string
+ * @return integer
+ */
+function smarty_modifier_count_words($string)
+{
+ // split text by ' ',\r,\n,\f,\t
+ $split_array = preg_split('/\s+/',$string);
+ // count matches that contain alphanumerics
+ $word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array);
+
+ return count($word_count);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php
index ab7e904579..dbe26a550c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php
@@ -1,43 +1,43 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Include the {@link shared.make_timestamp.php} plugin
- */
-require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
-/**
- * Smarty date_format modifier plugin
- *
- * Type: modifier<br>
- * Name: date_format<br>
- * Purpose: format datestamps via strftime<br>
- * Input:<br>
- * - string: input date string
- * - format: strftime format for output
- * - default_date: default date if $string is empty
- * @link http://smarty.php.net/manual/en/language.modifier.date.format.php
- * date_format (Smarty online manual)
- * @param string
- * @param string
- * @param string
- * @return string|void
- * @uses smarty_make_timestamp()
- */
-function smarty_modifier_date_format($string, $format="%b %e, %Y", $default_date=null)
-{
- if($string != '') {
- return strftime($format, smarty_make_timestamp($string));
- } elseif (isset($default_date) && $default_date != '') {
- return strftime($format, smarty_make_timestamp($default_date));
- } else {
- return;
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Include the {@link shared.make_timestamp.php} plugin
+ */
+require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
+/**
+ * Smarty date_format modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: date_format<br>
+ * Purpose: format datestamps via strftime<br>
+ * Input:<br>
+ * - string: input date string
+ * - format: strftime format for output
+ * - default_date: default date if $string is empty
+ * @link http://smarty.php.net/manual/en/language.modifier.date.format.php
+ * date_format (Smarty online manual)
+ * @param string
+ * @param string
+ * @param string
+ * @return string|void
+ * @uses smarty_make_timestamp()
+ */
+function smarty_modifier_date_format($string, $format="%b %e, %Y", $default_date=null)
+{
+ if($string != '') {
+ return strftime($format, smarty_make_timestamp($string));
+ } elseif (isset($default_date) && $default_date != '') {
+ return strftime($format, smarty_make_timestamp($default_date));
+ } else {
+ return;
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php
index 3158df00d9..3528311329 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php
@@ -1,57 +1,57 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty debug_print_var modifier plugin
- *
- * Type: modifier<br>
- * Name: debug_print_var<br>
- * Purpose: formats variable contents for display in the console
- * @link http://smarty.php.net/manual/en/language.modifier.debug.print.var.php
- * debug_print_var (Smarty online manual)
- * @param array|object
- * @param integer
- * @param integer
- * @return string
- */
-function smarty_modifier_debug_print_var($var, $depth = 0, $length = 40)
-{
- $_replace = array("\n"=>'<i>&#92;n</i>', "\r"=>'<i>&#92;r</i>', "\t"=>'<i>&#92;t</i>');
- if (is_array($var)) {
- $results = "<b>Array (".count($var).")</b>";
- foreach ($var as $curr_key => $curr_val) {
- $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length);
- $results .= "<br>".str_repeat('&nbsp;', $depth*2)."<b>".strtr($curr_key, $_replace)."</b> =&gt; $return";
- }
- return $results;
- } else if (is_object($var)) {
- $object_vars = get_object_vars($var);
- $results = "<b>".get_class($var)." Object (".count($object_vars).")</b>";
- foreach ($object_vars as $curr_key => $curr_val) {
- $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length);
- $results .= "<br>".str_repeat('&nbsp;', $depth*2)."<b>$curr_key</b> =&gt; $return";
- }
- return $results;
- } else {
- if (empty($var) && $var != "0") {
- return '<i>empty</i>';
- }
- if (strlen($var) > $length ) {
- $results = substr($var, 0, $length-3).'...';
- } else {
- $results = $var;
- }
- $results = htmlspecialchars($results);
- $results = strtr($results, $_replace);
- return $results;
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty debug_print_var modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: debug_print_var<br>
+ * Purpose: formats variable contents for display in the console
+ * @link http://smarty.php.net/manual/en/language.modifier.debug.print.var.php
+ * debug_print_var (Smarty online manual)
+ * @param array|object
+ * @param integer
+ * @param integer
+ * @return string
+ */
+function smarty_modifier_debug_print_var($var, $depth = 0, $length = 40)
+{
+ $_replace = array("\n"=>'<i>&#92;n</i>', "\r"=>'<i>&#92;r</i>', "\t"=>'<i>&#92;t</i>');
+ if (is_array($var)) {
+ $results = "<b>Array (".count($var).")</b>";
+ foreach ($var as $curr_key => $curr_val) {
+ $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length);
+ $results .= "<br>".str_repeat('&nbsp;', $depth*2)."<b>".strtr($curr_key, $_replace)."</b> =&gt; $return";
+ }
+ return $results;
+ } else if (is_object($var)) {
+ $object_vars = get_object_vars($var);
+ $results = "<b>".get_class($var)." Object (".count($object_vars).")</b>";
+ foreach ($object_vars as $curr_key => $curr_val) {
+ $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length);
+ $results .= "<br>".str_repeat('&nbsp;', $depth*2)."<b>$curr_key</b> =&gt; $return";
+ }
+ return $results;
+ } else {
+ if (empty($var) && $var != "0") {
+ return '<i>empty</i>';
+ }
+ if (strlen($var) > $length ) {
+ $results = substr($var, 0, $length-3).'...';
+ } else {
+ $results = $var;
+ }
+ $results = htmlspecialchars($results);
+ $results = strtr($results, $_replace);
+ return $results;
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php
index 4f1f800a1d..8268e396ff 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php
@@ -1,31 +1,31 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty default modifier plugin
- *
- * Type: modifier<br>
- * Name: default<br>
- * Purpose: designate default value for empty variables
- * @link http://smarty.php.net/manual/en/language.modifier.default.php
- * default (Smarty online manual)
- * @param string
- * @param string
- * @return string
- */
-function smarty_modifier_default($string, $default = '')
-{
- if (!isset($string) || $string === '')
- return $default;
- else
- return $string;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty default modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: default<br>
+ * Purpose: designate default value for empty variables
+ * @link http://smarty.php.net/manual/en/language.modifier.default.php
+ * default (Smarty online manual)
+ * @param string
+ * @param string
+ * @return string
+ */
+function smarty_modifier_default($string, $default = '')
+{
+ if (!isset($string) || $string === '')
+ return $default;
+ else
+ return $string;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php
index dc5ebc6f69..f9d0eed96b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php
@@ -1,63 +1,63 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty escape modifier plugin
- *
- * Type: modifier<br>
- * Name: escape<br>
- * Purpose: Escape the string according to escapement type
- * @link http://smarty.php.net/manual/en/language.modifier.escape.php
- * escape (Smarty online manual)
- * @param string
- * @param html|htmlall|url|quotes|hex|hexentity|javascript
- * @return string
- */
-function smarty_modifier_escape($string, $esc_type = 'html')
-{
- switch ($esc_type) {
- case 'html':
- return htmlspecialchars($string, ENT_QUOTES);
-
- case 'htmlall':
- return htmlentities($string, ENT_QUOTES);
-
- case 'url':
- return urlencode($string);
-
- case 'quotes':
- // escape unescaped single quotes
- return preg_replace("%(?<!\\\\)'%", "\\'", $string);
-
- case 'hex':
- // escape every character into hex
- $return = '';
- for ($x=0; $x < strlen($string); $x++) {
- $return .= '%' . bin2hex($string[$x]);
- }
- return $return;
-
- case 'hexentity':
- $return = '';
- for ($x=0; $x < strlen($string); $x++) {
- $return .= '&#x' . bin2hex($string[$x]) . ';';
- }
- return $return;
-
- case 'javascript':
- // escape quotes and backslashes and newlines
- return strtr($string, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n'));
-
- default:
- return $string;
- }
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty escape modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: escape<br>
+ * Purpose: Escape the string according to escapement type
+ * @link http://smarty.php.net/manual/en/language.modifier.escape.php
+ * escape (Smarty online manual)
+ * @param string
+ * @param html|htmlall|url|quotes|hex|hexentity|javascript
+ * @return string
+ */
+function smarty_modifier_escape($string, $esc_type = 'html')
+{
+ switch ($esc_type) {
+ case 'html':
+ return htmlspecialchars($string, ENT_QUOTES);
+
+ case 'htmlall':
+ return htmlentities($string, ENT_QUOTES);
+
+ case 'url':
+ return urlencode($string);
+
+ case 'quotes':
+ // escape unescaped single quotes
+ return preg_replace("%(?<!\\\\)'%", "\\'", $string);
+
+ case 'hex':
+ // escape every character into hex
+ $return = '';
+ for ($x=0; $x < strlen($string); $x++) {
+ $return .= '%' . bin2hex($string[$x]);
+ }
+ return $return;
+
+ case 'hexentity':
+ $return = '';
+ for ($x=0; $x < strlen($string); $x++) {
+ $return .= '&#x' . bin2hex($string[$x]) . ';';
+ }
+ return $return;
+
+ case 'javascript':
+ // escape quotes and backslashes and newlines
+ return strtr($string, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n'));
+
+ default:
+ return $string;
+ }
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php
index 72dcf7def6..0a106b037c 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php
@@ -1,18 +1,18 @@
-<?php
-/** @package Smarty
-* @subpackage plugins */
-
-/**
- * Smarty plugin
- * -------------------------------------------------------------
- * Type: modifier
- * Name: upper
- * Purpose: convert string to uppercase
- * -------------------------------------------------------------
- */
-function smarty_modifier_htmlentities($string)
-{
- return htmlentities($string);
-}
-
-?>
+<?php
+/** @package Smarty
+* @subpackage plugins */
+
+/**
+ * Smarty plugin
+ * -------------------------------------------------------------
+ * Type: modifier
+ * Name: upper
+ * Purpose: convert string to uppercase
+ * -------------------------------------------------------------
+ */
+function smarty_modifier_htmlentities($string)
+{
+ return htmlentities($string);
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php
index 4a8b81c7ec..552c3e1998 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php
@@ -1,27 +1,27 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty indent modifier plugin
- *
- * Type: modifier<br>
- * Name: indent<br>
- * Purpose: indent lines of text
- * @link http://smarty.php.net/manual/en/language.modifier.indent.php
- * indent (Smarty online manual)
- * @param string
- * @param integer
- * @param string
- * @return string
- */
-function smarty_modifier_indent($string,$chars=4,$char=" ")
-{
- return preg_replace('!^!m',str_repeat($char,$chars),$string);
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty indent modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: indent<br>
+ * Purpose: indent lines of text
+ * @link http://smarty.php.net/manual/en/language.modifier.indent.php
+ * indent (Smarty online manual)
+ * @param string
+ * @param integer
+ * @param string
+ * @return string
+ */
+function smarty_modifier_indent($string,$chars=4,$char=" ")
+{
+ return preg_replace('!^!m',str_repeat($char,$chars),$string);
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php
index fecb71686c..ee37423329 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php
@@ -1,25 +1,25 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty lower modifier plugin
- *
- * Type: modifier<br>
- * Name: lower<br>
- * Purpose: convert string to lowercase
- * @link http://smarty.php.net/manual/en/language.modifier.lower.php
- * lower (Smarty online manual)
- * @param string
- * @return string
- */
-function smarty_modifier_lower($string)
-{
- return strtolower($string);
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty lower modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: lower<br>
+ * Purpose: convert string to lowercase
+ * @link http://smarty.php.net/manual/en/language.modifier.lower.php
+ * lower (Smarty online manual)
+ * @param string
+ * @return string
+ */
+function smarty_modifier_lower($string)
+{
+ return strtolower($string);
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php
index 2a5f238bbd..5a9b74452a 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php
@@ -1,35 +1,35 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty plugin
- *
- * Type: modifier<br>
- * Name: nl2br<br>
- * Date: Feb 26, 2003
- * Purpose: convert \r\n, \r or \n to <<br>>
- * Input:<br>
- * - contents = contents to replace
- * - preceed_test = if true, includes preceeding break tags
- * in replacement
- * Example: {$text|nl2br}
- * @link http://smarty.php.net/manual/en/language.modifier.nl2br.php
- * nl2br (Smarty online manual)
- * @version 1.0
- * @author Monte Ohrt <monte@ispi.net>
- * @param string
- * @return string
- */
-function smarty_modifier_nl2br($string)
-{
- return nl2br($string);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty plugin
+ *
+ * Type: modifier<br>
+ * Name: nl2br<br>
+ * Date: Feb 26, 2003
+ * Purpose: convert \r\n, \r or \n to <<br>>
+ * Input:<br>
+ * - contents = contents to replace
+ * - preceed_test = if true, includes preceeding break tags
+ * in replacement
+ * Example: {$text|nl2br}
+ * @link http://smarty.php.net/manual/en/language.modifier.nl2br.php
+ * nl2br (Smarty online manual)
+ * @version 1.0
+ * @author Monte Ohrt <monte@ispi.net>
+ * @param string
+ * @return string
+ */
+function smarty_modifier_nl2br($string)
+{
+ return nl2br($string);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php
index d2d5e813bd..dca02d1bd6 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php
@@ -1,18 +1,18 @@
-<?php
-/** @package Smarty
-* @subpackage plugins */
-
-/**
- * Smarty plugin
- * -------------------------------------------------------------
- * Type: modifier
- * Name: rawurlencode
- * Purpose: encode string for use in PDFdefaultConverter TOC
- * -------------------------------------------------------------
- */
-function smarty_modifier_rawurlencode($string)
-{
- return rawurlencode($string);
-}
-
-?>
+<?php
+/** @package Smarty
+* @subpackage plugins */
+
+/**
+ * Smarty plugin
+ * -------------------------------------------------------------
+ * Type: modifier
+ * Name: rawurlencode
+ * Purpose: encode string for use in PDFdefaultConverter TOC
+ * -------------------------------------------------------------
+ */
+function smarty_modifier_rawurlencode($string)
+{
+ return rawurlencode($string);
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php
index a467dfba57..b9cc865ea8 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php
@@ -1,29 +1,29 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty regex_replace modifier plugin
- *
- * Type: modifier<br>
- * Name: regex_replace<br>
- * Purpose: regular epxression search/replace
- * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
- * regex_replace (Smarty online manual)
- * @param string
- * @param string|array
- * @param string|array
- * @return string
- */
-function smarty_modifier_regex_replace($string, $search, $replace)
-{
- return preg_replace($search, $replace, $string);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty regex_replace modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: regex_replace<br>
+ * Purpose: regular epxression search/replace
+ * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
+ * regex_replace (Smarty online manual)
+ * @param string
+ * @param string|array
+ * @param string|array
+ * @return string
+ */
+function smarty_modifier_regex_replace($string, $search, $replace)
+{
+ return preg_replace($search, $replace, $string);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php
index 590e11b4ed..2a43515f7e 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php
@@ -1,29 +1,29 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty replace modifier plugin
- *
- * Type: modifier<br>
- * Name: replace<br>
- * Purpose: simple search/replace
- * @link http://smarty.php.net/manual/en/language.modifier.replace.php
- * replace (Smarty online manual)
- * @param string
- * @param string
- * @param string
- * @return string
- */
-function smarty_modifier_replace($string, $search, $replace)
-{
- return str_replace($search, $replace, $string);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty replace modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: replace<br>
+ * Purpose: simple search/replace
+ * @link http://smarty.php.net/manual/en/language.modifier.replace.php
+ * replace (Smarty online manual)
+ * @param string
+ * @param string
+ * @param string
+ * @return string
+ */
+function smarty_modifier_replace($string, $search, $replace)
+{
+ return str_replace($search, $replace, $string);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php
index bcc5f94160..dad057f9b5 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php
@@ -1,29 +1,29 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty spacify modifier plugin
- *
- * Type: modifier<br>
- * Name: spacify<br>
- * Purpose: add spaces between characters in a string
- * @link http://smarty.php.net/manual/en/language.modifier.spacify.php
- * spacify (Smarty online manual)
- * @param string
- * @param string
- * @return string
- */
-function smarty_modifier_spacify($string, $spacify_char = ' ')
-{
- return implode($spacify_char,
- preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY));
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty spacify modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: spacify<br>
+ * Purpose: add spaces between characters in a string
+ * @link http://smarty.php.net/manual/en/language.modifier.spacify.php
+ * spacify (Smarty online manual)
+ * @param string
+ * @param string
+ * @return string
+ */
+function smarty_modifier_spacify($string, $spacify_char = ' ')
+{
+ return implode($spacify_char,
+ preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY));
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php
index 499031373d..efd621506f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php
@@ -1,28 +1,28 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty string_format modifier plugin
- *
- * Type: modifier<br>
- * Name: string_format<br>
- * Purpose: format strings via sprintf
- * @link http://smarty.php.net/manual/en/language.modifier.string.format.php
- * string_format (Smarty online manual)
- * @param string
- * @param string
- * @return string
- */
-function smarty_modifier_string_format($string, $format)
-{
- return sprintf($format, $string);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty string_format modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: string_format<br>
+ * Purpose: format strings via sprintf
+ * @link http://smarty.php.net/manual/en/language.modifier.string.format.php
+ * string_format (Smarty online manual)
+ * @param string
+ * @param string
+ * @return string
+ */
+function smarty_modifier_string_format($string, $format)
+{
+ return sprintf($format, $string);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php
index fc67558201..0db2f8ae21 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php
@@ -1,33 +1,33 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty strip modifier plugin
- *
- * Type: modifier<br>
- * Name: strip<br>
- * Purpose: Replace all repeated spaces, newlines, tabs
- * with a single space or supplied replacement string.<br>
- * Example: {$var|strip} {$var|strip:"&nbsp;"}
- * Date: September 25th, 2002
- * @link http://smarty.php.net/manual/en/language.modifier.strip.php
- * strip (Smarty online manual)
- * @author Monte Ohrt <monte@ispi.net>
- * @version 1.0
- * @param string
- * @param string
- * @return string
- */
-function smarty_modifier_strip($text, $replace = ' ')
-{
- return preg_replace('!\s+!', $replace, $text);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty strip modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: strip<br>
+ * Purpose: Replace all repeated spaces, newlines, tabs
+ * with a single space or supplied replacement string.<br>
+ * Example: {$var|strip} {$var|strip:"&nbsp;"}
+ * Date: September 25th, 2002
+ * @link http://smarty.php.net/manual/en/language.modifier.strip.php
+ * strip (Smarty online manual)
+ * @author Monte Ohrt <monte@ispi.net>
+ * @version 1.0
+ * @param string
+ * @param string
+ * @return string
+ */
+function smarty_modifier_strip($text, $replace = ' ')
+{
+ return preg_replace('!\s+!', $replace, $text);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php
index 516a87fcd4..45f1ec14d1 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php
@@ -1,31 +1,31 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty strip_tags modifier plugin
- *
- * Type: modifier<br>
- * Name: strip_tags<br>
- * Purpose: strip html tags from text
- * @link http://smarty.php.net/manual/en/language.modifier.strip.tags.php
- * strip_tags (Smarty online manual)
- * @param string
- * @param boolean
- * @return string
- */
-function smarty_modifier_strip_tags($string, $replace_with_space = true)
-{
- if ($replace_with_space)
- return preg_replace('!<[^>]*?>!', ' ', $string);
- else
- return strip_tags($string);
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty strip_tags modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: strip_tags<br>
+ * Purpose: strip html tags from text
+ * @link http://smarty.php.net/manual/en/language.modifier.strip.tags.php
+ * strip_tags (Smarty online manual)
+ * @param string
+ * @param boolean
+ * @return string
+ */
+function smarty_modifier_strip_tags($string, $replace_with_space = true)
+{
+ if ($replace_with_space)
+ return preg_replace('!<[^>]*?>!', ' ', $string);
+ else
+ return strip_tags($string);
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php
index 775a20e874..c82b14a321 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php
@@ -1,43 +1,43 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty truncate modifier plugin
- *
- * Type: modifier<br>
- * Name: truncate<br>
- * Purpose: Truncate a string to a certain length if necessary,
- * optionally splitting in the middle of a word, and
- * appending the $etc string.
- * @link http://smarty.php.net/manual/en/language.modifier.truncate.php
- * truncate (Smarty online manual)
- * @param string
- * @param integer
- * @param string
- * @param boolean
- * @return string
- */
-function smarty_modifier_truncate($string, $length = 80, $etc = '...',
- $break_words = false)
-{
- if ($length == 0)
- return '';
-
- if (strlen($string) > $length) {
- $length -= strlen($etc);
- if (!$break_words)
- $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
-
- return substr($string, 0, $length).$etc;
- } else
- return $string;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty truncate modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: truncate<br>
+ * Purpose: Truncate a string to a certain length if necessary,
+ * optionally splitting in the middle of a word, and
+ * appending the $etc string.
+ * @link http://smarty.php.net/manual/en/language.modifier.truncate.php
+ * truncate (Smarty online manual)
+ * @param string
+ * @param integer
+ * @param string
+ * @param boolean
+ * @return string
+ */
+function smarty_modifier_truncate($string, $length = 80, $etc = '...',
+ $break_words = false)
+{
+ if ($length == 0)
+ return '';
+
+ if (strlen($string) > $length) {
+ $length -= strlen($etc);
+ if (!$break_words)
+ $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
+
+ return substr($string, 0, $length).$etc;
+ } else
+ return $string;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php
index 899f6bb921..9d9ef3567d 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php
@@ -1,25 +1,25 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty upper modifier plugin
- *
- * Type: modifier<br>
- * Name: upper<br>
- * Purpose: convert string to uppercase
- * @link http://smarty.php.net/manual/en/language.modifier.upper.php
- * upper (Smarty online manual)
- * @param string
- * @return string
- */
-function smarty_modifier_upper($string)
-{
- return strtoupper($string);
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty upper modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: upper<br>
+ * Purpose: convert string to uppercase
+ * @link http://smarty.php.net/manual/en/language.modifier.upper.php
+ * upper (Smarty online manual)
+ * @param string
+ * @return string
+ */
+function smarty_modifier_upper($string)
+{
+ return strtoupper($string);
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php
index fe4407fc33..55b4a1df3f 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php
@@ -1,28 +1,28 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Smarty wordwrap modifier plugin
- *
- * Type: modifier<br>
- * Name: wordwrap<br>
- * Purpose: wrap a string of text at a given length
- * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php
- * wordwrap (Smarty online manual)
- * @param string
- * @param integer
- * @param string
- * @param boolean
- * @return string
- */
-function smarty_modifier_wordwrap($string,$length=80,$break="\n",$cut=false)
-{
- return wordwrap($string,$length,$break,$cut);
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Smarty wordwrap modifier plugin
+ *
+ * Type: modifier<br>
+ * Name: wordwrap<br>
+ * Purpose: wrap a string of text at a given length
+ * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php
+ * wordwrap (Smarty online manual)
+ * @param string
+ * @param integer
+ * @param string
+ * @param boolean
+ * @return string
+ */
+function smarty_modifier_wordwrap($string,$length=80,$break="\n",$cut=false)
+{
+ return wordwrap($string,$length,$break,$cut);
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php
index 1fa5fe1707..e82acc1ca1 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php
@@ -1,75 +1,75 @@
-<?php
-/**
- * Smarty plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-/**
- * Smarty trimwhitespace outputfilter plugin
- *
- * File: outputfilter.trimwhitespace.php<br>
- * Type: outputfilter<br>
- * Name: trimwhitespace<br>
- * Date: Jan 25, 2003<br>
- * Purpose: trim leading white space and blank lines from
- * template source after it gets interpreted, cleaning
- * up code and saving bandwidth. Does not affect
- * <<PRE>></PRE> and <SCRIPT></SCRIPT> blocks.<br>
- * Install: Drop into the plugin directory, call
- * <code>$smarty->load_filter('output','trimwhitespace');</code>
- * from application.
- * @author Monte Ohrt <monte@ispi.net>
- * @author Contributions from Lars Noschinski <lars@usenet.noschinski.de>
- * @version 1.3
- * @param string
- * @param Smarty
- */
- function smarty_outputfilter_trimwhitespace($source, &$smarty)
- {
- // Pull out the script blocks
- preg_match_all("!<script[^>]+>.*?</script>!is", $source, $match);
- $_script_blocks = $match[0];
- $source = preg_replace("!<script[^>]+>.*?</script>!is",
- '@@@SMARTY:TRIM:SCRIPT@@@', $source);
-
- // Pull out the pre blocks
- preg_match_all("!<pre>.*?</pre>!is", $source, $match);
- $_pre_blocks = $match[0];
- $source = preg_replace("!<pre>.*?</pre>!is",
- '@@@SMARTY:TRIM:PRE@@@', $source);
-
- // Pull out the textarea blocks
- preg_match_all("!<textarea[^>]+>.*?</textarea>!is", $source, $match);
- $_textarea_blocks = $match[0];
- $source = preg_replace("!<textarea[^>]+>.*?</textarea>!is",
- '@@@SMARTY:TRIM:TEXTAREA@@@', $source);
-
- // remove all leading spaces, tabs and carriage returns NOT
- // preceeded by a php close tag.
- $source = trim(preg_replace('/((?<!\?>)\n)[\s]+/m', '\1', $source));
-
- // replace script blocks
- smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:SCRIPT@@@",$_script_blocks, $source);
-
- // replace pre blocks
- smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:PRE@@@",$_pre_blocks, $source);
-
- // replace textarea blocks
- smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:TEXTAREA@@@",$_textarea_blocks, $source);
-
- return $source;
- }
-
-function smarty_outputfilter_trimwhitespace_replace($search_str, $replace, &$subject) {
- $_len = strlen($search_str);
- $_pos = 0;
- for ($_i=0, $_count=count($replace); $_i<$_count; $_i++)
- if (($_pos=strpos($subject, $search_str, $_pos))!==false)
- $subject = substr_replace($subject, $replace[$_i], $_pos, $_len);
- else
- break;
-
-}
-
-?>
+<?php
+/**
+ * Smarty plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+/**
+ * Smarty trimwhitespace outputfilter plugin
+ *
+ * File: outputfilter.trimwhitespace.php<br>
+ * Type: outputfilter<br>
+ * Name: trimwhitespace<br>
+ * Date: Jan 25, 2003<br>
+ * Purpose: trim leading white space and blank lines from
+ * template source after it gets interpreted, cleaning
+ * up code and saving bandwidth. Does not affect
+ * <<PRE>></PRE> and <SCRIPT></SCRIPT> blocks.<br>
+ * Install: Drop into the plugin directory, call
+ * <code>$smarty->load_filter('output','trimwhitespace');</code>
+ * from application.
+ * @author Monte Ohrt <monte@ispi.net>
+ * @author Contributions from Lars Noschinski <lars@usenet.noschinski.de>
+ * @version 1.3
+ * @param string
+ * @param Smarty
+ */
+ function smarty_outputfilter_trimwhitespace($source, &$smarty)
+ {
+ // Pull out the script blocks
+ preg_match_all("!<script[^>]+>.*?</script>!is", $source, $match);
+ $_script_blocks = $match[0];
+ $source = preg_replace("!<script[^>]+>.*?</script>!is",
+ '@@@SMARTY:TRIM:SCRIPT@@@', $source);
+
+ // Pull out the pre blocks
+ preg_match_all("!<pre>.*?</pre>!is", $source, $match);
+ $_pre_blocks = $match[0];
+ $source = preg_replace("!<pre>.*?</pre>!is",
+ '@@@SMARTY:TRIM:PRE@@@', $source);
+
+ // Pull out the textarea blocks
+ preg_match_all("!<textarea[^>]+>.*?</textarea>!is", $source, $match);
+ $_textarea_blocks = $match[0];
+ $source = preg_replace("!<textarea[^>]+>.*?</textarea>!is",
+ '@@@SMARTY:TRIM:TEXTAREA@@@', $source);
+
+ // remove all leading spaces, tabs and carriage returns NOT
+ // preceeded by a php close tag.
+ $source = trim(preg_replace('/((?<!\?>)\n)[\s]+/m', '\1', $source));
+
+ // replace script blocks
+ smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:SCRIPT@@@",$_script_blocks, $source);
+
+ // replace pre blocks
+ smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:PRE@@@",$_pre_blocks, $source);
+
+ // replace textarea blocks
+ smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:TEXTAREA@@@",$_textarea_blocks, $source);
+
+ return $source;
+ }
+
+function smarty_outputfilter_trimwhitespace_replace($search_str, $replace, &$subject) {
+ $_len = strlen($search_str);
+ $_pos = 0;
+ for ($_i=0, $_count=count($replace); $_i<$_count; $_i++)
+ if (($_pos=strpos($subject, $search_str, $_pos))!==false)
+ $subject = substr_replace($subject, $replace[$_i], $_pos, $_len);
+ else
+ break;
+
+}
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php
index 72b8a48c20..090ee9cd90 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php
@@ -1,30 +1,30 @@
-<?php
-/**
- * Smarty shared plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * escape_special_chars common function
- *
- * Function: smarty_function_escape_special_chars<br>
- * Purpose: used by other smarty functions to escape
- * special chars except for already escaped ones
- * @param string
- * @return string
- */
-function smarty_function_escape_special_chars($string)
-{
- if(!is_array($string)) {
- $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
- $string = htmlspecialchars($string);
- $string = str_replace(array('%%%SMARTY_START%%%','%%%SMARTY_END%%%'), array('&',';'), $string);
- }
- return $string;
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty shared plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * escape_special_chars common function
+ *
+ * Function: smarty_function_escape_special_chars<br>
+ * Purpose: used by other smarty functions to escape
+ * special chars except for already escaped ones
+ * @param string
+ * @return string
+ */
+function smarty_function_escape_special_chars($string)
+{
+ if(!is_array($string)) {
+ $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
+ $string = htmlspecialchars($string);
+ $string = str_replace(array('%%%SMARTY_START%%%','%%%SMARTY_END%%%'), array('&',';'), $string);
+ }
+ return $string;
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php
index 25c7f5c880..acdd777359 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php
@@ -1,43 +1,43 @@
-<?php
-/**
- * Smarty shared plugin
- * @package Smarty
- * @subpackage plugins
- */
-
-
-/**
- * Function: smarty_make_timestamp<br>
- * Purpose: used by other smarty functions to make a timestamp
- * from a string.
- * @param string
- * @return string
- */
-function smarty_make_timestamp($string)
-{
- if(empty($string)) {
- $string = "now";
- }
- $time = strtotime($string);
- if (is_numeric($time) && $time != -1)
- return $time;
-
- // is mysql timestamp format of YYYYMMDDHHMMSS?
- if (preg_match('/^\d{14}$/', $string)) {
- $time = mktime(substr($string,8,2),substr($string,10,2),substr($string,12,2),
- substr($string,4,2),substr($string,6,2),substr($string,0,4));
-
- return $time;
- }
-
- // couldn't recognize it, try to return a time
- $time = (int) $string;
- if ($time > 0)
- return $time;
- else
- return time();
-}
-
-/* vim: set expandtab: */
-
-?>
+<?php
+/**
+ * Smarty shared plugin
+ * @package Smarty
+ * @subpackage plugins
+ */
+
+
+/**
+ * Function: smarty_make_timestamp<br>
+ * Purpose: used by other smarty functions to make a timestamp
+ * from a string.
+ * @param string
+ * @return string
+ */
+function smarty_make_timestamp($string)
+{
+ if(empty($string)) {
+ $string = "now";
+ }
+ $time = strtotime($string);
+ if (is_numeric($time) && $time != -1)
+ return $time;
+
+ // is mysql timestamp format of YYYYMMDDHHMMSS?
+ if (preg_match('/^\d{14}$/', $string)) {
+ $time = mktime(substr($string,8,2),substr($string,10,2),substr($string,12,2),
+ substr($string,4,2),substr($string,6,2),substr($string,0,4));
+
+ return $time;
+ }
+
+ // couldn't recognize it, try to return a time
+ $time = (int) $string;
+ if ($time > 0)
+ return $time;
+ else
+ return time();
+}
+
+/* vim: set expandtab: */
+
+?>
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/clone.inc.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/clone.inc.php
index fbc308ef70..e1c86f6f45 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/clone.inc.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/clone.inc.php
@@ -1,13 +1,13 @@
-<?php
-
-/**
- * Clone an object in PHP 4
- * @param object
- * @return object
- */
-function phpDocumentor_clone($obj)
-{
- return $obj;
-}
-
+<?php
+
+/**
+ * Clone an object in PHP 4
+ * @param object
+ * @return object
+ */
+function phpDocumentor_clone($obj)
+{
+ return $obj;
+}
+
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/clone5.inc.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/clone5.inc.php
index 20919a9930..775453939b 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/clone5.inc.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/clone5.inc.php
@@ -1,14 +1,14 @@
-<?php
-
-/**
- * Clone an object in PHP 5
- * @param object
- * @return object
- * @ignore
- */
-function phpDocumentor_clone($obj)
-{
- return clone $obj;
-}
-
+<?php
+
+/**
+ * Clone an object in PHP 5
+ * @param object
+ * @return object
+ * @ignore
+ */
+function phpDocumentor_clone($obj)
+{
+ return clone $obj;
+}
+
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/common.inc.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/common.inc.php
index 9367d804fd..4b097197e0 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/common.inc.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/common.inc.php
@@ -1,259 +1,259 @@
-<?php
-/**
- * Common information needed by all portions of the application
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2001-2006 Gregory Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @author Greg Beaver <cellog@php.net>
- * @copyright 2001-2006 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @see parserDocBlock, parserInclude, parserPage, parserClass
- * @see parserDefine, parserFunction, parserMethod, parserVar
- * @since 1.0rc1
- */
-/** phpDocumentor version */
-if ('@PEAR-DIR@' != '@'.'PEAR-DIR@')
-{
- define("PHPDOCUMENTOR_VER","@VER@");
-} else {
- define("PHPDOCUMENTOR_VER","1.3.2");
-}
-/** phpDocumentor version */
-define("PHPDOCUMENTOR_WEBSITE","http://www.phpdoc.org");
-define('SMART_PATH_DELIMITER', DIRECTORY_SEPARATOR ); // set the correct path delimiter
-define('tokenizer_ext', extension_loaded('tokenizer') && version_compare(phpversion(),"4.3.0",">="));
-// we just replace all the \ with / so that we can just operate on /
-define('PATH_DELIMITER', '/' ); // set the correct path delimiter
-define('PHPDOCUMENTOR_WINDOWS',substr(PHP_OS, 0, 3) == 'WIN');
-define('_IN_PHP5', phpversion() == '5.0.0RC1-dev' || phpversion() == '5.0.0RC2-dev' ||
- version_compare(phpversion(), '5.0.0', 'ge'));
-if ('@VER@' != '@'.'VER@')
-{
- if (_IN_PHP5) {
- require_once 'PhpDocumentor/phpDocumentor/clone5.inc.php';
- } else {
- require_once 'PhpDocumentor/phpDocumentor/clone.inc.php';
- }
-} else {
- if (_IN_PHP5) {
- require_once dirname(__FILE__) . '/clone5.inc.php';
- } else {
- require_once dirname(__FILE__) . '/clone.inc.php';
- }
-}
-if (isset($_SERVER['argv'])) {
- $argv = $_SERVER['argv'];
- $argc = $_SERVER['argc'];
-}
-
-/** used in phpdoc.php and new_phpdoc.php */
-function phpDocumentor_ConfigFileList($directory)
-{
- $ret = array();
- if (@is_dir($directory))
- {
- $ret = array();
- $d = @dir($directory); // thanks to Jason E Sweat (jsweat@users.sourceforge.net) for fix
- while($d && $entry=$d->read())
- {
- $getentry = false;
- if (strcmp($entry,".") != 0 && strcmp($entry,"..") != 0)
- {
- if (substr($entry,0,1) != ".") $getentry = true;
- }
- if ($getentry == true)
- {
- if (strpos($entry,'.ini'))
- if (is_file($directory . PATH_DELIMITER . $entry))
- {
- $ret[] = str_replace('.ini','',$entry);
- }
- }
- }
- if ($d) $d->close();
- } else
- {
- }
- return $ret;
-}
-
-
-/**
- * Parse an .ini file
- *
- * Works like {@link parse_ini_file}, except it will take a section like:
- *
- * <pre>
- * [MYVAR]
- * value1
- * value2
- * value3
- * </pre>
- *
- * and return an associative array(MYVAR => array(value1, value2, value3))
- * @return array
- * @param string full path to the ini file
- * @param boolean add an associative index for each section [in brackets]
- */
-function phpDocumentor_parse_ini_file($filename, $process_sections = false)
-{
- $ini_array = array();
- $sec_name = "";
- $lines = @file($filename);
- if( !$lines) return $lines;
- foreach($lines as $line)
- {
- // code by Greg Beaver, ignore comments
- if ($line[0] == ';') continue;
- $line = trim($line);
-
- if($line == "")
- {
- continue;
- }
- if($line[0] == "[" && $line[strlen($line) - 1] == "]")
- {
- $sec_name = substr($line, 1, strlen($line) - 2);
- } else
- {
- if (strpos($line,"="))
- {
- $pos = strpos($line, "=");
- $property = trim(substr($line, 0, $pos));
- // code by Greg Beaver
- if (substr($property, 0, 1) == '"' && substr($property, -1) == '"') {
- $property = stripcslashes(substr($property,1,count($property) - 2));
- }
- $value = trim(substr($line, $pos + 1));
- if ($value == 'false') $value = false;
- if ($value == 'true') $value = true;
- if (substr($value, 0, 1) == '"' && substr($value,-1) == '"')
- {
- $value = stripcslashes(substr($value,1,count($value) - 2));
- }
- // done additions
-
- if($process_sections)
- {
- if ($sec_name != '')
- $ini_array[$sec_name][$property] = $value;
- else
- $ini_array[$property] = $value;
- } else
- {
- $ini_array[$property] = $value;
- }
- } else
- {
- // code by Greg Beaver
- if (trim($line[0]) == ';') continue;
- if($process_sections)
- {
- $ini_array[$sec_name][] = trim($line);
- }
- // done additions
- }
- }
- }
- return $ini_array;
-}
-
-
-if (!function_exists('array_key_exists'))
-{
-/** @ignore */
-function array_key_exists($key, $search)
-{
- foreach($search as $keys => $nul)
- {
- if ($key == $keys) return true;
- }
- return false;
-}
-}
-if (!function_exists('is_a'))
-{
-/** @ignore */
-function is_a($classname, $classquery)
-{
- $father = get_parent_class($classname);
- if (strtolower($father) == strtolower($classquery))
- {
- return true;
- } elseif (!empty($father))
- {
- return is_a($father, $classquery);
- } else
- {
- return false;
- }
-}
-}
-
-
-/** Debugging output */
-function debug($s)
-{
- echo "$s\n";
-}
-
-/**
- * Returns a formatted var_dump for debugging purposes.
- * @param string $s string to display
- * @param mixed $v variable to display with var_dump()
- * @param mixed $v... unlimited number of additional variables to display with var_dump()
- */
-function fancy_debug($s,$v)
-{
- if (isset($GLOBALS['dont_debug']) && $GLOBALS['dont_debug']) return;
- debug($s."\n\n</pre><blockquote><pre>");
- var_dump($v);
- if (func_num_args()>2)
- {
- for($i=2;$i<func_num_args();$i++)
- {
- $a = func_get_arg($i);
-// debug(" ");
- var_dump($a);
- }
- }
- debug("</pre></blockquote><pre>\n\n");
-}
-
-/**
- * Returns a lower-cased version of get_class for PHP 5
- *
- * get_class() returns case as declared in the file in PHP 5
- */
-function phpDocumentor_get_class($object)
-{
- return strtolower(get_class($object));
-}
-
+<?php
+/**
+ * Common information needed by all portions of the application
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2001-2006 Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @author Greg Beaver <cellog@php.net>
+ * @copyright 2001-2006 Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @see parserDocBlock, parserInclude, parserPage, parserClass
+ * @see parserDefine, parserFunction, parserMethod, parserVar
+ * @since 1.0rc1
+ */
+/** phpDocumentor version */
+if ('@PEAR-DIR@' != '@'.'PEAR-DIR@')
+{
+ define("PHPDOCUMENTOR_VER","@VER@");
+} else {
+ define("PHPDOCUMENTOR_VER","1.3.2");
+}
+/** phpDocumentor version */
+define("PHPDOCUMENTOR_WEBSITE","http://www.phpdoc.org");
+define('SMART_PATH_DELIMITER', DIRECTORY_SEPARATOR ); // set the correct path delimiter
+define('tokenizer_ext', extension_loaded('tokenizer') && version_compare(phpversion(),"4.3.0",">="));
+// we just replace all the \ with / so that we can just operate on /
+define('PATH_DELIMITER', '/' ); // set the correct path delimiter
+define('PHPDOCUMENTOR_WINDOWS',substr(PHP_OS, 0, 3) == 'WIN');
+define('_IN_PHP5', phpversion() == '5.0.0RC1-dev' || phpversion() == '5.0.0RC2-dev' ||
+ version_compare(phpversion(), '5.0.0', 'ge'));
+if ('@VER@' != '@'.'VER@')
+{
+ if (_IN_PHP5) {
+ require_once 'PhpDocumentor/phpDocumentor/clone5.inc.php';
+ } else {
+ require_once 'PhpDocumentor/phpDocumentor/clone.inc.php';
+ }
+} else {
+ if (_IN_PHP5) {
+ require_once dirname(__FILE__) . '/clone5.inc.php';
+ } else {
+ require_once dirname(__FILE__) . '/clone.inc.php';
+ }
+}
+if (isset($_SERVER['argv'])) {
+ $argv = $_SERVER['argv'];
+ $argc = $_SERVER['argc'];
+}
+
+/** used in phpdoc.php and new_phpdoc.php */
+function phpDocumentor_ConfigFileList($directory)
+{
+ $ret = array();
+ if (@is_dir($directory))
+ {
+ $ret = array();
+ $d = @dir($directory); // thanks to Jason E Sweat (jsweat@users.sourceforge.net) for fix
+ while($d && $entry=$d->read())
+ {
+ $getentry = false;
+ if (strcmp($entry,".") != 0 && strcmp($entry,"..") != 0)
+ {
+ if (substr($entry,0,1) != ".") $getentry = true;
+ }
+ if ($getentry == true)
+ {
+ if (strpos($entry,'.ini'))
+ if (is_file($directory . PATH_DELIMITER . $entry))
+ {
+ $ret[] = str_replace('.ini','',$entry);
+ }
+ }
+ }
+ if ($d) $d->close();
+ } else
+ {
+ }
+ return $ret;
+}
+
+
+/**
+ * Parse an .ini file
+ *
+ * Works like {@link parse_ini_file}, except it will take a section like:
+ *
+ * <pre>
+ * [MYVAR]
+ * value1
+ * value2
+ * value3
+ * </pre>
+ *
+ * and return an associative array(MYVAR => array(value1, value2, value3))
+ * @return array
+ * @param string full path to the ini file
+ * @param boolean add an associative index for each section [in brackets]
+ */
+function phpDocumentor_parse_ini_file($filename, $process_sections = false)
+{
+ $ini_array = array();
+ $sec_name = "";
+ $lines = @file($filename);
+ if( !$lines) return $lines;
+ foreach($lines as $line)
+ {
+ // code by Greg Beaver, ignore comments
+ if ($line[0] == ';') continue;
+ $line = trim($line);
+
+ if($line == "")
+ {
+ continue;
+ }
+ if($line[0] == "[" && $line[strlen($line) - 1] == "]")
+ {
+ $sec_name = substr($line, 1, strlen($line) - 2);
+ } else
+ {
+ if (strpos($line,"="))
+ {
+ $pos = strpos($line, "=");
+ $property = trim(substr($line, 0, $pos));
+ // code by Greg Beaver
+ if (substr($property, 0, 1) == '"' && substr($property, -1) == '"') {
+ $property = stripcslashes(substr($property,1,count($property) - 2));
+ }
+ $value = trim(substr($line, $pos + 1));
+ if ($value == 'false') $value = false;
+ if ($value == 'true') $value = true;
+ if (substr($value, 0, 1) == '"' && substr($value,-1) == '"')
+ {
+ $value = stripcslashes(substr($value,1,count($value) - 2));
+ }
+ // done additions
+
+ if($process_sections)
+ {
+ if ($sec_name != '')
+ $ini_array[$sec_name][$property] = $value;
+ else
+ $ini_array[$property] = $value;
+ } else
+ {
+ $ini_array[$property] = $value;
+ }
+ } else
+ {
+ // code by Greg Beaver
+ if (trim($line[0]) == ';') continue;
+ if($process_sections)
+ {
+ $ini_array[$sec_name][] = trim($line);
+ }
+ // done additions
+ }
+ }
+ }
+ return $ini_array;
+}
+
+
+if (!function_exists('array_key_exists'))
+{
+/** @ignore */
+function array_key_exists($key, $search)
+{
+ foreach($search as $keys => $nul)
+ {
+ if ($key == $keys) return true;
+ }
+ return false;
+}
+}
+if (!function_exists('is_a'))
+{
+/** @ignore */
+function is_a($classname, $classquery)
+{
+ $father = get_parent_class($classname);
+ if (strtolower($father) == strtolower($classquery))
+ {
+ return true;
+ } elseif (!empty($father))
+ {
+ return is_a($father, $classquery);
+ } else
+ {
+ return false;
+ }
+}
+}
+
+
+/** Debugging output */
+function debug($s)
+{
+ echo "$s\n";
+}
+
+/**
+ * Returns a formatted var_dump for debugging purposes.
+ * @param string $s string to display
+ * @param mixed $v variable to display with var_dump()
+ * @param mixed $v... unlimited number of additional variables to display with var_dump()
+ */
+function fancy_debug($s,$v)
+{
+ if (isset($GLOBALS['dont_debug']) && $GLOBALS['dont_debug']) return;
+ debug($s."\n\n</pre><blockquote><pre>");
+ var_dump($v);
+ if (func_num_args()>2)
+ {
+ for($i=2;$i<func_num_args();$i++)
+ {
+ $a = func_get_arg($i);
+// debug(" ");
+ var_dump($a);
+ }
+ }
+ debug("</pre></blockquote><pre>\n\n");
+}
+
+/**
+ * Returns a lower-cased version of get_class for PHP 5
+ *
+ * get_class() returns case as declared in the file in PHP 5
+ */
+function phpDocumentor_get_class($object)
+{
+ return strtolower(get_class($object));
+}
+
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpDocumentor/find_phpdoc.php b/libs/PhpDocumentor-1.3.2/phpDocumentor/find_phpdoc.php
index 0e1dc14535..fa40f43746 100755
--- a/libs/PhpDocumentor-1.3.2/phpDocumentor/find_phpdoc.php
+++ b/libs/PhpDocumentor-1.3.2/phpDocumentor/find_phpdoc.php
@@ -1,45 +1,45 @@
-<?php
-/**
- * Utility file to locate phpDocumentor for a non-PEAR installation
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2002-2006 Gregory Beaver
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @package phpDocumentor
- * @subpackage setup
- * @author Gregory Beaver <cellog@php.net>
- * @copyright 2002-2006 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id$
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.2
- */
-/**
- * Dummy value
- */
-@include('');
-// value used to test whether include worked
-return 6;
+<?php
+/**
+ * Utility file to locate phpDocumentor for a non-PEAR installation
+ *
+ * phpDocumentor :: automatic documentation generator
+ *
+ * PHP versions 4 and 5
+ *
+ * Copyright (c) 2002-2006 Gregory Beaver
+ *
+ * LICENSE:
+ *
+ * This library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General
+ * Public License as published by the Free Software Foundation;
+ * either version 2.1 of the License, or (at your option) any
+ * later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package phpDocumentor
+ * @subpackage setup
+ * @author Gregory Beaver <cellog@php.net>
+ * @copyright 2002-2006 Gregory Beaver
+ * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
+ * @version CVS: $Id$
+ * @filesource
+ * @link http://www.phpdoc.org
+ * @link http://pear.php.net/PhpDocumentor
+ * @since 1.2
+ */
+/**
+ * Dummy value
+ */
+@include('');
+// value used to test whether include worked
+return 6;
?> \ No newline at end of file
diff --git a/libs/PhpDocumentor-1.3.2/phpdoc.php b/libs/PhpDocumentor-1.3.2/phpdoc.php
index 2217db98a6..5e6b369fde 100755
--- a/libs/PhpDocumentor-1.3.2/phpdoc.php
+++ b/libs/PhpDocumentor-1.3.2/phpdoc.php
@@ -1,469 +1,469 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<?php
-/**
- * Web Interface to phpDocumentor
- * @see new_phpdoc.php
- * @filesource
- * @deprecated in favor of docbuilder (see {@link docbuilder/config.php})
- * @package phpDocumentor
- */
-//
-//
-// An HTML interface for Joshua Eichorn's phpDocumentor
-// Author: Juan Pablo Morales <ju-moral@uniandes.edu.co>
-// Joshua Eichorn <jeichorn@phpdoc.org>
-// Gregory Beaver <cellog@users.sourceforge.net>
-//
-// phpDocumentor, a program for creating javadoc style documentation from php code
-// Copyright (C) 2000-2002 Joshua Eichorn
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-//
-// Copyleft 2001 Juan Pablo Morales
-
-// set up include path so we can find all files, no matter what
-$GLOBALS['_phpDocumentor_install_dir'] = dirname(realpath(__FILE__));
-// add my directory to the include path, and make it first, should fix any errors
-if (substr(PHP_OS, 0, 3) == 'WIN')
-ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
-else
-ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
-
-/**
-* common file information
-*/
-include_once("phpDocumentor/common.inc.php");
-if (!function_exists('version_compare'))
-{
- print "phpDocumentor requires PHP version 4.1.0 or greater to function";
- exit;
-}
-
-// find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
-$ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
-if (isset($ini['_phpDocumentor_options']['userdir']))
- $configdir = $ini['_phpDocumentor_options']['userdir'];
-else
- $configdir = $_phpDocumentor_install_dir . '/user';
-
-// allow the user to change this at runtime
-if (!empty($_REQUEST['altuserdir'])) $configdir = $_REQUEST['altuserdir'];
-?>
-<html>
- <head>
- <title>
- Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
- </title>
- <?php if(!isset($_GET['submit']) || !empty($_REQUEST['altuserdir'])) {
-?>
-<script type="text/javascript" language="Javascript">
-/**
- Creates some global variables
-*/
-function initializate() {
- //
- //The "platform independent" newLine
- //
- //Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
-if (navigator.appVersion.lastIndexOf('Win') != -1)
- $newLine="\r\n";
- else
- $newLine="\n";
-/* for($a=0;$a<document.dataForm.elements.length;$a++) {
- alert("The name is '"+document.dataForm.elements[$a].name+"' "+$a);
- }
-*/
-}
-/**Adds the contents of the help box as a directory
-*/
-function addDirectory($object) {
- $object.value = prepareString($object.value)+document.helpForm.fileName.value;
-}
-/**Adds the contents of the converter box to the converters list
-*/
-function addConverter($object) {
- $object.value = prepareString($object.value)+document.dataForm.ConverterSetting.value;
-}
-/**Adds the contents of the help box as a file to the given control
-*/
-function addFile($object) {
- $object.value = prepareString($object.value)+document.helpForm.fileName.value;
-}
-/**Takes a given string and leaves it ready to add a new string
- That is, puts the comma and the new line if needed
-*/
-function prepareString($myString) {
- //First verify that a comma is not at the end
- if($myString.lastIndexOf(",") >= $myString.length-2) {
- //We have a comma at the end
- return $myString;
- }
- if($myString.length > 0) {
- $myString+=","+$newLine;
- }
- return $myString;
-}
-/**Do the validation needed before sending the from and return a truth value indicating if the form can be sent
-*/
- function validate() {
- //Take out all newLines and change them by nothing
- //This could be done by using javascript function's replacebut that was implemented only until Navigator 4.0 and so it is better to use more backward compatible functions like substr
- document.dataForm.elements[0].value= stripNewLines(document.dataForm.elements[0].value);
- document.dataForm.elements[1].value= stripNewLines(document.dataForm.elements[1].value);
- document.dataForm.elements[2].value= stripNewLines(document.dataForm.elements[2].value);
- document.dataForm.elements[3].value= stripNewLines(document.dataForm.elements[3].value);
- document.dataForm.elements[4].value= stripNewLines(document.dataForm.elements[4].value);
- document.dataForm.elements[5].value= stripNewLines(document.dataForm.elements[5].value);
- document.dataForm.elements[6].value= stripNewLines(document.dataForm.elements[6].value);
- document.dataForm.elements[7].value= stripNewLines(document.dataForm.elements[7].value);
- //By returning true we are allowing the form to be submitted
- return true;
- }
-/**Takes a string and removes all the ocurrences of new lines
-Could have been implemented a lot easier with replace but it's not very backwards compatible
-*/
- function stripNewLines($myString) {
- return myReplace($myString,$newLine,'');
- }
- function myReplace($string,$text,$by) {
- // Replaces text with by in string
- var $strLength = $string.length, $txtLength = $text.length;
- if (($strLength == 0) || ($txtLength == 0)) return $string;
-
- var $i = $string.indexOf($text);
- if ((!$i) && ($text != $string.substring(0,$txtLength))) return $string;
- if ($i == -1) return $string;
-
- var $newstr = $string.substring(0,$i) + $by;
-
- if ($i+$txtLength < $strLength)
- $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
-
- return $newstr;
- }
-</script><?php } ?>
- </head>
- <?php
- //Find out if we are submitting and if we are, send it
- // This code originally by Joshua Eichorn on phpdoc.php
- //
- if(isset($_GET['submit']) && empty($_REQUEST['altuserdir'])) {
- echo "<body bgcolor=\"#ffffff\">";
- echo "<h1>Parsing Files ...</h1>";
- flush();
- echo "<pre>\n";
- /** phpdoc.inc */
- include("phpDocumentor/phpdoc.inc");
- echo "</pre>\n";
- echo "<h1>Operation Completed!!</h1>";
- } else {
- ?>
- <body bgcolor="#ffffff" onload="javascript:initializate()">
- <h1>
- Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
- </h1>
- <form name="dataForm" action="phpdoc.php" method="GET" onsubmit=
- "return validate()">
- <div align="center">
- <table cellpadding="0" cellspacing="0" border="0" width="80%"
- bgcolor="#000000">
- <tr>
- <td>
- <table cellpadding="0" cellspacing="1" border="0" width=
- "100%">
- <tr>
- <td bgcolor="#ff6633">
- <b>Use a pre-created config file for form values.</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#CCCCCC">
- Normally, phpDocumentor uses the form values from this form to set up parsing. In version 1.2,
- phpDocumentor allows you to "save" form values in configuration files so that you can replicate
- common complicated documentation tasks with only one time. Just choose a config file below or create a
- new one and refresh this page to choose it.<hr /><b>change config directory:</b><input size="20" type="text" name="altuserdir" value=""><?php if (!empty($_REQUEST['altuserdir'])) print '<br><i>changed to <b>"'.$_REQUEST['altuserdir'].'"</b></i>'; ?>
- <b>Choose a config:</b> <select name="setting[useconfig]">
- <option value="" <?php if (empty($_REQUEST['altuserdir'])) print 'selected'; ?>>don't use config file</option>
- <?php
- $dirs = array();
- $dirs = phpDocumentor_ConfigFileList($configdir);
- $path = '';
- $sel = ' selected';
- if (!empty($_REQUEST['altuserdir'])) $path = $configdir . PATH_DELIMITER;
- else $sel = '';
- foreach($dirs as $configfile)
- {
- print '<option value="'.$path.$configfile.'"'.$sel.'>'.$configfile.".ini</option>\n";
- $sel = '';
- }
- ?>
- </select><input type="SUBMIT" value=
- "Go" name="submitButton"><br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ffdddd">
- <b>Generated Documentation Title</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#eeeeee">
- Choose a title for the generated documentation<br>
- <input type="TEXT" name="setting[title]" size=
- "80" value="Generated Documentation"><br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ff6633">
- <b>Default Package Name</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#cccccc">
- Choose a name for the default package<br>
- <input type="TEXT" name="setting[defaultpackagename]" size=
- "80" value="default"><br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ffdddd">
- <b>Target</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#eeeeee">
- Target is the directory where
- the output produced by phpDocumentor will reside<br>
- <input type="TEXT" name="setting[target]" size=
- "80"><br>
- <a href=
- "javascript:addDirectory(document.dataForm.elements[5])">
- Add the directory in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ffdddd">
- <b>Custom Tags</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#eeeeee">
- Custom Tags is a comma-separated list of tags
- you want phpDocumentor to include as valid tags
- in this parse. An example would be "value, size"
- to allow @value and @size tags.
- <input type="TEXT" name="setting[customtags]" size=
- "80"><br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ff6633">
- <b>Packages to parse</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#CCCCCC">
- The parameter packages is a group of comma
- separated names of abstract packages that will
- be processed by phpDocumentor. All package names must be
- separated by commas.<br>
-<textarea rows="3" cols="80" name=
-"setting[packageoutput]"></textarea> <br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ffdddd">
- <b>Files to parse</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#eeeeee">
- This is a group of comma-separated names of php files
- or tutorials that will be processed by phpDocumentor.<br>
-<textarea rows="6" cols="80" name=
-"setting[filename]"></textarea> <br>
- <a href=
- "javascript:addFile(document.dataForm.elements[8])">
- Add the file in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ff6633">
- <b>Directory to parse</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#CCCCCC">
- This is a group of comma-separated directories where php files
- or tutorials are found that will be processed by phpDocumentor.
- phpDocumentor automatically parses subdirectories<br>
-<textarea rows="6" cols="80" name="setting[directory]"></textarea> <br>
- <a href=
- "javascript:addDirectory(document.dataForm.elements[9])">
- Add the directory in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ffdddd">
- <b>Output Information</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#eeeeee">
- <br>
- Output Information is a comma-separated list of <b>Outputformat:Converter:Templates</b>
- to apply to the output. The Converters must be classes descended from Converter
- defined in the phpDocumentor files, or parsing will not work. Outputformat
- may be HTML, XML, PDF, or CHM (case-sensitive) in version 1.2. There is only one Converter
- for both CHM and PDF, <b>default</b>. There are 2 HTML Converters,
- <b>frames</b> and <b>Smarty</b>. <b>frames templates</b> may be any of:<br><br>
- <b>default, l0l33t, phpdoc.de, phphtmllib, phpedit, DOM/default, DOM/l0l33t, or DOM/phpdoc.de</b>.
- <b>Smarty templates</b> may be any of:<br><br>
- <b>default or PHP</b>.
- <br>
- There is only 1 template for all other Converters, <b>default</b>
- <br>Output type:Converter name:template name <input type=
- "TEXT" name="setting[output]" value=
- "HTML:Smarty:default" size="80"><br>
- <select name="ConverterSetting">
- <option value="HTML:frames:default">HTML:frames:default</option>
- <option value="HTML:frames:l0l33t">HTML:frames:l0l33t</option>
- <option value="HTML:frames:phpdoc.de">HTML:frames:phpdoc.de</option>
- <option value="HTML:frames:phphtmllib">HTML:frames:phphtmllib</option>
- <option value="HTML:frames:phpedit">HTML:frames:phpedit</option>
- <option value="HTML:frames:DOM/default">HTML:frames:DOM/default</option>
- <option value="HTML:frames:DOM/l0l33t">HTML:frames:DOM/l0l33t</option>
- <option value="HTML:frames:DOM/phpdoc.de">HTML:frames:DOM/phpdoc.de</option>
- <option value="HTML:Smarty:default" SELECTED>HTML:Smarty:default</option>
- <option value="HTML:Smarty:PHP">HTML:Smarty:PHP</option>
- <option value="PDF:default:default">PDF:default:default</option>
- <option value="CHM:default:default">CHM:default:default</option>
- <option value="XML:DocBook/peardoc2:default">XML:DocBook/peardoc2:default</option>
-</select><br>
- <a href=
- "javascript:addConverter(document.dataForm.elements[10])">
- Add the converter in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ff6633">
- <b>Files to ignore</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#CCCCCC">
- A list of files (full path or filename), and patterns
- to ignore. Patterns may use wildcards * and ?. To
- ignore all subdirectories named "test" for example,
- using "test/" To ignore all files and directories
- with test in their name use "*test*"
-<textarea rows="6" cols="80" name="setting[ignore]"></textarea> <br>
- <a href=
- "javascript:addDirectory(document.dataForm.elements[12])">
- Add the directory in the help box</a>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ff6633">
- <b>Parse @access private</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#CCCCCC">
- The parameter Parse @access private tells phpDocumentor
- whether to parse elements with an "@access private" tag in their docblock<br>
- <input type="checkbox" name="setting[parseprivate]" value="on">Parse private <br>
- </td>
- </tr>
- <tr>
- <td bgcolor="#ff6633">
- <b>JavaDoc-compliant Description parsing.</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#CCCCCC">
- Normally, phpDocumentor uses several rules to determine the short description. This switch
- asks phpDocumentor to simply search for the first period (.) and use it to delineate the short
- description. In addition, the short description will not be separated from the long description<br>
- <input type="checkbox" name="setting[javadocdesc]" value="on">JavaDoc-compliant Description <br>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <input type="HIDDEN" name="interface" value="web"> <input type=
- "HIDDEN" name="submit" value="true"> <input type="SUBMIT" value=
- "Send Form" name="submitButton">
- </div>
- </form>
- <br>
- <br>
- <div align="center">
- <table cellpadding="0" cellspacing="0" border="0" width="80%" bgcolor=
- "#000000">
- <tr>
- <td>
- <table cellpadding="0" cellspacing="1" border="0" width=
- "100%">
- <tr>
- <td bgcolor="#ffdddd">
- <b>A little help</b>
- </td>
- </tr>
- <tr>
- <td bgcolor="#eeeeee">
- Since remember long path is not that easy here is a
- little file control to view names of files that can
- the be aggregated to the different properties
- <form name="helpForm" action="" method="get"
- enctype="multipart/form-data">
- <input size="80" type="file" name="fileName">
- </form>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
- <br>
- <b>Web-Interface Author:</b>
- <p>
- Juan Pablo Morales<br>
- <a href=
- "mailto:ju-moral@uniandes.edu.co">ju-moral@uniandes.edu.co</a><br>
- Gregory Beaver<br>
- <a href=
- "mailto:cellog@users.sourceforge.net">cellog@users.sourceforge.net</a>, all post-0.3.0 modifications
- </p>
- <p>
- If you have any problems with phpDocumentor, please visit the website: <a
- href='http://phpdocu.sourceforge.net'>phpdocu.sourceforge.net</a> and
- submit a bug
- </p>
- <!-- Created: Tue Jun 26 18:52:40 MEST 2001 -->
- <!-- hhmts start -->
-<pre>
-Last modified: $Date: 2005/10/17 18:15:16 $
-Revision: $Revision: 1.1 $
-</pre>
- <!-- hhmts end -->
- <?php } //End the else that prints all code
- ?>
- </body>
-</html>
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<?php
+/**
+ * Web Interface to phpDocumentor
+ * @see new_phpdoc.php
+ * @filesource
+ * @deprecated in favor of docbuilder (see {@link docbuilder/config.php})
+ * @package phpDocumentor
+ */
+//
+//
+// An HTML interface for Joshua Eichorn's phpDocumentor
+// Author: Juan Pablo Morales <ju-moral@uniandes.edu.co>
+// Joshua Eichorn <jeichorn@phpdoc.org>
+// Gregory Beaver <cellog@users.sourceforge.net>
+//
+// phpDocumentor, a program for creating javadoc style documentation from php code
+// Copyright (C) 2000-2002 Joshua Eichorn
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+//
+// Copyleft 2001 Juan Pablo Morales
+
+// set up include path so we can find all files, no matter what
+$GLOBALS['_phpDocumentor_install_dir'] = dirname(realpath(__FILE__));
+// add my directory to the include path, and make it first, should fix any errors
+if (substr(PHP_OS, 0, 3) == 'WIN')
+ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
+else
+ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
+
+/**
+* common file information
+*/
+include_once("phpDocumentor/common.inc.php");
+if (!function_exists('version_compare'))
+{
+ print "phpDocumentor requires PHP version 4.1.0 or greater to function";
+ exit;
+}
+
+// find the .ini directory by parsing phpDocumentor.ini and extracting _phpDocumentor_options[userdir]
+$ini = phpDocumentor_parse_ini_file($_phpDocumentor_install_dir . PATH_DELIMITER . 'phpDocumentor.ini', true);
+if (isset($ini['_phpDocumentor_options']['userdir']))
+ $configdir = $ini['_phpDocumentor_options']['userdir'];
+else
+ $configdir = $_phpDocumentor_install_dir . '/user';
+
+// allow the user to change this at runtime
+if (!empty($_REQUEST['altuserdir'])) $configdir = $_REQUEST['altuserdir'];
+?>
+<html>
+ <head>
+ <title>
+ Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
+ </title>
+ <?php if(!isset($_GET['submit']) || !empty($_REQUEST['altuserdir'])) {
+?>
+<script type="text/javascript" language="Javascript">
+/**
+ Creates some global variables
+*/
+function initializate() {
+ //
+ //The "platform independent" newLine
+ //
+ //Taken from http://developer.netscape.com/docs/manuals/communicator/jsref/brow1.htm#1010426
+if (navigator.appVersion.lastIndexOf('Win') != -1)
+ $newLine="\r\n";
+ else
+ $newLine="\n";
+/* for($a=0;$a<document.dataForm.elements.length;$a++) {
+ alert("The name is '"+document.dataForm.elements[$a].name+"' "+$a);
+ }
+*/
+}
+/**Adds the contents of the help box as a directory
+*/
+function addDirectory($object) {
+ $object.value = prepareString($object.value)+document.helpForm.fileName.value;
+}
+/**Adds the contents of the converter box to the converters list
+*/
+function addConverter($object) {
+ $object.value = prepareString($object.value)+document.dataForm.ConverterSetting.value;
+}
+/**Adds the contents of the help box as a file to the given control
+*/
+function addFile($object) {
+ $object.value = prepareString($object.value)+document.helpForm.fileName.value;
+}
+/**Takes a given string and leaves it ready to add a new string
+ That is, puts the comma and the new line if needed
+*/
+function prepareString($myString) {
+ //First verify that a comma is not at the end
+ if($myString.lastIndexOf(",") >= $myString.length-2) {
+ //We have a comma at the end
+ return $myString;
+ }
+ if($myString.length > 0) {
+ $myString+=","+$newLine;
+ }
+ return $myString;
+}
+/**Do the validation needed before sending the from and return a truth value indicating if the form can be sent
+*/
+ function validate() {
+ //Take out all newLines and change them by nothing
+ //This could be done by using javascript function's replacebut that was implemented only until Navigator 4.0 and so it is better to use more backward compatible functions like substr
+ document.dataForm.elements[0].value= stripNewLines(document.dataForm.elements[0].value);
+ document.dataForm.elements[1].value= stripNewLines(document.dataForm.elements[1].value);
+ document.dataForm.elements[2].value= stripNewLines(document.dataForm.elements[2].value);
+ document.dataForm.elements[3].value= stripNewLines(document.dataForm.elements[3].value);
+ document.dataForm.elements[4].value= stripNewLines(document.dataForm.elements[4].value);
+ document.dataForm.elements[5].value= stripNewLines(document.dataForm.elements[5].value);
+ document.dataForm.elements[6].value= stripNewLines(document.dataForm.elements[6].value);
+ document.dataForm.elements[7].value= stripNewLines(document.dataForm.elements[7].value);
+ //By returning true we are allowing the form to be submitted
+ return true;
+ }
+/**Takes a string and removes all the ocurrences of new lines
+Could have been implemented a lot easier with replace but it's not very backwards compatible
+*/
+ function stripNewLines($myString) {
+ return myReplace($myString,$newLine,'');
+ }
+ function myReplace($string,$text,$by) {
+ // Replaces text with by in string
+ var $strLength = $string.length, $txtLength = $text.length;
+ if (($strLength == 0) || ($txtLength == 0)) return $string;
+
+ var $i = $string.indexOf($text);
+ if ((!$i) && ($text != $string.substring(0,$txtLength))) return $string;
+ if ($i == -1) return $string;
+
+ var $newstr = $string.substring(0,$i) + $by;
+
+ if ($i+$txtLength < $strLength)
+ $newstr += myReplace($string.substring($i+$txtLength,$strLength),$text,$by);
+
+ return $newstr;
+ }
+</script><?php } ?>
+ </head>
+ <?php
+ //Find out if we are submitting and if we are, send it
+ // This code originally by Joshua Eichorn on phpdoc.php
+ //
+ if(isset($_GET['submit']) && empty($_REQUEST['altuserdir'])) {
+ echo "<body bgcolor=\"#ffffff\">";
+ echo "<h1>Parsing Files ...</h1>";
+ flush();
+ echo "<pre>\n";
+ /** phpdoc.inc */
+ include("phpDocumentor/phpdoc.inc");
+ echo "</pre>\n";
+ echo "<h1>Operation Completed!!</h1>";
+ } else {
+ ?>
+ <body bgcolor="#ffffff" onload="javascript:initializate()">
+ <h1>
+ Form to submit to phpDocumentor v<?php print PHPDOCUMENTOR_VER; ?>
+ </h1>
+ <form name="dataForm" action="phpdoc.php" method="GET" onsubmit=
+ "return validate()">
+ <div align="center">
+ <table cellpadding="0" cellspacing="0" border="0" width="80%"
+ bgcolor="#000000">
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="1" border="0" width=
+ "100%">
+ <tr>
+ <td bgcolor="#ff6633">
+ <b>Use a pre-created config file for form values.</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#CCCCCC">
+ Normally, phpDocumentor uses the form values from this form to set up parsing. In version 1.2,
+ phpDocumentor allows you to "save" form values in configuration files so that you can replicate
+ common complicated documentation tasks with only one time. Just choose a config file below or create a
+ new one and refresh this page to choose it.<hr /><b>change config directory:</b><input size="20" type="text" name="altuserdir" value=""><?php if (!empty($_REQUEST['altuserdir'])) print '<br><i>changed to <b>"'.$_REQUEST['altuserdir'].'"</b></i>'; ?>
+ <b>Choose a config:</b> <select name="setting[useconfig]">
+ <option value="" <?php if (empty($_REQUEST['altuserdir'])) print 'selected'; ?>>don't use config file</option>
+ <?php
+ $dirs = array();
+ $dirs = phpDocumentor_ConfigFileList($configdir);
+ $path = '';
+ $sel = ' selected';
+ if (!empty($_REQUEST['altuserdir'])) $path = $configdir . PATH_DELIMITER;
+ else $sel = '';
+ foreach($dirs as $configfile)
+ {
+ print '<option value="'.$path.$configfile.'"'.$sel.'>'.$configfile.".ini</option>\n";
+ $sel = '';
+ }
+ ?>
+ </select><input type="SUBMIT" value=
+ "Go" name="submitButton"><br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffdddd">
+ <b>Generated Documentation Title</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#eeeeee">
+ Choose a title for the generated documentation<br>
+ <input type="TEXT" name="setting[title]" size=
+ "80" value="Generated Documentation"><br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ff6633">
+ <b>Default Package Name</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#cccccc">
+ Choose a name for the default package<br>
+ <input type="TEXT" name="setting[defaultpackagename]" size=
+ "80" value="default"><br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffdddd">
+ <b>Target</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#eeeeee">
+ Target is the directory where
+ the output produced by phpDocumentor will reside<br>
+ <input type="TEXT" name="setting[target]" size=
+ "80"><br>
+ <a href=
+ "javascript:addDirectory(document.dataForm.elements[5])">
+ Add the directory in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffdddd">
+ <b>Custom Tags</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#eeeeee">
+ Custom Tags is a comma-separated list of tags
+ you want phpDocumentor to include as valid tags
+ in this parse. An example would be "value, size"
+ to allow @value and @size tags.
+ <input type="TEXT" name="setting[customtags]" size=
+ "80"><br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ff6633">
+ <b>Packages to parse</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#CCCCCC">
+ The parameter packages is a group of comma
+ separated names of abstract packages that will
+ be processed by phpDocumentor. All package names must be
+ separated by commas.<br>
+<textarea rows="3" cols="80" name=
+"setting[packageoutput]"></textarea> <br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffdddd">
+ <b>Files to parse</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#eeeeee">
+ This is a group of comma-separated names of php files
+ or tutorials that will be processed by phpDocumentor.<br>
+<textarea rows="6" cols="80" name=
+"setting[filename]"></textarea> <br>
+ <a href=
+ "javascript:addFile(document.dataForm.elements[8])">
+ Add the file in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ff6633">
+ <b>Directory to parse</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#CCCCCC">
+ This is a group of comma-separated directories where php files
+ or tutorials are found that will be processed by phpDocumentor.
+ phpDocumentor automatically parses subdirectories<br>
+<textarea rows="6" cols="80" name="setting[directory]"></textarea> <br>
+ <a href=
+ "javascript:addDirectory(document.dataForm.elements[9])">
+ Add the directory in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ffdddd">
+ <b>Output Information</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#eeeeee">
+ <br>
+ Output Information is a comma-separated list of <b>Outputformat:Converter:Templates</b>
+ to apply to the output. The Converters must be classes descended from Converter
+ defined in the phpDocumentor files, or parsing will not work. Outputformat
+ may be HTML, XML, PDF, or CHM (case-sensitive) in version 1.2. There is only one Converter
+ for both CHM and PDF, <b>default</b>. There are 2 HTML Converters,
+ <b>frames</b> and <b>Smarty</b>. <b>frames templates</b> may be any of:<br><br>
+ <b>default, l0l33t, phpdoc.de, phphtmllib, phpedit, DOM/default, DOM/l0l33t, or DOM/phpdoc.de</b>.
+ <b>Smarty templates</b> may be any of:<br><br>
+ <b>default or PHP</b>.
+ <br>
+ There is only 1 template for all other Converters, <b>default</b>
+ <br>Output type:Converter name:template name <input type=
+ "TEXT" name="setting[output]" value=
+ "HTML:Smarty:default" size="80"><br>
+ <select name="ConverterSetting">
+ <option value="HTML:frames:default">HTML:frames:default</option>
+ <option value="HTML:frames:l0l33t">HTML:frames:l0l33t</option>
+ <option value="HTML:frames:phpdoc.de">HTML:frames:phpdoc.de</option>
+ <option value="HTML:frames:phphtmllib">HTML:frames:phphtmllib</option>
+ <option value="HTML:frames:phpedit">HTML:frames:phpedit</option>
+ <option value="HTML:frames:DOM/default">HTML:frames:DOM/default</option>
+ <option value="HTML:frames:DOM/l0l33t">HTML:frames:DOM/l0l33t</option>
+ <option value="HTML:frames:DOM/phpdoc.de">HTML:frames:DOM/phpdoc.de</option>
+ <option value="HTML:Smarty:default" SELECTED>HTML:Smarty:default</option>
+ <option value="HTML:Smarty:PHP">HTML:Smarty:PHP</option>
+ <option value="PDF:default:default">PDF:default:default</option>
+ <option value="CHM:default:default">CHM:default:default</option>
+ <option value="XML:DocBook/peardoc2:default">XML:DocBook/peardoc2:default</option>
+</select><br>
+ <a href=
+ "javascript:addConverter(document.dataForm.elements[10])">
+ Add the converter in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ff6633">
+ <b>Files to ignore</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#CCCCCC">
+ A list of files (full path or filename), and patterns
+ to ignore. Patterns may use wildcards * and ?. To
+ ignore all subdirectories named "test" for example,
+ using "test/" To ignore all files and directories
+ with test in their name use "*test*"
+<textarea rows="6" cols="80" name="setting[ignore]"></textarea> <br>
+ <a href=
+ "javascript:addDirectory(document.dataForm.elements[12])">
+ Add the directory in the help box</a>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ff6633">
+ <b>Parse @access private</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#CCCCCC">
+ The parameter Parse @access private tells phpDocumentor
+ whether to parse elements with an "@access private" tag in their docblock<br>
+ <input type="checkbox" name="setting[parseprivate]" value="on">Parse private <br>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#ff6633">
+ <b>JavaDoc-compliant Description parsing.</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#CCCCCC">
+ Normally, phpDocumentor uses several rules to determine the short description. This switch
+ asks phpDocumentor to simply search for the first period (.) and use it to delineate the short
+ description. In addition, the short description will not be separated from the long description<br>
+ <input type="checkbox" name="setting[javadocdesc]" value="on">JavaDoc-compliant Description <br>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ <input type="HIDDEN" name="interface" value="web"> <input type=
+ "HIDDEN" name="submit" value="true"> <input type="SUBMIT" value=
+ "Send Form" name="submitButton">
+ </div>
+ </form>
+ <br>
+ <br>
+ <div align="center">
+ <table cellpadding="0" cellspacing="0" border="0" width="80%" bgcolor=
+ "#000000">
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="1" border="0" width=
+ "100%">
+ <tr>
+ <td bgcolor="#ffdddd">
+ <b>A little help</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#eeeeee">
+ Since remember long path is not that easy here is a
+ little file control to view names of files that can
+ the be aggregated to the different properties
+ <form name="helpForm" action="" method="get"
+ enctype="multipart/form-data">
+ <input size="80" type="file" name="fileName">
+ </form>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <br>
+ <b>Web-Interface Author:</b>
+ <p>
+ Juan Pablo Morales<br>
+ <a href=
+ "mailto:ju-moral@uniandes.edu.co">ju-moral@uniandes.edu.co</a><br>
+ Gregory Beaver<br>
+ <a href=
+ "mailto:cellog@users.sourceforge.net">cellog@users.sourceforge.net</a>, all post-0.3.0 modifications
+ </p>
+ <p>
+ If you have any problems with phpDocumentor, please visit the website: <a
+ href='http://phpdocu.sourceforge.net'>phpdocu.sourceforge.net</a> and
+ submit a bug
+ </p>
+ <!-- Created: Tue Jun 26 18:52:40 MEST 2001 -->
+ <!-- hhmts start -->
+<pre>
+Last modified: $Date: 2005/10/17 18:15:16 $
+Revision: $Revision: 1.1 $
+</pre>
+ <!-- hhmts end -->
+ <?php } //End the else that prints all code
+ ?>
+ </body>
+</html>
+
diff --git a/libs/Zend/Auth/Storage/NonPersistent.php b/libs/Zend/Auth/Storage/NonPersistent.php
index d36616b419..8c6fd6618a 100755
--- a/libs/Zend/Auth/Storage/NonPersistent.php
+++ b/libs/Zend/Auth/Storage/NonPersistent.php
@@ -1,96 +1,96 @@
-<?php
-
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category Zend
- * @package Zend_Auth
- * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id:$
- */
-
-
-/**
- * @see Zend_Auth_Storage_Interface
- */
-require_once 'Zend/Auth/Storage/Interface.php';
-
-
-/**
- * Non-Persistent Auth Storage
- *
- * Since HTTP Authentication happens again on each request, this will always be
- * re-populated. So there's no need to use sessions, this simple value class
- * will hold the data for rest of the current request.
- *
- * @category Zend
- * @package Zend_Auth
- * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-class Zend_Auth_Storage_NonPersistent implements Zend_Auth_Storage_Interface
-{
- /**
- * Holds the actual auth data
- */
- protected $_data;
-
-
- /**
- * Returns true if and only if storage is empty
- *
- * @throws Zend_Auth_Storage_Exception If it is impossible to determine whether storage is empty
- * @return boolean
- */
- public function isEmpty()
- {
- return empty($this->_data);
- }
-
- /**
- * Returns the contents of storage
- *
- * Behavior is undefined when storage is empty.
- *
- * @throws Zend_Auth_Storage_Exception If reading contents from storage is impossible
- * @return mixed
- */
- public function read()
- {
- return $this->_data;
- }
-
- /**
- * Writes $contents to storage
- *
- * @param mixed $contents
- * @throws Zend_Auth_Storage_Exception If writing $contents to storage is impossible
- * @return void
- */
- public function write($contents)
- {
- $this->_data = $contents;
- }
-
- /**
- * Clears contents from storage
- *
- * @throws Zend_Auth_Storage_Exception If clearing contents from storage is impossible
- * @return void
- */
- public function clear()
- {
- $this->_data = null;
- }
-}
+<?php
+
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category Zend
+ * @package Zend_Auth
+ * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @version $Id$
+ */
+
+
+/**
+ * @see Zend_Auth_Storage_Interface
+ */
+require_once 'Zend/Auth/Storage/Interface.php';
+
+
+/**
+ * Non-Persistent Auth Storage
+ *
+ * Since HTTP Authentication happens again on each request, this will always be
+ * re-populated. So there's no need to use sessions, this simple value class
+ * will hold the data for rest of the current request.
+ *
+ * @category Zend
+ * @package Zend_Auth
+ * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ */
+class Zend_Auth_Storage_NonPersistent implements Zend_Auth_Storage_Interface
+{
+ /**
+ * Holds the actual auth data
+ */
+ protected $_data;
+
+
+ /**
+ * Returns true if and only if storage is empty
+ *
+ * @throws Zend_Auth_Storage_Exception If it is impossible to determine whether storage is empty
+ * @return boolean
+ */
+ public function isEmpty()
+ {
+ return empty($this->_data);
+ }
+
+ /**
+ * Returns the contents of storage
+ *
+ * Behavior is undefined when storage is empty.
+ *
+ * @throws Zend_Auth_Storage_Exception If reading contents from storage is impossible
+ * @return mixed
+ */
+ public function read()
+ {
+ return $this->_data;
+ }
+
+ /**
+ * Writes $contents to storage
+ *
+ * @param mixed $contents
+ * @throws Zend_Auth_Storage_Exception If writing $contents to storage is impossible
+ * @return void
+ */
+ public function write($contents)
+ {
+ $this->_data = $contents;
+ }
+
+ /**
+ * Clears contents from storage
+ *
+ * @throws Zend_Auth_Storage_Exception If clearing contents from storage is impossible
+ * @return void
+ */
+ public function clear()
+ {
+ $this->_data = null;
+ }
+}
diff --git a/libs/Zend/Db/Adapter/Abstract.php b/libs/Zend/Db/Adapter/Abstract.php
index 1055f05a11..9e94b1c388 100755
--- a/libs/Zend/Db/Adapter/Abstract.php
+++ b/libs/Zend/Db/Adapter/Abstract.php
@@ -1,911 +1,911 @@
-<?php
-
-/**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category Zend
- * @package Zend_Db
- * @subpackage Adapter
- * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id$
- */
-
-
-/**
- * @see Zend_Db
- */
-require_once 'Zend/Db.php';
-
-/**
- * @see Zend_Db_Profiler
- */
-require_once 'Zend/Db/Profiler.php';
-
-/**
- * @see Zend_Db_Select
- */
-require_once 'Zend/Db/Select.php';
-
-
-/**
- * Class for connecting to SQL databases and performing common operations.
- *
- * @category Zend
- * @package Zend_Db
- * @subpackage Adapter
- * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-abstract class Zend_Db_Adapter_Abstract
-{
-
- /**
- * User-provided configuration
- *
- * @var array
- */
- protected $_config = array();
-
- /**
- * Fetch mode
- *
- * @var integer
- */
- protected $_fetchMode = Zend_Db::FETCH_ASSOC;
-
- /**
- * Query profiler
- *
- * @var Zend_Db_Profiler
- */
- protected $_profiler;
-
- /**
- * Database connection
- *
- * @var object|resource|null
- */
- protected $_connection = null;
-
- /**
- * Specifies the case of column names retrieved in queries
- * Options
- * Zend_Db::CASE_NATURAL (default)
- * Zend_Db::CASE_LOWER
- * Zend_Db::CASE_UPPER
- *
- * @access protected
- */
- protected $_caseFolding = Zend_Db::CASE_NATURAL;
-
- /**
- * Specifies whether the adapter automatically quotes identifiers.
- * If true, most SQL generated by Zend_Db classes applies
- * identifier quoting automatically.
- * If false, developer must quote identifiers themselves
- * by calling quoteIdentifier().
- *
- * @access protected
- */
- protected $_autoQuoteIdentifiers = true;
-
- /**
- * Constructor.
- *
- * $config is an array of key/value pairs containing configuration
- * options. These options are common to most adapters:
- *
- * dbname => (string) The name of the database to user
- * username => (string) Connect to the database as this username.
- * password => (string) Password associated with the username.
- * host => (string) What host to connect to, defaults to localhost
- *
- * Some options are used on a case-by-case basis by adapters:
- *
- * port => (string) The port of the database
- * persistent => (boolean) Whether to use a persistent connection or not, defaults to false
- * protocol => (string) The network protocol, defaults to TCPIP
- * caseFolding => (int)
- *
- * @param array $config An array of configuration keys.
- * @throws Zend_Db_Adapter_Exception
- */
- public function __construct(array $config = array())
- {
- $this->_checkRequiredOptions($config);
-
- $options = array(
- Zend_Db::CASE_FOLDING => $this->_caseFolding,
- Zend_DB::AUTO_QUOTE_IDENTIFIERS => $this->_autoQuoteIdentifiers
- );
- $driver_options = array();
-
- // normalize the config and merge it with the defaults
- if (array_key_exists('options', $config)) {
- // can't use array_merge() because keys might be integers
- foreach ((array) $config['options'] as $key => $value) {
- $options[$key] = $value;
- }
- }
- if (array_key_exists('driver_options', $config)) {
- // can't use array_merge() because keys might be integers
- foreach ((array) $config['driver_options'] as $key => $value) {
- $driver_options[$key] = $value;
- }
- }
- $this->_config = array_merge($this->_config, $config);
- $this->_config['options'] = $options;
- $this->_config['driver_options'] = $driver_options;
-
- // obtain the case setting, if there is one
- if (array_key_exists(Zend_Db::CASE_FOLDING, $options)) {
- $case = (int) $options[Zend_Db::CASE_FOLDING];
- switch ($case) {
- case Zend_Db::CASE_LOWER:
- case Zend_Db::CASE_UPPER:
- case Zend_Db::CASE_NATURAL:
- $this->_caseFolding = $case;
- break;
- default:
- require_once 'Zend/Db/Adapter/Exception.php';
- throw new Zend_Db_Adapter_Exception("Case must be one of the following constants: Zend_Db::CASE_NATURAL, Zend_Db::CASE_LOWER, Zend_Db::CASE_UPPER");
- }
- }
-
- // obtain quoting property if there is one
- if (array_key_exists(Zend_Db::AUTO_QUOTE_IDENTIFIERS, $options)) {
- $this->_autoQuoteIdentifiers = (bool) $options[Zend_Db::AUTO_QUOTE_IDENTIFIERS];
- }
-
- // create a profiler object
- $enabled = false;
- if (array_key_exists('profiler', $this->_config)) {
- $enabled = (bool) $this->_config['profiler'];
- unset($this->_config['profiler']);
- }
-
- $this->_profiler = new Zend_Db_Profiler($enabled);
- }
-
- /**
- * Check for config options that are mandatory.
- * Throw exceptions if any are missing.
- *
- * @param array $config
- * @throws Zend_Db_Adapter_Exception
- */
- protected function _checkRequiredOptions(array $config)
- {
- // we need at least a dbname
- if (! array_key_exists('dbname', $config)) {
- require_once 'Zend/Db/Adapter/Exception.php';
- throw new Zend_Db_Adapter_Exception("Configuration array must have a key for 'dbname' that names the database instance.");
- }
-
- if (! array_key_exists('password', $config)) {
- /**
- * @see Zend_Db_Adapter_Exception
- */
- require_once 'Zend/Db/Adapter/Exception.php';
- throw new Zend_Db_Adapter_Exception("Configuration array must have a key for 'password' for login credentials.");
- }
-
- if (! array_key_exists('username', $config)) {
- /**
- * @see Zend_Db_Adapter_Exception
- */
- require_once 'Zend/Db/Adapter/Exception.php';
- throw new Zend_Db_Adapter_Exception("Configuration array must have a key for 'username' for login credentials.");
- }
- }
-
- /**
- * Returns the underlying database connection object or resource.
- * If not presently connected, this initiates the connection.
- *
- * @return object|resource|null
- */
- public function getConnection()
- {
- $this->_connect();
- return $this->_connection;
- }
-
- /**
- * Returns the profiler for this adapter.
- *
- * @return Zend_Db_Profiler
- */
- public function getProfiler()
- {
- return $this->_profiler;
- }
-
- /**
- * Prepares and executes an SQL statement with bound data.
- *
- * @param mixed $sql The SQL statement with placeholders.
- * May be a string or Zend_Db_Select.
- * @param mixed $bind An array of data to bind to the placeholders.
- * @return Zend_Db_Statement_Interface
- */
- public function query($sql, $bind = array())
- {
- // connect to the database if needed
- $this->_connect();
-
- // is the $sql a Zend_Db_Select object?
- if ($sql instanceof Zend_Db_Select) {
- $sql = $sql->__toString();
- }
-
- // make sure $bind to an array;
- // don't use (array) typecasting because
- // because $bind may be a Zend_Db_Expr object
- if (!is_array($bind)) {
- $bind = array($bind);
- }
-
- // prepare and execute the statement with profiling
- $stmt = $this->prepare($sql);
- $stmt->execute($bind);
-
- // return the results embedded in the prepared statement object
- $stmt->setFetchMode($this->_fetchMode);
- return $stmt;
- }
-
- /**
- * Leave autocommit mode and begin a transaction.
- *
- * @return bool True
- */
- public function beginTransaction()
- {
- $this->_connect();
- $q = $this->_profiler->queryStart('begin', Zend_Db_Profiler::TRANSACTION);
- $this->_beginTransaction();
- $this->_profiler->queryEnd($q);
- return true;
- }
-
- /**
- * Commit a transaction and return to autocommit mode.
- *
- * @return bool True
- */
- public function commit()
- {
- $this->_connect();
- $q = $this->_profiler->queryStart('commit', Zend_Db_Profiler::TRANSACTION);
- $this->_commit();
- $this->_profiler->queryEnd($q);
- return true;
- }
-
- /**
- * Roll back a transaction and return to autocommit mode.
- *
- * @return bool True
- */
- public function rollBack()
- {
- $this->_connect();
- $q = $this->_profiler->queryStart('rollback', Zend_Db_Profiler::TRANSACTION);
- $this->_rollBack();
- $this->_profiler->queryEnd($q);
- return true;
- }
-
- /**
- * Inserts a table row with specified data.
- *
- * @param mixed $table The table to insert data into.
- * @param array $bind Column-value pairs.
- * @return int The number of affected rows.
- */
- public function insert($table, array $bind)
- {
- // extract and quote col names from the array keys
- $cols = array();
- $vals = array();
- foreach ($bind as $col => $val) {
- $cols[] = $this->quoteIdentifier($col, true);
- if ($val instanceof Zend_Db_Expr) {
- $vals[] = $val->__toString();
- unset($bind[$col]);
- } else {
- $vals[] = '?';
- }
- }
-
- // build the statement
- $sql = "INSERT INTO "
- . $this->quoteIdentifier($table, true)
- . ' (' . implode(', ', $cols) . ') '
- . 'VALUES (' . implode(', ', $vals) . ')';
-
- // execute the statement and return the number of affected rows
- $stmt = $this->query($sql, array_values($bind));
- $result = $stmt->rowCount();
- return $result;
- }
-
- /**
- * Updates table rows with specified data based on a WHERE clause.
- *
- * @param mixed $table The table to update.
- * @param array $bind Column-value pairs.
- * @param mixed $where UPDATE WHERE clause(s).
- * @return int The number of affected rows.
- */
- public function update($table, array $bind, $where = '')
- {
- /**
- * Build "col = ?" pairs for the statement,
- * except for Zend_Db_Expr which is treated literally.
- */
- $set = array();
- foreach ($bind as $col => $val) {
- if ($val instanceof Zend_Db_Expr) {
- $val = $val->__toString();
- unset($bind[$col]);
- } else {
- $val = '?';
- }
- $set[] = $this->quoteIdentifier($col, true) . ' = ' . $val;
- }
-
- $where = $this->_whereExpr($where);
-
- /**
- * Build the UPDATE statement
- */
- $sql = "UPDATE "
- . $this->quoteIdentifier($table, true)
- . ' SET ' . implode(', ', $set)
- . (($where) ? " WHERE $where" : '');
-
- /**
- * Execute the statement and return the number of affected rows
- */
- $stmt = $this->query($sql, array_values($bind));
- $result = $stmt->rowCount();
- return $result;
- }
-
- /**
- * Deletes table rows based on a WHERE clause.
- *
- * @param mixed $table The table to update.
- * @param mixed $where DELETE WHERE clause(s).
- * @return int The number of affected rows.
- */
- public function delete($table, $where = '')
- {
- $where = $this->_whereExpr($where);
-
- /**
- * Build the DELETE statement
- */
- $sql = "DELETE FROM "
- . $this->quoteIdentifier($table, true)
- . (($where) ? " WHERE $where" : '');
-
- /**
- * Execute the statement and return the number of affected rows
- */
- $stmt = $this->query($sql);
- $result = $stmt->rowCount();
- return $result;
- }
-
- /**
- * Convert an array, string, or Zend_Db_Expr object
- * into a string to put in a WHERE clause.
- *
- * @param mixed $where
- * @return string
- */
- protected function _whereExpr($where)
- {
- if (empty($where)) {
- return $where;
- }
- if (!is_array($where)) {
- $where = array($where);
- }
- foreach ($where as &$term) {
- if ($term instanceof Zend_Db_Expr) {
- $term = $term->__toString();
- }
- $term = '(' . $term . ')';
- }
- $where = implode(' AND ', $where);
- return $where;
- }
-
- /**
- * Creates and returns a new Zend_Db_Select object for this adapter.
- *
- * @return Zend_Db_Select
- */
- public function select()
- {
- return new Zend_Db_Select($this);
- }
-
- /**
- * Get the fetch mode.
- *
- * @return int
- */
- public function getFetchMode()
- {
- return $this->_fetchMode;
- }
-
- /**
- * Fetches all SQL result rows as a sequential array.
- * Uses the current fetchMode for the adapter.
- *
- * @param string|Zend_Db_Select $sql An SQL SELECT statement.
- * @param mixed $bind Data to bind into SELECT placeholders.
- * @return array
- */
- public function fetchAll($sql, $bind = array())
- {
- $stmt = $this->query($sql, $bind);
- $result = $stmt->fetchAll($this->_fetchMode);
- return $result;
- }
-
- /**
- * Fetches all SQL result rows as an associative array.
- *
- * The first column is the key, the entire row array is the
- * value.
- *
- * @param string|Zend_Db_Select $sql An SQL SELECT statement.
- * @param mixed $bind Data to bind into SELECT placeholders.
- * @return string
- */
- public function fetchAssoc($sql, $bind = array())
- {
- $stmt = $this->query($sql, $bind);
- $data = array();
- while ($row = $stmt->fetch($this->_fetchMode)) {
- $tmp = array_values(array_slice($row, 0, 1));
- $data[$tmp[0]] = $row;
- }
- return $data;
- }
-
- /**
- * Fetches the first column of all SQL result rows as an array.
- *
- * The first column in each row is used as the array key.
- *
- * @param string|Zend_Db_Select $sql An SQL SELECT statement.
- * @param mixed $bind Data to bind into SELECT placeholders.
- * @return array
- */
- public function fetchCol($sql, $bind = array())
- {
- $stmt = $this->query($sql, $bind);
- $result = $stmt->fetchAll(Zend_Db::FETCH_COLUMN, 0);
- return $result;
- }
-
- /**
- * Fetches all SQL result rows as an array of key-value pairs.
- *
- * The first column is the key, the second column is the
- * value.
- *
- * @param string|Zend_Db_Select $sql An SQL SELECT statement.
- * @param mixed $bind Data to bind into SELECT placeholders.
- * @return string
- */
- public function fetchPairs($sql, $bind = array())
- {
- $stmt = $this->query($sql, $bind);
- $data = array();
- while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) {
- $data[$row[0]] = $row[1];
- }
- return $data;
- }
-
- /**
- * Fetches the first column of the first row of the SQL result.
- *
- * @param string|Zend_Db_Select $sql An SQL SELECT statement.
- * @param mixed $bind Data to bind into SELECT placeholders.
- * @return string
- */
- public function fetchOne($sql, $bind = array())
- {
- $stmt = $this->query($sql, $bind);
- $result = $stmt->fetchColumn(0);
- return $result;
- }
-
- /**
- * Fetches the first row of the SQL result.
- * Uses the current fetchMode for the adapter.
- *
- * @param string|Zend_Db_Select $sql An SQL SELECT statement.
- * @param mixed $bind Data to bind into SELECT placeholders.
- * @return array
- */
- public function fetchRow($sql, $bind = array())
- {
- $stmt = $this->query($sql, $bind);
- $result = $stmt->fetch($this->_fetchMode);
- return $result;
- }
-
- /**
- * Quote a raw string.
- *
- * @param string $value Raw string
- * @return string Quoted string
- */
- protected function _quote($value)
- {
- if (is_numeric($value)) {
- return $value;
- }
- return "'" . addcslashes($value, "\000\n\r\\'\"\032") . "'";
- }
-
- /**
- * Safely quotes a value for an SQL statement.
- *
- * If an array is passed as the value, the array values are quoted
- * and then returned as a comma-separated string.
- *
- * @param mixed $value The value to quote.
- * @return mixed An SQL-safe quoted value (or string of separated values).
- */
- public function quote($value)
- {
- $this->_connect();
-
- if ($value instanceof Zend_Db_Expr) {
- return $value->__toString();
- }
-
- if (is_array($value)) {
- foreach ($value as &$val) {
- $val = $this->quote($val);
- }
- return implode(', ', $value);
- }
-
- return $this->_quote($value);
- }
-
- /**
- * Quotes a value and places into a piece of text at a placeholder.
- *
- * The placeholder is a question-mark; all placeholders will be replaced
- * with the quoted value. For example:
- *
- * <code>
- * $text = "WHERE date < ?";
- * $date = "2005-01-02";
- * $safe = $sql->quoteInto($text, $date);
- * // $safe = "WHERE date < '2005-01-02'"
- * </code>
- *
- * @param string $text The text with a placeholder.
- * @param mixed $value The value to quote.
- * @return mixed An SQL-safe quoted value placed into the orignal text.
- */
- public function quoteInto($text, $value)
- {
- return str_replace('?', $this->quote($value), $text);
- }
-
- /**
- * Quotes an identifier.
- *
- * Accepts a string representing a qualified indentifier. For Example:
- * <code>
- * $adapter->quoteIdentifier('myschema.mytable')
- * </code>
- * Returns: "myschema"."mytable"
- *
- * Or, an array of one or more identifiers that may form a qualified identifier:
- * <code>
- * $adapter->quoteIdentifier(array('myschema','my.table'))
- * </code>
- * Returns: "myschema"."my.table"
- *
- * The actual quote character surrounding the identifiers may vary depending on
- * the adapter.
- *
- * @param string|array|Zend_Db_Expr $ident The identifier.
- * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
- * @return string The quoted identifier.
- */
- public function quoteIdentifier($ident, $auto=false)
- {
- return $this->_quoteIdentifierAs($ident, null, $auto);
- }
-
- /**
- * Quote a column identifier and alias.
- *
- * @param string|array|Zend_Db_Expr $ident The identifier or expression.
- * @param string $alias An alias for the column.
- * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
- * @return string The quoted identifier and alias.
- */
- public function quoteColumnAs($ident, $alias, $auto=false)
- {
- return $this->_quoteIdentifierAs($ident, $alias, $auto);
- }
-
- /**
- * Quote a table identifier and alias.
- *
- * @param string|array|Zend_Db_Expr $ident The identifier or expression.
- * @param string $alias An alias for the table.
- * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
- * @return string The quoted identifier and alias.
- */
- public function quoteTableAs($ident, $alias, $auto=false)
- {
- return $this->_quoteIdentifierAs($ident, $alias, $auto);
- }
-
- /**
- * Quote an identifier and an optional alias.
- *
- * @param string|array|Zend_Db_Expr $ident The identifier or expression.
- * @param string $alias An optional alias.
- * @param string $as The string to add between the identifier/expression and the alias.
- * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
- * @return string The quoted identifier and alias.
- */
- protected function _quoteIdentifierAs($ident, $alias = null, $auto = false, $as = ' AS ')
- {
- if ($ident instanceof Zend_Db_Expr) {
- $quoted = $ident->__toString();
- } else {
- if (is_string($ident)) {
- $ident = explode('.', $ident);
- }
- if (is_array($ident)) {
- $segments = array();
- foreach ($ident as $segment) {
- if ($segment instanceof Zend_Db_Expr) {
- $segments[] = $segment->__toString();
- } else {
- $segments[] = $this->_quoteIdentifier($segment, $auto);
- }
- }
- if ($alias !== null && end($ident) == $alias) {
- $alias = null;
- }
- $quoted = implode('.', $segments);
- } else {
- $quoted = $this->_quoteIdentifier($ident, $auto);
- }
- }
- if ($alias !== null) {
- $quoted .= $as . $this->_quoteIdentifier($alias, $auto);
- }
- return $quoted;
- }
-
- /**
- * Quote an identifier.
- *
- * @param string $value The identifier or expression.
- * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
- * @return string The quoted identifier and alias.
- */
- protected function _quoteIdentifier($value, $auto=false)
- {
- if ($auto === false || $this->_autoQuoteIdentifiers === true) {
- $q = $this->getQuoteIdentifierSymbol();
- return ($q . str_replace("$q", "$q$q", $value) . $q);
- }
- return $value;
- }
-
- /**
- * Returns the symbol the adapter uses for delimited identifiers.
- *
- * @return string
- */
- public function getQuoteIdentifierSymbol()
- {
- return '"';
- }
-
- /**
- * Return the most recent value from the specified sequence in the database.
- * This is supported only on RDBMS brands that support sequences
- * (e.g. Oracle, PostgreSQL, DB2). Other RDBMS brands return null.
- *
- * @param string $sequenceName
- * @return integer
- */
- public function lastSequenceId($sequenceName)
- {
- return null;
- }
-
- /**
- * Generate a new value from the specified sequence in the database, and return it.
- * This is supported only on RDBMS brands that support sequences
- * (e.g. Oracle, PostgreSQL, DB2). Other RDBMS brands return null.
- *
- * @param string $sequenceName
- * @return integer
- */
- public function nextSequenceId($sequenceName)
- {
- return null;
- }
-
- /**
- * Helper method to change the case of the strings used
- * when returning result sets in FETCH_ASSOC and FETCH_BOTH
- * modes.
- *
- * This is not intended to be used by application code,
- * but the method must be public so the Statement class
- * can invoke it.
- *
- * @param string $key
- * @returns string
- */
- public function foldCase($key)
- {
- switch ($this->_caseFolding) {
- case Zend_Db::CASE_LOWER:
- return strtolower((string) $key);
- case Zend_Db::CASE_UPPER:
- return strtoupper((string) $key);
- case Zend_Db::CASE_NATURAL:
- default:
- return (string) $key;
- }
- }
-
- /**
- * Abstract Methods
- */
-
- /**
- * Returns a list of the tables in the database.
- *
- * @return array
- */
- abstract public function listTables();
-
- /**
- * Returns the column descriptions for a table.
- *
- * The return value is an associative array keyed by the column name,
- * as returned by the RDBMS.
- *
- * The value of each array element is an associative array
- * with the following keys:
- *
- * SCHEMA_NAME => string; name of database or schema
- * TABLE_NAME => string;
- * COLUMN_NAME => string; column name
- * COLUMN_POSITION => number; ordinal position of column in table
- * DATA_TYPE => string; SQL datatype name of column
- * DEFAULT => string; default expression of column, null if none
- * NULLABLE => boolean; true if column can have nulls
- * LENGTH => number; length of CHAR/VARCHAR
- * SCALE => number; scale of NUMERIC/DECIMAL
- * PRECISION => number; precision of NUMERIC/DECIMAL
- * UNSIGNED => boolean; unsigned property of an integer type
- * PRIMARY => boolean; true if column is part of the primary key
- * PRIMARY_POSITION => integer; position of column in primary key
- *
- * @param string $tableName
- * @param string $schemaName OPTIONAL
- * @return array
- */
- abstract public function describeTable($tableName, $schemaName = null);
-
- /**
- * Creates a connection to the database.
- *
- * @return void
- */
- abstract protected function _connect();
-
- /**
- * Force the connection to close.
- *
- * @return void
- */
- abstract public function closeConnection();
-
- /**
- * Prepare a statement and return a PDOStatement-like object.
- *
- * @param string|Zend_Db_Select $sql SQL query
- * @return Zend_Db_Statment|PDOStatement
- */
- abstract public function prepare($sql);
-
- /**
- * Gets the last ID generated automatically by an IDENTITY/AUTOINCREMENT column.
- *
- * As a convention, on RDBMS brands that support sequences
- * (e.g. Oracle, PostgreSQL, DB2), this method forms the name of a sequence
- * from the arguments and returns the last id generated by that sequence.
- * On RDBMS brands that support IDENTITY/AUTOINCREMENT columns, this method
- * returns the last value generated for such a column, and the table name
- * argument is disregarded.
- *
- * @param string $tableName OPTIONAL Name of table.
- * @param string $primaryKey OPTIONAL Name of primary key column.
- * @return integer
- */
- abstract public function lastInsertId($tableName = null, $primaryKey = null);
-
- /**
- * Begin a transaction.
- */
- abstract protected function _beginTransaction();
-
- /**
- * Commit a transaction.
- */
- abstract protected function _commit();
-
- /**
- * Roll-back a transaction.
- */
- abstract protected function _rollBack();
-
- /**
- * Set the fetch mode.
- *
- * @param integer $mode
- */
- abstract public function setFetchMode($mode);
-
- /**
- * Adds an adapter-specific LIMIT clause to the SELECT statement.
- *
- * @param mixed $sql
- * @param integer $count
- * @param integer $offset
- * @return string
- */
- abstract public function limit($sql, $count, $offset = 0);
-
- /**
- * Check if the adapter supports real SQL parameters.
- *
- * @param string $type 'positional' or 'named'
- * @return bool
- */
- abstract public function supportsParameters($type);
-
-}
+<?php
+
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category Zend
+ * @package Zend_Db
+ * @subpackage Adapter
+ * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @version $Id$
+ */
+
+
+/**
+ * @see Zend_Db
+ */
+require_once 'Zend/Db.php';
+
+/**
+ * @see Zend_Db_Profiler
+ */
+require_once 'Zend/Db/Profiler.php';
+
+/**
+ * @see Zend_Db_Select
+ */
+require_once 'Zend/Db/Select.php';
+
+
+/**
+ * Class for connecting to SQL databases and performing common operations.
+ *
+ * @category Zend
+ * @package Zend_Db
+ * @subpackage Adapter
+ * @copyright Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ */
+abstract class Zend_Db_Adapter_Abstract
+{
+
+ /**
+ * User-provided configuration
+ *
+ * @var array
+ */
+ protected $_config = array();
+
+ /**
+ * Fetch mode
+ *
+ * @var integer
+ */
+ protected $_fetchMode = Zend_Db::FETCH_ASSOC;
+
+ /**
+ * Query profiler
+ *
+ * @var Zend_Db_Profiler
+ */
+ protected $_profiler;
+
+ /**
+ * Database connection
+ *
+ * @var object|resource|null
+ */
+ protected $_connection = null;
+
+ /**
+ * Specifies the case of column names retrieved in queries
+ * Options
+ * Zend_Db::CASE_NATURAL (default)
+ * Zend_Db::CASE_LOWER
+ * Zend_Db::CASE_UPPER
+ *
+ * @access protected
+ */
+ protected $_caseFolding = Zend_Db::CASE_NATURAL;
+
+ /**
+ * Specifies whether the adapter automatically quotes identifiers.
+ * If true, most SQL generated by Zend_Db classes applies
+ * identifier quoting automatically.
+ * If false, developer must quote identifiers themselves
+ * by calling quoteIdentifier().
+ *
+ * @access protected
+ */
+ protected $_autoQuoteIdentifiers = true;
+
+ /**
+ * Constructor.
+ *
+ * $config is an array of key/value pairs containing configuration
+ * options. These options are common to most adapters:
+ *
+ * dbname => (string) The name of the database to user
+ * username => (string) Connect to the database as this username.
+ * password => (string) Password associated with the username.
+ * host => (string) What host to connect to, defaults to localhost
+ *
+ * Some options are used on a case-by-case basis by adapters:
+ *
+ * port => (string) The port of the database
+ * persistent => (boolean) Whether to use a persistent connection or not, defaults to false
+ * protocol => (string) The network protocol, defaults to TCPIP
+ * caseFolding => (int)
+ *
+ * @param array $config An array of configuration keys.
+ * @throws Zend_Db_Adapter_Exception
+ */
+ public function __construct(array $config = array())
+ {
+ $this->_checkRequiredOptions($config);
+
+ $options = array(
+ Zend_Db::CASE_FOLDING => $this->_caseFolding,
+ Zend_DB::AUTO_QUOTE_IDENTIFIERS => $this->_autoQuoteIdentifiers
+ );
+ $driver_options = array();
+
+ // normalize the config and merge it with the defaults
+ if (array_key_exists('options', $config)) {
+ // can't use array_merge() because keys might be integers
+ foreach ((array) $config['options'] as $key => $value) {
+ $options[$key] = $value;
+ }
+ }
+ if (array_key_exists('driver_options', $config)) {
+ // can't use array_merge() because keys might be integers
+ foreach ((array) $config['driver_options'] as $key => $value) {
+ $driver_options[$key] = $value;
+ }
+ }
+ $this->_config = array_merge($this->_config, $config);
+ $this->_config['options'] = $options;
+ $this->_config['driver_options'] = $driver_options;
+
+ // obtain the case setting, if there is one
+ if (array_key_exists(Zend_Db::CASE_FOLDING, $options)) {
+ $case = (int) $options[Zend_Db::CASE_FOLDING];
+ switch ($case) {
+ case Zend_Db::CASE_LOWER:
+ case Zend_Db::CASE_UPPER:
+ case Zend_Db::CASE_NATURAL:
+ $this->_caseFolding = $case;
+ break;
+ default:
+ require_once 'Zend/Db/Adapter/Exception.php';
+ throw new Zend_Db_Adapter_Exception("Case must be one of the following constants: Zend_Db::CASE_NATURAL, Zend_Db::CASE_LOWER, Zend_Db::CASE_UPPER");
+ }
+ }
+
+ // obtain quoting property if there is one
+ if (array_key_exists(Zend_Db::AUTO_QUOTE_IDENTIFIERS, $options)) {
+ $this->_autoQuoteIdentifiers = (bool) $options[Zend_Db::AUTO_QUOTE_IDENTIFIERS];
+ }
+
+ // create a profiler object
+ $enabled = false;
+ if (array_key_exists('profiler', $this->_config)) {
+ $enabled = (bool) $this->_config['profiler'];
+ unset($this->_config['profiler']);
+ }
+
+ $this->_profiler = new Zend_Db_Profiler($enabled);
+ }
+
+ /**
+ * Check for config options that are mandatory.
+ * Throw exceptions if any are missing.
+ *
+ * @param array $config
+ * @throws Zend_Db_Adapter_Exception
+ */
+ protected function _checkRequiredOptions(array $config)
+ {
+ // we need at least a dbname
+ if (! array_key_exists('dbname', $config)) {
+ require_once 'Zend/Db/Adapter/Exception.php';
+ throw new Zend_Db_Adapter_Exception("Configuration array must have a key for 'dbname' that names the database instance.");
+ }
+
+ if (! array_key_exists('password', $config)) {
+ /**
+ * @see Zend_Db_Adapter_Exception
+ */
+ require_once 'Zend/Db/Adapter/Exception.php';
+ throw new Zend_Db_Adapter_Exception("Configuration array must have a key for 'password' for login credentials.");
+ }
+
+ if (! array_key_exists('username', $config)) {
+ /**
+ * @see Zend_Db_Adapter_Exception
+ */
+ require_once 'Zend/Db/Adapter/Exception.php';
+ throw new Zend_Db_Adapter_Exception("Configuration array must have a key for 'username' for login credentials.");
+ }
+ }
+
+ /**
+ * Returns the underlying database connection object or resource.
+ * If not presently connected, this initiates the connection.
+ *
+ * @return object|resource|null
+ */
+ public function getConnection()
+ {
+ $this->_connect();
+ return $this->_connection;
+ }
+
+ /**
+ * Returns the profiler for this adapter.
+ *
+ * @return Zend_Db_Profiler
+ */
+ public function getProfiler()
+ {
+ return $this->_profiler;
+ }
+
+ /**
+ * Prepares and executes an SQL statement with bound data.
+ *
+ * @param mixed $sql The SQL statement with placeholders.
+ * May be a string or Zend_Db_Select.
+ * @param mixed $bind An array of data to bind to the placeholders.
+ * @return Zend_Db_Statement_Interface
+ */
+ public function query($sql, $bind = array())
+ {
+ // connect to the database if needed
+ $this->_connect();
+
+ // is the $sql a Zend_Db_Select object?
+ if ($sql instanceof Zend_Db_Select) {
+ $sql = $sql->__toString();
+ }
+
+ // make sure $bind to an array;
+ // don't use (array) typecasting because
+ // because $bind may be a Zend_Db_Expr object
+ if (!is_array($bind)) {
+ $bind = array($bind);
+ }
+
+ // prepare and execute the statement with profiling
+ $stmt = $this->prepare($sql);
+ $stmt->execute($bind);
+
+ // return the results embedded in the prepared statement object
+ $stmt->setFetchMode($this->_fetchMode);
+ return $stmt;
+ }
+
+ /**
+ * Leave autocommit mode and begin a transaction.
+ *
+ * @return bool True
+ */
+ public function beginTransaction()
+ {
+ $this->_connect();
+ $q = $this->_profiler->queryStart('begin', Zend_Db_Profiler::TRANSACTION);
+ $this->_beginTransaction();
+ $this->_profiler->queryEnd($q);
+ return true;
+ }
+
+ /**
+ * Commit a transaction and return to autocommit mode.
+ *
+ * @return bool True
+ */
+ public function commit()
+ {
+ $this->_connect();
+ $q = $this->_profiler->queryStart('commit', Zend_Db_Profiler::TRANSACTION);
+ $this->_commit();
+ $this->_profiler->queryEnd($q);
+ return true;
+ }
+
+ /**
+ * Roll back a transaction and return to autocommit mode.
+ *
+ * @return bool True
+ */
+ public function rollBack()
+ {
+ $this->_connect();
+ $q = $this->_profiler->queryStart('rollback', Zend_Db_Profiler::TRANSACTION);
+ $this->_rollBack();
+ $this->_profiler->queryEnd($q);
+ return true;
+ }
+
+ /**
+ * Inserts a table row with specified data.
+ *
+ * @param mixed $table The table to insert data into.
+ * @param array $bind Column-value pairs.
+ * @return int The number of affected rows.
+ */
+ public function insert($table, array $bind)
+ {
+ // extract and quote col names from the array keys
+ $cols = array();
+ $vals = array();
+ foreach ($bind as $col => $val) {
+ $cols[] = $this->quoteIdentifier($col, true);
+ if ($val instanceof Zend_Db_Expr) {
+ $vals[] = $val->__toString();
+ unset($bind[$col]);
+ } else {
+ $vals[] = '?';
+ }
+ }
+
+ // build the statement
+ $sql = "INSERT INTO "
+ . $this->quoteIdentifier($table, true)
+ . ' (' . implode(', ', $cols) . ') '
+ . 'VALUES (' . implode(', ', $vals) . ')';
+
+ // execute the statement and return the number of affected rows
+ $stmt = $this->query($sql, array_values($bind));
+ $result = $stmt->rowCount();
+ return $result;
+ }
+
+ /**
+ * Updates table rows with specified data based on a WHERE clause.
+ *
+ * @param mixed $table The table to update.
+ * @param array $bind Column-value pairs.
+ * @param mixed $where UPDATE WHERE clause(s).
+ * @return int The number of affected rows.
+ */
+ public function update($table, array $bind, $where = '')
+ {
+ /**
+ * Build "col = ?" pairs for the statement,
+ * except for Zend_Db_Expr which is treated literally.
+ */
+ $set = array();
+ foreach ($bind as $col => $val) {
+ if ($val instanceof Zend_Db_Expr) {
+ $val = $val->__toString();
+ unset($bind[$col]);
+ } else {
+ $val = '?';
+ }
+ $set[] = $this->quoteIdentifier($col, true) . ' = ' . $val;
+ }
+
+ $where = $this->_whereExpr($where);
+
+ /**
+ * Build the UPDATE statement
+ */
+ $sql = "UPDATE "
+ . $this->quoteIdentifier($table, true)
+ . ' SET ' . implode(', ', $set)
+ . (($where) ? " WHERE $where" : '');
+
+ /**
+ * Execute the statement and return the number of affected rows
+ */
+ $stmt = $this->query($sql, array_values($bind));
+ $result = $stmt->rowCount();
+ return $result;
+ }
+
+ /**
+ * Deletes table rows based on a WHERE clause.
+ *
+ * @param mixed $table The table to update.
+ * @param mixed $where DELETE WHERE clause(s).
+ * @return int The number of affected rows.
+ */
+ public function delete($table, $where = '')
+ {
+ $where = $this->_whereExpr($where);
+
+ /**
+ * Build the DELETE statement
+ */
+ $sql = "DELETE FROM "
+ . $this->quoteIdentifier($table, true)
+ . (($where) ? " WHERE $where" : '');
+
+ /**
+ * Execute the statement and return the number of affected rows
+ */
+ $stmt = $this->query($sql);
+ $result = $stmt->rowCount();
+ return $result;
+ }
+
+ /**
+ * Convert an array, string, or Zend_Db_Expr object
+ * into a string to put in a WHERE clause.
+ *
+ * @param mixed $where
+ * @return string
+ */
+ protected function _whereExpr($where)
+ {
+ if (empty($where)) {
+ return $where;
+ }
+ if (!is_array($where)) {
+ $where = array($where);
+ }
+ foreach ($where as &$term) {
+ if ($term instanceof Zend_Db_Expr) {
+ $term = $term->__toString();
+ }
+ $term = '(' . $term . ')';
+ }
+ $where = implode(' AND ', $where);
+ return $where;
+ }
+
+ /**
+ * Creates and returns a new Zend_Db_Select object for this adapter.
+ *
+ * @return Zend_Db_Select
+ */
+ public function select()
+ {
+ return new Zend_Db_Select($this);
+ }
+
+ /**
+ * Get the fetch mode.
+ *
+ * @return int
+ */
+ public function getFetchMode()
+ {
+ return $this->_fetchMode;
+ }
+
+ /**
+ * Fetches all SQL result rows as a sequential array.
+ * Uses the current fetchMode for the adapter.
+ *
+ * @param string|Zend_Db_Select $sql An SQL SELECT statement.
+ * @param mixed $bind Data to bind into SELECT placeholders.
+ * @return array
+ */
+ public function fetchAll($sql, $bind = array())
+ {
+ $stmt = $this->query($sql, $bind);
+ $result = $stmt->fetchAll($this->_fetchMode);
+ return $result;
+ }
+
+ /**
+ * Fetches all SQL result rows as an associative array.
+ *
+ * The first column is the key, the entire row array is the
+ * value.
+ *
+ * @param string|Zend_Db_Select $sql An SQL SELECT statement.
+ * @param mixed $bind Data to bind into SELECT placeholders.
+ * @return string
+ */
+ public function fetchAssoc($sql, $bind = array())
+ {
+ $stmt = $this->query($sql, $bind);
+ $data = array();
+ while ($row = $stmt->fetch($this->_fetchMode)) {
+ $tmp = array_values(array_slice($row, 0, 1));
+ $data[$tmp[0]] = $row;
+ }
+ return $data;
+ }
+
+ /**
+ * Fetches the first column of all SQL result rows as an array.
+ *
+ * The first column in each row is used as the array key.
+ *
+ * @param string|Zend_Db_Select $sql An SQL SELECT statement.
+ * @param mixed $bind Data to bind into SELECT placeholders.
+ * @return array
+ */
+ public function fetchCol($sql, $bind = array())
+ {
+ $stmt = $this->query($sql, $bind);
+ $result = $stmt->fetchAll(Zend_Db::FETCH_COLUMN, 0);
+ return $result;
+ }
+
+ /**
+ * Fetches all SQL result rows as an array of key-value pairs.
+ *
+ * The first column is the key, the second column is the
+ * value.
+ *
+ * @param string|Zend_Db_Select $sql An SQL SELECT statement.
+ * @param mixed $bind Data to bind into SELECT placeholders.
+ * @return string
+ */
+ public function fetchPairs($sql, $bind = array())
+ {
+ $stmt = $this->query($sql, $bind);
+ $data = array();
+ while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) {
+ $data[$row[0]] = $row[1];
+ }
+ return $data;
+ }
+
+ /**
+ * Fetches the first column of the first row of the SQL result.
+ *
+ * @param string|Zend_Db_Select $sql An SQL SELECT statement.
+ * @param mixed $bind Data to bind into SELECT placeholders.
+ * @return string
+ */
+ public function fetchOne($sql, $bind = array())
+ {
+ $stmt = $this->query($sql, $bind);
+ $result = $stmt->fetchColumn(0);
+ return $result;
+ }
+
+ /**
+ * Fetches the first row of the SQL result.
+ * Uses the current fetchMode for the adapter.
+ *
+ * @param string|Zend_Db_Select $sql An SQL SELECT statement.
+ * @param mixed $bind Data to bind into SELECT placeholders.
+ * @return array
+ */
+ public function fetchRow($sql, $bind = array())
+ {
+ $stmt = $this->query($sql, $bind);
+ $result = $stmt->fetch($this->_fetchMode);
+ return $result;
+ }
+
+ /**
+ * Quote a raw string.
+ *
+ * @param string $value Raw string
+ * @return string Quoted string
+ */
+ protected function _quote($value)
+ {
+ if (is_numeric($value)) {
+ return $value;
+ }
+ return "'" . addcslashes($value, "\000\n\r\\'\"\032") . "'";
+ }
+
+ /**
+ * Safely quotes a value for an SQL statement.
+ *
+ * If an array is passed as the value, the array values are quoted
+ * and then returned as a comma-separated string.
+ *
+ * @param mixed $value The value to quote.
+ * @return mixed An SQL-safe quoted value (or string of separated values).
+ */
+ public function quote($value)
+ {
+ $this->_connect();
+
+ if ($value instanceof Zend_Db_Expr) {
+ return $value->__toString();
+ }
+
+ if (is_array($value)) {
+ foreach ($value as &$val) {
+ $val = $this->quote($val);
+ }
+ return implode(', ', $value);
+ }
+
+ return $this->_quote($value);
+ }
+
+ /**
+ * Quotes a value and places into a piece of text at a placeholder.
+ *
+ * The placeholder is a question-mark; all placeholders will be replaced
+ * with the quoted value. For example:
+ *
+ * <code>
+ * $text = "WHERE date < ?";
+ * $date = "2005-01-02";
+ * $safe = $sql->quoteInto($text, $date);
+ * // $safe = "WHERE date < '2005-01-02'"
+ * </code>
+ *
+ * @param string $text The text with a placeholder.
+ * @param mixed $value The value to quote.
+ * @return mixed An SQL-safe quoted value placed into the orignal text.
+ */
+ public function quoteInto($text, $value)
+ {
+ return str_replace('?', $this->quote($value), $text);
+ }
+
+ /**
+ * Quotes an identifier.
+ *
+ * Accepts a string representing a qualified indentifier. For Example:
+ * <code>
+ * $adapter->quoteIdentifier('myschema.mytable')
+ * </code>
+ * Returns: "myschema"."mytable"
+ *
+ * Or, an array of one or more identifiers that may form a qualified identifier:
+ * <code>
+ * $adapter->quoteIdentifier(array('myschema','my.table'))
+ * </code>
+ * Returns: "myschema"."my.table"
+ *
+ * The actual quote character surrounding the identifiers may vary depending on
+ * the adapter.
+ *
+ * @param string|array|Zend_Db_Expr $ident The identifier.
+ * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
+ * @return string The quoted identifier.
+ */
+ public function quoteIdentifier($ident, $auto=false)
+ {
+ return $this->_quoteIdentifierAs($ident, null, $auto);
+ }
+
+ /**
+ * Quote a column identifier and alias.
+ *
+ * @param string|array|Zend_Db_Expr $ident The identifier or expression.
+ * @param string $alias An alias for the column.
+ * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
+ * @return string The quoted identifier and alias.
+ */
+ public function quoteColumnAs($ident, $alias, $auto=false)
+ {
+ return $this->_quoteIdentifierAs($ident, $alias, $auto);
+ }
+
+ /**
+ * Quote a table identifier and alias.
+ *
+ * @param string|array|Zend_Db_Expr $ident The identifier or expression.
+ * @param string $alias An alias for the table.
+ * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
+ * @return string The quoted identifier and alias.
+ */
+ public function quoteTableAs($ident, $alias, $auto=false)
+ {
+ return $this->_quoteIdentifierAs($ident, $alias, $auto);
+ }
+
+ /**
+ * Quote an identifier and an optional alias.
+ *
+ * @param string|array|Zend_Db_Expr $ident The identifier or expression.
+ * @param string $alias An optional alias.
+ * @param string $as The string to add between the identifier/expression and the alias.
+ * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
+ * @return string The quoted identifier and alias.
+ */
+ protected function _quoteIdentifierAs($ident, $alias = null, $auto = false, $as = ' AS ')
+ {
+ if ($ident instanceof Zend_Db_Expr) {
+ $quoted = $ident->__toString();
+ } else {
+ if (is_string($ident)) {
+ $ident = explode('.', $ident);
+ }
+ if (is_array($ident)) {
+ $segments = array();
+ foreach ($ident as $segment) {
+ if ($segment instanceof Zend_Db_Expr) {
+ $segments[] = $segment->__toString();
+ } else {
+ $segments[] = $this->_quoteIdentifier($segment, $auto);
+ }
+ }
+ if ($alias !== null && end($ident) == $alias) {
+ $alias = null;
+ }
+ $quoted = implode('.', $segments);
+ } else {
+ $quoted = $this->_quoteIdentifier($ident, $auto);
+ }
+ }
+ if ($alias !== null) {
+ $quoted .= $as . $this->_quoteIdentifier($alias, $auto);
+ }
+ return $quoted;
+ }
+
+ /**
+ * Quote an identifier.
+ *
+ * @param string $value The identifier or expression.
+ * @param boolean $auto If true, heed the AUTO_QUOTE_IDENTIFIERS config option.
+ * @return string The quoted identifier and alias.
+ */
+ protected function _quoteIdentifier($value, $auto=false)
+ {
+ if ($auto === false || $this->_autoQuoteIdentifiers === true) {
+ $q = $this->getQuoteIdentifierSymbol();
+ return ($q . str_replace("$q", "$q$q", $value) . $q);
+ }
+ return $value;
+ }
+
+ /**
+ * Returns the symbol the adapter uses for delimited identifiers.
+ *
+ * @return string
+ */
+ public function getQuoteIdentifierSymbol()
+ {
+ return '"';
+ }
+
+ /**
+ * Return the most recent value from the specified sequence in the database.
+ * This is supported only on RDBMS brands that support sequences
+ * (e.g. Oracle, PostgreSQL, DB2). Other RDBMS brands return null.
+ *
+ * @param string $sequenceName
+ * @return integer
+ */
+ public function lastSequenceId($sequenceName)
+ {
+ return null;
+ }
+
+ /**
+ * Generate a new value from the specified sequence in the database, and return it.
+ * This is supported only on RDBMS brands that support sequences
+ * (e.g. Oracle, PostgreSQL, DB2). Other RDBMS brands return null.
+ *
+ * @param string $sequenceName
+ * @return integer
+ */
+ public function nextSequenceId($sequenceName)
+ {
+ return null;
+ }
+
+ /**
+ * Helper method to change the case of the strings used
+ * when returning result sets in FETCH_ASSOC and FETCH_BOTH
+ * modes.
+ *
+ * This is not intended to be used by application code,
+ * but the method must be public so the Statement class
+ * can invoke it.
+ *
+ * @param string $key
+ * @returns string
+ */
+ public function foldCase($key)
+ {
+ switch ($this->_caseFolding) {
+ case Zend_Db::CASE_LOWER:
+ return strtolower((string) $key);
+ case Zend_Db::CASE_UPPER:
+ return strtoupper((string) $key);
+ case Zend_Db::CASE_NATURAL:
+ default:
+ return (string) $key;
+ }
+ }
+
+ /**
+ * Abstract Methods
+ */
+
+ /**
+ * Returns a list of the tables in the database.
+ *
+ * @return array
+ */
+ abstract public function listTables();
+
+ /**
+ * Returns the column descriptions for a table.
+ *
+ * The return value is an associative array keyed by the column name,
+ * as returned by the RDBMS.
+ *
+ * The value of each array element is an associative array
+ * with the following keys:
+ *
+ * SCHEMA_NAME => string; name of database or schema
+ * TABLE_NAME => string;
+ * COLUMN_NAME => string; column name
+ * COLUMN_POSITION => number; ordinal position of column in table
+ * DATA_TYPE => string; SQL datatype name of column
+ * DEFAULT => string; default expression of column, null if none
+ * NULLABLE => boolean; true if column can have nulls
+ * LENGTH => number; length of CHAR/VARCHAR
+ * SCALE => number; scale of NUMERIC/DECIMAL
+ * PRECISION => number; precision of NUMERIC/DECIMAL
+ * UNSIGNED => boolean; unsigned property of an integer type
+ * PRIMARY => boolean; true if column is part of the primary key
+ * PRIMARY_POSITION => integer; position of column in primary key
+ *
+ * @param string $tableName
+ * @param string $schemaName OPTIONAL
+ * @return array
+ */
+ abstract public function describeTable($tableName, $schemaName = null);
+
+ /**
+ * Creates a connection to the database.
+ *
+ * @return void
+ */
+ abstract protected function _connect();
+
+ /**
+ * Force the connection to close.
+ *
+ * @return void
+ */
+ abstract public function closeConnection();
+
+ /**
+ * Prepare a statement and return a PDOStatement-like object.
+ *
+ * @param string|Zend_Db_Select $sql SQL query
+ * @return Zend_Db_Statment|PDOStatement
+ */
+ abstract public function prepare($sql);
+
+ /**
+ * Gets the last ID generated automatically by an IDENTITY/AUTOINCREMENT column.
+ *
+ * As a convention, on RDBMS brands that support sequences
+ * (e.g. Oracle, PostgreSQL, DB2), this method forms the name of a sequence
+ * from the arguments and returns the last id generated by that sequence.
+ * On RDBMS brands that support IDENTITY/AUTOINCREMENT columns, this method
+ * returns the last value generated for such a column, and the table name
+ * argument is disregarded.
+ *
+ * @param string $tableName OPTIONAL Name of table.
+ * @param string $primaryKey OPTIONAL Name of primary key column.
+ * @return integer
+ */
+ abstract public function lastInsertId($tableName = null, $primaryKey = null);
+
+ /**
+ * Begin a transaction.
+ */
+ abstract protected function _beginTransaction();
+
+ /**
+ * Commit a transaction.
+ */
+ abstract protected function _commit();
+
+ /**
+ * Roll-back a transaction.
+ */
+ abstract protected function _rollBack();
+
+ /**
+ * Set the fetch mode.
+ *
+ * @param integer $mode
+ */
+ abstract public function setFetchMode($mode);
+
+ /**
+ * Adds an adapter-specific LIMIT clause to the SELECT statement.
+ *
+ * @param mixed $sql
+ * @param integer $count
+ * @param integer $offset
+ * @return string
+ */
+ abstract public function limit($sql, $count, $offset = 0);
+
+ /**
+ * Check if the adapter supports real SQL parameters.
+ *
+ * @param string $type 'positional' or 'named'
+ * @return bool
+ */
+ abstract public function supportsParameters($type);
+
+}
diff --git a/libs/jquery/jquery.scrollTo-min.js b/libs/jquery/jquery.scrollTo-min.js
index 53238d021b..58512e9f25 100644
--- a/libs/jquery/jquery.scrollTo-min.js
+++ b/libs/jquery/jquery.scrollTo-min.js
@@ -1,9 +1,9 @@
-/**
- * jQuery.ScrollTo - Easy element scrolling using jQuery.
- * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
- * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php).
- * Date: 1/2/2008
- * @author Ariel Flesler
- * @version 1.3
- */
+/**
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
+ * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php).
+ * Date: 1/2/2008
+ * @author Ariel Flesler
+ * @version 1.3
+ */
;(function($){$.scrollTo=function(a,b,c){$($.browser.safari?'body':'html').scrollTo(a,b,c)};$.scrollTo.defaults={axis:'y',duration:1};$.fn.scrollTo=function(c,d,f){if(typeof d=='object'){f=d;d=0}f=$.extend({},$.scrollTo.defaults,f);if(!d)d=f.speed||f.duration;f.queue=f.queue&&f.axis.length==2;if(f.queue)d=Math.ceil(d/2);if(typeof f.offset=='number')f.offset={left:f.offset,top:f.offset};return this.each(function(){var e=this,$e=$(e),t=c,toff,j={},w=$e.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t={top:t,left:t};break}t=$(t,this);case'object':if(t.is||t.style)toff=(t=$(t)).offset()}$.each(f.axis.split(''),parse);animate(f.onAfter);function parse(i,a){var P=a=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,u=e[k];if(toff){j[k]=toff[p]+(w?0:u-$e.offset()[p]);if(f.margin){j[k]-=parseInt(t.css('margin'+P))||0;j[k]-=parseInt(t.css('border'+P+'Width'))||0}if(f.offset&&f.offset[p])j[k]+=f.offset[p]}else{j[k]=t[p]}if(/^\d+$/.test(j[k]))j[k]=j[k]<=0?0:Math.min(j[k],max(a));if(!i&&f.queue){if(u!=j[k])animate(f.onAfterFirst);delete j[k]}};function animate(a){$e.animate(j,d,f.easing,function(){if(a)a.call(this,$e,j,t)})};function max(a){var b=w?$.browser.opera?document.body:document.documentElement:e,D=a=='x'?'Width':'Height';return b['scroll'+D]-b['client'+D]}})}})(jQuery); \ No newline at end of file
diff --git a/libs/jquery/original lib/jquery.blockUI.js b/libs/jquery/original lib/jquery.blockUI.js
index 2b0a360805..730d0c83d0 100644
--- a/libs/jquery/original lib/jquery.blockUI.js
+++ b/libs/jquery/original lib/jquery.blockUI.js
@@ -1,361 +1,361 @@
-/*
- * jQuery blockUI plugin
- * Version 1.33 (09/14/2007)
- * @requires jQuery v1.1.1
- *
- * $Id$
- *
- * Examples at: http://malsup.com/jquery/block/
- * Copyright (c) 2007 M. Alsup
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
- (function($) {
-/**
- * blockUI provides a mechanism for blocking user interaction with a page (or parts of a page).
- * This can be an effective way to simulate synchronous behavior during ajax operations without
- * locking the browser. It will prevent user operations for the current page while it is
- * active ane will return the page to normal when it is deactivate. blockUI accepts the following
- * two optional arguments:
- *
- * message (String|Element|jQuery): The message to be displayed while the UI is blocked. The message
- * argument can be a plain text string like "Processing...", an HTML string like
- * "<h1><img src="busy.gif" /> Please wait...</h1>", a DOM element, or a jQuery object.
- * The default message is "<h1>Please wait...</h1>"
- *
- * css (Object): Object which contains css property/values to override the default styles of
- * the message. Use this argument if you wish to override the default
- * styles. The css Object should be in a format suitable for the jQuery.css
- * function. For example:
- * $.blockUI({
- * backgroundColor: '#ff8',
- * border: '5px solid #f00,
- * fontWeight: 'bold'
- * });
- *
- * The default blocking message used when blocking the entire page is "<h1>Please wait...</h1>"
- * but this can be overridden by assigning a value to $.blockUI.defaults.pageMessage in your
- * own code. For example:
- *
- * $.blockUI.defaults.pageMessage = "<h1>Bitte Wartezeit</h1>";
- *
- * The default message styling can also be overridden. For example:
- *
- * $.extend($.blockUI.defaults.pageMessageCSS, { color: '#00a', backgroundColor: '#0f0' });
- *
- * The default styles work well for simple messages like "Please wait", but for longer messages
- * style overrides may be necessary.
- *
- * @example $.blockUI();
- * @desc prevent user interaction with the page (and show the default message of 'Please wait...')
- *
- * @example $.blockUI( { backgroundColor: '#f00', color: '#fff'} );
- * @desc prevent user interaction and override the default styles of the message to use a white on red color scheme
- *
- * @example $.blockUI('Processing...');
- * @desc prevent user interaction and display the message "Processing..." instead of the default message
- *
- * @name blockUI
- * @param String|jQuery|Element message Message to display while the UI is blocked
- * @param Object css Style object to control look of the message
- * @cat Plugins/blockUI
- */
-$.blockUI = function(msg, css, opts) {
- $.blockUI.impl.install(window, msg, css, opts);
-};
-
-// expose version number so other plugins can interogate
-$.blockUI.version = 1.33;
-
-/**
- * unblockUI removes the UI block that was put in place by blockUI
- *
- * @example $.unblockUI();
- * @desc unblocks the page
- *
- * @name unblockUI
- * @cat Plugins/blockUI
- */
-$.unblockUI = function(opts) {
- $.blockUI.impl.remove(window, opts);
-};
-
-/**
- * Blocks user interaction with the selected elements. (Hat tip: Much of
- * this logic comes from Brandon Aaron's bgiframe plugin. Thanks, Brandon!)
- * By default, no message is displayed when blocking elements.
- *
- * @example $('div.special').block();
- * @desc prevent user interaction with all div elements with the 'special' class.
- *
- * @example $('div.special').block('Please wait');
- * @desc prevent user interaction with all div elements with the 'special' class
- * and show a message over the blocked content.
- *
- * @name block
- * @type jQuery
- * @param String|jQuery|Element message Message to display while the element is blocked
- * @param Object css Style object to control look of the message
- * @cat Plugins/blockUI
- */
-$.fn.block = function(msg, css, opts) {
- return this.each(function() {
- if (!this.$pos_checked) {
- if ($.css(this,"position") == 'static')
- this.style.position = 'relative';
- if ($.browser.msie) this.style.zoom = 1; // force 'hasLayout' in IE
- this.$pos_checked = 1;
- }
- $.blockUI.impl.install(this, msg, css, opts);
- });
-};
-
-/**
- * Unblocks content that was blocked by "block()"
- *
- * @example $('div.special').unblock();
- * @desc unblocks all div elements with the 'special' class.
- *
- * @name unblock
- * @type jQuery
- * @cat Plugins/blockUI
- */
-$.fn.unblock = function(opts) {
- return this.each(function() {
- $.blockUI.impl.remove(this, opts);
- });
-};
-
-/**
- * displays the first matched element in a "display box" above a page overlay.
- *
- * @example $('#myImage').displayBox();
- * @desc displays "myImage" element in a box
- *
- * @name displayBox
- * @type jQuery
- * @cat Plugins/blockUI
- */
-$.fn.displayBox = function(css, fn, isFlash) {
- var msg = this[0];
- if (!msg) return;
- var $msg = $(msg);
- css = css || {};
-
- var w = $msg.width() || $msg.attr('width') || css.width || $.blockUI.defaults.displayBoxCSS.width;
- var h = $msg.height() || $msg.attr('height') || css.height || $.blockUI.defaults.displayBoxCSS.height ;
- if (w[w.length-1] == '%') {
- var ww = document.documentElement.clientWidth || document.body.clientWidth;
- w = parseInt(w) || 100;
- w = (w * ww) / 100;
- }
- if (h[h.length-1] == '%') {
- var hh = document.documentElement.clientHeight || document.body.clientHeight;
- h = parseInt(h) || 100;
- h = (h * hh) / 100;
- }
-
- var ml = '-' + parseInt(w)/2 + 'px';
- var mt = '-' + parseInt(h)/2 + 'px';
-
- // supress opacity on overlay if displaying flash content on mac/ff platform
- var ua = navigator.userAgent.toLowerCase();
- var opts = {
- displayMode: fn || 1,
- noalpha: isFlash && /mac/.test(ua) && /firefox/.test(ua)
- };
-
- $.blockUI.impl.install(window, msg, { width: w, height: h, marginTop: mt, marginLeft: ml }, opts);
-};
-
-
-// override these in your code to change the default messages and styles
-$.blockUI.defaults = {
- // the message displayed when blocking the entire page
- pageMessage: '<h1>Please wait...</h1>',
- // the message displayed when blocking an element
- elementMessage: '', // none
- // styles for the overlay iframe
- overlayCSS: { backgroundColor: '#fff', opacity: '0.5' },
- // styles for the message when blocking the entire page
- pageMessageCSS: { width:'250px', margin:'-50px 0 0 -125px', top:'50%', left:'50%', textAlign:'center', color:'#000', backgroundColor:'#fff', border:'3px solid #aaa' },
- // styles for the message when blocking an element
- elementMessageCSS: { width:'250px', padding:'10px', textAlign:'center', backgroundColor:'#fff'},
- // styles for the displayBox
- displayBoxCSS: { width: '400px', height: '400px', top:'50%', left:'50%' },
- // allow body element to be stetched in ie6
- ie6Stretch: 1,
- // supress tab nav from leaving blocking content?
- allowTabToLeave: 0,
- // Title attribute for overlay when using displayBox
- closeMessage: 'Click to close',
- // use fadeOut effect when unblocking (can be overridden on unblock call)
- fadeOut: 1,
- // fadeOut transition time in millis
- fadeTime: 400
-};
-
-// the gory details
-$.blockUI.impl = {
- box: null,
- boxCallback: null,
- pageBlock: null,
- pageBlockEls: [],
- op8: window.opera && window.opera.version() < 9,
- ie6: $.browser.msie && /MSIE 6.0/.test(navigator.userAgent),
- install: function(el, msg, css, opts) {
- opts = opts || {};
- this.boxCallback = typeof opts.displayMode == 'function' ? opts.displayMode : null;
- this.box = opts.displayMode ? msg : null;
- var full = (el == window);
-
- // use logical settings for opacity support based on browser but allow overrides via opts arg
- var noalpha = this.op8 || $.browser.mozilla && /Linux/.test(navigator.platform);
- if (typeof opts.alphaOverride != 'undefined')
- noalpha = opts.alphaOverride == 0 ? 1 : 0;
-
- if (full && this.pageBlock) this.remove(window, {fadeOut:0});
- // check to see if we were only passed the css object (a literal)
- if (msg && typeof msg == 'object' && !msg.jquery && !msg.nodeType) {
- css = msg;
- msg = null;
- }
- msg = msg ? (msg.nodeType ? $(msg) : msg) : full ? $.blockUI.defaults.pageMessage : $.blockUI.defaults.elementMessage;
- if (opts.displayMode)
- var basecss = jQuery.extend({}, $.blockUI.defaults.displayBoxCSS);
- else
- var basecss = jQuery.extend({}, full ? $.blockUI.defaults.pageMessageCSS : $.blockUI.defaults.elementMessageCSS);
- css = jQuery.extend(basecss, css || {});
- var f = ($.browser.msie) ? $('<iframe class="blockUI" style="z-index:1000;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="javascript:false;"></iframe>')
- : $('<div class="blockUI" style="display:none"></div>');
- var w = $('<div class="blockUI" style="z-index:1001;cursor:wait;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
- var m = full ? $('<div class="blockUI blockMsg" style="z-index:1002;cursor:wait;padding:0;position:fixed"></div>')
- : $('<div class="blockUI" style="display:none;z-index:1002;cursor:wait;position:absolute"></div>');
- w.css('position', full ? 'fixed' : 'absolute');
- if (msg) m.css(css);
- if (!noalpha) w.css($.blockUI.defaults.overlayCSS);
- if (this.op8) w.css({ width:''+el.clientWidth,height:''+el.clientHeight }); // lame
- if ($.browser.msie) f.css('opacity','0.0');
-
- $([f[0],w[0],m[0]]).appendTo(full ? 'body' : el);
-
- // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
- var expr = $.browser.msie && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
- if (this.ie6 || expr) {
- // stretch content area if it's short
- if (full && $.blockUI.defaults.ie6Stretch && $.boxModel)
- $('html,body').css('height','100%');
-
- // fix ie6 problem when blocked element has a border width
- if ((this.ie6 || !$.boxModel) && !full) {
- var t = this.sz(el,'borderTopWidth'), l = this.sz(el,'borderLeftWidth');
- var fixT = t ? '(0 - '+t+')' : 0;
- var fixL = l ? '(0 - '+l+')' : 0;
- }
-
- // simulate fixed position
- $.each([f,w,m], function(i,o) {
- var s = o[0].style;
- s.position = 'absolute';
- if (i < 2) {
- full ? s.setExpression('height','document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + "px"')
- : s.setExpression('height','this.parentNode.offsetHeight + "px"');
- full ? s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
- : s.setExpression('width','this.parentNode.offsetWidth + "px"');
- if (fixL) s.setExpression('left', fixL);
- if (fixT) s.setExpression('top', fixT);
- }
- else {
- if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
- s.marginTop = 0;
- }
- });
- }
- if (opts.displayMode) {
- w.css('cursor','default').attr('title', $.blockUI.defaults.closeMessage);
- m.css('cursor','default');
- $([f[0],w[0],m[0]]).removeClass('blockUI').addClass('displayBox');
- $().click($.blockUI.impl.boxHandler).bind('keypress', $.blockUI.impl.boxHandler);
- }
- else
- this.bind(1, el);
- m.append(msg).show();
- if (msg.jquery) msg.show();
- if (opts.displayMode) return;
- if (full) {
- this.pageBlock = m[0];
- this.pageBlockEls = $(':input:enabled:visible',this.pageBlock);
- setTimeout(this.focus, 20);
- }
- else this.center(m[0]);
- },
- remove: function(el, opts) {
- var o = $.extend({}, $.blockUI.defaults, opts);
- this.bind(0, el);
- var full = el == window;
- var els = full ? $('body').children().filter('.blockUI') : $('.blockUI', el);
- if (full) this.pageBlock = this.pageBlockEls = null;
-
- if (o.fadeOut) {
- els.fadeOut(o.fadeTime, function() {
- if (this.parentNode) this.parentNode.removeChild(this);
- });
- }
- else els.remove();
- },
- boxRemove: function(el) {
- $().unbind('click',$.blockUI.impl.boxHandler).unbind('keypress', $.blockUI.impl.boxHandler);
- if (this.boxCallback)
- this.boxCallback(this.box);
- $('body .displayBox').hide().remove();
- },
- // event handler to suppress keyboard/mouse events when blocking
- handler: function(e) {
- if (e.keyCode && e.keyCode == 9) {
- if ($.blockUI.impl.pageBlock && !$.blockUI.defaults.allowTabToLeave) {
- var els = $.blockUI.impl.pageBlockEls;
- var fwd = !e.shiftKey && e.target == els[els.length-1];
- var back = e.shiftKey && e.target == els[0];
- if (fwd || back) {
- setTimeout(function(){$.blockUI.impl.focus(back)},10);
- return false;
- }
- }
- }
- if ($(e.target).parents('div.blockMsg').length > 0)
- return true;
- return $(e.target).parents().children().filter('div.blockUI').length == 0;
- },
- boxHandler: function(e) {
- if ((e.keyCode && e.keyCode == 27) || (e.type == 'click' && $(e.target).parents('div.blockMsg').length == 0))
- $.blockUI.impl.boxRemove();
- return true;
- },
- // bind/unbind the handler
- bind: function(b, el) {
- var full = el == window;
- // don't bother unbinding if there is nothing to unbind
- if (!b && (full && !this.pageBlock || !full && !el.$blocked)) return;
- if (!full) el.$blocked = b;
- var $e = $(el).find('a,:input');
- $.each(['mousedown','mouseup','keydown','keypress','click'], function(i,o) {
- $e[b?'bind':'unbind'](o, $.blockUI.impl.handler);
- });
- },
- focus: function(back) {
- if (!$.blockUI.impl.pageBlockEls) return;
- var e = $.blockUI.impl.pageBlockEls[back===true ? $.blockUI.impl.pageBlockEls.length-1 : 0];
- if (e) e.focus();
- },
- center: function(el) {
- var p = el.parentNode, s = el.style;
- var l = ((p.offsetWidth - el.offsetWidth)/2) - this.sz(p,'borderLeftWidth');
- var t = ((p.offsetHeight - el.offsetHeight)/2) - this.sz(p,'borderTopWidth');
- s.left = l > 0 ? (l+'px') : '0';
- s.top = t > 0 ? (t+'px') : '0';
- },
- sz: function(el, p) { return parseInt($.css(el,p))||0; }
-};
-
-})(jQuery);
+/*
+ * jQuery blockUI plugin
+ * Version 1.33 (09/14/2007)
+ * @requires jQuery v1.1.1
+ *
+ * $Id$
+ *
+ * Examples at: http://malsup.com/jquery/block/
+ * Copyright (c) 2007 M. Alsup
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+ (function($) {
+/**
+ * blockUI provides a mechanism for blocking user interaction with a page (or parts of a page).
+ * This can be an effective way to simulate synchronous behavior during ajax operations without
+ * locking the browser. It will prevent user operations for the current page while it is
+ * active ane will return the page to normal when it is deactivate. blockUI accepts the following
+ * two optional arguments:
+ *
+ * message (String|Element|jQuery): The message to be displayed while the UI is blocked. The message
+ * argument can be a plain text string like "Processing...", an HTML string like
+ * "<h1><img src="busy.gif" /> Please wait...</h1>", a DOM element, or a jQuery object.
+ * The default message is "<h1>Please wait...</h1>"
+ *
+ * css (Object): Object which contains css property/values to override the default styles of
+ * the message. Use this argument if you wish to override the default
+ * styles. The css Object should be in a format suitable for the jQuery.css
+ * function. For example:
+ * $.blockUI({
+ * backgroundColor: '#ff8',
+ * border: '5px solid #f00,
+ * fontWeight: 'bold'
+ * });
+ *
+ * The default blocking message used when blocking the entire page is "<h1>Please wait...</h1>"
+ * but this can be overridden by assigning a value to $.blockUI.defaults.pageMessage in your
+ * own code. For example:
+ *
+ * $.blockUI.defaults.pageMessage = "<h1>Bitte Wartezeit</h1>";
+ *
+ * The default message styling can also be overridden. For example:
+ *
+ * $.extend($.blockUI.defaults.pageMessageCSS, { color: '#00a', backgroundColor: '#0f0' });
+ *
+ * The default styles work well for simple messages like "Please wait", but for longer messages
+ * style overrides may be necessary.
+ *
+ * @example $.blockUI();
+ * @desc prevent user interaction with the page (and show the default message of 'Please wait...')
+ *
+ * @example $.blockUI( { backgroundColor: '#f00', color: '#fff'} );
+ * @desc prevent user interaction and override the default styles of the message to use a white on red color scheme
+ *
+ * @example $.blockUI('Processing...');
+ * @desc prevent user interaction and display the message "Processing..." instead of the default message
+ *
+ * @name blockUI
+ * @param String|jQuery|Element message Message to display while the UI is blocked
+ * @param Object css Style object to control look of the message
+ * @cat Plugins/blockUI
+ */
+$.blockUI = function(msg, css, opts) {
+ $.blockUI.impl.install(window, msg, css, opts);
+};
+
+// expose version number so other plugins can interogate
+$.blockUI.version = 1.33;
+
+/**
+ * unblockUI removes the UI block that was put in place by blockUI
+ *
+ * @example $.unblockUI();
+ * @desc unblocks the page
+ *
+ * @name unblockUI
+ * @cat Plugins/blockUI
+ */
+$.unblockUI = function(opts) {
+ $.blockUI.impl.remove(window, opts);
+};
+
+/**
+ * Blocks user interaction with the selected elements. (Hat tip: Much of
+ * this logic comes from Brandon Aaron's bgiframe plugin. Thanks, Brandon!)
+ * By default, no message is displayed when blocking elements.
+ *
+ * @example $('div.special').block();
+ * @desc prevent user interaction with all div elements with the 'special' class.
+ *
+ * @example $('div.special').block('Please wait');
+ * @desc prevent user interaction with all div elements with the 'special' class
+ * and show a message over the blocked content.
+ *
+ * @name block
+ * @type jQuery
+ * @param String|jQuery|Element message Message to display while the element is blocked
+ * @param Object css Style object to control look of the message
+ * @cat Plugins/blockUI
+ */
+$.fn.block = function(msg, css, opts) {
+ return this.each(function() {
+ if (!this.$pos_checked) {
+ if ($.css(this,"position") == 'static')
+ this.style.position = 'relative';
+ if ($.browser.msie) this.style.zoom = 1; // force 'hasLayout' in IE
+ this.$pos_checked = 1;
+ }
+ $.blockUI.impl.install(this, msg, css, opts);
+ });
+};
+
+/**
+ * Unblocks content that was blocked by "block()"
+ *
+ * @example $('div.special').unblock();
+ * @desc unblocks all div elements with the 'special' class.
+ *
+ * @name unblock
+ * @type jQuery
+ * @cat Plugins/blockUI
+ */
+$.fn.unblock = function(opts) {
+ return this.each(function() {
+ $.blockUI.impl.remove(this, opts);
+ });
+};
+
+/**
+ * displays the first matched element in a "display box" above a page overlay.
+ *
+ * @example $('#myImage').displayBox();
+ * @desc displays "myImage" element in a box
+ *
+ * @name displayBox
+ * @type jQuery
+ * @cat Plugins/blockUI
+ */
+$.fn.displayBox = function(css, fn, isFlash) {
+ var msg = this[0];
+ if (!msg) return;
+ var $msg = $(msg);
+ css = css || {};
+
+ var w = $msg.width() || $msg.attr('width') || css.width || $.blockUI.defaults.displayBoxCSS.width;
+ var h = $msg.height() || $msg.attr('height') || css.height || $.blockUI.defaults.displayBoxCSS.height ;
+ if (w[w.length-1] == '%') {
+ var ww = document.documentElement.clientWidth || document.body.clientWidth;
+ w = parseInt(w) || 100;
+ w = (w * ww) / 100;
+ }
+ if (h[h.length-1] == '%') {
+ var hh = document.documentElement.clientHeight || document.body.clientHeight;
+ h = parseInt(h) || 100;
+ h = (h * hh) / 100;
+ }
+
+ var ml = '-' + parseInt(w)/2 + 'px';
+ var mt = '-' + parseInt(h)/2 + 'px';
+
+ // supress opacity on overlay if displaying flash content on mac/ff platform
+ var ua = navigator.userAgent.toLowerCase();
+ var opts = {
+ displayMode: fn || 1,
+ noalpha: isFlash && /mac/.test(ua) && /firefox/.test(ua)
+ };
+
+ $.blockUI.impl.install(window, msg, { width: w, height: h, marginTop: mt, marginLeft: ml }, opts);
+};
+
+
+// override these in your code to change the default messages and styles
+$.blockUI.defaults = {
+ // the message displayed when blocking the entire page
+ pageMessage: '<h1>Please wait...</h1>',
+ // the message displayed when blocking an element
+ elementMessage: '', // none
+ // styles for the overlay iframe
+ overlayCSS: { backgroundColor: '#fff', opacity: '0.5' },
+ // styles for the message when blocking the entire page
+ pageMessageCSS: { width:'250px', margin:'-50px 0 0 -125px', top:'50%', left:'50%', textAlign:'center', color:'#000', backgroundColor:'#fff', border:'3px solid #aaa' },
+ // styles for the message when blocking an element
+ elementMessageCSS: { width:'250px', padding:'10px', textAlign:'center', backgroundColor:'#fff'},
+ // styles for the displayBox
+ displayBoxCSS: { width: '400px', height: '400px', top:'50%', left:'50%' },
+ // allow body element to be stetched in ie6
+ ie6Stretch: 1,
+ // supress tab nav from leaving blocking content?
+ allowTabToLeave: 0,
+ // Title attribute for overlay when using displayBox
+ closeMessage: 'Click to close',
+ // use fadeOut effect when unblocking (can be overridden on unblock call)
+ fadeOut: 1,
+ // fadeOut transition time in millis
+ fadeTime: 400
+};
+
+// the gory details
+$.blockUI.impl = {
+ box: null,
+ boxCallback: null,
+ pageBlock: null,
+ pageBlockEls: [],
+ op8: window.opera && window.opera.version() < 9,
+ ie6: $.browser.msie && /MSIE 6.0/.test(navigator.userAgent),
+ install: function(el, msg, css, opts) {
+ opts = opts || {};
+ this.boxCallback = typeof opts.displayMode == 'function' ? opts.displayMode : null;
+ this.box = opts.displayMode ? msg : null;
+ var full = (el == window);
+
+ // use logical settings for opacity support based on browser but allow overrides via opts arg
+ var noalpha = this.op8 || $.browser.mozilla && /Linux/.test(navigator.platform);
+ if (typeof opts.alphaOverride != 'undefined')
+ noalpha = opts.alphaOverride == 0 ? 1 : 0;
+
+ if (full && this.pageBlock) this.remove(window, {fadeOut:0});
+ // check to see if we were only passed the css object (a literal)
+ if (msg && typeof msg == 'object' && !msg.jquery && !msg.nodeType) {
+ css = msg;
+ msg = null;
+ }
+ msg = msg ? (msg.nodeType ? $(msg) : msg) : full ? $.blockUI.defaults.pageMessage : $.blockUI.defaults.elementMessage;
+ if (opts.displayMode)
+ var basecss = jQuery.extend({}, $.blockUI.defaults.displayBoxCSS);
+ else
+ var basecss = jQuery.extend({}, full ? $.blockUI.defaults.pageMessageCSS : $.blockUI.defaults.elementMessageCSS);
+ css = jQuery.extend(basecss, css || {});
+ var f = ($.browser.msie) ? $('<iframe class="blockUI" style="z-index:1000;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="javascript:false;"></iframe>')
+ : $('<div class="blockUI" style="display:none"></div>');
+ var w = $('<div class="blockUI" style="z-index:1001;cursor:wait;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
+ var m = full ? $('<div class="blockUI blockMsg" style="z-index:1002;cursor:wait;padding:0;position:fixed"></div>')
+ : $('<div class="blockUI" style="display:none;z-index:1002;cursor:wait;position:absolute"></div>');
+ w.css('position', full ? 'fixed' : 'absolute');
+ if (msg) m.css(css);
+ if (!noalpha) w.css($.blockUI.defaults.overlayCSS);
+ if (this.op8) w.css({ width:''+el.clientWidth,height:''+el.clientHeight }); // lame
+ if ($.browser.msie) f.css('opacity','0.0');
+
+ $([f[0],w[0],m[0]]).appendTo(full ? 'body' : el);
+
+ // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
+ var expr = $.browser.msie && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
+ if (this.ie6 || expr) {
+ // stretch content area if it's short
+ if (full && $.blockUI.defaults.ie6Stretch && $.boxModel)
+ $('html,body').css('height','100%');
+
+ // fix ie6 problem when blocked element has a border width
+ if ((this.ie6 || !$.boxModel) && !full) {
+ var t = this.sz(el,'borderTopWidth'), l = this.sz(el,'borderLeftWidth');
+ var fixT = t ? '(0 - '+t+')' : 0;
+ var fixL = l ? '(0 - '+l+')' : 0;
+ }
+
+ // simulate fixed position
+ $.each([f,w,m], function(i,o) {
+ var s = o[0].style;
+ s.position = 'absolute';
+ if (i < 2) {
+ full ? s.setExpression('height','document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + "px"')
+ : s.setExpression('height','this.parentNode.offsetHeight + "px"');
+ full ? s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
+ : s.setExpression('width','this.parentNode.offsetWidth + "px"');
+ if (fixL) s.setExpression('left', fixL);
+ if (fixT) s.setExpression('top', fixT);
+ }
+ else {
+ if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
+ s.marginTop = 0;
+ }
+ });
+ }
+ if (opts.displayMode) {
+ w.css('cursor','default').attr('title', $.blockUI.defaults.closeMessage);
+ m.css('cursor','default');
+ $([f[0],w[0],m[0]]).removeClass('blockUI').addClass('displayBox');
+ $().click($.blockUI.impl.boxHandler).bind('keypress', $.blockUI.impl.boxHandler);
+ }
+ else
+ this.bind(1, el);
+ m.append(msg).show();
+ if (msg.jquery) msg.show();
+ if (opts.displayMode) return;
+ if (full) {
+ this.pageBlock = m[0];
+ this.pageBlockEls = $(':input:enabled:visible',this.pageBlock);
+ setTimeout(this.focus, 20);
+ }
+ else this.center(m[0]);
+ },
+ remove: function(el, opts) {
+ var o = $.extend({}, $.blockUI.defaults, opts);
+ this.bind(0, el);
+ var full = el == window;
+ var els = full ? $('body').children().filter('.blockUI') : $('.blockUI', el);
+ if (full) this.pageBlock = this.pageBlockEls = null;
+
+ if (o.fadeOut) {
+ els.fadeOut(o.fadeTime, function() {
+ if (this.parentNode) this.parentNode.removeChild(this);
+ });
+ }
+ else els.remove();
+ },
+ boxRemove: function(el) {
+ $().unbind('click',$.blockUI.impl.boxHandler).unbind('keypress', $.blockUI.impl.boxHandler);
+ if (this.boxCallback)
+ this.boxCallback(this.box);
+ $('body .displayBox').hide().remove();
+ },
+ // event handler to suppress keyboard/mouse events when blocking
+ handler: function(e) {
+ if (e.keyCode && e.keyCode == 9) {
+ if ($.blockUI.impl.pageBlock && !$.blockUI.defaults.allowTabToLeave) {
+ var els = $.blockUI.impl.pageBlockEls;
+ var fwd = !e.shiftKey && e.target == els[els.length-1];
+ var back = e.shiftKey && e.target == els[0];
+ if (fwd || back) {
+ setTimeout(function(){$.blockUI.impl.focus(back)},10);
+ return false;
+ }
+ }
+ }
+ if ($(e.target).parents('div.blockMsg').length > 0)
+ return true;
+ return $(e.target).parents().children().filter('div.blockUI').length == 0;
+ },
+ boxHandler: function(e) {
+ if ((e.keyCode && e.keyCode == 27) || (e.type == 'click' && $(e.target).parents('div.blockMsg').length == 0))
+ $.blockUI.impl.boxRemove();
+ return true;
+ },
+ // bind/unbind the handler
+ bind: function(b, el) {
+ var full = el == window;
+ // don't bother unbinding if there is nothing to unbind
+ if (!b && (full && !this.pageBlock || !full && !el.$blocked)) return;
+ if (!full) el.$blocked = b;
+ var $e = $(el).find('a,:input');
+ $.each(['mousedown','mouseup','keydown','keypress','click'], function(i,o) {
+ $e[b?'bind':'unbind'](o, $.blockUI.impl.handler);
+ });
+ },
+ focus: function(back) {
+ if (!$.blockUI.impl.pageBlockEls) return;
+ var e = $.blockUI.impl.pageBlockEls[back===true ? $.blockUI.impl.pageBlockEls.length-1 : 0];
+ if (e) e.focus();
+ },
+ center: function(el) {
+ var p = el.parentNode, s = el.style;
+ var l = ((p.offsetWidth - el.offsetWidth)/2) - this.sz(p,'borderLeftWidth');
+ var t = ((p.offsetHeight - el.offsetHeight)/2) - this.sz(p,'borderTopWidth');
+ s.left = l > 0 ? (l+'px') : '0';
+ s.top = t > 0 ? (t+'px') : '0';
+ },
+ sz: function(el, p) { return parseInt($.css(el,p))||0; }
+};
+
+})(jQuery);
diff --git a/libs/jquery/original lib/jquery.scrollTo.js b/libs/jquery/original lib/jquery.scrollTo.js
index e0fb42870e..eb26fc231e 100644
--- a/libs/jquery/original lib/jquery.scrollTo.js
+++ b/libs/jquery/original lib/jquery.scrollTo.js
@@ -1,142 +1,142 @@
-/**
- * jQuery.ScrollTo
- * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
- * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php).
- * Date: 1/2/2008
- *
- * @projectDescription Easy element scrolling using jQuery.
- * Tested with jQuery 1.2.1. On FF 2.0.0.11, IE 6, Opera 9.22 and Safari 3 beta. on Windows.
- *
- * @author Ariel Flesler
- * @version 1.3
- *
- * @id jQuery.scrollTo
- * @id jQuery.fn.scrollTo
- * @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
- * The different options for target are:
- * - A number position (will be applied to all axes).
- * - A string position ('44', '100px', '+=90', etc ) will be applied to all axes
- * - A jQuery/DOM element ( logically, child of the element to scroll )
- * - A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
- * - A hash { top:x, left:y }, x and y can be any kind of number/string like above.
- * @param {Number} duration The OVERALL length of the animation, this argument can be the settings object instead.
- * @param {Object} settings Hash of settings, optional.
- * @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
- * @option {Number} duration The OVERALL length of the animation.
- * @option {String} easing The easing method for the animation.
- * @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
- * @option {Object, Number} offset Add/deduct from the end position. One number for both axis or { top:x, left:y }
- * @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
- * @option {Function} onAfter Function to be called after the scrolling ends.
- * @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
- * @return {jQuery} Returns the same jQuery object, for chaining.
- *
- * @example $('div').scrollTo( 340 );
- *
- * @example $('div').scrollTo( '+=340px', { axis:'y' } );
- *
- * @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
- *
- * @example var second_child = document.getElementById('container').firstChild.nextSibling;
- * $('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
- * alert('scrolled!!');
- * }});
- *
- * @example $('div').scrollTo( { top: 300, left:'+=200' }, { offset:-20 } );
- *
- * Notes:
- * - jQuery.scrollTo will make the whole window scroll, it accepts the same parameters as jQuery.fn.scrollTo.
- * - The plugin no longer requires Dimensions.
- * - If you are interested in animated anchor navigation, check http://jquery.com/plugins/project/LocalScroll.
- * - The option 'margin' won't be valid, if the target is not a jQuery object or a DOM element.
- * - The option 'queue' won't be taken into account, if only 1 axis is given.
- */
-;(function( $ ){
-
- $.scrollTo = function( target, duration, settings ){
- $( $.browser.safari ? 'body' : 'html' ).scrollTo( target, duration, settings );
- };
-
- $.scrollTo.defaults = {
- axis:'y',
- duration:1
- };
-
- $.fn.scrollTo = function( target, duration, settings ){
- if( typeof duration == 'object' ){
- settings = duration;
- duration = 0;
- }
- settings = $.extend( {}, $.scrollTo.defaults, settings );
- if( !duration )
- duration = settings.speed || settings.duration;//backward compatibility fix
- settings.queue = settings.queue && settings.axis.length == 2;//make sure the settings are given right
- if( settings.queue )
- duration = Math.ceil( duration / 2 );//let's keep the overall speed, the same.
- if( typeof settings.offset == 'number' )
- settings.offset = { left: settings.offset, top: settings.offset };
-
- return this.each(function(){
- var elem = this, $elem = $(elem),
- t = target, toff, attr = {},
- win = $elem.is('html,body');
- switch( typeof t ){
- case 'number'://will pass the regex
- case 'string':
- if( /^([+-]=)?\d+(px)?$/.test(t) ){
- t = { top:t, left:t };
- break;//we are done
- }
- t = $(t,this);// relative selector, no break!
- case 'object':
- if( t.is || t.style )//DOM/jQuery
- toff = (t = $(t)).offset();//get the real position of the target
- }
- $.each( settings.axis.split(''), parse );
- animate( settings.onAfter );
-
- function parse( i, axis ){
- var Pos = axis == 'x' ? 'Left' : 'Top',
- pos = Pos.toLowerCase(),
- key = 'scroll' + Pos,
- act = elem[key];
-
- if( toff ){//jQuery/DOM
- attr[key] = toff[pos] + ( win ? 0 : act - $elem.offset()[pos] );
-
- if( settings.margin ){//if it's a dom element, reduce the margin
- attr[key] -= parseInt(t.css('margin'+Pos)) || 0;
- attr[key] -= parseInt(t.css('border'+Pos+'Width')) || 0;
- }
-
- if( settings.offset && settings.offset[pos] )
- attr[key] += settings.offset[pos];
- }else{
- attr[key] = t[pos];
- }
-
- if( /^\d+$/.test(attr[key]) )
- attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max(axis) );//check the limits
-
- if( !i && settings.queue ){//queueing each axis is required
- if( act != attr[key] )//don't waste time animating, if there's no need.
- animate( settings.onAfterFirst );//intermediate animation
- delete attr[key];//don't animate this axis again in the next iteration.
- }
- };
-
- function animate( callback ){
- $elem.animate( attr, duration, settings.easing, function(){
- if( callback )
- callback.call(this, $elem, attr, t );
- });
- };
- function max( axis ){
- var el = win ? $.browser.opera ? document.body : document.documentElement : elem,
- Dim = axis == 'x' ? 'Width' : 'Height';
- return el['scroll'+Dim] - el['client'+Dim];
- };
- });
- };
-
+/**
+ * jQuery.ScrollTo
+ * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com
+ * Licensed under GPL license (http://www.opensource.org/licenses/gpl-license.php).
+ * Date: 1/2/2008
+ *
+ * @projectDescription Easy element scrolling using jQuery.
+ * Tested with jQuery 1.2.1. On FF 2.0.0.11, IE 6, Opera 9.22 and Safari 3 beta. on Windows.
+ *
+ * @author Ariel Flesler
+ * @version 1.3
+ *
+ * @id jQuery.scrollTo
+ * @id jQuery.fn.scrollTo
+ * @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
+ * The different options for target are:
+ * - A number position (will be applied to all axes).
+ * - A string position ('44', '100px', '+=90', etc ) will be applied to all axes
+ * - A jQuery/DOM element ( logically, child of the element to scroll )
+ * - A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
+ * - A hash { top:x, left:y }, x and y can be any kind of number/string like above.
+ * @param {Number} duration The OVERALL length of the animation, this argument can be the settings object instead.
+ * @param {Object} settings Hash of settings, optional.
+ * @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
+ * @option {Number} duration The OVERALL length of the animation.
+ * @option {String} easing The easing method for the animation.
+ * @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
+ * @option {Object, Number} offset Add/deduct from the end position. One number for both axis or { top:x, left:y }
+ * @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
+ * @option {Function} onAfter Function to be called after the scrolling ends.
+ * @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
+ * @return {jQuery} Returns the same jQuery object, for chaining.
+ *
+ * @example $('div').scrollTo( 340 );
+ *
+ * @example $('div').scrollTo( '+=340px', { axis:'y' } );
+ *
+ * @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
+ *
+ * @example var second_child = document.getElementById('container').firstChild.nextSibling;
+ * $('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
+ * alert('scrolled!!');
+ * }});
+ *
+ * @example $('div').scrollTo( { top: 300, left:'+=200' }, { offset:-20 } );
+ *
+ * Notes:
+ * - jQuery.scrollTo will make the whole window scroll, it accepts the same parameters as jQuery.fn.scrollTo.
+ * - The plugin no longer requires Dimensions.
+ * - If you are interested in animated anchor navigation, check http://jquery.com/plugins/project/LocalScroll.
+ * - The option 'margin' won't be valid, if the target is not a jQuery object or a DOM element.
+ * - The option 'queue' won't be taken into account, if only 1 axis is given.
+ */
+;(function( $ ){
+
+ $.scrollTo = function( target, duration, settings ){
+ $( $.browser.safari ? 'body' : 'html' ).scrollTo( target, duration, settings );
+ };
+
+ $.scrollTo.defaults = {
+ axis:'y',
+ duration:1
+ };
+
+ $.fn.scrollTo = function( target, duration, settings ){
+ if( typeof duration == 'object' ){
+ settings = duration;
+ duration = 0;
+ }
+ settings = $.extend( {}, $.scrollTo.defaults, settings );
+ if( !duration )
+ duration = settings.speed || settings.duration;//backward compatibility fix
+ settings.queue = settings.queue && settings.axis.length == 2;//make sure the settings are given right
+ if( settings.queue )
+ duration = Math.ceil( duration / 2 );//let's keep the overall speed, the same.
+ if( typeof settings.offset == 'number' )
+ settings.offset = { left: settings.offset, top: settings.offset };
+
+ return this.each(function(){
+ var elem = this, $elem = $(elem),
+ t = target, toff, attr = {},
+ win = $elem.is('html,body');
+ switch( typeof t ){
+ case 'number'://will pass the regex
+ case 'string':
+ if( /^([+-]=)?\d+(px)?$/.test(t) ){
+ t = { top:t, left:t };
+ break;//we are done
+ }
+ t = $(t,this);// relative selector, no break!
+ case 'object':
+ if( t.is || t.style )//DOM/jQuery
+ toff = (t = $(t)).offset();//get the real position of the target
+ }
+ $.each( settings.axis.split(''), parse );
+ animate( settings.onAfter );
+
+ function parse( i, axis ){
+ var Pos = axis == 'x' ? 'Left' : 'Top',
+ pos = Pos.toLowerCase(),
+ key = 'scroll' + Pos,
+ act = elem[key];
+
+ if( toff ){//jQuery/DOM
+ attr[key] = toff[pos] + ( win ? 0 : act - $elem.offset()[pos] );
+
+ if( settings.margin ){//if it's a dom element, reduce the margin
+ attr[key] -= parseInt(t.css('margin'+Pos)) || 0;
+ attr[key] -= parseInt(t.css('border'+Pos+'Width')) || 0;
+ }
+
+ if( settings.offset && settings.offset[pos] )
+ attr[key] += settings.offset[pos];
+ }else{
+ attr[key] = t[pos];
+ }
+
+ if( /^\d+$/.test(attr[key]) )
+ attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max(axis) );//check the limits
+
+ if( !i && settings.queue ){//queueing each axis is required
+ if( act != attr[key] )//don't waste time animating, if there's no need.
+ animate( settings.onAfterFirst );//intermediate animation
+ delete attr[key];//don't animate this axis again in the next iteration.
+ }
+ };
+
+ function animate( callback ){
+ $elem.animate( attr, duration, settings.easing, function(){
+ if( callback )
+ callback.call(this, $elem, attr, t );
+ });
+ };
+ function max( axis ){
+ var el = win ? $.browser.opera ? document.body : document.documentElement : elem,
+ Dim = axis == 'x' ? 'Width' : 'Height';
+ return el['scroll'+Dim] - el['client'+Dim];
+ };
+ });
+ };
+
})( jQuery ); \ No newline at end of file
diff --git a/libs/jquery/original lib/ui.mouse.js b/libs/jquery/original lib/ui.mouse.js
index 3525fe43b2..7e5f388a4a 100644
--- a/libs/jquery/original lib/ui.mouse.js
+++ b/libs/jquery/original lib/ui.mouse.js
@@ -1,253 +1,253 @@
-(function($) {
-
- //If the UI scope is not availalable, add it
- $.ui = $.ui || {};
-
- //Add methods that are vital for all mouse interaction stuff (plugin registering)
- $.extend($.ui, {
- plugin: {
- add: function(w, c, o, p) {
- var a = $.ui[w].prototype; if(!a.plugins[c]) a.plugins[c] = [];
- a.plugins[c].push([o,p]);
- },
- call: function(instance, name, arguments) {
- var c = instance.plugins[name]; if(!c) return;
- var o = instance.interaction ? instance.interaction.options : instance.options;
- var e = instance.interaction ? instance.interaction.element : instance.element;
-
- for (var i = 0; i < c.length; i++) {
- if (o[c[i][0]]) c[i][1].apply(e, arguments);
- }
- }
- }
- });
-
- $.fn.mouseInteractionDestroy = function() {
- this.each(function() {
- if($.data(this, "ui-mouse")) $.data(this, "ui-mouse").destroy();
- });
- }
-
- $.ui.mouseInteraction = function(el,o) {
-
- if(!o) var o = {};
- this.element = el;
- $.data(this.element, "ui-mouse", this);
-
- this.options = {};
- $.extend(this.options, o);
- $.extend(this.options, {
- handle : o.handle ? ($(o.handle, el)[0] ? $(o.handle, el) : $(el)) : $(el),
- helper: o.helper || 'original',
- preventionDistance: o.preventionDistance || 0,
- dragPrevention: o.dragPrevention ? o.dragPrevention.toLowerCase().split(',') : ['input','textarea','button','select','option'],
- cursorAt: { top: ((o.cursorAt && o.cursorAt.top) ? o.cursorAt.top : 0), left: ((o.cursorAt && o.cursorAt.left) ? o.cursorAt.left : 0), bottom: ((o.cursorAt && o.cursorAt.bottom) ? o.cursorAt.bottom : 0), right: ((o.cursorAt && o.cursorAt.right) ? o.cursorAt.right : 0) },
- cursorAtIgnore: (!o.cursorAt) ? true : false, //Internal property
- appendTo: o.appendTo || 'parent'
- })
- o = this.options; //Just Lazyness
-
- if(!this.options.nonDestructive && (o.helper == 'clone' || o.helper == 'original')) {
-
- // Let's save the margins for better reference
- o.margins = {
- top: parseInt($(el).css('marginTop')) || 0,
- left: parseInt($(el).css('marginLeft')) || 0,
- bottom: parseInt($(el).css('marginBottom')) || 0,
- right: parseInt($(el).css('marginRight')) || 0
- };
-
- // We have to add margins to our cursorAt
- if(o.cursorAt.top != 0) o.cursorAt.top = o.margins.top;
- if(o.cursorAt.left != 0) o.cursorAt.left += o.margins.left;
- if(o.cursorAt.bottom != 0) o.cursorAt.bottom += o.margins.bottom;
- if(o.cursorAt.right != 0) o.cursorAt.right += o.margins.right;
-
-
- if(o.helper == 'original')
- o.wasPositioned = $(el).css('position');
-
- } else {
- o.margins = { top: 0, left: 0, right: 0, bottom: 0 };
- }
-
- var self = this;
- this.mousedownfunc = function(e) { // Bind the mousedown event
- return self.click.apply(self, [e]);
- }
- o.handle.bind('mousedown', this.mousedownfunc);
-
- //Prevent selection of text when starting the drag in IE
- if($.browser.msie) $(this.element).attr('unselectable', 'on');
-
- }
-
- $.extend($.ui.mouseInteraction.prototype, {
- plugins: {},
- currentTarget: null,
- lastTarget: null,
- timer: null,
- slowMode: false,
- init: false,
- destroy: function() {
- this.options.handle.unbind('mousedown', this.mousedownfunc);
- },
- trigger: function(e) {
- return this.click.apply(this, arguments);
- },
- click: function(e) {
-
- var o = this.options;
-
- window.focus();
- if(e.which != 1) return true; //only left click starts dragging
-
- // Prevent execution on defined elements
- var targetName = (e.target) ? e.target.nodeName.toLowerCase() : e.srcElement.nodeName.toLowerCase();
- for(var i=0;i<o.dragPrevention.length;i++) {
- if(targetName == o.dragPrevention[i]) return true;
- }
-
- //Prevent execution on condition
- if(o.startCondition && !o.startCondition.apply(this, [e])) return true;
-
- var self = this;
- this.mouseup = function(e) { return self.stop.apply(self, [e]); }
- this.mousemove = function(e) { return self.drag.apply(self, [e]); }
-
- var initFunc = function() { //This function get's called at bottom or after timeout
- $(document).bind('mouseup', self.mouseup);
- $(document).bind('mousemove', self.mousemove);
- self.opos = [e.pageX,e.pageY]; // Get the original mouse position
- }
-
- if(o.preventionTimeout) { //use prevention timeout
- if(this.timer) clearInterval(this.timer);
- this.timer = setTimeout(function() { initFunc(); }, o.preventionTimeout);
- return false;
- }
-
- initFunc();
- return false;
-
- },
- start: function(e) {
-
- var o = this.options; var a = this.element;
- o.co = $(a).offset(); //get the current offset
-
- this.helper = typeof o.helper == 'function' ? $(o.helper.apply(a, [e,this]))[0] : (o.helper == 'clone' ? $(a).clone()[0] : a);
-
- if(o.appendTo == 'parent') { // Let's see if we have a positioned parent
- var cp = a.parentNode;
- while (cp) {
- if(cp.style && ($(cp).css('position') == 'relative' || $(cp).css('position') == 'absolute')) {
- o.pp = cp;
- o.po = $(cp).offset();
- o.ppOverflow = !!($(o.pp).css('overflow') == 'auto' || $(o.pp).css('overflow') == 'scroll'); //TODO!
- break;
- }
- cp = cp.parentNode ? cp.parentNode : null;
- };
-
- if(!o.pp) o.po = { top: 0, left: 0 };
- }
-
- this.pos = [this.opos[0],this.opos[1]]; //Use the relative position
- this.rpos = [this.pos[0],this.pos[1]]; //Save the absolute position
-
- if(o.cursorAtIgnore) { // If we want to pick the element where we clicked, we borrow cursorAt and add margins
- o.cursorAt.left = this.pos[0] - o.co.left + o.margins.left;
- o.cursorAt.top = this.pos[1] - o.co.top + o.margins.top;
- }
-
-
-
- if(o.pp) { // If we have a positioned parent, we pick the draggable relative to it
- this.pos[0] -= o.po.left;
- this.pos[1] -= o.po.top;
- }
-
- this.slowMode = (o.cursorAt && (o.cursorAt.top-o.margins.top > 0 || o.cursorAt.bottom-o.margins.bottom > 0) && (o.cursorAt.left-o.margins.left > 0 || o.cursorAt.right-o.margins.right > 0)) ? true : false; //If cursorAt is within the helper, set slowMode to true
-
- if(!o.nonDestructive) $(this.helper).css('position', 'absolute');
- if(o.helper != 'original') $(this.helper).appendTo((o.appendTo == 'parent' ? a.parentNode : o.appendTo)).show();
-
- // Remap right/bottom properties for cursorAt to left/top
- if(o.cursorAt.right && !o.cursorAt.left) o.cursorAt.left = this.helper.offsetWidth+o.margins.right+o.margins.left - o.cursorAt.right;
- if(o.cursorAt.bottom && !o.cursorAt.top) o.cursorAt.top = this.helper.offsetHeight+o.margins.top+o.margins.bottom - o.cursorAt.bottom;
-
- this.init = true;
-
- if(o._start) o._start.apply(a, [this.helper, this.pos, o.cursorAt, this, e]); // Trigger the start callback
- this.helperSize = { width: outerWidth(this.helper), height: outerHeight(this.helper) }; //Set helper size property
- return false;
-
- },
- stop: function(e) {
-
- var o = this.options; var a = this.element; var self = this;
-
- $(document).unbind('mouseup', self.mouseup);
- $(document).unbind('mousemove', self.mousemove);
-
- if(this.init == false) return this.opos = this.pos = null;
- if(o._beforeStop) o._beforeStop.apply(a, [this.helper, this.pos, o.cursorAt, this, e]);
-
- if(this.helper != a && !o.beQuietAtEnd) { // Remove helper, if it's not the original node
- $(this.helper).remove(); this.helper = null;
- }
-
- if(!o.beQuietAtEnd) {
- //if(o.wasPositioned) $(a).css('position', o.wasPositioned);
- if(o._stop) o._stop.apply(a, [this.helper, this.pos, o.cursorAt, this, e]);
- }
-
- this.init = false;
- this.opos = this.pos = null;
- return false;
-
- },
- drag: function(e) {
-
- if (!this.opos || ($.browser.msie && !e.button)) return this.stop.apply(this, [e]); // check for IE mouseup when moving into the document again
- var o = this.options;
-
- this.pos = [e.pageX,e.pageY]; //relative mouse position
- if(this.rpos && this.rpos[0] == this.pos[0] && this.rpos[1] == this.pos[1]) return false;
- this.rpos = [this.pos[0],this.pos[1]]; //absolute mouse position
-
- if(o.pp) { //If we have a positioned parent, use a relative position
- this.pos[0] -= o.po.left;
- this.pos[1] -= o.po.top;
- }
-
- if( (Math.abs(this.rpos[0]-this.opos[0]) > o.preventionDistance || Math.abs(this.rpos[1]-this.opos[1]) > o.preventionDistance) && this.init == false) //If position is more than x pixels from original position, start dragging
- this.start.apply(this,[e]);
- else {
- if(this.init == false) return false;
- }
-
- if(o._drag) o._drag.apply(this.element, [this.helper, this.pos, o.cursorAt, this, e]);
- return false;
-
- }
- });
-
- var num = function(el, prop) {
- return parseInt($.css(el.jquery?el[0]:el,prop))||0;
- };
- function outerWidth(el) {
- var $el = $(el), ow = $el.width();
- for (var i = 0, props = ['borderLeftWidth', 'paddingLeft', 'paddingRight', 'borderRightWidth']; i < props.length; i++)
- ow += num($el, props[i]);
- return ow;
- }
- function outerHeight(el) {
- var $el = $(el), oh = $el.width();
- for (var i = 0, props = ['borderTopWidth', 'paddingTop', 'paddingBottom', 'borderBottomWidth']; i < props.length; i++)
- oh += num($el, props[i]);
- return oh;
- }
-
- })($);
+(function($) {
+
+ //If the UI scope is not availalable, add it
+ $.ui = $.ui || {};
+
+ //Add methods that are vital for all mouse interaction stuff (plugin registering)
+ $.extend($.ui, {
+ plugin: {
+ add: function(w, c, o, p) {
+ var a = $.ui[w].prototype; if(!a.plugins[c]) a.plugins[c] = [];
+ a.plugins[c].push([o,p]);
+ },
+ call: function(instance, name, arguments) {
+ var c = instance.plugins[name]; if(!c) return;
+ var o = instance.interaction ? instance.interaction.options : instance.options;
+ var e = instance.interaction ? instance.interaction.element : instance.element;
+
+ for (var i = 0; i < c.length; i++) {
+ if (o[c[i][0]]) c[i][1].apply(e, arguments);
+ }
+ }
+ }
+ });
+
+ $.fn.mouseInteractionDestroy = function() {
+ this.each(function() {
+ if($.data(this, "ui-mouse")) $.data(this, "ui-mouse").destroy();
+ });
+ }
+
+ $.ui.mouseInteraction = function(el,o) {
+
+ if(!o) var o = {};
+ this.element = el;
+ $.data(this.element, "ui-mouse", this);
+
+ this.options = {};
+ $.extend(this.options, o);
+ $.extend(this.options, {
+ handle : o.handle ? ($(o.handle, el)[0] ? $(o.handle, el) : $(el)) : $(el),
+ helper: o.helper || 'original',
+ preventionDistance: o.preventionDistance || 0,
+ dragPrevention: o.dragPrevention ? o.dragPrevention.toLowerCase().split(',') : ['input','textarea','button','select','option'],
+ cursorAt: { top: ((o.cursorAt && o.cursorAt.top) ? o.cursorAt.top : 0), left: ((o.cursorAt && o.cursorAt.left) ? o.cursorAt.left : 0), bottom: ((o.cursorAt && o.cursorAt.bottom) ? o.cursorAt.bottom : 0), right: ((o.cursorAt && o.cursorAt.right) ? o.cursorAt.right : 0) },
+ cursorAtIgnore: (!o.cursorAt) ? true : false, //Internal property
+ appendTo: o.appendTo || 'parent'
+ })
+ o = this.options; //Just Lazyness
+
+ if(!this.options.nonDestructive && (o.helper == 'clone' || o.helper == 'original')) {
+
+ // Let's save the margins for better reference
+ o.margins = {
+ top: parseInt($(el).css('marginTop')) || 0,
+ left: parseInt($(el).css('marginLeft')) || 0,
+ bottom: parseInt($(el).css('marginBottom')) || 0,
+ right: parseInt($(el).css('marginRight')) || 0
+ };
+
+ // We have to add margins to our cursorAt
+ if(o.cursorAt.top != 0) o.cursorAt.top = o.margins.top;
+ if(o.cursorAt.left != 0) o.cursorAt.left += o.margins.left;
+ if(o.cursorAt.bottom != 0) o.cursorAt.bottom += o.margins.bottom;
+ if(o.cursorAt.right != 0) o.cursorAt.right += o.margins.right;
+
+
+ if(o.helper == 'original')
+ o.wasPositioned = $(el).css('position');
+
+ } else {
+ o.margins = { top: 0, left: 0, right: 0, bottom: 0 };
+ }
+
+ var self = this;
+ this.mousedownfunc = function(e) { // Bind the mousedown event
+ return self.click.apply(self, [e]);
+ }
+ o.handle.bind('mousedown', this.mousedownfunc);
+
+ //Prevent selection of text when starting the drag in IE
+ if($.browser.msie) $(this.element).attr('unselectable', 'on');
+
+ }
+
+ $.extend($.ui.mouseInteraction.prototype, {
+ plugins: {},
+ currentTarget: null,
+ lastTarget: null,
+ timer: null,
+ slowMode: false,
+ init: false,
+ destroy: function() {
+ this.options.handle.unbind('mousedown', this.mousedownfunc);
+ },
+ trigger: function(e) {
+ return this.click.apply(this, arguments);
+ },
+ click: function(e) {
+
+ var o = this.options;
+
+ window.focus();
+ if(e.which != 1) return true; //only left click starts dragging
+
+ // Prevent execution on defined elements
+ var targetName = (e.target) ? e.target.nodeName.toLowerCase() : e.srcElement.nodeName.toLowerCase();
+ for(var i=0;i<o.dragPrevention.length;i++) {
+ if(targetName == o.dragPrevention[i]) return true;
+ }
+
+ //Prevent execution on condition
+ if(o.startCondition && !o.startCondition.apply(this, [e])) return true;
+
+ var self = this;
+ this.mouseup = function(e) { return self.stop.apply(self, [e]); }
+ this.mousemove = function(e) { return self.drag.apply(self, [e]); }
+
+ var initFunc = function() { //This function get's called at bottom or after timeout
+ $(document).bind('mouseup', self.mouseup);
+ $(document).bind('mousemove', self.mousemove);
+ self.opos = [e.pageX,e.pageY]; // Get the original mouse position
+ }
+
+ if(o.preventionTimeout) { //use prevention timeout
+ if(this.timer) clearInterval(this.timer);
+ this.timer = setTimeout(function() { initFunc(); }, o.preventionTimeout);
+ return false;
+ }
+
+ initFunc();
+ return false;
+
+ },
+ start: function(e) {
+
+ var o = this.options; var a = this.element;
+ o.co = $(a).offset(); //get the current offset
+
+ this.helper = typeof o.helper == 'function' ? $(o.helper.apply(a, [e,this]))[0] : (o.helper == 'clone' ? $(a).clone()[0] : a);
+
+ if(o.appendTo == 'parent') { // Let's see if we have a positioned parent
+ var cp = a.parentNode;
+ while (cp) {
+ if(cp.style && ($(cp).css('position') == 'relative' || $(cp).css('position') == 'absolute')) {
+ o.pp = cp;
+ o.po = $(cp).offset();
+ o.ppOverflow = !!($(o.pp).css('overflow') == 'auto' || $(o.pp).css('overflow') == 'scroll'); //TODO!
+ break;
+ }
+ cp = cp.parentNode ? cp.parentNode : null;
+ };
+
+ if(!o.pp) o.po = { top: 0, left: 0 };
+ }
+
+ this.pos = [this.opos[0],this.opos[1]]; //Use the relative position
+ this.rpos = [this.pos[0],this.pos[1]]; //Save the absolute position
+
+ if(o.cursorAtIgnore) { // If we want to pick the element where we clicked, we borrow cursorAt and add margins
+ o.cursorAt.left = this.pos[0] - o.co.left + o.margins.left;
+ o.cursorAt.top = this.pos[1] - o.co.top + o.margins.top;
+ }
+
+
+
+ if(o.pp) { // If we have a positioned parent, we pick the draggable relative to it
+ this.pos[0] -= o.po.left;
+ this.pos[1] -= o.po.top;
+ }
+
+ this.slowMode = (o.cursorAt && (o.cursorAt.top-o.margins.top > 0 || o.cursorAt.bottom-o.margins.bottom > 0) && (o.cursorAt.left-o.margins.left > 0 || o.cursorAt.right-o.margins.right > 0)) ? true : false; //If cursorAt is within the helper, set slowMode to true
+
+ if(!o.nonDestructive) $(this.helper).css('position', 'absolute');
+ if(o.helper != 'original') $(this.helper).appendTo((o.appendTo == 'parent' ? a.parentNode : o.appendTo)).show();
+
+ // Remap right/bottom properties for cursorAt to left/top
+ if(o.cursorAt.right && !o.cursorAt.left) o.cursorAt.left = this.helper.offsetWidth+o.margins.right+o.margins.left - o.cursorAt.right;
+ if(o.cursorAt.bottom && !o.cursorAt.top) o.cursorAt.top = this.helper.offsetHeight+o.margins.top+o.margins.bottom - o.cursorAt.bottom;
+
+ this.init = true;
+
+ if(o._start) o._start.apply(a, [this.helper, this.pos, o.cursorAt, this, e]); // Trigger the start callback
+ this.helperSize = { width: outerWidth(this.helper), height: outerHeight(this.helper) }; //Set helper size property
+ return false;
+
+ },
+ stop: function(e) {
+
+ var o = this.options; var a = this.element; var self = this;
+
+ $(document).unbind('mouseup', self.mouseup);
+ $(document).unbind('mousemove', self.mousemove);
+
+ if(this.init == false) return this.opos = this.pos = null;
+ if(o._beforeStop) o._beforeStop.apply(a, [this.helper, this.pos, o.cursorAt, this, e]);
+
+ if(this.helper != a && !o.beQuietAtEnd) { // Remove helper, if it's not the original node
+ $(this.helper).remove(); this.helper = null;
+ }
+
+ if(!o.beQuietAtEnd) {
+ //if(o.wasPositioned) $(a).css('position', o.wasPositioned);
+ if(o._stop) o._stop.apply(a, [this.helper, this.pos, o.cursorAt, this, e]);
+ }
+
+ this.init = false;
+ this.opos = this.pos = null;
+ return false;
+
+ },
+ drag: function(e) {
+
+ if (!this.opos || ($.browser.msie && !e.button)) return this.stop.apply(this, [e]); // check for IE mouseup when moving into the document again
+ var o = this.options;
+
+ this.pos = [e.pageX,e.pageY]; //relative mouse position
+ if(this.rpos && this.rpos[0] == this.pos[0] && this.rpos[1] == this.pos[1]) return false;
+ this.rpos = [this.pos[0],this.pos[1]]; //absolute mouse position
+
+ if(o.pp) { //If we have a positioned parent, use a relative position
+ this.pos[0] -= o.po.left;
+ this.pos[1] -= o.po.top;
+ }
+
+ if( (Math.abs(this.rpos[0]-this.opos[0]) > o.preventionDistance || Math.abs(this.rpos[1]-this.opos[1]) > o.preventionDistance) && this.init == false) //If position is more than x pixels from original position, start dragging
+ this.start.apply(this,[e]);
+ else {
+ if(this.init == false) return false;
+ }
+
+ if(o._drag) o._drag.apply(this.element, [this.helper, this.pos, o.cursorAt, this, e]);
+ return false;
+
+ }
+ });
+
+ var num = function(el, prop) {
+ return parseInt($.css(el.jquery?el[0]:el,prop))||0;
+ };
+ function outerWidth(el) {
+ var $el = $(el), ow = $el.width();
+ for (var i = 0, props = ['borderLeftWidth', 'paddingLeft', 'paddingRight', 'borderRightWidth']; i < props.length; i++)
+ ow += num($el, props[i]);
+ return ow;
+ }
+ function outerHeight(el) {
+ var $el = $(el), oh = $el.width();
+ for (var i = 0, props = ['borderTopWidth', 'paddingTop', 'paddingBottom', 'borderBottomWidth']; i < props.length; i++)
+ oh += num($el, props[i]);
+ return oh;
+ }
+
+ })($);
diff --git a/libs/jquery/thickbox.css b/libs/jquery/thickbox.css
index 4b2f5a5e7b..0cde9508ae 100644
--- a/libs/jquery/thickbox.css
+++ b/libs/jquery/thickbox.css
@@ -59,9 +59,9 @@
* html #TB_overlay { /* ie6 hack */
position: absolute;
- height: expression(document . body . scrollHeight > document . body .
+ height: expression(document . body . scrollHeight > document . body .
offsetHeight ? document . body . scrollHeight : document
- . body .
+ . body .
offsetHeight + 'px');
}
@@ -80,10 +80,10 @@
* html #TB_window { /* ie6 hack */
position: absolute;
margin-top: expression(0 - parseInt(this . offsetHeight/ 2) +
- (
- TBWindowMargin = document . documentElement && document .
+ (
+ TBWindowMargin = document . documentElement && document .
documentElement . scrollTop || document . body . scrollTop
- ) +
+ ) +
'px' );
}
@@ -156,10 +156,10 @@
* html #TB_load { /* ie6 hack */
position: absolute;
margin-top: expression(0 - parseInt(this . offsetHeight/ 2) +
- (
- TBWindowMargin = document . documentElement && document .
+ (
+ TBWindowMargin = document . documentElement && document .
documentElement . scrollTop || document . body . scrollTop
- ) +
+ ) +
'px' );
}
@@ -179,9 +179,9 @@
* html #TB_HideSelect { /* ie6 hack */
position: absolute;
- height: expression(document . body . scrollHeight > document . body .
+ height: expression(document . body . scrollHeight > document . body .
offsetHeight ? document . body . scrollHeight : document
- . body .
+ . body .
offsetHeight + 'px');
}
diff --git a/libs/jquery/tooltip/chili-1.7.pack.js b/libs/jquery/tooltip/chili-1.7.pack.js
index d6ddc0ecff..90e7735cbf 100644
--- a/libs/jquery/tooltip/chili-1.7.pack.js
+++ b/libs/jquery/tooltip/chili-1.7.pack.js
@@ -1 +1 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8={3b:"1.6",2o:"1B.1Y,1B.23,1B.2e",2i:"",2H:1a,12:"",2C:1a,Z:"",2a:\'<H V="$0">$$</H>\',R:"&#F;",1j:"&#F;&#F;&#F;&#F;",1f:"&#F;<1W/>",3c:5(){9 $(y).39("1k")[0]},I:{},N:{}};(5($){$(5(){5 1J(l,a){5 2I(A,h){4 3=(1v h.3=="1h")?h.3:h.3.1w;k.1m({A:A,3:"("+3+")",u:1+(3.c(/\\\\./g,"%").c(/\\[.*?\\]/g,"%").3a(/\\((?!\\?)/g)||[]).u,z:(h.z)?h.z:8.2a})}5 2z(){4 1E=0;4 1x=x 2A;Q(4 i=0;i<k.u;i++){4 3=k[i].3;3=3.c(/\\\\\\\\|\\\\(\\d+)/g,5(m,1F){9!1F?m:"\\\\"+(1E+1+1t(1F))});1x.1m(3);1E+=k[i].u}4 1w=1x.3d("|");9 x 1u(1w,(a.3g)?"2j":"g")}5 1S(o){9 o.c(/&/g,"&3h;").c(/</g,"&3e;")}5 1R(o){9 o.c(/ +/g,5(1X){9 1X.c(/ /g,R)})}5 G(o){o=1S(o);7(R){o=1R(o)}9 o}5 2m(2E){4 i=0;4 j=1;4 h;19(h=k[i++]){4 1b=D;7(1b[j]){4 1U=/(\\\\\\$)|(?:\\$\\$)|(?:\\$(\\d+))/g;4 z=h.z.c(1U,5(m,1V,K){4 3f=\'\';7(1V){9"$"}v 7(!K){9 G(1b[j])}v 7(K=="0"){9 h.A}v{9 G(1b[j+1t(K,10)])}});4 1A=D[D.u-2];4 2h=D[D.u-1];4 2G=2h.2v(11,1A);11=1A+2E.u;14+=G(2G)+z;9 z}v{j+=h.u}}}4 R=8.R;4 k=x 2A;Q(4 A 2r a.k){2I(A,a.k[A])}4 14="";4 11=0;l.c(2z(),2m);4 2y=l.2v(11,l.u);14+=G(2y);9 14}5 2B(X){7(!8.N[X]){4 Y=\'<Y 32="1p" 33="p/2u"\'+\' 30="\'+X+\'">\';8.N[X]=1H;7($.31.34){4 W=J.1L(Y);4 $W=$(W);$("2d").1O($W)}v{$("2d").1O(Y)}}}5 1q(e,a){4 l=e&&e.1g&&e.1g[0]&&e.1g[0].37;7(!l)l="";l=l.c(/\\r\\n?/g,"\\n");4 C=1J(l,a);7(8.1j){C=C.c(/\\t/g,8.1j)}7(8.1f){C=C.c(/\\n/g,8.1f)}$(e).38(C)}5 1o(q,13){4 1l={12:8.12,2x:q+".1d",Z:8.Z,2w:q+".2u"};4 B;7(13&&1v 13=="2l")B=$.35(1l,13);v B=1l;9{a:B.12+B.2x,1p:B.Z+B.2w}}7($.2q)$.2q({36:"2l.15"});4 2n=x 1u("\\\\b"+8.2i+"\\\\b","2j");4 1e=[];$(8.2o).2D(5(){4 e=y;4 1n=$(e).3i("V");7(!1n){9}4 q=$.3u(1n.c(2n,""));7(\'\'!=q){1e.1m(e);4 f=1o(q,e.15);7(8.2H||e.15){7(!8.N[f.a]){1D{8.N[f.a]=1H;$.3v(f.a,5(M){M.f=f.a;8.I[f.a]=M;7(8.2C){2B(f.1p)}$("."+q).2D(5(){4 f=1o(q,y.15);7(M.f==f.a){1q(y,M)}})})}1I(3s){3t("a 3w Q: "+q+\'@\'+3z)}}}v{4 a=8.I[f.a];7(a){1q(e,a)}}}});7(J.1i&&J.1i.29){5 22(p){7(\'\'==p){9""}1z{4 16=(x 3A()).2k()}19(p.3x(16)>-1);p=p.c(/\\<1W[^>]*?\\>/3y,16);4 e=J.1L(\'<1k>\');e.3l=p;p=e.3m.c(x 1u(16,"g"),\'\\r\\n\');9 p}4 T="";4 18=1G;$(1e).3j().G("1k").U("2c",5(){18=y}).U("1M",5(){7(18==y)T=J.1i.29().3k});$("3n").U("3q",5(){7(\'\'!=T){2p.3r.3o(\'3p\',22(T));2V.2R=1a}}).U("2c",5(){T=""}).U("1M",5(){18=1G})}})})(1Z);8.I["1Y.1d"]={k:{2M:{3:/\\/\\*[^*]*\\*+(?:[^\\/][^*]*\\*+)*\\//},25:{3:/\\<!--(?:.|\\n)*?--\\>/},2f:{3:/\\/\\/.*/},2P:{3:/2L|2T|2J|2O|2N|2X|2K|2Z|2U|2S|2W|2Y|2Q|51|c-50/},53:{3:/\\/[^\\/\\\\\\n]*(?:\\\\.[^\\/\\\\\\n]*)*\\/[52]*/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},4X:{3:/\\b(D|1N|1K|1I|2t|2s|4W|1z|v|1a|Q|5|7|2r|4Z|x|1G|9|1Q|y|1H|1D|1v|4|4Y|19|59)\\b/},1y:{3:/\\b(58|2k|2p|5b|5a|55|J|54|57|1t|56|4L|4K|4N|4M|4H|4G|4J)\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/},4I:{3:/(\\$|1Z)/}}};8.I["23.1d"]={k:{25:{3:/\\<!--(?:.|\\n)*?--\\>/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/}}};8.I["2e.1d"]={k:{4S:{3:/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\//},2f:{3:/(?:\\/\\/.*)|(?:[^\\\\]\\#.*)/},4V:{3:/\\\'[^\\\'\\\\]*(?:\\\\.[^\\\'\\\\]*)*\\\'/},4U:{3:/\\"[^\\"\\\\]*(?:\\\\.[^\\"\\\\]*)*\\"/},4P:{3:/\\b(?:[4O][2b][1s][1s]|[4R][4Q][2b][1P]|[5c][5v][1s][5u][1P])\\b/},5x:{3:/\\b[+-]?(\\d*\\.?\\d+|\\d+\\.?\\d*)([1r][+-]?\\d+)?\\b/},5y:{3:/\\b(?:5z|5w(?:5A|5E(?:5F(?:17|1c)|5G(?:17|1c))|17|1T|5B|5C|5D(?:17|1T|1c)|1c)|P(?:5h(?:5k|5j)|5e(?:5d|5g(?:5f|5l)|5r|E(?:5t|5s)|5n(?:5m|5p)|L(?:3X|3W)|O(?:S|3Y(?:3T|3S|3V))|3U|S(?:44|47|46)|41))|40)\\b/},1y:{3:/(?:\\$43|\\$42|\\$3R|\\$3G|\\$3F|\\$3I|\\$3H|\\$3C|\\$3B|\\$3D)\\b/},28:{3:/\\b(?:3O|3N|3P|3K|3J|3M|3L|48|4v|1N|1K|1I|4u|V|4x|4w|2t|4r|2s|4q|1z|4t|v|4s|4D|4C|4F|4E|4z|4y|4B|4A|4p|4d|2F|2F|4g|Q|4f|5|1y|7|4a|4m|4l|4o|4i|4k|x|4j|4h|4n|4b|4c|49|4e|3Q|3E|9|45|1Q|y|3Z|1D|5o|5q|4|19|5i)\\b/},2g:{3:/\\$(\\w+)/,z:\'<H V="28">$</H><H V="2g">$1</H>\'},1C:{3:/(?:\\<\\?[24][4T][24])|(?:\\<\\?)|(?:\\?\\>)/}}}',62,353,'|||exp|var|function||if|ChiliBook|return|recipe||replace||el|path||step|||steps|ingredients|||str|text|recipeName||||length|else||new|this|replacement|stepName|settings|dish|arguments||160|filter|span|recipes|document|||recipeLoaded|required|||for|replaceSpace||insidePRE|bind|class|domLink|stylesheetPath|link|stylesheetFolder||lastIndex|recipeFolder|options|perfect|chili|newline|ERROR|downPRE|while|false|aux|WARNING|js|codes|replaceNewLine|childNodes|string|selection|replaceTab|pre|settingsDef|push|elClass|getPath|stylesheet|makeDish|eE|Ll|parseInt|RegExp|typeof|source|exps|global|do|offset|code|tag|try|prevLength|aNum|null|true|catch|cook|case|createElement|mouseup|break|append|Ee|switch|replaceSpaces|escapeHTML|NOTICE|pattern|escaped|br|spaces|mix|jQuery|avalue|entity|preformatted|xml|Pp|htcom|aname|numbers|keyword|createRange|defaultReplacement|Uu|mousedown|head|php|com|variable|input|elementClass|gi|valueOf|object|chef|selectClass|elementPath|window|metaobjects|in|default|continue|css|substring|stylesheetFile|recipeFile|lastUnmatched|knowHow|Array|checkCSS|stylesheetLoading|each|matched|extends|unmatched|recipeLoading|prepareStep|unblockUI|ajaxSubmit|silverlight|jscom|unblock|block|plugin|clearFields|returnValue|fieldValue|blockUI|formSerialize|event|resetForm|ajaxForm|clearForm|fieldSerialize|href|browser|rel|type|msie|extend|selector|data|html|next|match|version|getPRE|join|lt|bit|ignoreCase|amp|attr|parents|htmlText|innerHTML|innerText|body|setData|Text|copy|clipboardData|recipeNotAvailable|alert|trim|getJSON|unavailable|indexOf|ig|recipePath|Date|_SESSION|_SERVER|php_errormsg|require_once|_GET|_FILES|_REQUEST|_POST|__METHOD__|__LINE__|and|abstract|__FILE__|__CLASS__|__FUNCTION__|require|_ENV|END|CONT|PREFIX|START|OCALSTATEDIR|IBDIR|UTPUT_HANDLER_|throw|__COMPILER_HALT_OFFSET__|VERSION|_COOKIE|GLOBALS|API|static|YSCONFDIR|HLIB_SUFFIX|array|protected|implements|print|private|exit|public|foreach|final|or|isset|old_function|list|include_once|include|php_user_filter|interface|exception|die|declare|elseif|echo|cfunction|as|const|clone|endswitch|endif|eval|endwhile|enddeclare|empty|endforeach|endfor|isNaN|NaN|jquery|Infinity|clearTimeout|setTimeout|clearInterval|setInterval|Nn|value|Rr|Tt|mlcom|Hh|string2|string1|delete|keywords|void|instanceof|content|taconite|gim|regexp|escape|constructor|parseFloat|unescape|toString|with|prototype|element|Ff|BINDIR|HP_|PATH|CONFIG_FILE_|EAR_|xor|INSTALL_DIR|EXTENSION_DIR|SCAN_DIR|MAX|INT_|unset|SIZE|use|DATADIR|XTENSION_DIR|OL|Ss|Aa|E_|number|const1|DEFAULT_INCLUDE_PATH|ALL|PARSE|STRICT|USER_|CO|MPILE_|RE_'.split('|'),0,{}))
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8={3b:"1.6",2o:"1B.1Y,1B.23,1B.2e",2i:"",2H:1a,12:"",2C:1a,Z:"",2a:\'<H V="$0">$$</H>\',R:"&#F;",1j:"&#F;&#F;&#F;&#F;",1f:"&#F;<1W/>",3c:5(){9 $(y).39("1k")[0]},I:{},N:{}};(5($){$(5(){5 1J(l,a){5 2I(A,h){4 3=(1v h.3=="1h")?h.3:h.3.1w;k.1m({A:A,3:"("+3+")",u:1+(3.c(/\\\\./g,"%").c(/\\[.*?\\]/g,"%").3a(/\\((?!\\?)/g)||[]).u,z:(h.z)?h.z:8.2a})}5 2z(){4 1E=0;4 1x=x 2A;Q(4 i=0;i<k.u;i++){4 3=k[i].3;3=3.c(/\\\\\\\\|\\\\(\\d+)/g,5(m,1F){9!1F?m:"\\\\"+(1E+1+1t(1F))});1x.1m(3);1E+=k[i].u}4 1w=1x.3d("|");9 x 1u(1w,(a.3g)?"2j":"g")}5 1S(o){9 o.c(/&/g,"&3h;").c(/</g,"&3e;")}5 1R(o){9 o.c(/ +/g,5(1X){9 1X.c(/ /g,R)})}5 G(o){o=1S(o);7(R){o=1R(o)}9 o}5 2m(2E){4 i=0;4 j=1;4 h;19(h=k[i++]){4 1b=D;7(1b[j]){4 1U=/(\\\\\\$)|(?:\\$\\$)|(?:\\$(\\d+))/g;4 z=h.z.c(1U,5(m,1V,K){4 3f=\'\';7(1V){9"$"}v 7(!K){9 G(1b[j])}v 7(K=="0"){9 h.A}v{9 G(1b[j+1t(K,10)])}});4 1A=D[D.u-2];4 2h=D[D.u-1];4 2G=2h.2v(11,1A);11=1A+2E.u;14+=G(2G)+z;9 z}v{j+=h.u}}}4 R=8.R;4 k=x 2A;Q(4 A 2r a.k){2I(A,a.k[A])}4 14="";4 11=0;l.c(2z(),2m);4 2y=l.2v(11,l.u);14+=G(2y);9 14}5 2B(X){7(!8.N[X]){4 Y=\'<Y 32="1p" 33="p/2u"\'+\' 30="\'+X+\'">\';8.N[X]=1H;7($.31.34){4 W=J.1L(Y);4 $W=$(W);$("2d").1O($W)}v{$("2d").1O(Y)}}}5 1q(e,a){4 l=e&&e.1g&&e.1g[0]&&e.1g[0].37;7(!l)l="";l=l.c(/\\r\\n?/g,"\\n");4 C=1J(l,a);7(8.1j){C=C.c(/\\t/g,8.1j)}7(8.1f){C=C.c(/\\n/g,8.1f)}$(e).38(C)}5 1o(q,13){4 1l={12:8.12,2x:q+".1d",Z:8.Z,2w:q+".2u"};4 B;7(13&&1v 13=="2l")B=$.35(1l,13);v B=1l;9{a:B.12+B.2x,1p:B.Z+B.2w}}7($.2q)$.2q({36:"2l.15"});4 2n=x 1u("\\\\b"+8.2i+"\\\\b","2j");4 1e=[];$(8.2o).2D(5(){4 e=y;4 1n=$(e).3i("V");7(!1n){9}4 q=$.3u(1n.c(2n,""));7(\'\'!=q){1e.1m(e);4 f=1o(q,e.15);7(8.2H||e.15){7(!8.N[f.a]){1D{8.N[f.a]=1H;$.3v(f.a,5(M){M.f=f.a;8.I[f.a]=M;7(8.2C){2B(f.1p)}$("."+q).2D(5(){4 f=1o(q,y.15);7(M.f==f.a){1q(y,M)}})})}1I(3s){3t("a 3w Q: "+q+\'@\'+3z)}}}v{4 a=8.I[f.a];7(a){1q(e,a)}}}});7(J.1i&&J.1i.29){5 22(p){7(\'\'==p){9""}1z{4 16=(x 3A()).2k()}19(p.3x(16)>-1);p=p.c(/\\<1W[^>]*?\\>/3y,16);4 e=J.1L(\'<1k>\');e.3l=p;p=e.3m.c(x 1u(16,"g"),\'\\r\\n\');9 p}4 T="";4 18=1G;$(1e).3j().G("1k").U("2c",5(){18=y}).U("1M",5(){7(18==y)T=J.1i.29().3k});$("3n").U("3q",5(){7(\'\'!=T){2p.3r.3o(\'3p\',22(T));2V.2R=1a}}).U("2c",5(){T=""}).U("1M",5(){18=1G})}})})(1Z);8.I["1Y.1d"]={k:{2M:{3:/\\/\\*[^*]*\\*+(?:[^\\/][^*]*\\*+)*\\//},25:{3:/\\<!--(?:.|\\n)*?--\\>/},2f:{3:/\\/\\/.*/},2P:{3:/2L|2T|2J|2O|2N|2X|2K|2Z|2U|2S|2W|2Y|2Q|51|c-50/},53:{3:/\\/[^\\/\\\\\\n]*(?:\\\\.[^\\/\\\\\\n]*)*\\/[52]*/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},4X:{3:/\\b(D|1N|1K|1I|2t|2s|4W|1z|v|1a|Q|5|7|2r|4Z|x|1G|9|1Q|y|1H|1D|1v|4|4Y|19|59)\\b/},1y:{3:/\\b(58|2k|2p|5b|5a|55|J|54|57|1t|56|4L|4K|4N|4M|4H|4G|4J)\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/},4I:{3:/(\\$|1Z)/}}};8.I["23.1d"]={k:{25:{3:/\\<!--(?:.|\\n)*?--\\>/},1h:{3:/(?:\\\'[^\\\'\\\\\\n]*(?:\\\\.[^\\\'\\\\\\n]*)*\\\')|(?:\\"[^\\"\\\\\\n]*(?:\\\\.[^\\"\\\\\\n]*)*\\")/},27:{3:/\\b[+-]?(?:\\d*\\.?\\d+|\\d+\\.?\\d*)(?:[1r][+-]?\\d+)?\\b/},1C:{3:/(?:\\<\\w+)|(?:\\>)|(?:\\<\\/\\w+\\>)|(?:\\/\\>)/},26:{3:/\\s+\\w+(?=\\s*=)/},20:{3:/([\\"\\\'])(?:(?:[^\\1\\\\\\r\\n]*?(?:\\1\\1|\\\\.))*[^\\1\\\\\\r\\n]*?)\\1/},21:{3:/&[\\w#]+?;/}}};8.I["2e.1d"]={k:{4S:{3:/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\//},2f:{3:/(?:\\/\\/.*)|(?:[^\\\\]\\#.*)/},4V:{3:/\\\'[^\\\'\\\\]*(?:\\\\.[^\\\'\\\\]*)*\\\'/},4U:{3:/\\"[^\\"\\\\]*(?:\\\\.[^\\"\\\\]*)*\\"/},4P:{3:/\\b(?:[4O][2b][1s][1s]|[4R][4Q][2b][1P]|[5c][5v][1s][5u][1P])\\b/},5x:{3:/\\b[+-]?(\\d*\\.?\\d+|\\d+\\.?\\d*)([1r][+-]?\\d+)?\\b/},5y:{3:/\\b(?:5z|5w(?:5A|5E(?:5F(?:17|1c)|5G(?:17|1c))|17|1T|5B|5C|5D(?:17|1T|1c)|1c)|P(?:5h(?:5k|5j)|5e(?:5d|5g(?:5f|5l)|5r|E(?:5t|5s)|5n(?:5m|5p)|L(?:3X|3W)|O(?:S|3Y(?:3T|3S|3V))|3U|S(?:44|47|46)|41))|40)\\b/},1y:{3:/(?:\\$43|\\$42|\\$3R|\\$3G|\\$3F|\\$3I|\\$3H|\\$3C|\\$3B|\\$3D)\\b/},28:{3:/\\b(?:3O|3N|3P|3K|3J|3M|3L|48|4v|1N|1K|1I|4u|V|4x|4w|2t|4r|2s|4q|1z|4t|v|4s|4D|4C|4F|4E|4z|4y|4B|4A|4p|4d|2F|2F|4g|Q|4f|5|1y|7|4a|4m|4l|4o|4i|4k|x|4j|4h|4n|4b|4c|49|4e|3Q|3E|9|45|1Q|y|3Z|1D|5o|5q|4|19|5i)\\b/},2g:{3:/\\$(\\w+)/,z:\'<H V="28">$</H><H V="2g">$1</H>\'},1C:{3:/(?:\\<\\?[24][4T][24])|(?:\\<\\?)|(?:\\?\\>)/}}}',62,353,'|||exp|var|function||if|ChiliBook|return|recipe||replace||el|path||step|||steps|ingredients|||str|text|recipeName||||length|else||new|this|replacement|stepName|settings|dish|arguments||160|filter|span|recipes|document|||recipeLoaded|required|||for|replaceSpace||insidePRE|bind|class|domLink|stylesheetPath|link|stylesheetFolder||lastIndex|recipeFolder|options|perfect|chili|newline|ERROR|downPRE|while|false|aux|WARNING|js|codes|replaceNewLine|childNodes|string|selection|replaceTab|pre|settingsDef|push|elClass|getPath|stylesheet|makeDish|eE|Ll|parseInt|RegExp|typeof|source|exps|global|do|offset|code|tag|try|prevLength|aNum|null|true|catch|cook|case|createElement|mouseup|break|append|Ee|switch|replaceSpaces|escapeHTML|NOTICE|pattern|escaped|br|spaces|mix|jQuery|avalue|entity|preformatted|xml|Pp|htcom|aname|numbers|keyword|createRange|defaultReplacement|Uu|mousedown|head|php|com|variable|input|elementClass|gi|valueOf|object|chef|selectClass|elementPath|window|metaobjects|in|default|continue|css|substring|stylesheetFile|recipeFile|lastUnmatched|knowHow|Array|checkCSS|stylesheetLoading|each|matched|extends|unmatched|recipeLoading|prepareStep|unblockUI|ajaxSubmit|silverlight|jscom|unblock|block|plugin|clearFields|returnValue|fieldValue|blockUI|formSerialize|event|resetForm|ajaxForm|clearForm|fieldSerialize|href|browser|rel|type|msie|extend|selector|data|html|next|match|version|getPRE|join|lt|bit|ignoreCase|amp|attr|parents|htmlText|innerHTML|innerText|body|setData|Text|copy|clipboardData|recipeNotAvailable|alert|trim|getJSON|unavailable|indexOf|ig|recipePath|Date|_SESSION|_SERVER|php_errormsg|require_once|_GET|_FILES|_REQUEST|_POST|__METHOD__|__LINE__|and|abstract|__FILE__|__CLASS__|__FUNCTION__|require|_ENV|END|CONT|PREFIX|START|OCALSTATEDIR|IBDIR|UTPUT_HANDLER_|throw|__COMPILER_HALT_OFFSET__|VERSION|_COOKIE|GLOBALS|API|static|YSCONFDIR|HLIB_SUFFIX|array|protected|implements|print|private|exit|public|foreach|final|or|isset|old_function|list|include_once|include|php_user_filter|interface|exception|die|declare|elseif|echo|cfunction|as|const|clone|endswitch|endif|eval|endwhile|enddeclare|empty|endforeach|endfor|isNaN|NaN|jquery|Infinity|clearTimeout|setTimeout|clearInterval|setInterval|Nn|value|Rr|Tt|mlcom|Hh|string2|string1|delete|keywords|void|instanceof|content|taconite|gim|regexp|escape|constructor|parseFloat|unescape|toString|with|prototype|element|Ff|BINDIR|HP_|PATH|CONFIG_FILE_|EAR_|xor|INSTALL_DIR|EXTENSION_DIR|SCAN_DIR|MAX|INT_|unset|SIZE|use|DATADIR|XTENSION_DIR|OL|Ss|Aa|E_|number|const1|DEFAULT_INCLUDE_PATH|ALL|PARSE|STRICT|USER_|CO|MPILE_|RE_'.split('|'),0,{}))
diff --git a/libs/jquery/tooltip/index.html b/libs/jquery/tooltip/index.html
index 7f47df5be5..fe9f5bd3cf 100644
--- a/libs/jquery/tooltip/index.html
+++ b/libs/jquery/tooltip/index.html
@@ -16,73 +16,73 @@ $('#set1 *').Tooltip();
$('img').Tooltip({
delay: 0
-});
-
-$('#yahoo a').Tooltip({
- track: true,
- delay: 0,
- showURL: false,
- showBody: " - "
});
-
-$("#fancy").Tooltip({
- track: true,
- delay: 0,
- showURL: false,
- opacity: 1,
- fixPNG: true,
- showBody: " - ",
- extraClass: "pretty fancy",
- top: -15,
- left: 5
+
+$('#yahoo a').Tooltip({
+ track: true,
+ delay: 0,
+ showURL: false,
+ showBody: " - "
+});
+
+$("#fancy").Tooltip({
+ track: true,
+ delay: 0,
+ showURL: false,
+ opacity: 1,
+ fixPNG: true,
+ showBody: " - ",
+ extraClass: "pretty fancy",
+ top: -15,
+ left: 5
});
-$('#pretty').Tooltip({
- track: true,
- delay: 0,
- showURL: false,
- showBody: " - ",
- extraClass: "pretty",
+$('#pretty').Tooltip({
+ track: true,
+ delay: 0,
+ showURL: false,
+ showBody: " - ",
+ extraClass: "pretty",
fixPNG: true,
- opacity: 0.95,
+ opacity: 0.95,
left: -120
});
-$("map *").Tooltip();
+$("map *").Tooltip();
-$('#right a').Tooltip({
- track: true,
- delay: 0,
+$('#right a').Tooltip({
+ track: true,
+ delay: 0,
showURL: false,
- extraClass: "right"
-});
-$('#right2 a').Tooltip({ showURL: false });
-
+ extraClass: "right"
+});
+$('#right2 a').Tooltip({ showURL: false });
+
$("#block").click($.Tooltip.block);
});
</script>
-<style type="text/css">
-#extended {
- margin: 2em 0;
-}
-
-#extended label {
- text-decoration: underline;
-}
-
-#yahoo {
- width: 7em;
-}
-
-#right,#right2 {
- text-align: right;
-}
-
-#tooltip.right {
- width: 250px;
-}
+<style type="text/css">
+#extended {
+ margin: 2em 0;
+}
+
+#extended label {
+ text-decoration: underline;
+}
+
+#yahoo {
+ width: 7em;
+}
+
+#right,#right2 {
+ text-align: right;
+}
+
+#tooltip.right {
+ width: 250px;
+}
</style>
</head>
@@ -108,8 +108,8 @@ tooltips, default settings</legend> <a
src="image.png" height="80"
title="No delay. The src value is displayed below the title" />
<h3>Code</h3>
-<pre><code class="mix">$('img').Tooltip({
- delay: 0
+<pre><code class="mix">$('img').Tooltip({
+ delay: 0
});</code></pre></fieldset>
<fieldset><legend>Blocking tooltips</legend>
@@ -129,12 +129,12 @@ with tracking, with extra content:</legend>
<option>bgiframe test</option>
</select>
<h3>Code</h3>
-<pre><code class="mix">$('#yahoo a').Tooltip({
- track: true,
- delay: 0,
- showURL: false,
- showBody: " - ",
- opacity: 0.85
+<pre><code class="mix">$('#yahoo a').Tooltip({
+ track: true,
+ delay: 0,
+ showURL: false,
+ showBody: " - ",
+ opacity: 0.85
});</code></pre></fieldset>
<fieldset><legend>Two tooltips with extra classes.
@@ -152,27 +152,27 @@ shadows, and some extra content</span></p>
<option>bgiframe test</option>
</select>
<h3>Code</h3>
-<pre><code class="mix">$("#fancy").Tooltip({
- track: true,
- delay: 0,
- showURL: false,
- opacity: 1,
- fixPNG: true,
- showBody: " - ",
- extraClass: "pretty fancy",
- top: -15,
- left: 5
-});
-
-$('#pretty').Tooltip({
- track: true,
- delay: 0,
- showURL: false,
- showBody: " - ",
- extraClass: "pretty",
- fixPNG: true,
- opacity: 0.95,
- left: -120
+<pre><code class="mix">$("#fancy").Tooltip({
+ track: true,
+ delay: 0,
+ showURL: false,
+ opacity: 1,
+ fixPNG: true,
+ showBody: " - ",
+ extraClass: "pretty fancy",
+ top: -15,
+ left: 5
+});
+
+$('#pretty').Tooltip({
+ track: true,
+ delay: 0,
+ showURL: false,
+ showBody: " - ",
+ extraClass: "pretty",
+ fixPNG: true,
+ opacity: 0.95,
+ left: -120
});</code></pre></fieldset>
<fieldset><legend>Image map with tooltips.</legend> <img
@@ -227,12 +227,12 @@ borders</legend>
title="Rather a very very long title with no meaning but yet quite long long long"
href="http://goggle">Google me!</a></p>
<h3>Code</h3>
-<pre><code class="mix">$('#right a').Tooltip({
- track: true,
- delay: 0,
- showURL: false,
- extraClass: "right"
-});
+<pre><code class="mix">$('#right a').Tooltip({
+ track: true,
+ delay: 0,
+ showURL: false,
+ extraClass: "right"
+});
$('#right2 a').Tooltip({ showURL: false });</code></pre></fieldset>
</div>
</body>
diff --git a/libs/jquery/ui.sortable_modif.js b/libs/jquery/ui.sortable_modif.js
index c5348f9d96..97d3b4291d 100644
--- a/libs/jquery/ui.sortable_modif.js
+++ b/libs/jquery/ui.sortable_modif.js
@@ -1,270 +1,270 @@
-
-(function($) {
-
- if (window.Node && Node.prototype && !Node.prototype.contains) {
- Node.prototype.contains = function (arg) {
- return !!(this.compareDocumentPosition(arg) & 16)
- }
- }
-
- //Make nodes selectable by expression
- $.extend($.expr[':'], { sortable: "(' '+a.className+' ').indexOf(' ui-sortable ')" });
-
- $.fn.sortable = function(o) {
- return this.each(function() {
- new $.ui.sortable(this,o);
- });
- }
-
- //Macros for external methods that support chaining
- var methods = "destroy,enable,disable,refresh".split(",");
- for(var i=0;i<methods.length;i++) {
- var cur = methods[i], f;
- eval('f = function() { var a = arguments; return this.each(function() { if(jQuery(this).is(".ui-sortable")) jQuery.data(this, "ui-sortable")["'+cur+'"](a); }); }');
- $.fn["sortable"+cur.substr(0,1).toUpperCase()+cur.substr(1)] = f;
- };
-
- //get instance method
- $.fn.sortableInstance = function() {
- if($(this[0]).is(".ui-sortable")) return $.data(this[0], "ui-sortable");
- return false;
- };
-
- $.ui.sortable = function(el,o) {
- this.element = el;
- this.set = [];
- this.offset = [];
- var options = {};
- var self = this;
- $.data(this.element, "ui-sortable", this);
- $(el).addClass("ui-sortable");
-
- $.extend(options, o);
- $.extend(options, {
- items: options.items || '> li',
- smooth: options.smooth != undefined ? options.smooth : true,
- helper: options.helper || 'clone', //JU: modified this line from the original file (helper:'clone')
- containment: options.containment ? (options.containment == 'sortable' ? el : options.containment) : null,
- zIndex: options.zIndex || 1000,
- _start: function(h,p,c,t,e) {
- self.start.apply(t, [self, e]); // Trigger the onStart callback
- },
- _beforeStop: function(h,p,c,t,e) {
- self.stop.apply(t, [self, e]); // Trigger the onStart callback
- },
- _drag: function(h,p,c,t,e) {
- self.drag.apply(t, [self, e]); // Trigger the onStart callback
- },
- startCondition: function() {
- return !self.disabled;
- }
- });
-
- //Get the items
- var items = $(options.items, el);
-
- //Let's determine the floating mode
- options.floating = /left|right/.test(items.css('float'));
-
- //Let's determine the parent's offset
- if($(el).css('position') == 'static') $(el).css('position', 'relative');
- options.offset = $(el).offset({ border: false });
-
- items.each(function() {
- new $.ui.mouseInteraction(this,options);
- });
-
- //Add current items to the set
- items.each(function() {
- self.set.push([this,null]);
- self.offset.push($(this).offset());
- });
-
- this.options = options;
- }
-
- $.extend($.ui.sortable.prototype, {
- plugins: {},
- currentTarget: null,
- lastTarget: null,
- prepareCallbackObj: function(self, that) {
- if (!self.pos) self.pos = [0, 0];
- return {
- helper: self.helper,
- position: { left: self.pos[0], top: self.pos[1] },
- offset: self.options.cursorAt,
- draggable: self,
- current: that,
- options: self.options
- }
- },
- refresh: function() {
-
- //Get the items
- var self = this;
- var items = $(this.options.items, this.element);
-
- var unique = [];
- items.each(function() {
- old = false;
- for(var i=0;i<self.set.length;i++) { if(self.set[i][0] == this) old = true; }
- if(!old) unique.push(this);
- });
-
- for(var i=0;i<unique.length;i++) {
- new $.ui.mouseInteraction(unique[i],self.options);
- }
-
- //Add current items to the set
- this.set = [];
- items.each(function() {
- self.set.push([this,null]);
- });
-
- },
- destroy: function() {
- $(this.element).removeClass("ui-sortable").removeClass("ui-sortable-disabled");
- $(this.options.items, this.element).mouseInteractionDestroy();
-
- },
- enable: function() {
- $(this.element).removeClass("ui-sortable-disabled");
- this.disabled = false;
- },
- disable: function() {
- $(this.element).addClass("ui-sortable-disabled");
- this.disabled = true;
- },
- start: function(that, e) {
-
- var o = this.options;
-
- if(o.hoverClass) {
- that.helper = $('<div class="'+o.hoverClass+'"></div>').appendTo('body').css({
- height: this.element.offsetHeight+'px',
- width: this.element.offsetWidth+'px',
- position: 'absolute'
- });
- }
-
- if(o.zIndex) {
- if($(this.helper).css("zIndex")) o.ozIndex = $(this.helper).css("zIndex");
- $(this.helper).css('zIndex', o.zIndex);
- }
-
- that.firstSibling = $(this.element).prev()[0];
-
- $(this.element).css('visibility', 'hidden');
- $(this.element).triggerHandler("sortstart", [e, that.prepareCallbackObj(this)], o.start);
-
- //JU: added a variable for a ugly hack
- this.occurCount = 0;
-
- //JU: reset offset cache (that's the time consumming operation under opera)
- that.offset = [];
- for(var i=0;i<that.set.length;i++)
- {
- that.offset.push($(that.set[i][0]).offset());
- }
-
- return false;
-
- },
- stop: function(that, e) {
-
- var o = this.options;
- var self = this;
- o.beQuietAtEnd = true;
-
- if(o.smooth) {
- var os = $(this.element).offset();
- $(this.helper).animate({ left: os.left - o.po.left, top: os.top - o.po.top }, 200, stopIt);
- } else {
- stopIt();
- }
-
- function stopIt() {
-
- $(self.element).css('visibility', 'visible');
- if(that.helper) that.helper.remove();
- if(self.helper != self.element) $(self.helper).remove();
-
- if(o.ozIndex)
- $(self.helper).css('zIndex', o.ozIndex);
-
-
- //Let's see if the position in DOM has changed
- if($(self.element).prev()[0] != that.firstSibling) {
- $(self.element).triggerHandler("sortupdate", [e, that.prepareCallbackObj(self, that)], o.update);
- }
- $(self.element).triggerHandler("sortstop", [e, that.prepareCallbackObj(self, that)], o.stop);
-
- }
-
- return false;
-
- },
- drag: function(that, e) {
-
- var o = this.options;
-
- this.pos = [this.pos[0]-(o.cursorAt.left ? o.cursorAt.left : 0), this.pos[1]-(o.cursorAt.top ? o.cursorAt.top : 0)];
- var nl = this.pos[0];
- var nt = this.pos[1];
-
- var widX = this.pos[0]+(this.options.po ? this.options.po.left:0);
- var widY = this.pos[1]+(this.options.po ? this.options.po.top:0);
-
- this.occurCount = 0;
- var moved = false;
- var m = that.set;
- var p = this.pos[1];
-
- for(var i=0;i<m.length;i++)
- {
- var cio = m[i][0];
- if(this.element.contains(cio)) continue;
- var cO = that.offset[i];
-
- //verify cursor is within target width
- if(cO.left < widX+cio.offsetWidth/2
- && cO.left > widX-cio.offsetWidth/2)
- {
- //above
- if(cO.top < widY+cio.offsetHeight/2
- && cO.top > widY-cio.offsetHeight/2)
- {
- if(o.lba != cio)
- {
- $(cio).before(this.element);
- o.lba = cio;
- moved = true;
- }
- }
- }
- }
-
- //reposition helper if needed
- if(moved && that.helper)
- {
- var to = $(this.element).offset();
- that.helper.css({
- top: to.top+'px',
- left: to.left+'px'
- });
-
- //JU: reset offset cache
- that.offset = [];
- for(var i=0;i<that.set.length;i++)
- {
- that.offset.push($(that.set[i][0]).offset());
- }
- }
-
- $(this.helper).css('left', nl+'px').css('top', nt+'px'); // Stick the helper to the cursor
- return false;
- }
- });
-
-})(jQuery);
-
+
+(function($) {
+
+ if (window.Node && Node.prototype && !Node.prototype.contains) {
+ Node.prototype.contains = function (arg) {
+ return !!(this.compareDocumentPosition(arg) & 16)
+ }
+ }
+
+ //Make nodes selectable by expression
+ $.extend($.expr[':'], { sortable: "(' '+a.className+' ').indexOf(' ui-sortable ')" });
+
+ $.fn.sortable = function(o) {
+ return this.each(function() {
+ new $.ui.sortable(this,o);
+ });
+ }
+
+ //Macros for external methods that support chaining
+ var methods = "destroy,enable,disable,refresh".split(",");
+ for(var i=0;i<methods.length;i++) {
+ var cur = methods[i], f;
+ eval('f = function() { var a = arguments; return this.each(function() { if(jQuery(this).is(".ui-sortable")) jQuery.data(this, "ui-sortable")["'+cur+'"](a); }); }');
+ $.fn["sortable"+cur.substr(0,1).toUpperCase()+cur.substr(1)] = f;
+ };
+
+ //get instance method
+ $.fn.sortableInstance = function() {
+ if($(this[0]).is(".ui-sortable")) return $.data(this[0], "ui-sortable");
+ return false;
+ };
+
+ $.ui.sortable = function(el,o) {
+ this.element = el;
+ this.set = [];
+ this.offset = [];
+ var options = {};
+ var self = this;
+ $.data(this.element, "ui-sortable", this);
+ $(el).addClass("ui-sortable");
+
+ $.extend(options, o);
+ $.extend(options, {
+ items: options.items || '> li',
+ smooth: options.smooth != undefined ? options.smooth : true,
+ helper: options.helper || 'clone', //JU: modified this line from the original file (helper:'clone')
+ containment: options.containment ? (options.containment == 'sortable' ? el : options.containment) : null,
+ zIndex: options.zIndex || 1000,
+ _start: function(h,p,c,t,e) {
+ self.start.apply(t, [self, e]); // Trigger the onStart callback
+ },
+ _beforeStop: function(h,p,c,t,e) {
+ self.stop.apply(t, [self, e]); // Trigger the onStart callback
+ },
+ _drag: function(h,p,c,t,e) {
+ self.drag.apply(t, [self, e]); // Trigger the onStart callback
+ },
+ startCondition: function() {
+ return !self.disabled;
+ }
+ });
+
+ //Get the items
+ var items = $(options.items, el);
+
+ //Let's determine the floating mode
+ options.floating = /left|right/.test(items.css('float'));
+
+ //Let's determine the parent's offset
+ if($(el).css('position') == 'static') $(el).css('position', 'relative');
+ options.offset = $(el).offset({ border: false });
+
+ items.each(function() {
+ new $.ui.mouseInteraction(this,options);
+ });
+
+ //Add current items to the set
+ items.each(function() {
+ self.set.push([this,null]);
+ self.offset.push($(this).offset());
+ });
+
+ this.options = options;
+ }
+
+ $.extend($.ui.sortable.prototype, {
+ plugins: {},
+ currentTarget: null,
+ lastTarget: null,
+ prepareCallbackObj: function(self, that) {
+ if (!self.pos) self.pos = [0, 0];
+ return {
+ helper: self.helper,
+ position: { left: self.pos[0], top: self.pos[1] },
+ offset: self.options.cursorAt,
+ draggable: self,
+ current: that,
+ options: self.options
+ }
+ },
+ refresh: function() {
+
+ //Get the items
+ var self = this;
+ var items = $(this.options.items, this.element);
+
+ var unique = [];
+ items.each(function() {
+ old = false;
+ for(var i=0;i<self.set.length;i++) { if(self.set[i][0] == this) old = true; }
+ if(!old) unique.push(this);
+ });
+
+ for(var i=0;i<unique.length;i++) {
+ new $.ui.mouseInteraction(unique[i],self.options);
+ }
+
+ //Add current items to the set
+ this.set = [];
+ items.each(function() {
+ self.set.push([this,null]);
+ });
+
+ },
+ destroy: function() {
+ $(this.element).removeClass("ui-sortable").removeClass("ui-sortable-disabled");
+ $(this.options.items, this.element).mouseInteractionDestroy();
+
+ },
+ enable: function() {
+ $(this.element).removeClass("ui-sortable-disabled");
+ this.disabled = false;
+ },
+ disable: function() {
+ $(this.element).addClass("ui-sortable-disabled");
+ this.disabled = true;
+ },
+ start: function(that, e) {
+
+ var o = this.options;
+
+ if(o.hoverClass) {
+ that.helper = $('<div class="'+o.hoverClass+'"></div>').appendTo('body').css({
+ height: this.element.offsetHeight+'px',
+ width: this.element.offsetWidth+'px',
+ position: 'absolute'
+ });
+ }
+
+ if(o.zIndex) {
+ if($(this.helper).css("zIndex")) o.ozIndex = $(this.helper).css("zIndex");
+ $(this.helper).css('zIndex', o.zIndex);
+ }
+
+ that.firstSibling = $(this.element).prev()[0];
+
+ $(this.element).css('visibility', 'hidden');
+ $(this.element).triggerHandler("sortstart", [e, that.prepareCallbackObj(this)], o.start);
+
+ //JU: added a variable for a ugly hack
+ this.occurCount = 0;
+
+ //JU: reset offset cache (that's the time consumming operation under opera)
+ that.offset = [];
+ for(var i=0;i<that.set.length;i++)
+ {
+ that.offset.push($(that.set[i][0]).offset());
+ }
+
+ return false;
+
+ },
+ stop: function(that, e) {
+
+ var o = this.options;
+ var self = this;
+ o.beQuietAtEnd = true;
+
+ if(o.smooth) {
+ var os = $(this.element).offset();
+ $(this.helper).animate({ left: os.left - o.po.left, top: os.top - o.po.top }, 200, stopIt);
+ } else {
+ stopIt();
+ }
+
+ function stopIt() {
+
+ $(self.element).css('visibility', 'visible');
+ if(that.helper) that.helper.remove();
+ if(self.helper != self.element) $(self.helper).remove();
+
+ if(o.ozIndex)
+ $(self.helper).css('zIndex', o.ozIndex);
+
+
+ //Let's see if the position in DOM has changed
+ if($(self.element).prev()[0] != that.firstSibling) {
+ $(self.element).triggerHandler("sortupdate", [e, that.prepareCallbackObj(self, that)], o.update);
+ }
+ $(self.element).triggerHandler("sortstop", [e, that.prepareCallbackObj(self, that)], o.stop);
+
+ }
+
+ return false;
+
+ },
+ drag: function(that, e) {
+
+ var o = this.options;
+
+ this.pos = [this.pos[0]-(o.cursorAt.left ? o.cursorAt.left : 0), this.pos[1]-(o.cursorAt.top ? o.cursorAt.top : 0)];
+ var nl = this.pos[0];
+ var nt = this.pos[1];
+
+ var widX = this.pos[0]+(this.options.po ? this.options.po.left:0);
+ var widY = this.pos[1]+(this.options.po ? this.options.po.top:0);
+
+ this.occurCount = 0;
+ var moved = false;
+ var m = that.set;
+ var p = this.pos[1];
+
+ for(var i=0;i<m.length;i++)
+ {
+ var cio = m[i][0];
+ if(this.element.contains(cio)) continue;
+ var cO = that.offset[i];
+
+ //verify cursor is within target width
+ if(cO.left < widX+cio.offsetWidth/2
+ && cO.left > widX-cio.offsetWidth/2)
+ {
+ //above
+ if(cO.top < widY+cio.offsetHeight/2
+ && cO.top > widY-cio.offsetHeight/2)
+ {
+ if(o.lba != cio)
+ {
+ $(cio).before(this.element);
+ o.lba = cio;
+ moved = true;
+ }
+ }
+ }
+ }
+
+ //reposition helper if needed
+ if(moved && that.helper)
+ {
+ var to = $(this.element).offset();
+ that.helper.css({
+ top: to.top+'px',
+ left: to.left+'px'
+ });
+
+ //JU: reset offset cache
+ that.offset = [];
+ for(var i=0;i<that.set.length;i++)
+ {
+ that.offset.push($(that.set[i][0]).offset());
+ }
+ }
+
+ $(this.helper).css('left', nl+'px').css('top', nt+'px'); // Stick the helper to the cursor
+ return false;
+ }
+ });
+
+})(jQuery);
+
diff --git a/misc/api_internal_call.php b/misc/api_internal_call.php
index 1b02b272b2..99486cf872 100644
--- a/misc/api_internal_call.php
+++ b/misc/api_internal_call.php
@@ -1,23 +1,23 @@
-<?php
-define('PIWIK_INCLUDE_PATH', '..');
-define('ENABLE_DISPATCH', false);
-require_once PIWIK_INCLUDE_PATH . "/index.php";
-require_once PIWIK_INCLUDE_PATH . "/modules/API/Request.php";
-
-// We call the API from a php code
-// it will check that you have the necessary rights
-// - either you are loggued in piwik and have a cookie in your browser
-// - or you will have to add the token_auth=XXX to the request string to authenticate
-// beware that the token_auth changes every time you change your password
-$request = new Piwik_API_Request('
- method=UserSettings.getResolution
- &idSite=1
- &date=yesterday
- &period=week
- &format=XML
- &filter_limit=3
-');
-$result = $request->process();
-echo $result;
-
+<?php
+define('PIWIK_INCLUDE_PATH', '..');
+define('ENABLE_DISPATCH', false);
+require_once PIWIK_INCLUDE_PATH . "/index.php";
+require_once PIWIK_INCLUDE_PATH . "/modules/API/Request.php";
+
+// We call the API from a php code
+// it will check that you have the necessary rights
+// - either you are loggued in piwik and have a cookie in your browser
+// - or you will have to add the token_auth=XXX to the request string to authenticate
+// beware that the token_auth changes every time you change your password
+$request = new Piwik_API_Request('
+ method=UserSettings.getResolution
+ &idSite=1
+ &date=yesterday
+ &period=week
+ &format=XML
+ &filter_limit=3
+');
+$result = $request->process();
+echo $result;
+
?> \ No newline at end of file
diff --git a/misc/api_rest_call.php b/misc/api_rest_call.php
index f02db78f85..2176c03d7f 100644
--- a/misc/api_rest_call.php
+++ b/misc/api_rest_call.php
@@ -1,13 +1,13 @@
-<?php
-// this token is used to authenticate your API request.
-// You can get the token on the API page inside your Piwik interface
-$token_auth = 'anonymous';
+<?php
+// this token is used to authenticate your API request.
+// You can get the token on the API page inside your Piwik interface
+$token_auth = 'anonymous';
// we call the REST API and request the 100 first keywords for the last month for the idsite=1
$url = "http://piwik.org/demo/";
-$url .= "?module=API&method=Referers.getKeywords";
+$url .= "?module=API&method=Referers.getKeywords";
$url .= "&idSite=1&period=month&date=yesterday";
-$url .= "&format=PHP&filter_limit=20";
+$url .= "&format=PHP&filter_limit=20";
$url .= "&token_auth=$token_auth";
$fetched = file_get_contents($url);
diff --git a/misc/generateVisits.php b/misc/generateVisits.php
index fb72d7c9c6..ad4fb909c1 100644
--- a/misc/generateVisits.php
+++ b/misc/generateVisits.php
@@ -1,30 +1,30 @@
-<?php
+<?php
error_reporting(E_ALL|E_NOTICE);
-define('PIWIK_INCLUDE_PATH', '..');
-
-ignore_user_abort(true);
-set_time_limit(0);
-
-set_include_path(PIWIK_INCLUDE_PATH
- . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/libs/'
- . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/plugins/'
- . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/modules'
- . PATH_SEPARATOR . get_include_path() );
-
-$GLOBALS['DEBUGPIWIK'] = false;
-
-ob_start();
-
-// first check that user has privileges to create some random data in the DB -> he must be super user
-define('ENABLE_DISPATCH', false);
-require_once PIWIK_INCLUDE_PATH . "/index.php";
-require_once "FrontController.php";
-Piwik::checkUserIsSuperUser();
-// end check that user was super user
-
-require_once "PluginsManager.php";
-require_once "Timer.php";
+define('PIWIK_INCLUDE_PATH', '..');
+
+ignore_user_abort(true);
+set_time_limit(0);
+
+set_include_path(PIWIK_INCLUDE_PATH
+ . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/libs/'
+ . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/plugins/'
+ . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/modules'
+ . PATH_SEPARATOR . get_include_path() );
+
+$GLOBALS['DEBUGPIWIK'] = false;
+
+ob_start();
+
+// first check that user has privileges to create some random data in the DB -> he must be super user
+define('ENABLE_DISPATCH', false);
+require_once PIWIK_INCLUDE_PATH . "/index.php";
+require_once "FrontController.php";
+Piwik::checkUserIsSuperUser();
+// end check that user was super user
+
+require_once "PluginsManager.php";
+require_once "Timer.php";
require_once "Cookie.php";
require_once "LogStats.php";
require_once "LogStats/Config.php";
@@ -33,8 +33,8 @@ require_once "LogStats/Db.php";
require_once "LogStats/Visit.php";
require_once "LogStats/Generator.php";
-// unload all loaded plugins
-//Piwik_PluginsManager::getInstance()->unloadPlugins();
+// unload all loaded plugins
+//Piwik_PluginsManager::getInstance()->unloadPlugins();
// we unload the Provider plugin otherwise it tries to lookup the IP for ahostname, and there is no dns server here
Piwik_PluginsManager::getInstance()->unloadPlugin('Provider');
@@ -53,28 +53,28 @@ $maxVisits = 9;
$nbActions = 15;
$daysToCompute = 1;
-$nbActionsTotal = 0;
-
+$nbActionsTotal = 0;
+
//$generator->emptyAllLogTables();
-$generator->init();
+$generator->init();
$t = new Piwik_Timer;
/*
* Generate visits / actions for the last 31 days
*/
-
-// do NOT edit this line
+
+// do NOT edit this line
$startTime = time() - ($daysToCompute-1)*86400;
while($startTime <= time())
{
- $visits = rand($minVisits,$maxVisits);
+ $visits = rand($minVisits,$maxVisits);
$actions=$nbActions;
- $generator->setTimestampToUse($startTime);
-
- // we add silent fail because of headers already sent error.
- // although this should'nt happen because we use a OB_START at the top of this page...
+ $generator->setTimestampToUse($startTime);
+
+ // we add silent fail because of headers already sent error.
+ // although this should'nt happen because we use a OB_START at the top of this page...
// but I couldnt find where those headers were sent...
$nbActionsTotalThisDay = @$generator->generate($visits,$actions);
diff --git a/misc/phpdoc-config.ini b/misc/phpdoc-config.ini
index 69301e0b44..67b34b6c1e 100755
--- a/misc/phpdoc-config.ini
+++ b/misc/phpdoc-config.ini
@@ -1,64 +1,64 @@
-[Parse Data]
-;; title of all the documentation
-;; legal values: any string
-title = Piwik Documentation
-
-;; parse files that start with a . like .bash_profile
-;; legal values: true, false
-hidden = false
-
-;; show elements marked @access private in documentation by setting this to on
-;; legal values: on, off
-parseprivate = on
-
-;; parse with javadoc-like description (first sentence is always the short description)
-;; legal values: on, off
-javadocdesc = off
-
-;; This is only used by the XML:DocBook/peardoc2 converter
-defaultcategoryname = Documentation
-
-;; what is the main package?
-;; legal values: alphanumeric string plus - and _
-defaultpackagename = Piwik
-
-;; where should the documentation be written?
-;; legal values: a legal path
-;target = /home/cellog/output
-target = documentation
-
-;; Which files should be parsed out as special documentation files, such as README,
-;; INSTALL and CHANGELOG? This overrides the default files found in
-;; phpDocumentor.ini (this file is not a user .ini file, but the global file)
-readmeinstallchangelog = README, INSTALL, FAQ, LICENSE
-
-;; limit output to the specified packages, even if others are parsed
-;; legal values: package names separated by commas
-;packageoutput = package1,package2
-
-;; comma-separated list of files to parse
-;; legal values: paths separated by commas
-;filename = /path/to/file1,/path/to/file2,fileincurrentdirectory
-
-;; comma-separated list of directories to parse
-;; legal values: directory paths separated by commas
-directory = modules,plugins
-
-;; comma-separated list of files, directories or wildcards ? and * (any wildcard) to ignore
-;; legal values: any wildcard strings separated by commas
-;ignore = /path/to/ignore*,*list.php,myfile.php,subdirectory/
-ignore = pear-*,Documentation/,test*.php,Lexer.inc
-
-;; comma-separated list of Converters to use in outputformat:Convertername:templatedirectory format
-;; legal values: HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib,
-;; HTML:frames:earthli,
-;; HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de,
-;; HTML:frames:DOM/phphtmllib,HTML:frames:DOM/earthli
-;; HTML:Smarty:default,HTML:Smarty:PHP,HTML:Smarty:HandS
-;; PDF:default:default,CHM:default:default,XML:DocBook/peardoc2:default
-output=HTML:frames:earthli
-;output=HTML:Smarty:HandS
-
-;; turn this option on if you want highlighted source code for every file
-;; legal values: on/off
-sourcecode = off
+[Parse Data]
+;; title of all the documentation
+;; legal values: any string
+title = Piwik Documentation
+
+;; parse files that start with a . like .bash_profile
+;; legal values: true, false
+hidden = false
+
+;; show elements marked @access private in documentation by setting this to on
+;; legal values: on, off
+parseprivate = on
+
+;; parse with javadoc-like description (first sentence is always the short description)
+;; legal values: on, off
+javadocdesc = off
+
+;; This is only used by the XML:DocBook/peardoc2 converter
+defaultcategoryname = Documentation
+
+;; what is the main package?
+;; legal values: alphanumeric string plus - and _
+defaultpackagename = Piwik
+
+;; where should the documentation be written?
+;; legal values: a legal path
+;target = /home/cellog/output
+target = documentation
+
+;; Which files should be parsed out as special documentation files, such as README,
+;; INSTALL and CHANGELOG? This overrides the default files found in
+;; phpDocumentor.ini (this file is not a user .ini file, but the global file)
+readmeinstallchangelog = README, INSTALL, FAQ, LICENSE
+
+;; limit output to the specified packages, even if others are parsed
+;; legal values: package names separated by commas
+;packageoutput = package1,package2
+
+;; comma-separated list of files to parse
+;; legal values: paths separated by commas
+;filename = /path/to/file1,/path/to/file2,fileincurrentdirectory
+
+;; comma-separated list of directories to parse
+;; legal values: directory paths separated by commas
+directory = modules,plugins
+
+;; comma-separated list of files, directories or wildcards ? and * (any wildcard) to ignore
+;; legal values: any wildcard strings separated by commas
+;ignore = /path/to/ignore*,*list.php,myfile.php,subdirectory/
+ignore = pear-*,Documentation/,test*.php,Lexer.inc
+
+;; comma-separated list of Converters to use in outputformat:Convertername:templatedirectory format
+;; legal values: HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib,
+;; HTML:frames:earthli,
+;; HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de,
+;; HTML:frames:DOM/phphtmllib,HTML:frames:DOM/earthli
+;; HTML:Smarty:default,HTML:Smarty:PHP,HTML:Smarty:HandS
+;; PDF:default:default,CHM:default:default,XML:DocBook/peardoc2:default
+output=HTML:frames:earthli
+;output=HTML:Smarty:HandS
+
+;; turn this option on if you want highlighted source code for every file
+;; legal values: on/off
+sourcecode = off
diff --git a/misc/testJavascriptTracker/index.php b/misc/testJavascriptTracker/index.php
index a3e3f7dc41..c3f012ffaf 100644
--- a/misc/testJavascriptTracker/index.php
+++ b/misc/testJavascriptTracker/index.php
@@ -1,55 +1,55 @@
-<?php
-
-require_once '../../modules/Url.php';
-$url = Piwik_Url::getCurrentUrlWithoutFileName();
+<?php
+
+require_once '../../modules/Url.php';
+$url = Piwik_Url::getCurrentUrlWithoutFileName();
$urlPiwik = join("/", array_slice(split("/", $url), 0, -3));
-
-?>
-
-<div>
-You should update the piwik javascript code at the bottom of this page if needed.<br />
-And test the tracker by clicking all the links below, with several browsers...<br />
-<br />
-</div>
+
+?>
+
+<div>
+You should update the piwik javascript code at the bottom of this page if needed.<br />
+And test the tracker by clicking all the links below, with several browsers...<br />
+<br />
+</div>
<a href="mailto:test@test.com"> mailto test@test.com</a> <br />
<a href="http://www.yahoo.fr"> yahoo france website</a> <br />
-<a href="http://www.yahoo.fr/index?test=test2&p_______=idugiduagi8*&*$&%(*^"> yahoo france website</a> <br />
+<a href="http://www.yahoo.fr/index?test=test2&p_______=idugiduagi8*&*$&%(*^"> yahoo france website</a> <br />
<a href="http://www.google.com"> google world website </a> <br />
<a href="ftp://parcftp.xerox.com"> FTP xerox</a> <br />
-<a href="news://news.eclipse.org"> News::eclipse</a> <br />
+<a href="news://news.eclipse.org"> News::eclipse</a> <br />
<a href="http://piwik.org"> piwik website </a> <br />
<a href="http://www.testWithImageAndText.com"><img border=0 src="../../plugins/UserCountry/flags/fr.png"> Test with image + text </a> <br />
-<a href="http://www.testWithImageOnly.com"><img border=0 src="../../plugins/UserCountry/flags/pl.png"></a> <br />
-
+<a href="http://www.testWithImageOnly.com"><img border=0 src="../../plugins/UserCountry/flags/pl.png"></a> <br />
+
<br />
<a class="piwik_ignore" href="./THIS_PDF_SHOULD_NOT_BE_COUNTED.pdf"> PDF wthdownload pdf </a> <br />
<a href="./test.pdf"> download pdf (rel) </a> <br />
<a href="./dir_test/test.pdf"> download pdf + directory (rel) </a> <br />
-<a href="../testJavascriptTracker/dir_test/test.pdf"> download pdf + parent directory (rel) </a> <br />
+<a href="../testJavascriptTracker/dir_test/test.pdf"> download pdf + parent directory (rel) </a> <br />
<a href="./test.jpg"> download jpg (rel) </a> <br />
<a href="./test.zip"> download zip (rel) </a> <br />
-<a href="./test.php?fileToDownload=test.zip"> download strange URL ?file=test.zip</a> <br />
-<a href="
-<?php echo $url; ?>
-test.rar"> download rar (abs) </a> <br />
-<br />
-<a href="./page2.php"> Next (rel)</a> <br />
-<a href="<?php echo $url; ?>page2.php"> Next (abs)</a> <br />
-
-
-
-<!-- Piwik -->
-<a href="http://piwik.org" title="Web analytics" onclick="window.open(this.href);return(false);">
-<script language="javascript" src="<?php echo $urlPiwik; ?>/piwik.js" type="text/javascript"></script>
-<script type="text/javascript">
-<!--
-piwik_action_name = '';
-piwik_idsite = 1;
-piwik_url = '<?php echo $urlPiwik; ?>/piwik.php';
-piwik_log(piwik_action_name, piwik_idsite,piwik_url);
-//-->
-</script><object>
-<noscript><p>Web analytics <img src="<?php echo $urlPiwik; ?>/piwik.php" style="border:0" alt="piwik"/></p>
-</noscript></object></a>
+<a href="./test.php?fileToDownload=test.zip"> download strange URL ?file=test.zip</a> <br />
+<a href="
+<?php echo $url; ?>
+test.rar"> download rar (abs) </a> <br />
+<br />
+<a href="./page2.php"> Next (rel)</a> <br />
+<a href="<?php echo $url; ?>page2.php"> Next (abs)</a> <br />
+
+
+
+<!-- Piwik -->
+<a href="http://piwik.org" title="Web analytics" onclick="window.open(this.href);return(false);">
+<script language="javascript" src="<?php echo $urlPiwik; ?>/piwik.js" type="text/javascript"></script>
+<script type="text/javascript">
+<!--
+piwik_action_name = '';
+piwik_idsite = 1;
+piwik_url = '<?php echo $urlPiwik; ?>/piwik.php';
+piwik_log(piwik_action_name, piwik_idsite,piwik_url);
+//-->
+</script><object>
+<noscript><p>Web analytics <img src="<?php echo $urlPiwik; ?>/piwik.php" style="border:0" alt="piwik"/></p>
+</noscript></object></a>
<!-- /Piwik --> \ No newline at end of file
diff --git a/misc/testJavascriptTracker/page2.php b/misc/testJavascriptTracker/page2.php
index a7534f5c96..01d74cd1b7 100644
--- a/misc/testJavascriptTracker/page2.php
+++ b/misc/testJavascriptTracker/page2.php
@@ -1,45 +1,45 @@
-<?php
-
-require_once '../../modules/Url.php';
-$url = Piwik_Url::getCurrentUrlWithoutFileName();
-$urlPiwik = join("/", array_slice(split("/", $url), 0, -3));
-?>
-
-<div>
-You should update the piwik javascript code at the bottom of this page if needed.<br />
-And test the tracker by clicking all the links below, with several browsers...<br />
-<br />
-</div>
-
-<a href="http://www.google.fr"> Site web de google france </a> <br />
-<a href="http://www.yahoo.fr"> Site web de yahoo france </a> <br />
-<a href="http://www.google.com"> Site web de google monde </a> <br />
-<a href="http://maps.google.fr"> Site web de google maps </a> <br />
-<a href="http://piwik.org"> Site web de piwik </a> <br />
-<a href="http://piwik.org/blog"> Site web de piwik </a> <br />
-<br />
-<a href="./test.pdf"> download pdf (rel) </a> <br />
-<a href="./test.jpg"> download jpg (rel) </a> <br />
-<a href="./test.zip"> download zip (rel) </a> <br />
-<a href="
-<?php echo $url; ?>
-test.rar"> download rar (abs) </a> <br />
-<br />
-<a href="./index.php"> Prev (rel)</a> <br />
-<a href="<?php echo $url; ?>index.php"> Prev (abs)</a> <br />
-
-
-<!-- Piwik -->
-<a href="http://piwik.org" title="Web analytics" onclick="window.open(this.href);return(false);">
-<script language="javascript" src="<?php echo $urlPiwik; ?>/piwik.js" type="text/javascript"></script>
-<script type="text/javascript">
-<!--
-piwik_action_name = '';
-piwik_idsite = 1;
-piwik_url = '<?php echo $urlPiwik; ?>/piwik.php';
-piwik_log(piwik_action_name, piwik_idsite,piwik_url);
-//-->
-</script><object>
-<noscript><p>Web analytics <img src="<?php echo $urlPiwik; ?>/piwik.php" style="border:0" alt="piwik"/></p>
-</noscript></object></a>
+<?php
+
+require_once '../../modules/Url.php';
+$url = Piwik_Url::getCurrentUrlWithoutFileName();
+$urlPiwik = join("/", array_slice(split("/", $url), 0, -3));
+?>
+
+<div>
+You should update the piwik javascript code at the bottom of this page if needed.<br />
+And test the tracker by clicking all the links below, with several browsers...<br />
+<br />
+</div>
+
+<a href="http://www.google.fr"> Site web de google france </a> <br />
+<a href="http://www.yahoo.fr"> Site web de yahoo france </a> <br />
+<a href="http://www.google.com"> Site web de google monde </a> <br />
+<a href="http://maps.google.fr"> Site web de google maps </a> <br />
+<a href="http://piwik.org"> Site web de piwik </a> <br />
+<a href="http://piwik.org/blog"> Site web de piwik </a> <br />
+<br />
+<a href="./test.pdf"> download pdf (rel) </a> <br />
+<a href="./test.jpg"> download jpg (rel) </a> <br />
+<a href="./test.zip"> download zip (rel) </a> <br />
+<a href="
+<?php echo $url; ?>
+test.rar"> download rar (abs) </a> <br />
+<br />
+<a href="./index.php"> Prev (rel)</a> <br />
+<a href="<?php echo $url; ?>index.php"> Prev (abs)</a> <br />
+
+
+<!-- Piwik -->
+<a href="http://piwik.org" title="Web analytics" onclick="window.open(this.href);return(false);">
+<script language="javascript" src="<?php echo $urlPiwik; ?>/piwik.js" type="text/javascript"></script>
+<script type="text/javascript">
+<!--
+piwik_action_name = '';
+piwik_idsite = 1;
+piwik_url = '<?php echo $urlPiwik; ?>/piwik.php';
+piwik_log(piwik_action_name, piwik_idsite,piwik_url);
+//-->
+</script><object>
+<noscript><p>Web analytics <img src="<?php echo $urlPiwik; ?>/piwik.php" style="border:0" alt="piwik"/></p>
+</noscript></object></a>
<!-- /Piwik --> \ No newline at end of file
diff --git a/modules/API/APIable.php b/modules/API/APIable.php
index feaf139b08..1edefd771e 100755
--- a/modules/API/APIable.php
+++ b/modules/API/APIable.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_API
- */
-
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_API
+ */
+
+
require_once "Archive.php";
/**
- * This class is the parent class of all the modules that can be called using the API Proxy.
- * For example a plugin "Provider" can publish its API by creating a file plugins/Provider/API.php
- * that is extending this Piwik_Apiable class.
+ * This class is the parent class of all the modules that can be called using the API Proxy.
+ * For example a plugin "Provider" can publish its API by creating a file plugins/Provider/API.php
+ * that is extending this Piwik_Apiable class.
* All the Piwik_Apiable classes are read and loaded by the Piwik_API_Proxy class.
* The public methods of this class are published in the API and are then callable using the API module.
* The parameters of the function are read directly from the GET request (they must have the same name).
@@ -26,7 +26,7 @@ require_once "Archive.php";
*
* See the documentation on http://dev.piwik.org > API
*
- * @package Piwik_API
+ * @package Piwik_API
* @see Piwik_API_Proxy
*/
diff --git a/modules/API/Proxy.php b/modules/API/Proxy.php
index b8eff71d35..04a43fc4c4 100755
--- a/modules/API/Proxy.php
+++ b/modules/API/Proxy.php
@@ -1,24 +1,24 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_API
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_API
+ */
+
/**
* The API Proxy receives all the API calls requests and forwards them to the given module.
*
* It registers all the APIable modules (@see Piwik_Apiable)
* The class checks that a call to the API has the correct number of parameters.
- * The proxy is a singleton that has the knowledge of every method available, their parameters and default values.
+ * The proxy is a singleton that has the knowledge of every method available, their parameters and default values.
*
* It can also log the performances of the API calls (time spent, parameter values, etc.)
- *
+ *
* @package Piwik_API
*/
class Piwik_API_Proxy
@@ -29,18 +29,18 @@ class Piwik_API_Proxy
protected $alreadyRegistered = array();
private $api = array();
-
+
// when a parameter doesn't have a default value we use this constant
const NO_DEFAULT_VALUE = null;
static private $instance = null;
protected function __construct()
{}
-
- /**
- * Singleton, returns instance
- *
- * @return Piwik_API_Proxy
+
+ /**
+ * Singleton, returns instance
+ *
+ * @return Piwik_API_Proxy
*/
static public function getInstance()
{
@@ -61,8 +61,8 @@ class Piwik_API_Proxy
* - the API file must be located in plugins/ModuleName/API.php
* for example plugins/Referers/API.php
*
- * The method will introspect the methods, their parameters, etc.
- *
+ * The method will introspect the methods, their parameters, etc.
+ *
* @param string ModuleName eg. "UserSettings"
*/
public function registerClass( $fileName )
@@ -141,120 +141,120 @@ class Piwik_API_Proxy
}
$this->alreadyRegistered[$fileName] = true;
- }
-
- /**
- * Returns the 'moduleName' part of 'Piwik_moduleName_API' classname
- *
- * @param string moduleName
- * @return string className
- */
- protected function getModuleNameFromClassName( $className )
- {
- $start = strpos($className, '_') + 1;
- return substr($className, $start , strrpos($className, '_') - $start);
- }
-
- /**
- * Returns a string containing links to examples on how to call a given method on a given API
- * It will export links to XML, CSV, HTML, JSON, PHP, etc.
- * It will not export links for methods such as deleteSite or deleteUser
- *
- * @param string the class
- * @param methodName the method
- * @return string|false when not possible
- */
- public function getExampleUrl($class, $methodName, $parametersToSet = array())
- {
- $knowExampleDefaultParametersValues = array(
- 'access' => 'view',
- 'idSite' => '1',
- 'userLogin' => 'test',
+ }
+
+ /**
+ * Returns the 'moduleName' part of 'Piwik_moduleName_API' classname
+ *
+ * @param string moduleName
+ * @return string className
+ */
+ protected function getModuleNameFromClassName( $className )
+ {
+ $start = strpos($className, '_') + 1;
+ return substr($className, $start , strrpos($className, '_') - $start);
+ }
+
+ /**
+ * Returns a string containing links to examples on how to call a given method on a given API
+ * It will export links to XML, CSV, HTML, JSON, PHP, etc.
+ * It will not export links for methods such as deleteSite or deleteUser
+ *
+ * @param string the class
+ * @param methodName the method
+ * @return string|false when not possible
+ */
+ public function getExampleUrl($class, $methodName, $parametersToSet = array())
+ {
+ $knowExampleDefaultParametersValues = array(
+ 'access' => 'view',
+ 'idSite' => '1',
+ 'userLogin' => 'test',
'password' => 'passwordExample',
- 'passwordMd5ied' => 'passwordExample',
- 'email' => 'test@example.org',
-
- 'siteName' => 'new example website',
- 'urls' => 'http://example.org', // used in addSite, updateSite
-
- 'period' => 'day',
- 'date' => 'today',
+ 'passwordMd5ied' => 'passwordExample',
+ 'email' => 'test@example.org',
+
+ 'siteName' => 'new example website',
+ 'urls' => 'http://example.org', // used in addSite, updateSite
+
+ 'period' => 'day',
+ 'date' => 'today',
);
foreach($parametersToSet as $name => $value)
{
$knowExampleDefaultParametersValues[$name] = $value;
- }
-
- // no links for these method names
- $doNotPrintExampleForTheseMethods = array(
- 'deleteSite',
- 'deleteUser',
- );
-
- if(in_array($methodName,$doNotPrintExampleForTheseMethods))
- {
- return false;
- }
-
-
- // we try to give an URL example to call the API
- $aParameters = $this->getParametersList($class, $methodName);
- $moduleName = $this->getModuleNameFromClassName($class);
- $urlExample = '?module=API&method='.$moduleName.'.'.$methodName.'&';
- foreach($aParameters as $nameVariable=> $defaultValue)
- {
- // if there isn't a default value for a given parameter,
- // we need a 'know default value' or we can't generate the link
- if($defaultValue === Piwik_API_Proxy::NO_DEFAULT_VALUE)
- {
- if(isset($knowExampleDefaultParametersValues[$nameVariable]))
- {
- $exampleValue = $knowExampleDefaultParametersValues[$nameVariable];
- $urlExample .= $nameVariable . '=' . $exampleValue . '&';
- }
- else
- {
- return false;
- }
- }
-
- }
-
- return substr($urlExample,0,-1);
- }
-
- /**
- * Returns a HTML page containing help for all the successfully loaded APIs.
- *
- * For each module it will return a mini help with the method names, parameters to give,
- * links to get the result in Xml/Csv/etc
- *
- * @return string
+ }
+
+ // no links for these method names
+ $doNotPrintExampleForTheseMethods = array(
+ 'deleteSite',
+ 'deleteUser',
+ );
+
+ if(in_array($methodName,$doNotPrintExampleForTheseMethods))
+ {
+ return false;
+ }
+
+
+ // we try to give an URL example to call the API
+ $aParameters = $this->getParametersList($class, $methodName);
+ $moduleName = $this->getModuleNameFromClassName($class);
+ $urlExample = '?module=API&method='.$moduleName.'.'.$methodName.'&';
+ foreach($aParameters as $nameVariable=> $defaultValue)
+ {
+ // if there isn't a default value for a given parameter,
+ // we need a 'know default value' or we can't generate the link
+ if($defaultValue === Piwik_API_Proxy::NO_DEFAULT_VALUE)
+ {
+ if(isset($knowExampleDefaultParametersValues[$nameVariable]))
+ {
+ $exampleValue = $knowExampleDefaultParametersValues[$nameVariable];
+ $urlExample .= $nameVariable . '=' . $exampleValue . '&';
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ }
+
+ return substr($urlExample,0,-1);
+ }
+
+ /**
+ * Returns a HTML page containing help for all the successfully loaded APIs.
+ *
+ * For each module it will return a mini help with the method names, parameters to give,
+ * links to get the result in Xml/Csv/etc
+ *
+ * @return string
*/
public function getAllInterfaceString( $outputExampleUrls = true, $prefixUrls = '' )
{
$str = '';
foreach($this->api as $class => $info)
- {
+ {
$moduleName = $this->getModuleNameFromClassName($class);
$str .= "\n<h3>Module ".$moduleName."</h3>";
foreach($info as $methodName => $infoMethod)
- {
-
+ {
+
$params = $this->getStrListParameters($class, $methodName);
- $str .= "\n" . "- <b>$moduleName.$methodName " . $params . "</b>";
-
- $str .= '<small>';
-
- if($outputExampleUrls)
+ $str .= "\n" . "- <b>$moduleName.$methodName " . $params . "</b>";
+
+ $str .= '<small>';
+
+ if($outputExampleUrls)
{
// we prefix all URLs with $prefixUrls
- // used when we include this output in the Piwik official documentation for example
- $exampleUrl = $this->getExampleUrl($class, $methodName);
- if($exampleUrl !== false)
+ // used when we include this output in the Piwik official documentation for example
+ $exampleUrl = $this->getExampleUrl($class, $methodName);
+ if($exampleUrl !== false)
{
$lastNUrls = '';
if( ereg('(&period)|(&date)',$exampleUrl))
@@ -263,23 +263,23 @@ class Piwik_API_Proxy
$exampleUrlRss2 = $prefixUrls . $this->getExampleUrl($class, $methodName, array('date' => 'last5','period' => 'week',));
$lastNUrls = ", RSS of the last <a target=_blank href='$exampleUrlRss1&format=rss'>10 days</a>, <a target=_blank href='$exampleUrlRss2&format=Rss'>5 weeks</a>,
XML of the <a target=_blank href='$exampleUrlRss1&format=xml'>last 10 days</a>";
- }
- $exampleUrl = $prefixUrls . $exampleUrl ;
- $str .= " [ Example in
- <a target=_blank href='$exampleUrl&format=xml'>XML</a>,
- <a target=_blank href='$exampleUrl&format=PHP&prettyDisplay=true'>PHP</a>,
- <a target=_blank href='$exampleUrl&format=JSON'>Json</a>,
+ }
+ $exampleUrl = $prefixUrls . $exampleUrl ;
+ $str .= " [ Example in
+ <a target=_blank href='$exampleUrl&format=xml'>XML</a>,
+ <a target=_blank href='$exampleUrl&format=PHP&prettyDisplay=true'>PHP</a>,
+ <a target=_blank href='$exampleUrl&format=JSON'>Json</a>,
<a target=_blank href='$exampleUrl&format=Csv'>Csv</a>,
<a target=_blank href='$exampleUrl&format=Html'>Basic html</a>
- $lastNUrls
- ]";
- }
- else
- {
- $str .= " [ No example available ]";
- }
- }
- $str .= '</small>';
+ $lastNUrls
+ ]";
+ }
+ else
+ {
+ $str .= " [ No example available ]";
+ }
+ }
+ $str .= '</small>';
$str .= "\n<br>";
}
}
@@ -289,8 +289,8 @@ class Piwik_API_Proxy
/**
* Returns the methods $class.$name parameters (and default value if provided) as a string.
*
- * @param string The class name
- * @param string The method name
+ * @param string The class name
+ * @param string The method name
* @return string For example "(idSite, period, date = 'today')"
*/
private function getStrListParameters($class, $name)
@@ -313,8 +313,8 @@ class Piwik_API_Proxy
/**
* Returns the parameters names and default values for the method $name
* of the class $class
- *
- * @param string The class name
+ *
+ * @param string The class name
* @param string The method name
* @return array Format array(
* 'testParameter' => null, // no default value
@@ -328,10 +328,10 @@ class Piwik_API_Proxy
}
/**
- * Returns the number of required parameters (parameters without default values).
- *
- * @param string The class name
- * @param string The method name
+ * Returns the number of required parameters (parameters without default values).
+ *
+ * @param string The class name
+ * @param string The method name
* @return int The number of required parameters
*/
private function getNumberOfRequiredParameters($class, $name)
@@ -340,10 +340,10 @@ class Piwik_API_Proxy
}
/**
- * Returns true if the method is found in the API of the given class name.
- *
- * @param string The class name
- * @param string The method name
+ * Returns true if the method is found in the API of the given class name.
+ *
+ * @param string The class name
+ * @param string The method name
* @return bool
*/
private function isMethodAvailable( $className, $methodName)
@@ -353,11 +353,11 @@ class Piwik_API_Proxy
/**
- * Checks that the count of the given parameters do match with the count of the required ones
- *
- * @param string The class name
- * @param string The method name
- * @param array
+ * Checks that the count of the given parameters do match with the count of the required ones
+ *
+ * @param string The class name
+ * @param string The method name
+ * @param array
* @throws exception If less parameters than required were given
*/
private function checkNumberOfParametersMatch($className, $methodName, $parameters)
@@ -374,7 +374,7 @@ class Piwik_API_Proxy
/**
* Checks that the class is a Singleton (presence of the getInstance() method)
- *
+ *
* @param string The class name
* @throws exception If the class is not a Singleton
*/
@@ -388,8 +388,8 @@ class Piwik_API_Proxy
/**
* Checks that the method exists in the class
- *
- * @param string The class name
+ *
+ * @param string The class name
* @param string The method name
* @throws exception If the method is not found
*/
@@ -406,9 +406,9 @@ class Piwik_API_Proxy
*
* For exemple for $module = 'Referers' it returns 'Piwik_Referers_API'
* Piwik_Referers_API is the class that extends Piwik_Apiable
- * and that contains the methods to be published in the API.
- *
- * @param string module name
+ * and that contains the methods to be published in the API.
+ *
+ * @param string module name
* @return string class name
*/
protected function getClassNameFromModule($module)
@@ -416,27 +416,27 @@ class Piwik_API_Proxy
$class = Piwik::prefixClass($module ."_API");
return $class;
}
-
- /**
- * Magic method used to set a flag telling the module named currently being called
- *
- */
- public function __get($name)
- {
- self::$classCalled = $name;
- return $this;
+
+ /**
+ * Magic method used to set a flag telling the module named currently being called
+ *
+ */
+ public function __get($name)
+ {
+ self::$classCalled = $name;
+ return $this;
}
-
+
/**
* Method always called when making an API request.
* It checks several things before actually calling the real method on the given module.
- *
- * It also logs the API calls, with the parameters values, the returned value, the performance, etc.
- * You can enable logging in config/global.ini.php (log_api_call)
- *
- * @param string The method name
- * @param array The parameters
- *
+ *
+ * It also logs the API calls, with the parameters values, the returned value, the performance, etc.
+ * You can enable logging in config/global.ini.php (log_api_call)
+ *
+ * @param string The method name
+ * @param array The parameters
+ *
* @throws Piwik_Access_NoAccessException
*/
public function __call($methodName, $parameterValues )
diff --git a/modules/ArchiveProcessing.php b/modules/ArchiveProcessing.php
index 402b99b43f..9c2204c19d 100644
--- a/modules/ArchiveProcessing.php
+++ b/modules/ArchiveProcessing.php
@@ -1,18 +1,18 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ArchiveProcessing
- */
-
-require_once 'TablePartitioning.php';
-require_once 'ArchiveProcessing/Record.php';
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ArchiveProcessing
+ */
+
+require_once 'TablePartitioning.php';
+require_once 'ArchiveProcessing/Record.php';
require_once 'DataTable.php';
-
+
/**
* The ArchiveProcessing module is a module that reads the Piwik logs from the DB and
* compute all the reports, which are then stored in the database.
@@ -67,34 +67,34 @@ abstract class Piwik_ArchiveProcessing
* Timestamp for the first date of the period
*
* @var int unix timestamp
- */
- protected $timestampDateStart = null;
-
+ */
+ protected $timestampDateStart = null;
+
/**
* Starting date of the archive
- *
- * @var Piwik_Date
+ *
+ * @var Piwik_Date
*/
- protected $dateStart;
+ protected $dateStart;
/**
* Ending date of the archive
- *
- * @var Piwik_Date
+ *
+ * @var Piwik_Date
*/
- protected $dateEnd;
-
+ protected $dateEnd;
+
/**
* Object used to generate (depending on the $dateStart) the name of the DB table to use to store numeric values
- *
- * @var Piwik_TablePartitioning
+ *
+ * @var Piwik_TablePartitioning
*/
- protected $tableArchiveNumeric;
+ protected $tableArchiveNumeric;
/**
* Object used to generate (depending on the $dateStart) the name of the DB table to use to store numeric values
- *
- * @var Piwik_TablePartitioning
+ *
+ * @var Piwik_TablePartitioning
*/
- protected $tableArchiveBlob;
+ protected $tableArchiveBlob;
/**
* Maximum timestamp above which a given archive is considered out of date
@@ -109,25 +109,25 @@ abstract class Piwik_ArchiveProcessing
*
* @var int
*/
- public $idsite = null;
+ public $idsite = null;
/**
* Period of the current archive
* Can be accessed by plugins (that is why it's public)
*
- * @var Piwik_Period
+ * @var Piwik_Period
*/
- public $period = null;
-
+ public $period = null;
+
/**
* Site of the current archive
* Can be accessed by plugins (that is why it's public)
- *
- * @var Piwik_Site
+ *
+ * @var Piwik_Site
*/
public $site = null;
-
-
+
+
/**
* Starting date @see Piwik_Date::toString()
*
@@ -179,42 +179,42 @@ abstract class Piwik_ArchiveProcessing
public function __construct()
{
$this->debugAlwaysArchive = Zend_Registry::get('config')->Debug->always_archive_data;
- }
-
-
- /**
- * Returns the Piwik_ArchiveProcessing_Day or Piwik_ArchiveProcessing_Period object
- * depending on $name period string
- *
- * @param string $name day|week|month|year
- * @return Piwik_ArchiveProcessing Piwik_ArchiveProcessing_Day|Piwik_ArchiveProcessing_Period
- */
- static function factory($name )
- {
- switch($name)
- {
- case 'day':
- require_once 'ArchiveProcessing/Day.php';
- $process = new Piwik_ArchiveProcessing_Day;
- break;
-
- case 'week':
- case 'month':
- case 'year':
- require_once 'ArchiveProcessing/Period.php';
- $process = new Piwik_ArchiveProcessing_Period;
- break;
-
- default:
- throw new Exception("Unknown period specified $name");
- break;
- }
- return $process;
- }
-
- /**
- * Inits the object
- *
+ }
+
+
+ /**
+ * Returns the Piwik_ArchiveProcessing_Day or Piwik_ArchiveProcessing_Period object
+ * depending on $name period string
+ *
+ * @param string $name day|week|month|year
+ * @return Piwik_ArchiveProcessing Piwik_ArchiveProcessing_Day|Piwik_ArchiveProcessing_Period
+ */
+ static function factory($name )
+ {
+ switch($name)
+ {
+ case 'day':
+ require_once 'ArchiveProcessing/Day.php';
+ $process = new Piwik_ArchiveProcessing_Day;
+ break;
+
+ case 'week':
+ case 'month':
+ case 'year':
+ require_once 'ArchiveProcessing/Period.php';
+ $process = new Piwik_ArchiveProcessing_Period;
+ break;
+
+ default:
+ throw new Exception("Unknown period specified $name");
+ break;
+ }
+ return $process;
+ }
+
+ /**
+ * Inits the object
+ *
* @return void
*/
protected function loadArchiveProperties()
@@ -233,8 +233,8 @@ abstract class Piwik_ArchiveProcessing
$this->strDateStart = $this->dateStart->toString();
$this->strDateEnd = $this->dateEnd->toString();
-
- // if the current archive is a DAY and if it's today,
+
+ // if the current archive is a DAY and if it's today,
// we set this maxTimestampArchive that defines the lifetime value of today's archive
$this->maxTimestampArchive = 0;
if( $this->period->getNumberOfSubperiods() == 0
@@ -371,20 +371,20 @@ abstract class Piwik_ArchiveProcessing
}
- /**
- * Returns the name of the numeric table where the archive numeric values are stored
- *
- * @return string
+ /**
+ * Returns the name of the numeric table where the archive numeric values are stored
+ *
+ * @return string
*/
public function getTableArchiveNumericName()
{
return $this->tableArchiveNumeric->getTableName();
}
-
- /**
- * Returns the name of the blob table where the archive blob values are stored
- *
- * @return string
+
+ /**
+ * Returns the name of the blob table where the archive blob values are stored
+ *
+ * @return string
*/
public function getTableArchiveBlobName()
{
@@ -392,20 +392,20 @@ abstract class Piwik_ArchiveProcessing
}
- /**
- * Set the period
- *
- * @param Piwik_Period $period
+ /**
+ * Set the period
+ *
+ * @param Piwik_Period $period
*/
public function setPeriod( Piwik_Period $period )
{
$this->period = $period;
}
- /**
- * Set the site
- *
- * @param Piwik_Site $site
+ /**
+ * Set the site
+ *
+ * @param Piwik_Site $site
*/
public function setSite( Piwik_Site $site )
{
@@ -427,10 +427,10 @@ abstract class Piwik_ArchiveProcessing
return $this->timestampDateStart;
}
- /**
- * Returns the idArchive we will use for the current archive
- *
- * @return int IdArchive to use when saving the current Archive
+ /**
+ * Returns the idArchive we will use for the current archive
+ *
+ * @return int IdArchive to use when saving the current Archive
*/
protected function loadNextIdarchive()
{
@@ -442,12 +442,12 @@ abstract class Piwik_ArchiveProcessing
}
$this->idArchive = $id + 1;
- }
-
- /**
- * Inserts a record in the good table (either NUMERIC or BLOB)
- *
- * @param unknown_type $record
+ }
+
+ /**
+ * Inserts a record in the good table (either NUMERIC or BLOB)
+ *
+ * @param unknown_type $record
*/
protected function insertRecord($record)
{
@@ -477,8 +477,8 @@ abstract class Piwik_ArchiveProcessing
}
/**
- * Returns the ID of the archived subperiods.
- *
+ * Returns the ID of the archived subperiods.
+ *
* @return array Array of the idArchive of the subperiods
*/
protected function loadSubperiodsArchive()
@@ -498,17 +498,17 @@ abstract class Piwik_ArchiveProcessing
return $periods;
}
-
- /**
- * Returns the idArchive if the archive is available in the database.
+
+ /**
+ * Returns the idArchive if the archive is available in the database.
* Returns false if the archive needs to be computed.
*
* An archive is available if
* - for today, the archive was computed less than maxTimestampArchive seconds ago
* - for any other day, if the archive was computed once this day was finished
- * - for other periods, if the archive was computed once the period was finished
- *
- * @return int|false
+ * - for other periods, if the archive was computed once the period was finished
+ *
+ * @return int|false
*/
protected function isArchived()
{
diff --git a/modules/ArchiveProcessing/Day.php b/modules/ArchiveProcessing/Day.php
index 7f3773ed75..d5b68b2139 100644
--- a/modules/ArchiveProcessing/Day.php
+++ b/modules/ArchiveProcessing/Day.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ArchiveProcessing
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ArchiveProcessing
+ */
+
/**
* Handles the archiving process for a day.
@@ -28,8 +28,8 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
*/
public $isThereSomeVisits = false;
- /**
- * Constructor
+ /**
+ * Constructor
*/
function __construct()
{
@@ -38,10 +38,10 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
}
/**
- * Main method to process logs for a day. The only logic done here is computing the number of visits, actions, etc.
- * All the other reports are computed inside plugins listening to the event 'ArchiveProcessing_Day.compute'.
- * See some of the plugins for an example eg. 'Provider'
- *
+ * Main method to process logs for a day. The only logic done here is computing the number of visits, actions, etc.
+ * All the other reports are computed inside plugins listening to the event 'ArchiveProcessing_Day.compute'.
+ * See some of the plugins for an example eg. 'Provider'
+ *
* @return void
*/
protected function compute()
@@ -100,23 +100,23 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
Zend_Registry::get('db')->query(sprintf($query, $blobTable), $this->periodId);
Zend_Registry::get('db')->query(sprintf($query, $numericTable), $this->periodId);
}
-
- /**
- * Helper function that returns a DataTable containing the $select fields / value pairs.
- * IMPORTANT: The $select must return only one row!!
- *
- * Example $select = "count(distinct( config_os )) as countDistinctOs,
- * sum( config_flash ) / count(distinct(idvisit)) as percentFlash "
- * $labelCount = "test_column_name"
- * will return a dataTable that looks like
- * label test_column_name
- * CountDistinctOs 9
- * PercentFlash 0.5676
- *
- *
- * @param string $select
- * @param string $labelCount
- * @return Piwik_DataTable
+
+ /**
+ * Helper function that returns a DataTable containing the $select fields / value pairs.
+ * IMPORTANT: The $select must return only one row!!
+ *
+ * Example $select = "count(distinct( config_os )) as countDistinctOs,
+ * sum( config_flash ) / count(distinct(idvisit)) as percentFlash "
+ * $labelCount = "test_column_name"
+ * will return a dataTable that looks like
+ * label test_column_name
+ * CountDistinctOs 9
+ * PercentFlash 0.5676
+ *
+ *
+ * @param string $select
+ * @param string $labelCount
+ * @return Piwik_DataTable
*/
public function getSimpleDataTableFromSelect($select, $labelCount)
{
@@ -135,28 +135,28 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
return $table;
}
- /**
- * Helper function that returns common statistics for a given database field distinct values.
- *
- * The statistics returned are:
- * - number of unique visitors
- * - number of visits
- * - number of actions
- * - maximum number of action for a visit
- * - sum of the visits' length in sec
- * - count of bouncing visits (visits with one page view)
- *
- * For example if $label = 'config_os' it will return the statistics for every distinct Operating systems
- * The returned DataTable will have a row per distinct operating systems,
- * and a column per stat (nb of visits, max actions, etc)
- *
- * label nb_uniq_visitors nb_visits nb_actions max_actions sum_visit_length bounce_count
- * Linux 27 66 66 1 660 66
- * Windows XP 12 39 39 1 390 39
- * Mac OS 15 36 36 1 360 36
- *
- * @param string $label Table log_visit field name to be use to compute common stats
- * @return Piwik_DataTable
+ /**
+ * Helper function that returns common statistics for a given database field distinct values.
+ *
+ * The statistics returned are:
+ * - number of unique visitors
+ * - number of visits
+ * - number of actions
+ * - maximum number of action for a visit
+ * - sum of the visits' length in sec
+ * - count of bouncing visits (visits with one page view)
+ *
+ * For example if $label = 'config_os' it will return the statistics for every distinct Operating systems
+ * The returned DataTable will have a row per distinct operating systems,
+ * and a column per stat (nb of visits, max actions, etc)
+ *
+ * label nb_uniq_visitors nb_visits nb_actions max_actions sum_visit_length bounce_count
+ * Linux 27 66 66 1 660 66
+ * Windows XP 12 39 39 1 390 39
+ * Mac OS 15 36 36 1 360 36
+ *
+ * @param string $label Table log_visit field name to be use to compute common stats
+ * @return Piwik_DataTable
*/
public function getDataTableInterestForLabel( $label )
{
@@ -195,14 +195,14 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
$table->loadFromArrayLabelIsKey($interest);
return $table;
}
-
- /**
- * Generates a dataTable given a multidimensional PHP array that associates LABELS to Piwik_DataTableRows
- * This is used for the "Actions" DataTable, where a line is the aggregate of all the subtables
- * Example: the category /blog has 3 visits because it has /blog/index (2 visits) + /blog/about (1 visit)
- *
- * @param array $table
- * @return Piwik_DataTable
+
+ /**
+ * Generates a dataTable given a multidimensional PHP array that associates LABELS to Piwik_DataTableRows
+ * This is used for the "Actions" DataTable, where a line is the aggregate of all the subtables
+ * Example: the category /blog has 3 visits because it has /blog/index (2 visits) + /blog/about (1 visit)
+ *
+ * @param array $table
+ * @return Piwik_DataTable
*/
static public function generateDataTable( $table )
{
@@ -232,17 +232,17 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
return $dataTableToReturn;
}
-
- /**
- * Helper function that returns the serialized DataTable of the given PHP array.
- * The array must have the format of Piwik_DataTable::loadFromArrayLabelIsKey()
- * Example: array (
- * LABEL => array(col1 => X, col2 => Y),
- * LABEL2 => array(col1 => X, col2 => Y),
- * )
- *
- * @param array $array at the given format
- * @return array Array with one element: the serialized data table string
+
+ /**
+ * Helper function that returns the serialized DataTable of the given PHP array.
+ * The array must have the format of Piwik_DataTable::loadFromArrayLabelIsKey()
+ * Example: array (
+ * LABEL => array(col1 => X, col2 => Y),
+ * LABEL2 => array(col1 => X, col2 => Y),
+ * )
+ *
+ * @param array $array at the given format
+ * @return array Array with one element: the serialized data table string
*/
public function getDataTableSerialized( $arrayLevel0 )
{
@@ -252,29 +252,29 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
return $toReturn;
}
-
- /**
- * Helper function that returns the multiple serialized DataTable of the given PHP array.
- * The DataTable here associates a subtable to every row of the level 0 array.
- * This is used for example for search engines. Every search engine (level 0) has a subtable containing the
- * keywords.
- *
- * The $arrayLevel0 must have the format
- * Example: array (
- * LABEL => array(col1 => X, col2 => Y),
- * LABEL2 => array(col1 => X, col2 => Y),
- * )
- *
- * The $subArrayLevel1ByKey must have the format
- * Example: array(
- * LABEL => #Piwik_DataTable_ForLABEL,
- * LABEL2 => #Piwik_DataTable_ForLABEL2,
- * )
- *
- *
- * @param array $arrayLevel0
- * @param array of Piwik_DataTable $subArrayLevel1ByKey
- * @return array Array with N elements: the strings of the datatable serialized
+
+ /**
+ * Helper function that returns the multiple serialized DataTable of the given PHP array.
+ * The DataTable here associates a subtable to every row of the level 0 array.
+ * This is used for example for search engines. Every search engine (level 0) has a subtable containing the
+ * keywords.
+ *
+ * The $arrayLevel0 must have the format
+ * Example: array (
+ * LABEL => array(col1 => X, col2 => Y),
+ * LABEL2 => array(col1 => X, col2 => Y),
+ * )
+ *
+ * The $subArrayLevel1ByKey must have the format
+ * Example: array(
+ * LABEL => #Piwik_DataTable_ForLABEL,
+ * LABEL2 => #Piwik_DataTable_ForLABEL2,
+ * )
+ *
+ *
+ * @param array $arrayLevel0
+ * @param array of Piwik_DataTable $subArrayLevel1ByKey
+ * @return array Array with N elements: the strings of the datatable serialized
*/
public function getDataTablesSerialized( $arrayLevel0, $subArrayLevel1ByKey)
{
@@ -294,11 +294,11 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
return $toReturn;
}
-
- /**
- * Returns an empty row containing default values for the common stat
- *
- * @return array
+
+ /**
+ * Returns an empty row containing default values for the common stat
+ *
+ * @return array
*/
public function getNewInterestRow()
{
@@ -310,32 +310,32 @@ class Piwik_ArchiveProcessing_Day extends Piwik_ArchiveProcessing
Piwik_Archive::INDEX_BOUNCE_COUNT => 0
);
}
-
-
- /**
- * Returns a Piwik_DataTable_Row containing default values for common stat,
- * plus a column 'label' with the value $label
- *
- * @param string $label
- * @return Piwik_DataTable_Row
- */
- public function getNewInterestRowLabeled( $label )
- {
- return new Piwik_DataTable_Row(
- array(
- Piwik_DataTable_Row::COLUMNS => array( 'label' => $label)
- + $this->getNewInterestRow()
- )
- );
- }
-
- /**
- * Adds the given row $newRowToAdd to the existing $oldRowToUpdate passed by reference
- *
- * The rows are php arrays Name => value
- *
- * @param array $newRowToAdd
- * @param array $oldRowToUpdate
+
+
+ /**
+ * Returns a Piwik_DataTable_Row containing default values for common stat,
+ * plus a column 'label' with the value $label
+ *
+ * @param string $label
+ * @return Piwik_DataTable_Row
+ */
+ public function getNewInterestRowLabeled( $label )
+ {
+ return new Piwik_DataTable_Row(
+ array(
+ Piwik_DataTable_Row::COLUMNS => array( 'label' => $label)
+ + $this->getNewInterestRow()
+ )
+ );
+ }
+
+ /**
+ * Adds the given row $newRowToAdd to the existing $oldRowToUpdate passed by reference
+ *
+ * The rows are php arrays Name => value
+ *
+ * @param array $newRowToAdd
+ * @param array $oldRowToUpdate
*/
public function updateInterestStats( $newRowToAdd, &$oldRowToUpdate)
{
diff --git a/modules/ArchiveProcessing/Period.php b/modules/ArchiveProcessing/Period.php
index b953f8124e..83cc54ecaa 100644
--- a/modules/ArchiveProcessing/Period.php
+++ b/modules/ArchiveProcessing/Period.php
@@ -1,13 +1,13 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ArchiveProcessing
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ArchiveProcessing
+ */
/**
* Handles the archiving process for a period
diff --git a/modules/ArchiveProcessing/Record.php b/modules/ArchiveProcessing/Record.php
index f512fe5419..2dba870d19 100644
--- a/modules/ArchiveProcessing/Record.php
+++ b/modules/ArchiveProcessing/Record.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ArchiveProcessing
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ArchiveProcessing
+ */
require_once "ArchiveProcessing/Record/Blob.php";
require_once "ArchiveProcessing/Record/BlobArray.php";
require_once "ArchiveProcessing/Record/Numeric.php";
require_once "ArchiveProcessing/Record/Manager.php";
-
+
/**
* A Record is a tuple (name, value) to be saved in the database.
* At its creation, the record registers itself to the RecordManager.
diff --git a/modules/Auth.php b/modules/Auth.php
index e84ed8b7b4..907f98a609 100644
--- a/modules/Auth.php
+++ b/modules/Auth.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik
+ */
+
/**
* Authentication object.
* Should be reviewed and refactor to allow simple plugin overwrite
@@ -33,8 +33,8 @@ class Piwik_Auth extends Zend_Auth_Adapter_DbTable
$rootLogin = Zend_Registry::get('config')->superuser->login;
$rootPassword = Zend_Registry::get('config')->superuser->password;
$rootToken = Piwik_UsersManager_API::getTokenAuth($rootLogin,$rootPassword);
-
- // echo $rootToken;
+
+ // echo $rootToken;
// echo "<br>". $this->_credential;exit;
if($this->_identity == $rootLogin
&& $this->_credential == $rootToken)
@@ -52,7 +52,7 @@ class Piwik_Auth extends Zend_Auth_Adapter_DbTable
// of this class in the zend_registry and it should work
if(is_null($this->_identity))
{
- $authenticated = false;
+ $authenticated = false;
if($this->_credential === $rootToken)
{
diff --git a/modules/Common.php b/modules/Common.php
index b726671f1f..6b8b46b84d 100644
--- a/modules/Common.php
+++ b/modules/Common.php
@@ -1,21 +1,21 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
+
/**
* Static class providing functions used by both the CORE of Piwik and the visitor logging engine.
*
* This is the only external class loaded by the /piwik.php file.
* This class should contain only the functions that are used in
* both the CORE and the piwik.php statistics logging engine.
- *
+ *
* @package Piwik_Helper
*/
class Piwik_Common
diff --git a/modules/Config.php b/modules/Config.php
index 5686b62fe0..7450e93c6d 100755
--- a/modules/Config.php
+++ b/modules/Config.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
require_once "Zend/Config/Ini.php";
-require_once "Zend/Registry.php";
-
+require_once "Zend/Registry.php";
+
/**
* This class is used to access configuration files values.
* You can also set these values, the updated configuration files will be written at the end of the script execution.
@@ -19,9 +19,9 @@ require_once "Zend/Registry.php";
* Example reading a value from the configuration file:
* $minValue = Zend_Registry::get('config')->General->minimumMemoryLimit;
*
- * will read the value minimumMemoryLimit under the [General] section of the config file
+ * will read the value minimumMemoryLimit under the [General] section of the config file
*
- * @package Piwik_Helper
+ * @package Piwik_Helper
*/
class Piwik_Config
{
diff --git a/modules/Controller.php b/modules/Controller.php
index d2c6f74805..f0a7e95f1b 100644
--- a/modules/Controller.php
+++ b/modules/Controller.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik
- */
-
-/**
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik
+ */
+
+/**
* Parent class of all plugins Controllers (located in /plugins/PluginName/Controller.php
* It defines some helper functions controllers can use.
- *
- * @package Piwik
- */
+ *
+ * @package Piwik
+ */
abstract class Piwik_Controller
{
/**
diff --git a/modules/Cookie.php b/modules/Cookie.php
index 9ba2e46d1b..9ad3680e25 100644
--- a/modules/Cookie.php
+++ b/modules/Cookie.php
@@ -1,21 +1,21 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
+
/**
* Simple class to handle the cookies:
* - read a cookie values
* - edit an existing cookie and save it
* - create a new cookie, set values, expiration date, etc. and save it
- *
+ *
* @package Piwik_Helper
*/
class Piwik_Cookie
diff --git a/modules/DataFiles/Browsers.php b/modules/DataFiles/Browsers.php
index 863114f8d3..96a379fb4e 100644
--- a/modules/DataFiles/Browsers.php
+++ b/modules/DataFiles/Browsers.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UserSettings
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UserSettings
+ */
+
/**
* Browser list.
* If you want to add a new entry, please email us at hello at piwik.org
diff --git a/modules/DataFiles/Countries.php b/modules/DataFiles/Countries.php
index b0503e7b11..85c46713b4 100644
--- a/modules/DataFiles/Countries.php
+++ b/modules/DataFiles/Countries.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UserCountry
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UserCountry
+ */
+
/**
* Country code and continent database.
* If you want to add a new entry, please email us at hello at piwik.org
diff --git a/modules/DataFiles/OS.php b/modules/DataFiles/OS.php
index 3f6199c280..9bce88e7bc 100644
--- a/modules/DataFiles/OS.php
+++ b/modules/DataFiles/OS.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UserSettings
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UserSettings
+ */
+
/**
* Operating systems database.
* If you want to add a new entry, please email us at hello at piwik.org
diff --git a/modules/DataFiles/SearchEngines.php b/modules/DataFiles/SearchEngines.php
index e5a9a6611c..dd28d8a79b 100644
--- a/modules/DataFiles/SearchEngines.php
+++ b/modules/DataFiles/SearchEngines.php
@@ -1,13 +1,13 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Referers
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Referers
+ */
/**
* Search Engine database
*
diff --git a/modules/DataTable.php b/modules/DataTable.php
index 7321bfd3b8..3a47ea2554 100644
--- a/modules/DataTable.php
+++ b/modules/DataTable.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
-require_once "DataTable/Renderer.php";
-require_once "DataTable/Renderer/Console.php";
-require_once "DataTable/Filter.php";
-require_once "DataTable/Row.php";
-require_once "DataTable/Manager.php";
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
+require_once "DataTable/Renderer.php";
+require_once "DataTable/Renderer/Console.php";
+require_once "DataTable/Filter.php";
+require_once "DataTable/Row.php";
+require_once "DataTable/Manager.php";
/**
*
* Initial Specification
@@ -395,28 +395,28 @@ class Piwik_DataTable
{
return $this->currentId;
}
-
+
/**
- * Adds a new row from a PHP array data structure
+ * Adds a new row from a PHP array data structure
* You should use loadFromArray for performance!
*
- * @param array $row, eg. array(Piwik_DataTable_Row::COLUMNS => array( 'visits' => 13, 'test' => 'toto'),)
- */
- public function addRowFromArray( $row )
- {
- $this->loadFromArray(array($row));
- }
-
- /**
- * Adds a new row a PHP array data structure
+ * @param array $row, eg. array(Piwik_DataTable_Row::COLUMNS => array( 'visits' => 13, 'test' => 'toto'),)
+ */
+ public function addRowFromArray( $row )
+ {
+ $this->loadFromArray(array($row));
+ }
+
+ /**
+ * Adds a new row a PHP array data structure
* You should use loadFromSimpleArray for performance!
*
- * @param array $row, eg. array('name' => 'google analytics', 'license' => 'commercial')
- */
- public function addRowFromSimpleArray( $row )
- {
- $this->loadFromSimpleArray(array($row));
- }
+ * @param array $row, eg. array('name' => 'google analytics', 'license' => 'commercial')
+ */
+ public function addRowFromSimpleArray( $row )
+ {
+ $this->loadFromSimpleArray(array($row));
+ }
/**
* Returns the array of Piwik_DataTable_Row
@@ -623,7 +623,7 @@ class Piwik_DataTable
if($depth > self::MAXIMUM_DEPTH_LEVEL_ALLOWED)
{
throw new Exception("Maximum recursion level of ".self::MAXIMUM_DEPTH_LEVEL_ALLOWED. " reached. You have probably set a DataTable_Row with an associated DataTable which belongs already to its parent hierarchy.");
- }
+ }
// For each row, get the serialized row
// If it is associated to a sub table, get the serialized table recursively ;
@@ -642,14 +642,14 @@ class Piwik_DataTable
}
}
// we load the current Id of the DataTable
- $forcedId = $this->getId();
-
+ $forcedId = $this->getId();
+
// if the datatable is the parent we force the Id at 0 (this is part of the specification)
if($depth==0)
{
$forcedId = 0;
- }
-
+ }
+
// we then serialize the rows and store them in the serialized dataTable
$aSerializedDataTable[$forcedId] = serialize($this->rows);
@@ -681,14 +681,14 @@ class Piwik_DataTable
* Loads the DataTable from a PHP array data structure
*
* @param array Array with the following structure
- * array(
+ * array(
* // row1
- * array(
- * Piwik_DataTable_Row::COLUMNS => array( col1_name => value1, col2_name => value2, ...),
- * Piwik_DataTable_Row::DETAILS => array( detail1_name => value1, ...), // see Piwik_DataTable_Row
- *
- * ),
- *
+ * array(
+ * Piwik_DataTable_Row::COLUMNS => array( col1_name => value1, col2_name => value2, ...),
+ * Piwik_DataTable_Row::DETAILS => array( detail1_name => value1, ...), // see Piwik_DataTable_Row
+ *
+ * ),
+ *
* // row2
* array( ... ),
*
@@ -706,90 +706,90 @@ class Piwik_DataTable
$this->addRow($row);
}
- }
-
- /**
- * Loads the data from a simple php array.
- * Basically maps a simple multidimensional php array to a DataTable.
- * Not recursive (if a row contains a php array itself, it won't be loaded)
- *
- * @param array Array with the simple structure:
- * array(
- * array( col1_name => valueA, col2_name => valueC, ...),
- * array( col1_name => valueB, col2_name => valueD, ...),
- * )
- */
- public function loadFromSimpleArray( $array )
- {
- // we define an exception we may throw if at one point we notice that we cannot handle the data structure
- $e = new Exception(" Data structure returned is not convertible in the requested format.".
- " Try to call this method with the parameters '&format=original&serialize=1'".
- "; you will get the original php data structure serialized.".
- " The data structure looks like this: \n \$data = " . var_export($array, true) . "; ");
-
-
- // first pass to see if the array has the structure
- // array(col1_name => val1, col2_name => val2, etc.)
- // with val* that are never arrays (only strings/numbers/bool/etc.)
- // if we detect such a "simple" data structure we convert it to a row with the correct columns' names
+ }
+
+ /**
+ * Loads the data from a simple php array.
+ * Basically maps a simple multidimensional php array to a DataTable.
+ * Not recursive (if a row contains a php array itself, it won't be loaded)
+ *
+ * @param array Array with the simple structure:
+ * array(
+ * array( col1_name => valueA, col2_name => valueC, ...),
+ * array( col1_name => valueB, col2_name => valueD, ...),
+ * )
+ */
+ public function loadFromSimpleArray( $array )
+ {
+ // we define an exception we may throw if at one point we notice that we cannot handle the data structure
+ $e = new Exception(" Data structure returned is not convertible in the requested format.".
+ " Try to call this method with the parameters '&format=original&serialize=1'".
+ "; you will get the original php data structure serialized.".
+ " The data structure looks like this: \n \$data = " . var_export($array, true) . "; ");
+
+
+ // first pass to see if the array has the structure
+ // array(col1_name => val1, col2_name => val2, etc.)
+ // with val* that are never arrays (only strings/numbers/bool/etc.)
+ // if we detect such a "simple" data structure we convert it to a row with the correct columns' names
$rowBuilt = array(); $thisIsNotThatSimple = false;
-
- foreach($array as $columnName => $columnValue )
- {
- if(is_array($columnValue) || is_object($columnValue))
- {
- $thisIsNotThatSimple = true;
- break;
- }
- $rowBuilt += array($columnName => $columnValue );
+
+ foreach($array as $columnName => $columnValue )
+ {
+ if(is_array($columnValue) || is_object($columnValue))
+ {
+ $thisIsNotThatSimple = true;
+ break;
+ }
+ $rowBuilt += array($columnName => $columnValue );
+ }
+
+ if($thisIsNotThatSimple === false)
+ {
+ $this->addRow( new Piwik_DataTable_Row( array( Piwik_DataTable_Row::COLUMNS => $rowBuilt ) ) );
+ // we have converted our simple array to one single row
+ // => we exit the method as the job is now finished
+ return;
+ }
+
+
+ foreach($array as $key => $row)
+ {
+ // stuff that looks like a line
+ if(is_array($row))
+ {
+ /**
+ * We make sure we can convert this PHP array without losing information.
+ * We are able to convert only simple php array (no strings keys, no sub arrays, etc.)
+ *
+ */
+
+ // if the key is a string it means that some information was contained in this key.
+ // it cannot be lost during the conversion. Because we are not able to handle properly
+ // this key, we throw an explicit exception.
+ if(is_string($key))
+ {
+ throw $e;
+ }
+ // if any of the sub elements of row is an array we cannot handle this data structure...
+ foreach($row as $subRow)
+ {
+ if(is_array($subRow))
+ {
+ throw $e;
+ }
+ }
+
+
+ $row = new Piwik_DataTable_Row( array( Piwik_DataTable_Row::COLUMNS => $row ) );
+ }
+ // other (string, numbers...) => we build a line from this value
+ else
+ {
+ $row = new Piwik_DataTable_Row( array( Piwik_DataTable_Row::COLUMNS => array($key => $row)) );
+ }
+ $this->addRow($row);
}
-
- if($thisIsNotThatSimple === false)
- {
- $this->addRow( new Piwik_DataTable_Row( array( Piwik_DataTable_Row::COLUMNS => $rowBuilt ) ) );
- // we have converted our simple array to one single row
- // => we exit the method as the job is now finished
- return;
- }
-
-
- foreach($array as $key => $row)
- {
- // stuff that looks like a line
- if(is_array($row))
- {
- /**
- * We make sure we can convert this PHP array without losing information.
- * We are able to convert only simple php array (no strings keys, no sub arrays, etc.)
- *
- */
-
- // if the key is a string it means that some information was contained in this key.
- // it cannot be lost during the conversion. Because we are not able to handle properly
- // this key, we throw an explicit exception.
- if(is_string($key))
- {
- throw $e;
- }
- // if any of the sub elements of row is an array we cannot handle this data structure...
- foreach($row as $subRow)
- {
- if(is_array($subRow))
- {
- throw $e;
- }
- }
-
-
- $row = new Piwik_DataTable_Row( array( Piwik_DataTable_Row::COLUMNS => $row ) );
- }
- // other (string, numbers...) => we build a line from this value
- else
- {
- $row = new Piwik_DataTable_Row( array( Piwik_DataTable_Row::COLUMNS => array($key => $row)) );
- }
- $this->addRow($row);
- }
}
/**
diff --git a/modules/DataTable/Filter.php b/modules/DataTable/Filter.php
index 561e3c3baa..4bd93267c3 100644
--- a/modules/DataTable/Filter.php
+++ b/modules/DataTable/Filter.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* A filter is applied instantly to a given DataTable and can
* - remove rows
diff --git a/modules/DataTable/Filter/AddConstantDetail.php b/modules/DataTable/Filter/AddConstantDetail.php
index 340779ed38..9452c29678 100644
--- a/modules/DataTable/Filter/AddConstantDetail.php
+++ b/modules/DataTable/Filter/AddConstantDetail.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Add a new detail column to the table.
*
diff --git a/modules/DataTable/Filter/ColumnCallbackAddDetail.php b/modules/DataTable/Filter/ColumnCallbackAddDetail.php
index b604734484..38773f4a9b 100644
--- a/modules/DataTable/Filter/ColumnCallbackAddDetail.php
+++ b/modules/DataTable/Filter/ColumnCallbackAddDetail.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Add a new 'detail' column to the table based on the value resulting
diff --git a/modules/DataTable/Filter/ColumnCallbackDeleteRow.php b/modules/DataTable/Filter/ColumnCallbackDeleteRow.php
index df2c244f0b..8367d67b44 100644
--- a/modules/DataTable/Filter/ColumnCallbackDeleteRow.php
+++ b/modules/DataTable/Filter/ColumnCallbackDeleteRow.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Delete all rows for which a given function returns false for a given column.
*
diff --git a/modules/DataTable/Filter/ColumnCallbackReplace.php b/modules/DataTable/Filter/ColumnCallbackReplace.php
index d15dc72b1c..6bdeb73545 100644
--- a/modules/DataTable/Filter/ColumnCallbackReplace.php
+++ b/modules/DataTable/Filter/ColumnCallbackReplace.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Replace a column value with a new value resulting
* from the function called with the column's value
diff --git a/modules/DataTable/Filter/DetailCallbackAddDetail.php b/modules/DataTable/Filter/DetailCallbackAddDetail.php
index d2a6bf0c31..6bd62c65e9 100644
--- a/modules/DataTable/Filter/DetailCallbackAddDetail.php
+++ b/modules/DataTable/Filter/DetailCallbackAddDetail.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Add a new detail to the table based on the value resulting
* from a callback function with the parameter being another detail's value
diff --git a/modules/DataTable/Filter/Empty.php b/modules/DataTable/Filter/Empty.php
index 476e234ed4..e15f74063f 100644
--- a/modules/DataTable/Filter/Empty.php
+++ b/modules/DataTable/Filter/Empty.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Filter template.
* You can use it if you want to create a new filter.
diff --git a/modules/DataTable/Filter/ExcludeLowPopulation.php b/modules/DataTable/Filter/ExcludeLowPopulation.php
index 33117e5a2c..7523bcd293 100644
--- a/modules/DataTable/Filter/ExcludeLowPopulation.php
+++ b/modules/DataTable/Filter/ExcludeLowPopulation.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Delete all rows that have a $columnToFilter value less than the $minimumValue
*
diff --git a/modules/DataTable/Filter/Limit.php b/modules/DataTable/Filter/Limit.php
index 7fcada2096..8dea88945d 100644
--- a/modules/DataTable/Filter/Limit.php
+++ b/modules/DataTable/Filter/Limit.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Delete all rows from the table that are not in the offset,offset+limit range
*
diff --git a/modules/DataTable/Filter/Pattern.php b/modules/DataTable/Filter/Pattern.php
index 5505da98e5..8ffae09c84 100644
--- a/modules/DataTable/Filter/Pattern.php
+++ b/modules/DataTable/Filter/Pattern.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Delete all rows for which the given $columnToFilter do not contain the $patternToSearch
* This filter is to be used on columns containing strings.
diff --git a/modules/DataTable/Filter/PatternRecursive.php b/modules/DataTable/Filter/PatternRecursive.php
index 50921b12a5..cb875b5326 100644
--- a/modules/DataTable/Filter/PatternRecursive.php
+++ b/modules/DataTable/Filter/PatternRecursive.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Delete all rows for which
* - the given $columnToFilter do not contain the $patternToSearch
@@ -40,7 +40,7 @@ class Piwik_DataTable_Filter_PatternRecursive extends Piwik_DataTable_Filter
{
$table = $this->table;
}
- $rows = $table->getRows();
+ $rows = $table->getRows();
foreach($rows as $key => $row)
{
diff --git a/modules/DataTable/Filter/ReplaceColumnNames.php b/modules/DataTable/Filter/ReplaceColumnNames.php
index 2b33bc04aa..4296128511 100644
--- a/modules/DataTable/Filter/ReplaceColumnNames.php
+++ b/modules/DataTable/Filter/ReplaceColumnNames.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* This filter replaces column names using a mapping table that maps from the old name to the new name.
*
diff --git a/modules/DataTable/Filter/Sort.php b/modules/DataTable/Filter/Sort.php
index be69d05c60..2807d46733 100644
--- a/modules/DataTable/Filter/Sort.php
+++ b/modules/DataTable/Filter/Sort.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Sort the DataTable based on the value of column $columnToSort ordered by $order.
* Possible to specify a natural sorting (see php.net/natsort for details)
@@ -93,10 +93,10 @@ class Piwik_DataTable_Filter_Sort extends Piwik_DataTable_Filter
$value = $row->getColumn($this->columnToSort);
if($value === false)
- {
- // we don't throw the exception because we sometimes export a DataTable without a column labelled '2'
- // and when the generic filters tries to sort by default using this column 2, this shouldnt raise an exception...
- //throw new Exception("The column to sort by '".$this->columnToSort."' is unknown in the row ". implode(array_keys($row->getColumns()), ','));
+ {
+ // we don't throw the exception because we sometimes export a DataTable without a column labelled '2'
+ // and when the generic filters tries to sort by default using this column 2, this shouldnt raise an exception...
+ //throw new Exception("The column to sort by '".$this->columnToSort."' is unknown in the row ". implode(array_keys($row->getColumns()), ','));
return;
}
diff --git a/modules/DataTable/Manager.php b/modules/DataTable/Manager.php
index 81d1229d01..7f59e831d9 100644
--- a/modules/DataTable/Manager.php
+++ b/modules/DataTable/Manager.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* The DataTable_Manager registers all the instanciated DataTable and provides an
* easy way to access them. This is used to store all the DataTable during the archiving process.
diff --git a/modules/DataTable/Renderer.php b/modules/DataTable/Renderer.php
index 12e0c34d2f..5cf6622ae3 100644
--- a/modules/DataTable/Renderer.php
+++ b/modules/DataTable/Renderer.php
@@ -1,22 +1,22 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* A DataTable Renderer can produce an output given a DataTable object.
* All new Renderers must be copied in DataTable/Renderer and added to the factory() method.
* To use a renderer, simply do:
* $render = new Piwik_DataTable_Renderer_Xml( $myTable );
* echo $render;
- *
- * @package Piwik_DataTable
+ *
+ * @package Piwik_DataTable
* @subpackage Piwik_DataTable_Renderer
*/
abstract class Piwik_DataTable_Renderer
@@ -70,24 +70,24 @@ abstract class Piwik_DataTable_Renderer
/**
* Returns the DataTable associated to the output format $name
- *
+ *
* @throws exception If the renderer is unknown
* @return Piwik_DataTable_Renderer
*/
static public function factory( $name )
{
$name = ucfirst(strtolower($name));
- $path = PIWIK_INCLUDE_PATH . "/modules/DataTable/Renderer/".$name.".php";
- $className = 'Piwik_DataTable_Renderer_' . $name;
-
- if( Piwik_Common::isValidFilename($name)
- && is_file($path)
- )
- {
- require_once $path;
- return new $className;
- }
- else
+ $path = PIWIK_INCLUDE_PATH . "/modules/DataTable/Renderer/".$name.".php";
+ $className = 'Piwik_DataTable_Renderer_' . $name;
+
+ if( Piwik_Common::isValidFilename($name)
+ && is_file($path)
+ )
+ {
+ require_once $path;
+ return new $className;
+ }
+ else
{
throw new Exception("Renderer format '$name' not valid. Try 'xml' or 'json' or 'csv' or 'html' or 'php' or 'original' instead.");
}
diff --git a/modules/DataTable/Renderer/Console.php b/modules/DataTable/Renderer/Console.php
index b092ef94b9..97d0f114c2 100644
--- a/modules/DataTable/Renderer/Console.php
+++ b/modules/DataTable/Renderer/Console.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Simple output
*
diff --git a/modules/DataTable/Renderer/Csv.php b/modules/DataTable/Renderer/Csv.php
index ea4c7920a1..0e00028904 100644
--- a/modules/DataTable/Renderer/Csv.php
+++ b/modules/DataTable/Renderer/Csv.php
@@ -1,30 +1,30 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
-require_once "DataTable/Renderer/Php.php";
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
+require_once "DataTable/Renderer/Php.php";
/**
* CSV export
- *
- * When rendered using the default settings, a CSV report has the following characteristics:
- * The first record contains headers for all the columns in the report.
- * All rows have the same number of columns.
- * The default field delimiter string is a comma (,).
- * Formatting and layout are ignored.
+ *
+ * When rendered using the default settings, a CSV report has the following characteristics:
+ * The first record contains headers for all the columns in the report.
+ * All rows have the same number of columns.
+ * The default field delimiter string is a comma (,).
+ * Formatting and layout are ignored.
*
* Note that CSV output doesn't handle recursive dataTable. It will output only the first parent level of the tables.
*
* @package Piwik_DataTable
- * @subpackage Piwik_DataTable_Renderer
+ * @subpackage Piwik_DataTable_Renderer
*
- */
+ */
class Piwik_DataTable_Renderer_Csv extends Piwik_DataTable_Renderer
{
diff --git a/modules/DataTable/Renderer/Html.php b/modules/DataTable/Renderer/Html.php
index a80230a137..2ef404653c 100644
--- a/modules/DataTable/Renderer/Html.php
+++ b/modules/DataTable/Renderer/Html.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Simple HTML output
* Works with recursive DataTable (when a row can be associated with a subDataTable).
diff --git a/modules/DataTable/Renderer/Json.php b/modules/DataTable/Renderer/Json.php
index 2a91b754e4..158fa8dae8 100644
--- a/modules/DataTable/Renderer/Json.php
+++ b/modules/DataTable/Renderer/Json.php
@@ -1,15 +1,15 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
-require_once "DataTable/Renderer/Php.php";
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
+require_once "DataTable/Renderer/Php.php";
/**
* JSON export. Using the php 5.2 feature json_encode.
* Works with recursive DataTable (when a row can be associated with a subDataTable).
@@ -37,7 +37,7 @@ class Piwik_DataTable_Renderer_Json extends Piwik_DataTable_Renderer
if(!is_array($array))
{
$array = array('value' => $array);
- }
+ }
$str = json_encode($array);
return $str;
}
diff --git a/modules/DataTable/Renderer/Php.php b/modules/DataTable/Renderer/Php.php
index 50aa9df284..7d80ed23e4 100644
--- a/modules/DataTable/Renderer/Php.php
+++ b/modules/DataTable/Renderer/Php.php
@@ -1,18 +1,18 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* Returns the equivalent PHP array for a given DataTable.
- * You can specify in the constructor if you want the serialized version.
- * Please note that by default it will produce a flat version of the array.
+ * You can specify in the constructor if you want the serialized version.
+ * Please note that by default it will produce a flat version of the array.
* See the method flatRender() for details. @see flatRender();
*
* Works with recursive DataTable (when a row can be associated with a subDataTable).
@@ -44,23 +44,23 @@ class Piwik_DataTable_Renderer_Php extends Piwik_DataTable_Renderer
}
return $data;
}
-
- /**
- * Produces a flat php array from the DataTable, putting "columns" and "details" on the same level.
- *
- * For example, when a originalRender() would be
- * array( 'columns' => array( 'col1_name' => value1, 'col2_name' => value2 ),
- * 'details' => array( 'detail1_name' => value_detail) )
- *
- * a flatRender() is
- * array( 'col1_name' => value1,
- * 'col2_name' => value2,
- * 'detail1_name' => value_detail )
- *
- * @return array Php array representing the 'flat' version of the datatable
- *
- */
- public function flatRender( $dataTable = null, $doRenderSubTablesIfAvailable = true )
+
+ /**
+ * Produces a flat php array from the DataTable, putting "columns" and "details" on the same level.
+ *
+ * For example, when a originalRender() would be
+ * array( 'columns' => array( 'col1_name' => value1, 'col2_name' => value2 ),
+ * 'details' => array( 'detail1_name' => value_detail) )
+ *
+ * a flatRender() is
+ * array( 'col1_name' => value1,
+ * 'col2_name' => value2,
+ * 'detail1_name' => value_detail )
+ *
+ * @return array Php array representing the 'flat' version of the datatable
+ *
+ */
+ public function flatRender( $dataTable = null, $doRenderSubTablesIfAvailable = true )
{
if(is_null($dataTable))
{
@@ -78,10 +78,10 @@ class Piwik_DataTable_Renderer_Php extends Piwik_DataTable_Renderer
$this->serialize = $serializeSave;
}
}
-
- // A DataTable_Simple is already flattened so no need to do some crazy stuff to convert it
- else if($dataTable instanceof Piwik_DataTable_Simple)
- {
+
+ // A DataTable_Simple is already flattened so no need to do some crazy stuff to convert it
+ else if($dataTable instanceof Piwik_DataTable_Simple)
+ {
$flatArray = $this->renderSimpleTable($dataTable);
// if we return only one numeric value then we print out the result in a simple <result> tag
@@ -90,22 +90,22 @@ class Piwik_DataTable_Renderer_Php extends Piwik_DataTable_Renderer
{
$flatArray = current($flatArray);
}
-
- }
- // A normal DataTable needs to be handled specifically
- else
- {
+
+ }
+ // A normal DataTable needs to be handled specifically
+ else
+ {
$array = $this->renderTable($dataTable, $doRenderSubTablesIfAvailable);
- $flatArray = $this->flattenArray($array);
- }
-
- if($this->serialize)
- {
- $flatArray = serialize($flatArray);
- }
-
- return $flatArray;
- }
+ $flatArray = $this->flattenArray($array);
+ }
+
+ if($this->serialize)
+ {
+ $flatArray = serialize($flatArray);
+ }
+
+ return $flatArray;
+ }
protected function flattenArray($array)
{
@@ -124,13 +124,13 @@ class Piwik_DataTable_Renderer_Php extends Piwik_DataTable_Renderer
$flatArray[] = $newRow;
}
return $flatArray;
- }
- public function render( $dataTable = null)
+ }
+ public function render( $dataTable = null)
{
if(is_null($dataTable))
{
$dataTable = $this->table;
- }
+ }
$toReturn = $this->flatRender( $dataTable );
if( false !== Piwik_Common::getRequestVar('prettyDisplay', false) )
@@ -140,9 +140,9 @@ class Piwik_DataTable_Renderer_Php extends Piwik_DataTable_Renderer
$toReturn = unserialize($toReturn);
}
$toReturn = "<pre>" . var_export($toReturn, true ) . "</pre>";
- }
- return $toReturn;
- }
+ }
+ return $toReturn;
+ }
public function originalRender()
{
@@ -162,7 +162,7 @@ class Piwik_DataTable_Renderer_Php extends Piwik_DataTable_Renderer
return $array;
}
-
+
protected function renderTable($table, $doRenderSubTablesIfAvailable = true)
{
diff --git a/modules/DataTable/Renderer/Xml.php b/modules/DataTable/Renderer/Xml.php
index ec6f6cff06..1792b33261 100644
--- a/modules/DataTable/Renderer/Xml.php
+++ b/modules/DataTable/Renderer/Xml.php
@@ -1,15 +1,15 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
-require_once "DataTable/Renderer/Php.php";
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
+require_once "DataTable/Renderer/Php.php";
/**
* XML export of a given DataTable.
* See the tests cases for more information about the XML format (/tests/modules/DataTable/Renderer.test.php)
diff --git a/modules/DataTable/Row.php b/modules/DataTable/Row.php
index 329d8600ab..11c110f254 100644
--- a/modules/DataTable/Row.php
+++ b/modules/DataTable/Row.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* A DataTable is composed of rows.
*
@@ -21,8 +21,8 @@
* IMPORTANT: Make sure that the column named 'label' contains at least one non-numeric character.
* Otherwise the method addDataTable() or sumRow() would fail because they would consider
* the 'label' as being a numeric column to sum.
- *
- * @package Piwik_DataTable
+ *
+ * @package Piwik_DataTable
* @subpackage Piwik_DataTable_Row
*
*/
@@ -99,28 +99,28 @@ class Piwik_DataTable_Row
* Applys a basic rendering to the Row and returns the output
*
* @return string characterizing the row. Example: - 1 ['label' => 'piwik', 'nb_uniq_visitors' => 1685, 'nb_visits' => 1861, 'nb_actions' => 2271, 'max_actions' => 13, 'sum_visit_length' => 920131, 'bounce_count' => 1599] [] [idsubtable = 1375]
- */
- public function __toString()
- {
- $columns = array();
- foreach($this->getColumns() as $column => $value)
- {
- if(is_string($value)) $value = "'$value'";
- $columns[] = "'$column' => $value";
- }
- $columns = implode(", ", $columns);
- $details=array();
-
- foreach($this->getDetails() as $detail => $value)
- {
- if(is_string($value)) $value = "'$value'";
- $details[] = "'$detail' => $value";
- }
- $details = implode(", ", $details);
- $output = "# [".$columns."] [".$details."] [idsubtable = "
- . $this->getIdSubDataTable()."]<br>\n";
- return $output;
- }
+ */
+ public function __toString()
+ {
+ $columns = array();
+ foreach($this->getColumns() as $column => $value)
+ {
+ if(is_string($value)) $value = "'$value'";
+ $columns[] = "'$column' => $value";
+ }
+ $columns = implode(", ", $columns);
+ $details=array();
+
+ foreach($this->getDetails() as $detail => $value)
+ {
+ if(is_string($value)) $value = "'$value'";
+ $details[] = "'$detail' => $value";
+ }
+ $details = implode(", ", $details);
+ $output = "# [".$columns."] [".$details."] [idsubtable = "
+ . $this->getIdSubDataTable()."]<br>\n";
+ return $output;
+ }
/**
* Deletes the given column
diff --git a/modules/DataTable/Row/DataTableSummary.php b/modules/DataTable/Row/DataTableSummary.php
index 8f34a79655..011014bd1b 100644
--- a/modules/DataTable/Row/DataTableSummary.php
+++ b/modules/DataTable/Row/DataTableSummary.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* This class creates a row from a given DataTable.
* The row contains
diff --git a/modules/DataTable/Simple.php b/modules/DataTable/Simple.php
index d369d48fe0..08e5d0f0d0 100644
--- a/modules/DataTable/Simple.php
+++ b/modules/DataTable/Simple.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_DataTable
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_DataTable
+ */
+
/**
* The DataTable_Simple is used to provide an easy way to create simple DataGrid.
* A DataTable_Simple actually is a DataTable with 2 columns: 'label' and 'value'.
diff --git a/modules/Date.php b/modules/Date.php
index d455350188..2a54c13c51 100644
--- a/modules/Date.php
+++ b/modules/Date.php
@@ -1,18 +1,18 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
+
/**
* Date object widely used in Piwik.
- *
- * //TODO remove factory OR constructor! cant have both
+ *
+ * //TODO remove factory OR constructor! cant have both
* @package Piwik_Helper
*/
class Piwik_Date
@@ -215,7 +215,7 @@ class Piwik_Date
return $this->getTimestamp();
}
return date($part, $this->getTimestamp());
- }
+ }
/**
* Adds days to the existing date object.
diff --git a/modules/ErrorHandler.php b/modules/ErrorHandler.php
index 9859791651..fdd3b63380 100755
--- a/modules/ErrorHandler.php
+++ b/modules/ErrorHandler.php
@@ -1,23 +1,23 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
require_once "Zend/Registry.php";
if(!defined('E_STRICT')) define('E_STRICT', 2048);
if(!defined('E_RECOVERABLE_ERROR')) define('E_RECOVERABLE_ERROR', 4096);
if(!defined('E_EXCEPTION')) define('E_EXCEPTION', 8192);
-
+
/**
- * Error handler used to display nicely errors in Piwik
- *
+ * Error handler used to display nicely errors in Piwik
+ *
* @package Piwik_Helper
*/
function Piwik_ErrorHandler($errno, $errstr, $errfile, $errline)
diff --git a/modules/ExceptionHandler.php b/modules/ExceptionHandler.php
index edfb684f42..7cebb85908 100644
--- a/modules/ExceptionHandler.php
+++ b/modules/ExceptionHandler.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
require_once "modules/Piwik.php";
-
+
/**
- * Exception handler used to display nicely exceptions in Piwik
- *
+ * Exception handler used to display nicely exceptions in Piwik
+ *
* @package Piwik_Helper
*/
function Piwik_ExceptionHandler(Exception $exception)
diff --git a/modules/Form.php b/modules/Form.php
index 2a82abe7c7..de7f85220d 100644
--- a/modules/Form.php
+++ b/modules/Form.php
@@ -1,24 +1,24 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
+
require_once "HTML/QuickForm.php";
require_once "HTML/QuickForm/Renderer/ArraySmarty.php";
-
-/**
+
+/**
* Parent class for forms to be included in Smarty
*
* For an example, @see Piwik_Login_Form
- *
- * @package Piwik_Helper
+ *
+ * @package Piwik_Helper
*/
abstract class Piwik_Form extends HTML_QuickForm
{
diff --git a/modules/Log.php b/modules/Log.php
index f5ebd037e3..c6abaf6c5c 100755
--- a/modules/Log.php
+++ b/modules/Log.php
@@ -1,13 +1,13 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Log
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Log
+ */
Zend_Loader::loadClass('Zend_Log');
Zend_Loader::loadClass('Zend_Log_Formatter_Interface');
@@ -15,11 +15,11 @@ Zend_Loader::loadClass('Zend_Log_Writer_Stream');
Zend_Loader::loadClass('Zend_Log_Writer_Db');
Zend_Loader::loadClass('Piwik_Common');
-
-/**
- *
- *
- * @package Piwik_Log
+
+/**
+ *
+ *
+ * @package Piwik_Log
*/
abstract class Piwik_Log extends Zend_Log
{
@@ -116,11 +116,11 @@ abstract class Piwik_Log extends Zend_Log
}
}
-
-/**
- *
- *
- * @package Piwik_Log
+
+/**
+ *
+ *
+ * @package Piwik_Log
*/
class Piwik_Log_Formatter_FileFormatter implements Zend_Log_Formatter_Interface
{
diff --git a/modules/Log/APICall.php b/modules/Log/APICall.php
index a14df78221..a4d4c1a754 100644
--- a/modules/Log/APICall.php
+++ b/modules/Log/APICall.php
@@ -1,15 +1,15 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Log
- * @subpackage Piwik_Log_APICall
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Log
+ * @subpackage Piwik_Log_APICall
+ */
+
/**
* Class used to log all the API Calls information (class / method / parameters / returned value / time spent)
*
diff --git a/modules/Log/Error.php b/modules/Log/Error.php
index f4346efe1f..af018a8ade 100644
--- a/modules/Log/Error.php
+++ b/modules/Log/Error.php
@@ -1,15 +1,15 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Log
- * @subpackage Piwik_Log_Error
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Log
+ * @subpackage Piwik_Log_Error
+ */
+
/**
* Class used to log an error event.
*
diff --git a/modules/Log/Exception.php b/modules/Log/Exception.php
index e5a47e827f..a08dc92f28 100644
--- a/modules/Log/Exception.php
+++ b/modules/Log/Exception.php
@@ -1,16 +1,16 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Log
- * @subpackage Piwik_Log_Exception
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Log
+ * @subpackage Piwik_Log_Exception
+ */
require_once "Log.php";
-
+
/**
* Class used to log an exception event.
* Displays the exception with a user friendly error message, suggests to get support from piwik.org
diff --git a/modules/Log/Message.php b/modules/Log/Message.php
index 07f19c442a..96cfd308a4 100644
--- a/modules/Log/Message.php
+++ b/modules/Log/Message.php
@@ -1,15 +1,15 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Log
- * @subpackage Piwik_Log_Message
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Log
+ * @subpackage Piwik_Log_Message
+ */
+
/**
* Class used to log a standard message event.
*
diff --git a/modules/LogStats.php b/modules/LogStats.php
index db124735b3..4cf63ebbef 100644
--- a/modules/LogStats.php
+++ b/modules/LogStats.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_LogStats
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_LogStats
+ */
+
/**
* Class used by the logging script piwik.php called by the javascript tag.
* Handles the visitor & his/her actions on the website, saves the data in the DB, saves information in the cookie, etc.
@@ -38,9 +38,9 @@
* We could also imagine a batch system that would read a log file every 5min,
* and which prepares the file containg the rows to insert, then we load DATA INFILE
*
- *
- * Configuration options for the statsLogEngine module:
- * - use_cookie ; defines if we try to get/set a cookie to help recognize a unique visitor
+ *
+ * Configuration options for the statsLogEngine module:
+ * - use_cookie ; defines if we try to get/set a cookie to help recognize a unique visitor
*
* @package Piwik_LogStats
*/
diff --git a/modules/LogStats/Config.php b/modules/LogStats/Config.php
index fc53b58b2e..a81a78e83d 100644
--- a/modules/LogStats/Config.php
+++ b/modules/LogStats/Config.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_LogStats
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_LogStats
+ */
+
/**
* Simple class to access the configuration file
*
diff --git a/modules/LogStats/Generator.php b/modules/LogStats/Generator.php
index 13c90a8e70..1ca8b8cec7 100644
--- a/modules/LogStats/Generator.php
+++ b/modules/LogStats/Generator.php
@@ -1,13 +1,13 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_LogStats
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_LogStats
+ */
/**
* Class used to generate fake visits.
diff --git a/modules/LogStats/Visit.php b/modules/LogStats/Visit.php
index 8fa9ce43ce..475cdce845 100644
--- a/modules/LogStats/Visit.php
+++ b/modules/LogStats/Visit.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_LogStats
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_LogStats
+ */
+
/**
* Class used to handle a Visit.
* A visit is either NEW or KNOWN.
@@ -27,8 +27,8 @@ class Piwik_LogStats_Visit
{
protected $cookieLog = null;
protected $visitorInfo = array();
- protected $userSettingsInformation = null;
-
+ protected $userSettingsInformation = null;
+
function __construct( $db )
{
@@ -584,34 +584,34 @@ class Piwik_LogStats_Visit
*/
private function getRefererInformation()
{
- // default values for the referer_* fields
+ // default values for the referer_* fields
$this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_DIRECT_ENTRY;
$this->nameRefererAnalyzed = '';
- $this->keywordRefererAnalyzed = '';
-
+ $this->keywordRefererAnalyzed = '';
+
// get the urls and parse them
$refererUrl = Piwik_Common::getRequestVar( 'urlref', '', 'string');
$currentUrl = Piwik_Common::getRequestVar( 'url', '', 'string');
$this->refererUrlParse = @parse_url($refererUrl);
$this->currentUrlParse = @parse_url($currentUrl);
-
- // if we have a referer available we try to detect something interesting
+
+ // if we have a referer available we try to detect something interesting
// otherwise it's defaulted to "the visitor is a direct entry"
if( !empty($this->refererUrlParse['host']) )
{
$this->refererHost = $this->refererUrlParse['host'];
- if( !$this->detectRefererSearchEngine()
- && !$this->detectRefererNewsletter()
- && !$this->detectRefererPartner()
- && !$this->detectRefererCampaign()
- && !$this->detectRefererDirectEntry()
- )
- {
- // Normal website referer
- $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_WEBSITE;
- $this->nameRefererAnalyzed = $this->refererHost;
+ if( !$this->detectRefererSearchEngine()
+ && !$this->detectRefererNewsletter()
+ && !$this->detectRefererPartner()
+ && !$this->detectRefererCampaign()
+ && !$this->detectRefererDirectEntry()
+ )
+ {
+ // Normal website referer
+ $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_WEBSITE;
+ $this->nameRefererAnalyzed = $this->refererHost;
}
}
@@ -624,153 +624,153 @@ class Piwik_LogStats_Visit
return $refererInformation;
}
-
- /*
- * Search engine detection
- */
- private function detectRefererSearchEngine()
- {
- /*
- * A referer is a search engine if the URL's host is in the SearchEngines array
- * and if we found the keyword in the URL.
- *
- * For example if someone comes from http://www.google.com/partners.html this will not
- * be counted as a search engines, but as a website referer from google.com (because the
- * keyword couldn't be found in the URL)
- */
- require PIWIK_DATAFILES_INCLUDE_PATH . "/SearchEngines.php";
-
- if(array_key_exists($this->refererHost, $GLOBALS['Piwik_SearchEngines']))
- {
- // which search engine ?
- $searchEngineName = $GLOBALS['Piwik_SearchEngines'][$this->refererHost][0];
- $variableName = $GLOBALS['Piwik_SearchEngines'][$this->refererHost][1];
-
- // if there is a query, there may be a keyword...
- if(isset($this->refererUrlParse['query']))
- {
- $query = $this->refererUrlParse['query'];
-
- // search for keywords now &vname=keyword
- $key = trim(strtolower(Piwik_Common::getParameterFromQueryString($query, $variableName)));
-
- if((function_exists('iconv'))
- && (isset($GLOBALS['Piwik_SearchEngines'][$this->refererHost][2])))
- {
- $charset = trim($GLOBALS['Piwik_SearchEngines'][$this->refererHost][2]);
-
- if(!empty($charset))
- {
- $key = htmlspecialchars(
- @iconv( $charset,
+
+ /*
+ * Search engine detection
+ */
+ private function detectRefererSearchEngine()
+ {
+ /*
+ * A referer is a search engine if the URL's host is in the SearchEngines array
+ * and if we found the keyword in the URL.
+ *
+ * For example if someone comes from http://www.google.com/partners.html this will not
+ * be counted as a search engines, but as a website referer from google.com (because the
+ * keyword couldn't be found in the URL)
+ */
+ require PIWIK_DATAFILES_INCLUDE_PATH . "/SearchEngines.php";
+
+ if(array_key_exists($this->refererHost, $GLOBALS['Piwik_SearchEngines']))
+ {
+ // which search engine ?
+ $searchEngineName = $GLOBALS['Piwik_SearchEngines'][$this->refererHost][0];
+ $variableName = $GLOBALS['Piwik_SearchEngines'][$this->refererHost][1];
+
+ // if there is a query, there may be a keyword...
+ if(isset($this->refererUrlParse['query']))
+ {
+ $query = $this->refererUrlParse['query'];
+
+ // search for keywords now &vname=keyword
+ $key = trim(strtolower(Piwik_Common::getParameterFromQueryString($query, $variableName)));
+
+ if((function_exists('iconv'))
+ && (isset($GLOBALS['Piwik_SearchEngines'][$this->refererHost][2])))
+ {
+ $charset = trim($GLOBALS['Piwik_SearchEngines'][$this->refererHost][2]);
+
+ if(!empty($charset))
+ {
+ $key = htmlspecialchars(
+ @iconv( $charset,
'utf-8//TRANSLIT',
- //TODO testthis fnction exists!! use upgrade.php
- htmlspecialchars_decode($key, Piwik_Common::HTML_ENCODING_QUOTE_STYLE))
- , Piwik_Common::HTML_ENCODING_QUOTE_STYLE);
- }
- }
-
-
- if(!empty($key))
- {
- $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_SEARCH_ENGINE;
- $this->nameRefererAnalyzed = $searchEngineName;
- $this->keywordRefererAnalyzed = $key;
-
- return true;
- }
- }
- }
- }
-
- /*
- * Newsletter analysis
- */
- private function detectRefererNewsletter()
- {
- if(isset($this->currentUrlParse['query']))
- {
- $newsletterVariableName = Piwik_LogStats_Config::getInstance()->LogStats['newsletter_var_name'];
- $newsletterVar = Piwik_Common::getParameterFromQueryString( $this->currentUrlParse['query'], $newsletterVariableName);
-
- if(!empty($newsletterVar))
- {
- $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_NEWSLETTER;
- $this->nameRefererAnalyzed = $newsletterVar;
-
- return true;
- }
- }
- }
-
- /*
- * Partner analysis
- */
- private function detectRefererPartner()
- {
- if(isset($this->currentUrlParse['query']))
- {
- $partnerVariableName = Piwik_LogStats_Config::getInstance()->LogStats['partner_var_name'];
- $partnerVar = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $partnerVariableName);
-
- if(!empty($partnerVar))
- {
- $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_PARTNER;
- $this->nameRefererAnalyzed = $partnerVar;
-
- return true;
- }
- }
- }
-
- /*
- * Campaign analysis
- */
- private function detectRefererCampaign()
- {
- if(isset($this->currentUrlParse['query']))
- {
- $campaignVariableName = Piwik_LogStats_Config::getInstance()->LogStats['campaign_var_name'];
- $campaignName = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $campaignVariableName);
-
- if( !empty($campaignName))
- {
- $campaignKeywordVariableName = Piwik_LogStats_Config::getInstance()->LogStats['campaign_keyword_var_name'];
- $campaignKeyword = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $campaignKeywordVariableName);
-
- $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_CAMPAIGN;
- $this->nameRefererAnalyzed = $campaignName;
-
- if(!empty($campaignKeyword))
- {
- $this->keywordRefererAnalyzed = $campaignKeyword;
- }
-
- return true;
- }
- }
- }
-
- /*
- * Direct entry (referer host is similar to current host)
- * And we have previously tried to detect the newsletter/partner/campaign variables in the URL
- * so it can only be a direct access
- */
-
- private function detectRefererDirectEntry()
- {
- if(isset($this->currentUrlParse['host']))
- {
- $currentHost = $this->currentUrlParse['host'];
-
- if($currentHost == $this->refererHost)
- {
- $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_DIRECT_ENTRY;
-
- return true;
- }
- }
-
+ //TODO testthis fnction exists!! use upgrade.php
+ htmlspecialchars_decode($key, Piwik_Common::HTML_ENCODING_QUOTE_STYLE))
+ , Piwik_Common::HTML_ENCODING_QUOTE_STYLE);
+ }
+ }
+
+
+ if(!empty($key))
+ {
+ $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_SEARCH_ENGINE;
+ $this->nameRefererAnalyzed = $searchEngineName;
+ $this->keywordRefererAnalyzed = $key;
+
+ return true;
+ }
+ }
+ }
+ }
+
+ /*
+ * Newsletter analysis
+ */
+ private function detectRefererNewsletter()
+ {
+ if(isset($this->currentUrlParse['query']))
+ {
+ $newsletterVariableName = Piwik_LogStats_Config::getInstance()->LogStats['newsletter_var_name'];
+ $newsletterVar = Piwik_Common::getParameterFromQueryString( $this->currentUrlParse['query'], $newsletterVariableName);
+
+ if(!empty($newsletterVar))
+ {
+ $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_NEWSLETTER;
+ $this->nameRefererAnalyzed = $newsletterVar;
+
+ return true;
+ }
+ }
+ }
+
+ /*
+ * Partner analysis
+ */
+ private function detectRefererPartner()
+ {
+ if(isset($this->currentUrlParse['query']))
+ {
+ $partnerVariableName = Piwik_LogStats_Config::getInstance()->LogStats['partner_var_name'];
+ $partnerVar = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $partnerVariableName);
+
+ if(!empty($partnerVar))
+ {
+ $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_PARTNER;
+ $this->nameRefererAnalyzed = $partnerVar;
+
+ return true;
+ }
+ }
+ }
+
+ /*
+ * Campaign analysis
+ */
+ private function detectRefererCampaign()
+ {
+ if(isset($this->currentUrlParse['query']))
+ {
+ $campaignVariableName = Piwik_LogStats_Config::getInstance()->LogStats['campaign_var_name'];
+ $campaignName = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $campaignVariableName);
+
+ if( !empty($campaignName))
+ {
+ $campaignKeywordVariableName = Piwik_LogStats_Config::getInstance()->LogStats['campaign_keyword_var_name'];
+ $campaignKeyword = Piwik_Common::getParameterFromQueryString($this->currentUrlParse['query'], $campaignKeywordVariableName);
+
+ $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_CAMPAIGN;
+ $this->nameRefererAnalyzed = $campaignName;
+
+ if(!empty($campaignKeyword))
+ {
+ $this->keywordRefererAnalyzed = $campaignKeyword;
+ }
+
+ return true;
+ }
+ }
+ }
+
+ /*
+ * Direct entry (referer host is similar to current host)
+ * And we have previously tried to detect the newsletter/partner/campaign variables in the URL
+ * so it can only be a direct access
+ */
+
+ private function detectRefererDirectEntry()
+ {
+ if(isset($this->currentUrlParse['host']))
+ {
+ $currentHost = $this->currentUrlParse['host'];
+
+ if($currentHost == $this->refererHost)
+ {
+ $this->typeRefererAnalyzed = Piwik_Common::REFERER_TYPE_DIRECT_ENTRY;
+
+ return true;
+ }
+ }
+
}
/**
* Returns a MD5 of all the configuration settings
diff --git a/modules/Period.php b/modules/Period.php
index 90d94bb707..f967aa0ff1 100644
--- a/modules/Period.php
+++ b/modules/Period.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
+
/**
* Creating a new Piwik_Period subclass:
*
@@ -19,8 +19,8 @@
* }
* that checks whether the subperiods have already been computed.
* This is for performance improvements, computing the subperiods is done a per demand basis.
- *
- *
+ *
+ *
* @package Piwik_Helper
*/
abstract class Piwik_Period
@@ -60,11 +60,11 @@ abstract class Piwik_Period
break;
}
}
-
- /**
- * Returns the first day of the period
- *
- * @return Piwik_Date First day of the period
+
+ /**
+ * Returns the first day of the period
+ *
+ * @return Piwik_Date First day of the period
*/
public function getDateStart()
{
@@ -85,11 +85,11 @@ abstract class Piwik_Period
}
return $currentPeriod->getDate();
}
-
- /**
- * Returns the last day of the period ; can be a date in the future
- *
- * @return Piwik_Date Last day of the period
+
+ /**
+ * Returns the last day of the period ; can be a date in the future
+ *
+ * @return Piwik_Date Last day of the period
*/
public function getDateEnd()
{
@@ -114,7 +114,7 @@ abstract class Piwik_Period
public function getId()
{
return Piwik::$idPeriods[$this->getLabel()];
- }
+ }
public function getLabel()
{
@@ -124,11 +124,11 @@ abstract class Piwik_Period
/**
*
* @return Piwik_Date
- */
- protected function getDate()
- {
- return $this->date;
- }
+ */
+ protected function getDate()
+ {
+ return $this->date;
+ }
protected function checkInputDate($date)
{
@@ -380,10 +380,10 @@ class Piwik_Period_Range extends Piwik_Period
return $range;
}
}
-
-/**
- *
- * @package Piwik_Period
+
+/**
+ *
+ * @package Piwik_Period
*/
class Piwik_Period_Day extends Piwik_Period
{
@@ -425,10 +425,10 @@ class Piwik_Period_Day extends Piwik_Period
}
-
-/**
- *
- * @package Piwik_Period
+
+/**
+ *
+ * @package Piwik_Period
*/
class Piwik_Period_Week extends Piwik_Period
{
@@ -468,10 +468,10 @@ class Piwik_Period_Week extends Piwik_Period
}
}
-
-/**
- *
- * @package Piwik_Period
+
+/**
+ *
+ * @package Piwik_Period
*/
class Piwik_Period_Month extends Piwik_Period
{
@@ -518,11 +518,11 @@ class Piwik_Period_Month extends Piwik_Period
return ( date("m") > $this->date->get("m") && date("Y") == $year)
|| date("Y") > $year;
}
-}
-
-/**
- *
- * @package Piwik_Period
+}
+
+/**
+ *
+ * @package Piwik_Period
*/
class Piwik_Period_Year extends Piwik_Period
{
diff --git a/modules/Piwik.php b/modules/Piwik.php
index 2bf043a301..8a21d2ab59 100755
--- a/modules/Piwik.php
+++ b/modules/Piwik.php
@@ -1,25 +1,25 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik
+ */
require_once "Config.php";
require_once "Zend/Db.php";
require_once "Zend/Db/Table.php";
require_once "Log.php";
require_once "PluginsManager.php";
-
-/**
+
+/**
* Main piwik helper class.
* Contains static functions you can call from the plugins.
- *
- * @package Piwik
+ *
+ * @package Piwik
*/
class Piwik
{
@@ -107,17 +107,17 @@ class Piwik
return $resultCheck;
}
- static public function getJavascriptCode($idSite, $piwikUrl, $actionName = "''")
- {
- $jsTag = file_get_contents( PIWIK_INCLUDE_PATH . "/modules/LogStats/javascriptTag.tpl");
- $jsTag = nl2br(htmlentities($jsTag));
- $jsTag = str_replace('{$actionName}', $actionName, $jsTag);
- $jsTag = str_replace('{$idSite}', $idSite, $jsTag);
+ static public function getJavascriptCode($idSite, $piwikUrl, $actionName = "''")
+ {
+ $jsTag = file_get_contents( PIWIK_INCLUDE_PATH . "/modules/LogStats/javascriptTag.tpl");
+ $jsTag = nl2br(htmlentities($jsTag));
+ $jsTag = str_replace('{$actionName}', $actionName, $jsTag);
+ $jsTag = str_replace('{$idSite}', $idSite, $jsTag);
$jsTag = str_replace('{$piwikUrl}', $piwikUrl, $jsTag);
$jsTag = str_replace('{$hrefTitle}', Piwik::getRandomTitle(), $jsTag);
-
- return $jsTag;
- }
+
+ return $jsTag;
+ }
static public function getMemoryLimitValue()
{
@@ -177,15 +177,15 @@ class Piwik
);
exit;
}
-
- /**
- * Computes the division of i1 by i2. If either i1 or i2 are not number, or if i2 has a value of zero
- * we return 0 to avoid the division by zero.
- *
- * @param numeric $i1
- * @param numeric $i2
- * @return numeric The result of the division or zero
- */
+
+ /**
+ * Computes the division of i1 by i2. If either i1 or i2 are not number, or if i2 has a value of zero
+ * we return 0 to avoid the division by zero.
+ *
+ * @param numeric $i1
+ * @param numeric $i2
+ * @return numeric The result of the division or zero
+ */
static public function secureDiv( $i1, $i2 )
{
if ( is_numeric($i1) && is_numeric($i2) && floatval($i2) != 0)
@@ -737,8 +737,8 @@ class Piwik
// at this point we have only the piwik tables which is good
// but we still miss the piwik generated tables (using the class Piwik_TablePartitioning)
- $allArchiveNumeric = $db->fetchCol("SHOW TABLES LIKE '".$prefixTables."archive_numeric%'");
- $allArchiveBlob = $db->fetchCol("SHOW TABLES LIKE '".$prefixTables."archive_blob%'");
+ $allArchiveNumeric = $db->fetchCol("SHOW TABLES LIKE '".$prefixTables."archive_numeric%'");
+ $allArchiveBlob = $db->fetchCol("SHOW TABLES LIKE '".$prefixTables."archive_blob%'");
$allTablesReallyInstalled = array_merge($tablesInstalled, $allArchiveNumeric, $allArchiveBlob);
@@ -849,8 +849,8 @@ class Piwik
}
Zend_Registry::set($loggerType, $logger);
}
- }
-
+ }
+
static public function createConfigObject( $pathConfigFile = null )
{
@@ -887,21 +887,21 @@ class Piwik
static public function isValidEmailString( $email )
{
return (preg_match('/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_.-]+\.[a-zA-Z]{2,4}$/', $email) > 0);
- }
-
- /**
- * Creates an entry in the User table for the "anonymous" user.
- *
- * @return void
+ }
+
+ /**
+ * Creates an entry in the User table for the "anonymous" user.
+ *
+ * @return void
*/
- static public function createAnonymousUser()
- {
- // The anonymous user is the user that is assigned by default
- // note that the token_auth value is anonymous, which is assigned by default as well in the Login plugin
- $db = Zend_Registry::get('db');
- $db->query("INSERT INTO ". Piwik::prefixTable("user") . "
- VALUES ( 'anonymous', '', 'anonymous', 'anonymous@example.org', 'anonymous', CURRENT_TIMESTAMP );" );
- }
+ static public function createAnonymousUser()
+ {
+ // The anonymous user is the user that is assigned by default
+ // note that the token_auth value is anonymous, which is assigned by default as well in the Login plugin
+ $db = Zend_Registry::get('db');
+ $db->query("INSERT INTO ". Piwik::prefixTable("user") . "
+ VALUES ( 'anonymous', '', 'anonymous', 'anonymous@example.org', 'anonymous', CURRENT_TIMESTAMP );" );
+ }
static public function createTablesIndex()
{
diff --git a/modules/Plugin.php b/modules/Plugin.php
index 2d65794598..8b44be2864 100644
--- a/modules/Plugin.php
+++ b/modules/Plugin.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik
+ */
+
/**
* Abstract class to define a Piwik_Plugin.
@@ -63,15 +63,15 @@ abstract class Piwik_Plugin
* Returns the plugin details
*/
abstract function getInformation();
-
- /**
- * Returns the plugin name
- */
- public function getName()
- {
- $info = $this->getInformation();
- return $info['name'];
- }
+
+ /**
+ * Returns the plugin name
+ */
+ public function getName()
+ {
+ $info = $this->getInformation();
+ return $info['name'];
+ }
/**
* Returns the list of hooks registered with the methods names
diff --git a/modules/PluginsManager.php b/modules/PluginsManager.php
index f7bbc87cf6..7dcbe6ca02 100644
--- a/modules/PluginsManager.php
+++ b/modules/PluginsManager.php
@@ -1,41 +1,41 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik
+ */
+
require_once "Plugin.php";
require_once "Event/Dispatcher.php";
-
-/**
- * Plugin specification for a statistics logging plugin
- *
- * A plugin that display data in the Piwik Interface is very different from a plugin
- * that will save additional data in the database during the statistics logging.
- * These two types of plugins don't have the same requirements at all. Therefore a plugin
- * that saves additional data in the database during the stats logging process will have a different
- * structure.
- *
- * A plugin for logging data has to focus on performance and therefore has to stay as simple as possible.
- * For input data, it is strongly advised to use the Piwik methods available in Piwik_Common
- *
- * Things that can be done with such a plugin:
- * - having a dependency with a list of other plugins
- * - have an install step that would prepare the plugin environment
- * - install could add columns to the tables
- * - install could create tables
- * - register to hooks at several points in the logging process
- * - register to hooks in other plugins
- * - generally a plugin method can modify data (filter) and add/remove data
- *
- *
- * @package Piwik
+
+/**
+ * Plugin specification for a statistics logging plugin
+ *
+ * A plugin that display data in the Piwik Interface is very different from a plugin
+ * that will save additional data in the database during the statistics logging.
+ * These two types of plugins don't have the same requirements at all. Therefore a plugin
+ * that saves additional data in the database during the stats logging process will have a different
+ * structure.
+ *
+ * A plugin for logging data has to focus on performance and therefore has to stay as simple as possible.
+ * For input data, it is strongly advised to use the Piwik methods available in Piwik_Common
+ *
+ * Things that can be done with such a plugin:
+ * - having a dependency with a list of other plugins
+ * - have an install step that would prepare the plugin environment
+ * - install could add columns to the tables
+ * - install could create tables
+ * - register to hooks at several points in the logging process
+ * - register to hooks in other plugins
+ * - generally a plugin method can modify data (filter) and add/remove data
+ *
+ *
+ * @package Piwik
*/
class Piwik_PluginsManager
{
@@ -413,14 +413,14 @@ class Piwik_PluginsManager
}
}
unset($this->loadedPlugins[$plugin->getName()]);
- }
- public function unloadPlugins()
- {
- $pluginsLoaded = $this->getLoadedPlugins();
- foreach($pluginsLoaded as $plugin)
- {
- $this->unloadPlugin($plugin);
- }
+ }
+ public function unloadPlugins()
+ {
+ $pluginsLoaded = $this->getLoadedPlugins();
+ foreach($pluginsLoaded as $plugin)
+ {
+ $this->unloadPlugin($plugin);
+ }
}
}
diff --git a/modules/Site.php b/modules/Site.php
index e82abc335a..791e1e42d6 100644
--- a/modules/Site.php
+++ b/modules/Site.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Site
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Site
+ */
+
/**
*
* @package Piwik_Site
diff --git a/modules/SmartyPlugins/function.url.php b/modules/SmartyPlugins/function.url.php
index 0ec8c63829..b4bce46934 100644
--- a/modules/SmartyPlugins/function.url.php
+++ b/modules/SmartyPlugins/function.url.php
@@ -1,13 +1,13 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package SmartyPlugins
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package SmartyPlugins
+ */
require_once "Url.php";
@@ -17,11 +17,11 @@ require_once "Url.php";
*
* Examples:
* <pre>
- * {url module="API"} will rewrite the URL modifying the module GET parameter
- * {url module="API" method="getKeywords"} will rewrite the URL modifying the parameters module=API method=getKeywords
- * </pre>
- *
- * @see Piwik_Url::getCurrentQueryStringWithParametersModified()
+ * {url module="API"} will rewrite the URL modifying the module GET parameter
+ * {url module="API" method="getKeywords"} will rewrite the URL modifying the parameters module=API method=getKeywords
+ * </pre>
+ *
+ * @see Piwik_Url::getCurrentQueryStringWithParametersModified()
* @param $name=$value of the parameters to modify in the generated URL
* @return string Something like index.php?module=X&action=Y
*/
diff --git a/modules/SmartyPlugins/modifier.sumtime.php b/modules/SmartyPlugins/modifier.sumtime.php
index 3126946cdc..49a55d69de 100644
--- a/modules/SmartyPlugins/modifier.sumtime.php
+++ b/modules/SmartyPlugins/modifier.sumtime.php
@@ -1,13 +1,13 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package SmartyPlugins
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package SmartyPlugins
+ */
/**
* Returns a string that displays the number of days and hours from a number of seconds
diff --git a/modules/Timer.php b/modules/Timer.php
index fa0ad4d044..0bbc4bf323 100644
--- a/modules/Timer.php
+++ b/modules/Timer.php
@@ -1,16 +1,16 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
-
+<?php
/**
- *
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
+
+/**
+ *
* @package Piwik_Helper
*/
class Piwik_Timer
diff --git a/modules/Translate.php b/modules/Translate.php
index 65abd385c9..9bb5400a3a 100644
--- a/modules/Translate.php
+++ b/modules/Translate.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik
+ */
+
/**
*
* @package Piwik
@@ -49,24 +49,24 @@ class Piwik_Translate
// we could check that no string overlap here
$GLOBALS['Piwik_translations'] = array_merge($GLOBALS['Piwik_translations'], $translation);
}
-
- /**
- * Enter description here...
- *
+
+ /**
+ * Enter description here...
+ *
* @return string the language filename prefix, eg "en" for english
- * @throws exception if the language set in the config file is not a valid filename
+ * @throws exception if the language set in the config file is not a valid filename
*/
public function getLanguageToLoad()
{
$language = Zend_Registry::get('config')->Language->current;
-
+
if( Piwik_Common::isValidFilename($language))
{
- return $language;
- }
- else
- {
- throw new Exception("The language selected ('$language') is not a valid language file ");
+ return $language;
+ }
+ else
+ {
+ throw new Exception("The language selected ('$language') is not a valid language file ");
}
}
}
diff --git a/modules/Url.php b/modules/Url.php
index 0fe28761ac..8667c6283f 100644
--- a/modules/Url.php
+++ b/modules/Url.php
@@ -1,18 +1,18 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Helper
- */
-
-/**
- * @package Piwik_Helper
- *
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Helper
+ */
+
+/**
+ * @package Piwik_Helper
+ *
+ */
class Piwik_Url
{
static function getArrayFromCurrentQueryString()
@@ -21,7 +21,7 @@ class Piwik_Url
$queryString = htmlspecialchars($queryString);
$urlValues = Piwik_Common::getArrayFromQueryString($queryString);
return $urlValues;
- }
+ }
static function getCurrentQueryStringWithParametersModified( $params )
{
@@ -32,15 +32,15 @@ class Piwik_Url
$urlValues[$key] = $value;
}
- $query = http_build_query($urlValues);
-
- if(strlen($query) > 0)
- {
- return '?'.$query;
- }
- else
- {
- return '';
+ $query = http_build_query($urlValues);
+
+ if(strlen($query) > 0)
+ {
+ return '?'.$query;
+ }
+ else
+ {
+ return '';
}
}
diff --git a/modules/View.php b/modules/View.php
index ac64056611..e81bf8445a 100644
--- a/modules/View.php
+++ b/modules/View.php
@@ -1,22 +1,22 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Visualization
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Visualization
+ */
+
require_once 'Smarty/Smarty.class.php';
-require_once "iView.php";
-
-/**
- *
- * @package Piwik_Visualization
- *
+require_once "iView.php";
+
+/**
+ *
+ * @package Piwik_Visualization
+ *
*/
class Piwik_View implements Piwik_iView
{
@@ -36,34 +36,34 @@ class Piwik_View implements Piwik_iView
foreach($smConf as $key => $value)
{
$this->smarty->$key = $value;
- }
+ }
- $this->smarty->template_dir = $this->getCorrectPath( $smConf->template_dir->toArray() );
- $this->smarty->plugins_dir = $this->getCorrectPath( $smConf->plugins_dir->toArray() );
- $this->smarty->compile_dir = $this->getCorrectPath( $smConf->compile_dir );
- $this->smarty->cache_dir = $this->getCorrectPath( $smConf->cache_dir );
+ $this->smarty->template_dir = $this->getCorrectPath( $smConf->template_dir->toArray() );
+ $this->smarty->plugins_dir = $this->getCorrectPath( $smConf->plugins_dir->toArray() );
+ $this->smarty->compile_dir = $this->getCorrectPath( $smConf->compile_dir );
+ $this->smarty->cache_dir = $this->getCorrectPath( $smConf->cache_dir );
$this->smarty->load_filter('output','trimwhitespace');
// global value accessible to all templates: the piwik base URL for the current request
$this->piwikUrl = Piwik_Url::getCurrentUrlWithoutFileName();
- }
-
- protected function getCorrectPath( $path )
- {
- if(is_array($path))
- {
- foreach($path as &$dir)
- {
- $dir = PIWIK_INCLUDE_PATH . '/' . $dir ;
- }
- return $path;
- }
- else
- {
- return PIWIK_INCLUDE_PATH . '/' . $path;
- }
+ }
+
+ protected function getCorrectPath( $path )
+ {
+ if(is_array($path))
+ {
+ foreach($path as &$dir)
+ {
+ $dir = PIWIK_INCLUDE_PATH . '/' . $dir ;
+ }
+ return $path;
+ }
+ else
+ {
+ return PIWIK_INCLUDE_PATH . '/' . $path;
+ }
}
/**
diff --git a/modules/ViewDataTable/Cloud.php b/modules/ViewDataTable/Cloud.php
index fbb831301d..3764b8d2fa 100644
--- a/modules/ViewDataTable/Cloud.php
+++ b/modules/ViewDataTable/Cloud.php
@@ -1,22 +1,22 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ViewDataTable
- */
-
-require_once "Visualization/Cloud.php";
-
-/**
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ViewDataTable
+ */
+
+require_once "Visualization/Cloud.php";
+
+/**
* Reads the requested DataTable from the API, and prepares the data to give
* to Piwik_Visualization_Cloud that will display the tag cloud (via the template cloud.tpl).
- *
- * @package Piwik_ViewDataTable
- *
+ *
+ * @package Piwik_ViewDataTable
+ *
*/
class Piwik_ViewDataTable_Cloud extends Piwik_ViewDataTable
{
diff --git a/modules/ViewDataTable/GenerateGraphData.php b/modules/ViewDataTable/GenerateGraphData.php
index 09f1446371..03ea3f9b1e 100644
--- a/modules/ViewDataTable/GenerateGraphData.php
+++ b/modules/ViewDataTable/GenerateGraphData.php
@@ -1,15 +1,15 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ViewDataTable
- */
-
-/**
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ViewDataTable
+ */
+
+/**
* Reads data from the API and prepares data to give to the renderer Piwik_Visualization_Chart.
* This class is used to generate the data for the FLASH charts. It is given as a parameter of the SWF file.
* You can set the number of elements to appear in the graph using: setGraphLimit();
@@ -25,9 +25,9 @@
* return $this->renderView($view, $fetch);
* }
* </pre>
- *
- * @package Piwik_ViewDataTable
- *
+ *
+ * @package Piwik_ViewDataTable
+ *
*/
abstract class Piwik_ViewDataTable_GenerateGraphData extends Piwik_ViewDataTable
{
@@ -47,29 +47,29 @@ abstract class Piwik_ViewDataTable_GenerateGraphData extends Piwik_ViewDataTable
* Number of elements to display in the graph.
*
* @var int
- */
- protected $graphLimit = 5;
+ */
+ protected $graphLimit = 5;
/**
* Sets the number max of elements to display (number of pie slice, vertical bars, etc.)
* If the data has more elements than $limit then the last part of the data will be the sum of all the remaining data.
*
* @param int $limit
- */
- function setGraphLimit( $limit )
- {
- $this->graphLimit = $limit;
- }
+ */
+ function setGraphLimit( $limit )
+ {
+ $this->graphLimit = $limit;
+ }
/**
* Returns numbers of elemnts to display in the graph
*
* @return int
- */
- function getGraphLimit()
- {
- return $this->graphLimit;
+ */
+ function getGraphLimit()
+ {
+ return $this->graphLimit;
}
-
+
public function main()
{
if($this->mainAlreadyExecuted)
@@ -77,12 +77,12 @@ abstract class Piwik_ViewDataTable_GenerateGraphData extends Piwik_ViewDataTable
return;
}
$this->mainAlreadyExecuted = true;
-
+
$this->setLimit(-1);
-
- // we load the data with the filters applied
+
+ // we load the data with the filters applied
$this->loadDataTableFromAPI();
- $this->dataTable->queueFilter('Piwik_DataTable_Filter_AddSummaryRow',array($this->getGraphLimit()));
+ $this->dataTable->queueFilter('Piwik_DataTable_Filter_AddSummaryRow',array($this->getGraphLimit()));
// echo $this->dataTable;
$this->dataAvailable = $this->dataTable->getRowsCount() != 0;
@@ -133,7 +133,7 @@ abstract class Piwik_ViewDataTable_GenerateGraphData extends Piwik_ViewDataTable
// var_dump($data);exit;
return $data;
}
-}
+}
/**
* Piwik_ViewDataTable_GenerateGraphData for the Evolution graph (eg. Last 30 days visits) using Piwik_Visualization_ChartEvolution
@@ -161,26 +161,26 @@ class Piwik_ViewDataTable_GenerateGraphData_ChartEvolution extends Piwik_ViewDat
*
* @package Piwik_ViewDataTable
*
- */
-class Piwik_ViewDataTable_GenerateGraphData_ChartPie extends Piwik_ViewDataTable_GenerateGraphData
-{
- function __construct()
- {
- require_once "Visualization/ChartPie.php";
- $this->view = new Piwik_Visualization_ChartPie;
- }
-}
+ */
+class Piwik_ViewDataTable_GenerateGraphData_ChartPie extends Piwik_ViewDataTable_GenerateGraphData
+{
+ function __construct()
+ {
+ require_once "Visualization/ChartPie.php";
+ $this->view = new Piwik_Visualization_ChartPie;
+ }
+}
/**
- * Piwik_ViewDataTable_GenerateGraphData for the vertical bar graph, using Piwik_Visualization_ChartVerticalBar
- *
- * @package Piwik_ViewDataTable
- *
- */
-class Piwik_ViewDataTable_GenerateGraphData_ChartVerticalBar extends Piwik_ViewDataTable_GenerateGraphData
-{
- function __construct()
- {
- require_once "Visualization/ChartVerticalBar.php";
- $this->view = new Piwik_Visualization_ChartVerticalBar;
- }
+ * Piwik_ViewDataTable_GenerateGraphData for the vertical bar graph, using Piwik_Visualization_ChartVerticalBar
+ *
+ * @package Piwik_ViewDataTable
+ *
+ */
+class Piwik_ViewDataTable_GenerateGraphData_ChartVerticalBar extends Piwik_ViewDataTable_GenerateGraphData
+{
+ function __construct()
+ {
+ require_once "Visualization/ChartVerticalBar.php";
+ $this->view = new Piwik_Visualization_ChartVerticalBar;
+ }
}
diff --git a/modules/ViewDataTable/Graph.php b/modules/ViewDataTable/Graph.php
index debad0edd6..c96f465aa5 100644
--- a/modules/ViewDataTable/Graph.php
+++ b/modules/ViewDataTable/Graph.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ViewDataTable
- */
-
-/**
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ViewDataTable
+ */
+
+/**
* This class generates the HTML code to embed to flash graphs in the page.
* It doesn't call the API but simply prints the html snippet.
- *
- * @package Piwik_ViewDataTable
- *
+ *
+ * @package Piwik_ViewDataTable
+ *
*/
abstract class Piwik_ViewDataTable_Graph extends Piwik_ViewDataTable
{
@@ -74,7 +74,7 @@ abstract class Piwik_ViewDataTable_Graph extends Piwik_ViewDataTable
$this->id = $this->getUniqIdTable();
$view->graphType = $this->graphType;
- $this->parametersToModify['action'] = $this->currentControllerAction;
+ $this->parametersToModify['action'] = $this->currentControllerAction;
$url = Piwik_Url::getCurrentQueryStringWithParametersModified($this->parametersToModify);
$view->jsInvocationTag = $this->getFlashInvocationCode($url);
$view->urlData = $url;
@@ -87,7 +87,7 @@ abstract class Piwik_ViewDataTable_Graph extends Piwik_ViewDataTable
$view->javascriptVariablesToSet = $this->getJavascriptVariablesToSet();
$view->showFooter = $this->getShowFooter();
$this->view = $view;
- }
+ }
protected function getFlashInvocationCode( $url = 'libs/open-flash-chart/data-files/nodata.txt', $use_swfobject = true )
{
@@ -165,32 +165,32 @@ class Piwik_ViewDataTable_Graph_ChartEvolution extends Piwik_ViewDataTable_Graph
$this->setParametersToModify(array('date' => 'last30'));
$this->doNotShowFooter();
}
-}
-/**
+}
+/**
* Generates HTML embed for the Pie chart
- *
- * @package Piwik_ViewDataTable
- *
- */
-class Piwik_ViewDataTable_Graph_ChartPie extends Piwik_ViewDataTable_Graph
-{
- function __construct()
- {
- $this->valueParameterViewDataTable = 'generateDataChartPie';
- }
-}
-
-/**
+ *
+ * @package Piwik_ViewDataTable
+ *
+ */
+class Piwik_ViewDataTable_Graph_ChartPie extends Piwik_ViewDataTable_Graph
+{
+ function __construct()
+ {
+ $this->valueParameterViewDataTable = 'generateDataChartPie';
+ }
+}
+
+/**
*
* Generates HTML embed for the vertical bar chart
- *
- * @package Piwik_ViewDataTable
- *
- */
-class Piwik_ViewDataTable_Graph_ChartVerticalBar extends Piwik_ViewDataTable_Graph
-{
- function __construct()
- {
- $this->valueParameterViewDataTable = 'generateDataChartVerticalBar';
- }
-}
+ *
+ * @package Piwik_ViewDataTable
+ *
+ */
+class Piwik_ViewDataTable_Graph_ChartVerticalBar extends Piwik_ViewDataTable_Graph
+{
+ function __construct()
+ {
+ $this->valueParameterViewDataTable = 'generateDataChartVerticalBar';
+ }
+}
diff --git a/modules/Visualization/Chart.php b/modules/Visualization/Chart.php
index 16cd5bc4dd..d45cd2d373 100644
--- a/modules/Visualization/Chart.php
+++ b/modules/Visualization/Chart.php
@@ -1,22 +1,22 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Visualization
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Visualization
+ */
+
require_once "Visualization/OpenFlashChart.php";
-
-/**
+
+/**
* Generates the data in the Open Flash Chart format, from the given data.
* Uses Open flash chart PHP library @see Piwik_Visualization_OpenFlashChart
- *
- * @package Piwik_Visualization
- */
+ *
+ * @package Piwik_Visualization
+ */
abstract class Piwik_Visualization_Chart extends Piwik_Visualization_OpenFlashChart
{
@@ -60,7 +60,7 @@ abstract class Piwik_Visualization_Chart extends Piwik_Visualization_OpenFlashCh
function prepareData()
{
- $label = $data = array();
+ $label = $data = array();
// var_dump($this->dataGraph); exit;
$max = 0;
foreach($this->dataGraph as $row)
diff --git a/modules/Visualization/Cloud.php b/modules/Visualization/Cloud.php
index aa12efaa43..2a8924f5db 100644
--- a/modules/Visualization/Cloud.php
+++ b/modules/Visualization/Cloud.php
@@ -1,22 +1,22 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Visualization
- */
-
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Visualization
+ */
+
+
/**
* Generates a tag cloud from a given data array.
- * The generated tag cloud can be in PHP format, or in HTML.
+ * The generated tag cloud can be in PHP format, or in HTML.
*
* Inspired from Derek Harvey (www.derekharvey.co.uk)
- *
- * @package Piwik_Visualization
+ *
+ * @package Piwik_Visualization
*/
class Piwik_Visualization_Cloud
{
diff --git a/modules/Visualization/OpenFlashChart.php b/modules/Visualization/OpenFlashChart.php
index ec4db36487..c4d7d986b3 100644
--- a/modules/Visualization/OpenFlashChart.php
+++ b/modules/Visualization/OpenFlashChart.php
@@ -1,27 +1,27 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Visualization
+ * @subpackage OFC
+ */
+
+require_once "iView.php";
+
+
+/**
+ * Original class provided by Open Flash Chart
*
* @package Piwik_Visualization
- * @subpackage OFC
- */
-
-require_once "iView.php";
-
-
-/**
- * Original class provided by Open Flash Chart
- *
- * @package Piwik_Visualization
- */
-abstract class Piwik_Visualization_OpenFlashChart implements Piwik_iView
-{
- function __construct()
- {
+ */
+abstract class Piwik_Visualization_OpenFlashChart implements Piwik_iView
+{
+ function __construct()
+ {
$this->data_sets = array();
diff --git a/modules/iView.php b/modules/iView.php
index 42003b4a72..c35edafa50 100644
--- a/modules/iView.php
+++ b/modules/iView.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id: APIable.php 162 2008-01-14 04:27:21Z matt $
- *
- * @package Piwik_Visualization
- */
-
-/**
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id: APIable.php 162 2008-01-14 04:27:21Z matt $
+ *
+ * @package Piwik_Visualization
+ */
+
+/**
* Piwik_ViewDataTable must create a $view attribute which implements this interface.
- *
- * @package Piwik_Visualization
- */
-interface Piwik_iView
+ *
+ * @package Piwik_Visualization
+ */
+interface Piwik_iView
{
/**
* Outputs the data.
@@ -22,6 +22,6 @@ interface Piwik_iView
*
* @return mixed
*
- */
- function render();
+ */
+ function render();
} \ No newline at end of file
diff --git a/modules/testMinimumPhpVersion.php b/modules/testMinimumPhpVersion.php
index 00e6f1dd4f..6203a81b61 100644
--- a/modules/testMinimumPhpVersion.php
+++ b/modules/testMinimumPhpVersion.php
@@ -1,31 +1,31 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id: Common.php 168 2008-01-14 05:26:43Z matt $
- *
- * @package Piwik
- */
-
-/**
- * This file is executed before anything else. It checks the minimum Php version required to run Piwik.
- * This is done here because on PHP4 piwik would output an error directly.
- * Let's try to be user friendly :)
- *
- * @package Piwik
- */
-
-// we prefix the global variables
-$piwik_minimumPhpVersion = '5.1.3';
-$piwik_currentVersion = phpversion();
-
-if( version_compare($piwik_minimumPhpVersion , $piwik_currentVersion ) >= 0 )
-{
- $piwik_errorMessage = "<p><b>To run Piwik you need at least PHP version $piwik_minimumPhpVersion </b></p>
- <p>Unfortunately it seems your webserver is using PHP version $piwik_currentVersion. </p>
- <p>Please try to update your PHP version, Piwik is really worth it! Nowadays most web hosts
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id: Common.php 168 2008-01-14 05:26:43Z matt $
+ *
+ * @package Piwik
+ */
+
+/**
+ * This file is executed before anything else. It checks the minimum Php version required to run Piwik.
+ * This is done here because on PHP4 piwik would output an error directly.
+ * Let's try to be user friendly :)
+ *
+ * @package Piwik
+ */
+
+// we prefix the global variables
+$piwik_minimumPhpVersion = '5.1.3';
+$piwik_currentVersion = phpversion();
+
+if( version_compare($piwik_minimumPhpVersion , $piwik_currentVersion ) >= 0 )
+{
+ $piwik_errorMessage = "<p><b>To run Piwik you need at least PHP version $piwik_minimumPhpVersion </b></p>
+ <p>Unfortunately it seems your webserver is using PHP version $piwik_currentVersion. </p>
+ <p>Please try to update your PHP version, Piwik is really worth it! Nowadays most web hosts
support PHP $piwik_minimumPhpVersion. </p>";
}
@@ -89,7 +89,7 @@ function Piwik_ExitWithMessage($message)
if(isset($piwik_errorMessage))
{
- Piwik_ExitWithMessage($piwik_errorMessage);
+ Piwik_ExitWithMessage($piwik_errorMessage);
}
diff --git a/piwik.php b/piwik.php
index 4c5891bb23..76bb5c8fe8 100644
--- a/piwik.php
+++ b/piwik.php
@@ -1,12 +1,12 @@
-<?php
-/**
- * Piwik - Open source web analytics
+<?php
+/**
+ * Piwik - Open source web analytics
*
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- */
-
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ */
+
/**
* Misc Thoughts about optimization
*
diff --git a/plugins/API/Controller.php b/plugins/API/Controller.php
index 00eadd58cb..3b1804bb0f 100644
--- a/plugins/API/Controller.php
+++ b/plugins/API/Controller.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_API
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_API
+ */
+
require_once "API/Request.php";
-
-
-/**
- *
- * @package Piwik_API
+
+
+/**
+ *
+ * @package Piwik_API
*/
class Piwik_API_Controller extends Piwik_Controller
{
@@ -24,46 +24,46 @@ class Piwik_API_Controller extends Piwik_Controller
$request = new Piwik_API_Request();
echo $request->process();
}
-
- protected function init()
- {
- $plugins = Piwik_PluginsManager::getInstance()->getLoadedPluginsName();
-
- $loaded = 0;
- foreach( $plugins as $plugin )
- {
- $plugin = Piwik::unprefixClass($plugin);
-
- try {
- Piwik_API_Proxy::getInstance()->registerClass($plugin);
- $loaded++;
- }
- catch(Exception $e){
-// $errors .= "<br>\n" . $e->getMessage();
- }
- }
- return $loaded;
- }
-
- function listAllMethods()
- {
- $this->init();
- echo Piwik_API_Proxy::getInstance()->getAllInterfaceString( $outputExampleUrls = true, $prefixUrls = Piwik_Common::getRequestVar('prefixUrl', '') );
- }
-
+
+ protected function init()
+ {
+ $plugins = Piwik_PluginsManager::getInstance()->getLoadedPluginsName();
+
+ $loaded = 0;
+ foreach( $plugins as $plugin )
+ {
+ $plugin = Piwik::unprefixClass($plugin);
+
+ try {
+ Piwik_API_Proxy::getInstance()->registerClass($plugin);
+ $loaded++;
+ }
+ catch(Exception $e){
+// $errors .= "<br>\n" . $e->getMessage();
+ }
+ }
+ return $loaded;
+ }
+
+ function listAllMethods()
+ {
+ $this->init();
+ echo Piwik_API_Proxy::getInstance()->getAllInterfaceString( $outputExampleUrls = true, $prefixUrls = Piwik_Common::getRequestVar('prefixUrl', '') );
+ }
+
function listAllAPI()
- {
- $token_auth = Zend_Registry::get('auth')->getTokenAuth();
- echo "<style>body{ font-family:georgia,arial; font-size:0.95em;} </style>";
- echo "<h1>API quick documentation</h1>";
- echo "<p>If you don't have data for today you can first <a href='misc/generateVisits.php' target=_blank>generate some data</a> using the Visits Generator script.</p>";
- echo "<p>You can try the different formats available for every method. It is very easy to extract any data you want from piwik!</p>";
+ {
+ $token_auth = Zend_Registry::get('auth')->getTokenAuth();
+ echo "<style>body{ font-family:georgia,arial; font-size:0.95em;} </style>";
+ echo "<h1>API quick documentation</h1>";
+ echo "<p>If you don't have data for today you can first <a href='misc/generateVisits.php' target=_blank>generate some data</a> using the Visits Generator script.</p>";
+ echo "<p>You can try the different formats available for every method. It is very easy to extract any data you want from piwik!</p>";
echo "<p>If you want to <b>request the data without being logged in to Piwik</b> you need to add the parameter <code><u>&token_auth=$token_auth</u></code> to the API calls URLs that require authentication.</p>";
- echo "<p><b>For more information have a look at the <a href='http://dev.piwik.org/trac/wiki/API'>official API Documentation</a> or the <a href='http://dev.piwik.org/trac/wiki/API/Reference'>API Reference</a>.</b></P>";
+ echo "<p><b>For more information have a look at the <a href='http://dev.piwik.org/trac/wiki/API'>official API Documentation</a> or the <a href='http://dev.piwik.org/trac/wiki/API/Reference'>API Reference</a>.</b></P>";
- $loaded = $this->init();
- echo "<p><i> Loaded successfully $loaded APIs</i></p>\n";
+ $loaded = $this->init();
+ echo "<p><i> Loaded successfully $loaded APIs</i></p>\n";
echo Piwik_API_Proxy::getInstance()->getAllInterfaceString();
echo "<p><a href='?module=Home'>Back to Piwik homepage</a></p>";
diff --git a/plugins/AdminHome/templates/index.tpl b/plugins/AdminHome/templates/index.tpl
index f2139afe46..8593a294b8 100644
--- a/plugins/AdminHome/templates/index.tpl
+++ b/plugins/AdminHome/templates/index.tpl
@@ -1,47 +1,47 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
-<html>
-<head>
-</head>
-<body>
-{literal}
-<style>
-#h1, #h1 a {
- color: #136F8B;
- font-size: 45px;
- font-weight: lighter;
- text-decoration : none;
- margin:5px;
-}
-
-#subh1 {
- color: #879dbd;
- font-size: 25px;
- font-weight: lighter;
-}
-</style>
-{/literal}
-<script type="text/javascript" src="libs/jquery/jquery.js"></script>
-<script type="text/javascript" src="themes/default/common.js"></script>
-
-<link rel="stylesheet" type="text/css" href="plugins/AdminHome/templates/menu.css">
-<link rel="stylesheet" href="themes/default/common-admin.css">
-
-<span id="h1">Piwik admin</span> &nbsp;
-<span><a href='index.php'>Back to Piwik</a></span>
-<br><br>
-
-<div id="menu">
-{include file="AdminHome/templates/menu.tpl"}
-</div>
-
-<div style="clear:both;">
-</div>
-
-<div id='content'>
-{if $content}{$content}{/if}
-</div>
-
-<div id="footer" style="border-top:1px solid gray; margin-top:20px;padding-top:10px;">
-<a href='?module=Home'>Back to Piwik homepage</a>
-
-</div>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
+<html>
+<head>
+</head>
+<body>
+{literal}
+<style>
+#h1, #h1 a {
+ color: #136F8B;
+ font-size: 45px;
+ font-weight: lighter;
+ text-decoration : none;
+ margin:5px;
+}
+
+#subh1 {
+ color: #879dbd;
+ font-size: 25px;
+ font-weight: lighter;
+}
+</style>
+{/literal}
+<script type="text/javascript" src="libs/jquery/jquery.js"></script>
+<script type="text/javascript" src="themes/default/common.js"></script>
+
+<link rel="stylesheet" type="text/css" href="plugins/AdminHome/templates/menu.css">
+<link rel="stylesheet" href="themes/default/common-admin.css">
+
+<span id="h1">Piwik admin</span> &nbsp;
+<span><a href='index.php'>Back to Piwik</a></span>
+<br><br>
+
+<div id="menu">
+{include file="AdminHome/templates/menu.tpl"}
+</div>
+
+<div style="clear:both;">
+</div>
+
+<div id='content'>
+{if $content}{$content}{/if}
+</div>
+
+<div id="footer" style="border-top:1px solid gray; margin-top:20px;padding-top:10px;">
+<a href='?module=Home'>Back to Piwik homepage</a>
+
+</div>
diff --git a/plugins/AdminHome/templates/menu.tpl b/plugins/AdminHome/templates/menu.tpl
index 08dd8e0dde..0922c2e05b 100644
--- a/plugins/AdminHome/templates/menu.tpl
+++ b/plugins/AdminHome/templates/menu.tpl
@@ -1,5 +1,5 @@
-<ul id="tablist">
-{foreach from=$menu key=name item=url name=menu}
- <li><a name='{$url|@urlRewriteAdminView}' href='{$url|@urlRewriteAdminView}'>{$name}</a></li>
-{/foreach}
-</ul>
+<ul id="tablist">
+{foreach from=$menu key=name item=url name=menu}
+ <li><a name='{$url|@urlRewriteAdminView}' href='{$url|@urlRewriteAdminView}'>{$name}</a></li>
+{/foreach}
+</ul>
diff --git a/plugins/ExamplePlugin/API.php b/plugins/ExamplePlugin/API.php
index c4649baade..0cb23e83ca 100644
--- a/plugins/ExamplePlugin/API.php
+++ b/plugins/ExamplePlugin/API.php
@@ -1,37 +1,37 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_ExamplePlugin
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_ExamplePlugin
+ */
+
/**
* HOW TO VIEW THE API IN ACTION
* =============================
* Go to the API page in the Piwik Interface
* And try the API of the plugin ExamplePlugin
- */
-
-/**
- *
- * @package Piwik_ExamplePlugin
- */
-class MagicObject
-{
- function Incredible(){ return 'Incroyable'; }
- protected $wonderful = 'magnifique';
- public $great = 'formidable';
+ */
+
+/**
+ *
+ * @package Piwik_ExamplePlugin
+ */
+class MagicObject
+{
+ function Incredible(){ return 'Incroyable'; }
+ protected $wonderful = 'magnifique';
+ public $great = 'formidable';
}
-
-
-/**
- *
- * @package Piwik_ExamplePlugin
- */
+
+
+/**
+ *
+ * @package Piwik_ExamplePlugin
+ */
class Piwik_ExamplePlugin_API extends Piwik_Apiable
{
static private $instance = null;
@@ -49,40 +49,40 @@ class Piwik_ExamplePlugin_API extends Piwik_Apiable
}
return self::$instance;
}
-
- public function getAnswerToLife()
- {
- return 42;
- }
-
- public function getGoldenRatio()
- {
- //http://en.wikipedia.org/wiki/Golden_ratio
- return 1.618033988749894848204586834365;
- }
- public function getObject()
- {
- return new MagicObject();
- }
- public function getNull()
- {
- return null;
- }
- public function getDescriptionArray()
- {
- return array('piwik','open source','web analytics','free');
- }
- public function getCompetitionDatatable()
- {
- $dataTable = new Piwik_DataTable();
-
- $row1 = new Piwik_DataTable_Row;
- $row1->setColumns( array('name' => 'piwik', 'license' => 'GPL'));
- $dataTable->addRow($row1);
-
- $dataTable->addRowFromSimpleArray( array('name' => 'google analytics', 'license' => 'commercial') );
-
- return $dataTable;
+
+ public function getAnswerToLife()
+ {
+ return 42;
+ }
+
+ public function getGoldenRatio()
+ {
+ //http://en.wikipedia.org/wiki/Golden_ratio
+ return 1.618033988749894848204586834365;
+ }
+ public function getObject()
+ {
+ return new MagicObject();
+ }
+ public function getNull()
+ {
+ return null;
+ }
+ public function getDescriptionArray()
+ {
+ return array('piwik','open source','web analytics','free');
+ }
+ public function getCompetitionDatatable()
+ {
+ $dataTable = new Piwik_DataTable();
+
+ $row1 = new Piwik_DataTable_Row;
+ $row1->setColumns( array('name' => 'piwik', 'license' => 'GPL'));
+ $dataTable->addRow($row1);
+
+ $dataTable->addRowFromSimpleArray( array('name' => 'google analytics', 'license' => 'commercial') );
+
+ return $dataTable;
}
public function getMoreInformationAnswerToLife()
diff --git a/plugins/Home/templates/datatable.tpl b/plugins/Home/templates/datatable.tpl
index ad7eda2152..8f3d7ad756 100644
--- a/plugins/Home/templates/datatable.tpl
+++ b/plugins/Home/templates/datatable.tpl
@@ -34,7 +34,7 @@
{if $showFooter}
{include file="Home/templates/datatable_footer.tpl"}
- {/if}
+ {/if}
{include file="Home/templates/datatable_js.tpl"}
{/if}
</div>
diff --git a/plugins/Home/templates/datatable_actions_js.tpl b/plugins/Home/templates/datatable_actions_js.tpl
index 0b740254b2..5bf5ed2bca 100644
--- a/plugins/Home/templates/datatable_actions_js.tpl
+++ b/plugins/Home/templates/datatable_actions_js.tpl
@@ -1,12 +1,12 @@
<script type="text/javascript" defer="defer">
-$(document).ready(function(){literal}{{/literal}
- actionDataTables['{$id}'] = new actionDataTable();
+$(document).ready(function(){literal}{{/literal}
+ actionDataTables['{$id}'] = new actionDataTable();
actionDataTables['{$id}'].param = {literal}{{/literal}
{foreach from=$javascriptVariablesToSet key=name item=value name=loop}
{$name}: '{$value}'{if !$smarty.foreach.loop.last},{/if}
- {/foreach}
+ {/foreach}
{literal}};{/literal}
actionDataTables['{$id}'].init('{$id}');
{literal}}{/literal});
-</script>
+</script>
diff --git a/plugins/Home/templates/datatable_actions_recursive.tpl b/plugins/Home/templates/datatable_actions_recursive.tpl
index 35df863d5d..f93e76cb1a 100644
--- a/plugins/Home/templates/datatable_actions_recursive.tpl
+++ b/plugins/Home/templates/datatable_actions_recursive.tpl
@@ -37,7 +37,7 @@
</table>
{/if}
- {include file="Home/templates/datatable_footer.tpl"}
+ {include file="Home/templates/datatable_footer.tpl"}
{include file="Home/templates/datatable_actions_js.tpl"}
{/if}
diff --git a/plugins/Home/templates/datatable_js.tpl b/plugins/Home/templates/datatable_js.tpl
index 4c59eedde3..83043606f4 100644
--- a/plugins/Home/templates/datatable_js.tpl
+++ b/plugins/Home/templates/datatable_js.tpl
@@ -1,12 +1,12 @@
<script type="text/javascript" defer="defer">
-$(document).ready(function(){literal}{{/literal}
- dataTables['{$id}'] = new dataTable();
+$(document).ready(function(){literal}{{/literal}
+ dataTables['{$id}'] = new dataTable();
dataTables['{$id}'].param = {literal}{{/literal}
{foreach from=$javascriptVariablesToSet key=name item=value name=loop}
{$name}: '{$value}'{if !$smarty.foreach.loop.last},{/if}
- {/foreach}
+ {/foreach}
{literal}};{/literal}
dataTables['{$id}'].init('{$id}');
{literal}}{/literal});
-</script>
+</script>
diff --git a/plugins/Home/templates/index.tpl b/plugins/Home/templates/index.tpl
index 3482497ce3..ed74aa78d0 100644
--- a/plugins/Home/templates/index.tpl
+++ b/plugins/Home/templates/index.tpl
@@ -1,338 +1,338 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
-<html>
-<head>
-</head>
-<body>
-
-
-<script type="text/javascript">
-var period = "{$period}";
-var currentDateStr = "{$date}";
-var minDateYear = {$minDateYear};
-var minDateMonth = {$minDateMonth};
-var minDateDay = {$minDateDay};
-
-</script>
-
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
+<html>
+<head>
+</head>
+<body>
+
+
+<script type="text/javascript">
+var period = "{$period}";
+var currentDateStr = "{$date}";
+var minDateYear = {$minDateYear};
+var minDateMonth = {$minDateMonth};
+var minDateDay = {$minDateDay};
+
+</script>
+
<script type="text/javascript" src="libs/jquery/jquery.js"></script>
-
-<script type="text/javascript" src="themes/default/common.js"></script>
-<script type="text/javascript" src="libs/jquery/jquery.dimensions.js"></script>
-<script type="text/javascript" src="libs/jquery/tooltip/jquery.tooltip.js"></script>
-<script type="text/javascript" src="libs/jquery/truncate/jquery.truncate.js"></script>
-<script type="text/javascript" src="libs/jquery/jquery.scrollTo.js"></script>
-<script type="text/javascript" src="libs/jquery/jquery-calendar.js"></script>
-<script type="text/javascript" src="libs/swfobject/swfobject.js"></script>
-
-<script type="text/javascript" src="plugins/Home/templates/datatable.js"></script>
-<script type="text/javascript" src="plugins/Home/templates/calendar.js"></script>
-
+
+<script type="text/javascript" src="themes/default/common.js"></script>
+<script type="text/javascript" src="libs/jquery/jquery.dimensions.js"></script>
+<script type="text/javascript" src="libs/jquery/tooltip/jquery.tooltip.js"></script>
+<script type="text/javascript" src="libs/jquery/truncate/jquery.truncate.js"></script>
+<script type="text/javascript" src="libs/jquery/jquery.scrollTo.js"></script>
+<script type="text/javascript" src="libs/jquery/jquery-calendar.js"></script>
+<script type="text/javascript" src="libs/swfobject/swfobject.js"></script>
+
+<script type="text/javascript" src="plugins/Home/templates/datatable.js"></script>
+<script type="text/javascript" src="plugins/Home/templates/calendar.js"></script>
+
<script type="text/javascript" src="plugins/Home/templates/date.js"></script>
-
+
<script type="text/javascript" src="libs/jquery/jquery.blockUI.js"></script>
<script type="text/javascript" src="libs/jquery/ui.mouse.js"></script>
<script type="text/javascript" src="libs/jquery/ui.sortable_modif.js"></script>
-
-
-
+
+
+
<link rel="stylesheet" href="plugins/Home/templates/datatable.css">
-<link rel="stylesheet" href="plugins/Dashboard/templates/dashboard.css">
-
-
-<style type="text/css">@import url(libs/jquery/jquery-calendar.css);</style>
-
-
-<script type="text/javascript" src="libs/jquery/superfish_modified.js"></script>
-<script type="text/javascript" src="plugins/Home/templates/menu.js"></script>
-<link rel="stylesheet" type="text/css" href="plugins/Home/templates/menu.css" media="screen">
-
-{literal}
-
-<style>
-/* reset style */
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 0;
- font-size: 100%;
- vertical-align: baseline;
- background: transparent;
-}
-body {
- line-height: 1.33;
-}
-ol, ul {
- list-style: none;
-}
-blockquote, q {
- quotes: none;
-}
-
-/* remember to define focus styles! */
-:focus {
- outline: 0;
-}
-
-/* remember to highlight inserts somehow! */
-ins {
- text-decoration: none;
-}
-del {
- text-decoration: line-through;
-}
-
-
-/* start piwik styles */
-body {
- font-family: Georgia,"Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
- font-size:1em;
-}
-
-#h1, #h1 a {
- color: #136F8B;
- font-size: 45px;
- font-weight: lighter;
- text-decoration : none;
- margin:5px;
-}
-
-#subh1 {
- color: #879dbd;
- font-size: 25px;
- font-weight: lighter;
-}
-h1 {
- font-size:2em;
- color:#0F1B2E;
- padding-bottom:1em;
-}
-h2 {
- font-size:1.6em;
- color:#1D3256;
- padding-bottom:0.5em;
-
-}
-h3 {
- font-size:1.3em;
- margin-top:2em;
- color:#1D3256;
-}
-a {
- color:#0F1B2E;
-}
-p {
- padding-bottom:1em;
- margin-right:1em;
-}
-
-/* Content */
-#content {
- margin-left:10px;
-}
-/* 2 columns reports */
-#leftcolumn {
- float:left;
- width:45%;
- padding-left:10px;
- padding-right:20px;
-}
-#rightcolumn {
- float: right;
- width:45%;
- padding-left:20px;
-}
-
-
-
-/* Calendar */
-#calendar {
- position: relative;
- margin-left:350px;
-}
-.calendar td.dateToday, .calendar td.dateToday a{
- font-weight:bold;
-}
-
-.calendar td.dateUsedStats, .calendar td.dateUsedStats a{
- color:#2E85FF;
- border-color:#2E85FF ;
-}
-
-.calendar td.calendar_unselectable {
- color:#F2F7FF;
-}
-
-/* style for the date picking */
-#periodString {
- margin-left:350px;
-}
-
-#periodString #date, #periodString #periods,
-#periodString #date a, #periodString #periods a {
- color:#520202;
- font-size:15pt;
-}
-#otherPeriods a{
- text-decoration:none;
-}
-#otherPeriods a:hover{
- text-decoration:underline;
-}
-#currentPeriod {
- border-bottom:1px dotted #520202;
-}
-.hoverPeriod {
- cursor: pointer;
- font-weight:bold;
- border-bottom:1px solid #520202;
-}
-
-
-/* OTHER */
-#loadingError {
- font-weight:bold;
- font-size: 1.1em;
- color:#F88D22;
- padding:0.5em;
- margin-left:30%;
- display:none;
-}
-#loadingPiwik {
- font-weight:bold;
- font-size: 1.1em;
- color:#193B6C;
- padding:0.5em;
- margin-left:30%;
-}
-
-#miscLinks{
- padding-right:20px;
-}
-
-#periodSelection, #periodSelection a {
- color:#8D92AA;
-}
-
-#messageToUsers, #messageToUsers a {
- color:red;
- font-size:0.9em;
- text-decoration : none;
- width:100%;
-}
-
-.sparkline {
- vertical-align: middle;
- padding-right:10px;
-}
-
-
-#stuff {
- position: absolute;
- margin-left:70%;
- margin-top:10px;
- font-size:0.9em;
- width:20%;
-}
-
-
-/* top right bar */
-#loggued {
- float:right;
- text-align:right;
- margin-right: 20px;
- padding-bottom:5px;
- padding-top:5px;
- padding-left:5px;
- border-bottom:1px dotted #E2E3FE;
- border-left:1px dotted #E2E3FE;
-}
-#loggued form {
- display:inline;
-}
-
-
-#javascriptDisable, #javascriptDisable a {
- font-weight:bold;
- color:#F88D22;
-}
-</style>
-{/literal}
-
-
-<span id="loggued">
-<form action="{url idSite=null}" method="GET" id="siteSelection">
-<small>
- <strong>{$userLogin}</strong>
- |
-<span id="sitesSelection">
-{hiddenurl idSite=null}
-Site <select name="idSite" onchange='javascript:this.form.submit()'>
- <optgroup label="Sites">
- {foreach from=$sites item=info}
- <option label="{$info.name}" value="{$info.idsite}" {if $idSite==$info.idsite} selected="selected"{/if}>{$info.name}</option>
- {/foreach}
- </optgroup>
-</select>
-</span> | {if $userLogin=='anonymous'}<a href='?module=Login'>Login</a>{else}<a href='?module=Login&action=logout'>Logout</a>{/if}</a>
-</small>
-</form>
-</span>
-
-<span id="h1"><a href='http://piwik.org'>Piwik</a> </span><span id="subh1"> # open source web analytics</span><br>
-<br>
-<div id="stuff">
- <div>
- <span id="messageToUsers"><a href='http://piwik.org'>Piwik</a> is still alpha. You can <a href="mailto:hello@piwik.org?subject=Feedback piwik"><u>send us</u></a> your feedback.</span>
- {include file="Home/templates/links_misc_modules.tpl"}
- </div>
-</div>
-
-
-<noscript>
-<span id="javascriptDisable">
-JavaScript must be enabled in order for you to use Piwik in standard view.<br>
-However, it seems JavaScript is either disabled or not supported by your browser.<br>
-To use standard view, enable JavaScript by changing your browser options, then <a href=''>try again</a>.<br>
-</span>
-</noscript>
-{include file="Home/templates/period_select.tpl"}
-
-<br><br>
-{include file="Home/templates/menu.tpl"}
-
-<div style='clear:both'></div>
-
-<div id="loadingPiwik" {if $basicHtmlView}style="display:none"{/if}><img src="themes/default/images/loading-blue.gif"> Loading data...</div>
-<div id="loadingError">Oops&hellip; problem during the request, please try again.</div>
-<div id='content'>
-{if $content}{$content}{/if}
-</div>
-
-{if ereg('http://127.0.0.1|http://localhost|http://piwik.org', $url)}
-{literal}
-<!-- Piwik -->
-<a href="http://piwik.org" title="Web analytics" onclick="window.open(this.href);return(false);">
-<script language="javascript" src="piwik.js" type="text/javascript"></script>
-<script type="text/javascript">
-<!--
-piwik_action_name = '';
-piwik_idsite = 1;
-piwik_url = 'piwik.php';
-piwik_vars = { 'video_play':1, 'video_finished':0 };
-piwik_log(piwik_action_name, piwik_idsite, piwik_url, piwik_vars);
-//-->
-</script><object>
-<noscript><p>Web analytics <img src="piwik.php" style="border:0" alt="piwik"/></p>
-</noscript></object></a>
-<!-- /Piwik -->
-{/literal}
-{/if}
+<link rel="stylesheet" href="plugins/Dashboard/templates/dashboard.css">
+
+
+<style type="text/css">@import url(libs/jquery/jquery-calendar.css);</style>
+
+
+<script type="text/javascript" src="libs/jquery/superfish_modified.js"></script>
+<script type="text/javascript" src="plugins/Home/templates/menu.js"></script>
+<link rel="stylesheet" type="text/css" href="plugins/Home/templates/menu.css" media="screen">
+
+{literal}
+
+<style>
+/* reset style */
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+}
+body {
+ line-height: 1.33;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* remember to highlight inserts somehow! */
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration: line-through;
+}
+
+
+/* start piwik styles */
+body {
+ font-family: Georgia,"Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
+ font-size:1em;
+}
+
+#h1, #h1 a {
+ color: #136F8B;
+ font-size: 45px;
+ font-weight: lighter;
+ text-decoration : none;
+ margin:5px;
+}
+
+#subh1 {
+ color: #879dbd;
+ font-size: 25px;
+ font-weight: lighter;
+}
+h1 {
+ font-size:2em;
+ color:#0F1B2E;
+ padding-bottom:1em;
+}
+h2 {
+ font-size:1.6em;
+ color:#1D3256;
+ padding-bottom:0.5em;
+
+}
+h3 {
+ font-size:1.3em;
+ margin-top:2em;
+ color:#1D3256;
+}
+a {
+ color:#0F1B2E;
+}
+p {
+ padding-bottom:1em;
+ margin-right:1em;
+}
+
+/* Content */
+#content {
+ margin-left:10px;
+}
+/* 2 columns reports */
+#leftcolumn {
+ float:left;
+ width:45%;
+ padding-left:10px;
+ padding-right:20px;
+}
+#rightcolumn {
+ float: right;
+ width:45%;
+ padding-left:20px;
+}
+
+
+
+/* Calendar */
+#calendar {
+ position: relative;
+ margin-left:350px;
+}
+.calendar td.dateToday, .calendar td.dateToday a{
+ font-weight:bold;
+}
+
+.calendar td.dateUsedStats, .calendar td.dateUsedStats a{
+ color:#2E85FF;
+ border-color:#2E85FF ;
+}
+
+.calendar td.calendar_unselectable {
+ color:#F2F7FF;
+}
+
+/* style for the date picking */
+#periodString {
+ margin-left:350px;
+}
+
+#periodString #date, #periodString #periods,
+#periodString #date a, #periodString #periods a {
+ color:#520202;
+ font-size:15pt;
+}
+#otherPeriods a{
+ text-decoration:none;
+}
+#otherPeriods a:hover{
+ text-decoration:underline;
+}
+#currentPeriod {
+ border-bottom:1px dotted #520202;
+}
+.hoverPeriod {
+ cursor: pointer;
+ font-weight:bold;
+ border-bottom:1px solid #520202;
+}
+
+
+/* OTHER */
+#loadingError {
+ font-weight:bold;
+ font-size: 1.1em;
+ color:#F88D22;
+ padding:0.5em;
+ margin-left:30%;
+ display:none;
+}
+#loadingPiwik {
+ font-weight:bold;
+ font-size: 1.1em;
+ color:#193B6C;
+ padding:0.5em;
+ margin-left:30%;
+}
+
+#miscLinks{
+ padding-right:20px;
+}
+
+#periodSelection, #periodSelection a {
+ color:#8D92AA;
+}
+
+#messageToUsers, #messageToUsers a {
+ color:red;
+ font-size:0.9em;
+ text-decoration : none;
+ width:100%;
+}
+
+.sparkline {
+ vertical-align: middle;
+ padding-right:10px;
+}
+
+
+#stuff {
+ position: absolute;
+ margin-left:70%;
+ margin-top:10px;
+ font-size:0.9em;
+ width:20%;
+}
+
+
+/* top right bar */
+#loggued {
+ float:right;
+ text-align:right;
+ margin-right: 20px;
+ padding-bottom:5px;
+ padding-top:5px;
+ padding-left:5px;
+ border-bottom:1px dotted #E2E3FE;
+ border-left:1px dotted #E2E3FE;
+}
+#loggued form {
+ display:inline;
+}
+
+
+#javascriptDisable, #javascriptDisable a {
+ font-weight:bold;
+ color:#F88D22;
+}
+</style>
+{/literal}
+
+
+<span id="loggued">
+<form action="{url idSite=null}" method="GET" id="siteSelection">
+<small>
+ <strong>{$userLogin}</strong>
+ |
+<span id="sitesSelection">
+{hiddenurl idSite=null}
+Site <select name="idSite" onchange='javascript:this.form.submit()'>
+ <optgroup label="Sites">
+ {foreach from=$sites item=info}
+ <option label="{$info.name}" value="{$info.idsite}" {if $idSite==$info.idsite} selected="selected"{/if}>{$info.name}</option>
+ {/foreach}
+ </optgroup>
+</select>
+</span> | {if $userLogin=='anonymous'}<a href='?module=Login'>Login</a>{else}<a href='?module=Login&action=logout'>Logout</a>{/if}</a>
+</small>
+</form>
+</span>
+
+<span id="h1"><a href='http://piwik.org'>Piwik</a> </span><span id="subh1"> # open source web analytics</span><br>
+<br>
+<div id="stuff">
+ <div>
+ <span id="messageToUsers"><a href='http://piwik.org'>Piwik</a> is still alpha. You can <a href="mailto:hello@piwik.org?subject=Feedback piwik"><u>send us</u></a> your feedback.</span>
+ {include file="Home/templates/links_misc_modules.tpl"}
+ </div>
+</div>
+
+
+<noscript>
+<span id="javascriptDisable">
+JavaScript must be enabled in order for you to use Piwik in standard view.<br>
+However, it seems JavaScript is either disabled or not supported by your browser.<br>
+To use standard view, enable JavaScript by changing your browser options, then <a href=''>try again</a>.<br>
+</span>
+</noscript>
+{include file="Home/templates/period_select.tpl"}
+
+<br><br>
+{include file="Home/templates/menu.tpl"}
+
+<div style='clear:both'></div>
+
+<div id="loadingPiwik" {if $basicHtmlView}style="display:none"{/if}><img src="themes/default/images/loading-blue.gif"> Loading data...</div>
+<div id="loadingError">Oops&hellip; problem during the request, please try again.</div>
+<div id='content'>
+{if $content}{$content}{/if}
+</div>
+
+{if ereg('http://127.0.0.1|http://localhost|http://piwik.org', $url)}
+{literal}
+<!-- Piwik -->
+<a href="http://piwik.org" title="Web analytics" onclick="window.open(this.href);return(false);">
+<script language="javascript" src="piwik.js" type="text/javascript"></script>
+<script type="text/javascript">
+<!--
+piwik_action_name = '';
+piwik_idsite = 1;
+piwik_url = 'piwik.php';
+piwik_vars = { 'video_play':1, 'video_finished':0 };
+piwik_log(piwik_action_name, piwik_idsite, piwik_url, piwik_vars);
+//-->
+</script><object>
+<noscript><p>Web analytics <img src="piwik.php" style="border:0" alt="piwik"/></p>
+</noscript></object></a>
+<!-- /Piwik -->
+{/literal}
+{/if}
diff --git a/plugins/Home/templates/links_misc_modules.tpl b/plugins/Home/templates/links_misc_modules.tpl
index 3a45f709da..d25d975eda 100644
--- a/plugins/Home/templates/links_misc_modules.tpl
+++ b/plugins/Home/templates/links_misc_modules.tpl
@@ -1,7 +1,7 @@
-<span id="miscLinks">
- <ul>
- <li><a href='?module=API&action=listAllAPI'><b>API</b> examples</a></li>
- <li><a href='?module=AdminHome'>Administration</a></li>
- <li><a href='?module=Widgetize'>Embed</a> Piwik widgets everywhere</li>
- </ul>
+<span id="miscLinks">
+ <ul>
+ <li><a href='?module=API&action=listAllAPI'><b>API</b> examples</a></li>
+ <li><a href='?module=AdminHome'>Administration</a></li>
+ <li><a href='?module=Widgetize'>Embed</a> Piwik widgets everywhere</li>
+ </ul>
</span> \ No newline at end of file
diff --git a/plugins/Home/templates/menu.tpl b/plugins/Home/templates/menu.tpl
index ea2157639b..d7f036cbc3 100644
--- a/plugins/Home/templates/menu.tpl
+++ b/plugins/Home/templates/menu.tpl
@@ -1,16 +1,16 @@
-
-<ul class="nav">
-{foreach from=$menu key=level1 item=level2 name=menu}
-<li>
- <a name='{$level2._url|@urlRewriteWithParameters}' href='{$level2._url|@urlRewriteBasicView}'>{$level1} &#8595;</a>
- <ul>
- {foreach from=$level2 key=name item=urlParameters name=level2}
- {if $name != '_url'}
- <li><a name='{$urlParameters|@urlRewriteWithParameters}' href='{$urlParameters|@urlRewriteBasicView}'>{$name}</a></li>
- {/if}
- {/foreach}
- </ul>
-</li>
-{/foreach}
-</ul>
-
+
+<ul class="nav">
+{foreach from=$menu key=level1 item=level2 name=menu}
+<li>
+ <a name='{$level2._url|@urlRewriteWithParameters}' href='{$level2._url|@urlRewriteBasicView}'>{$level1} &#8595;</a>
+ <ul>
+ {foreach from=$level2 key=name item=urlParameters name=level2}
+ {if $name != '_url'}
+ <li><a name='{$urlParameters|@urlRewriteWithParameters}' href='{$urlParameters|@urlRewriteBasicView}'>{$name}</a></li>
+ {/if}
+ {/foreach}
+ </ul>
+</li>
+{/foreach}
+</ul>
+
diff --git a/plugins/Home/templates/sparkline.js b/plugins/Home/templates/sparkline.js
index 7594c91dd4..2ab68d18c7 100644
--- a/plugins/Home/templates/sparkline.js
+++ b/plugins/Home/templates/sparkline.js
@@ -1,59 +1,59 @@
-
-$(document).ready( function(){
-
- //for every section
- $("a[name='evolutionGraph']").each(
- function()
- {
- //try to find the graph
- var graph = $(this);
-
- if(graph && graph.size() > 0)
- {
- //console.log($(this).parent());
- //try to find sparklines and add them clickable behaviour
- $(this).parent().find('p').each(
- function()
- {
- var url = "";
- //find the sparkline and get it's src attribute
- $(".sparkline", this).each(
- function()
- {
- //search viewDataTable parameter and replace it with value for chart
- var reg = new RegExp("(viewDataTable=sparkline)", "g");
- url = this.src.replace(reg,'viewDataTable=generateDataChartEvolution');
- }
- );
-
- if(url != "")
- {
- $("*", this).each(
- function()
- {
- //on click, reload the graph with the new url
- $(this).click(
- function()
- {
- //get the main page graph and reload with new data
- findSWFGraph(graph.attr('graphId')+"Chart_swf").reload(url);
- lazyScrollTo(graph[0], 400);
- }
- );
-
- //on hover, change cursor to indicate clickable item
- $(this).hover(
- function()
- {
- $(this).css({ cursor: "pointer"});
- }, function (){}
- );
- }
- );
- }
- }
- );
- }
- }
- );
-});
+
+$(document).ready( function(){
+
+ //for every section
+ $("a[name='evolutionGraph']").each(
+ function()
+ {
+ //try to find the graph
+ var graph = $(this);
+
+ if(graph && graph.size() > 0)
+ {
+ //console.log($(this).parent());
+ //try to find sparklines and add them clickable behaviour
+ $(this).parent().find('p').each(
+ function()
+ {
+ var url = "";
+ //find the sparkline and get it's src attribute
+ $(".sparkline", this).each(
+ function()
+ {
+ //search viewDataTable parameter and replace it with value for chart
+ var reg = new RegExp("(viewDataTable=sparkline)", "g");
+ url = this.src.replace(reg,'viewDataTable=generateDataChartEvolution');
+ }
+ );
+
+ if(url != "")
+ {
+ $("*", this).each(
+ function()
+ {
+ //on click, reload the graph with the new url
+ $(this).click(
+ function()
+ {
+ //get the main page graph and reload with new data
+ findSWFGraph(graph.attr('graphId')+"Chart_swf").reload(url);
+ lazyScrollTo(graph[0], 400);
+ }
+ );
+
+ //on hover, change cursor to indicate clickable item
+ $(this).hover(
+ function()
+ {
+ $(this).css({ cursor: "pointer"});
+ }, function (){}
+ );
+ }
+ );
+ }
+ }
+ );
+ }
+ }
+ );
+});
diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php
index fdd6f7c395..0489738dc0 100644
--- a/plugins/Installation/Controller.php
+++ b/plugins/Installation/Controller.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Installation
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Installation
+ */
+
require_once "View.php";
-require_once "Installation/View.php";
-
-/**
- *
- * @package Piwik_Installation
+require_once "Installation/View.php";
+
+/**
+ *
+ * @package Piwik_Installation
*/
class Piwik_Installation_Controller extends Piwik_Controller
{
@@ -191,7 +191,7 @@ class Piwik_Installation_Controller extends Piwik_Controller
{
Piwik::createTables();
Piwik::createAnonymousUser();
- Piwik::createTablesIndex();
+ Piwik::createTablesIndex();
$view->tablesCreated = true;
$view->showNextStep = true;
@@ -303,8 +303,8 @@ class Piwik_Installation_Controller extends Piwik_Controller
$view->websiteName = urldecode($_SESSION['site_name']);
-
- $jsTag = Piwik::getJavascriptCode($_SESSION['site_idSite'], Piwik_Url::getCurrentUrlWithoutFileName());
+
+ $jsTag = Piwik::getJavascriptCode($_SESSION['site_idSite'], Piwik_Url::getCurrentUrlWithoutFileName());
$view->javascriptTag = $jsTag;
$view->showNextStep = true;
@@ -353,7 +353,7 @@ class Piwik_Installation_Controller extends Piwik_Controller
}
protected function writeConfigFileFromSession()
- {
+ {
$configFile = "; <?php exit; ?> DO NOT REMOVE THIS LINE\n";
$configFile .= "; file automatically generated during the piwik installation process\n";
@@ -522,12 +522,12 @@ class Piwik_Installation_Controller extends Piwik_Controller
return $infos;
}
-}
-
-
-/**
- *
- * @package Piwik_Installation
+}
+
+
+/**
+ *
+ * @package Piwik_Installation
*/
class Piwik_FakeAccess_SetSuperUser {
function checkUserIsSuperUser()
diff --git a/plugins/Installation/FormDatabaseSetup.php b/plugins/Installation/FormDatabaseSetup.php
index 33ed85a8a8..9ac6461b9e 100644
--- a/plugins/Installation/FormDatabaseSetup.php
+++ b/plugins/Installation/FormDatabaseSetup.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Installation
- */
-
-require_once "modules/Form.php";
-
-/**
- *
- * @package Piwik_Installation
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Installation
+ */
+
+require_once "modules/Form.php";
+
+/**
+ *
+ * @package Piwik_Installation
*/
class Piwik_Installation_FormDatabaseSetup extends Piwik_Form
{
diff --git a/plugins/Installation/FormFirstWebsiteSetup.php b/plugins/Installation/FormFirstWebsiteSetup.php
index e23d1f3ce2..952c5fb8c0 100644
--- a/plugins/Installation/FormFirstWebsiteSetup.php
+++ b/plugins/Installation/FormFirstWebsiteSetup.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Installation
- */
-
-require_once "modules/Form.php";
-
-/**
- *
- * @package Piwik_Installation
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Installation
+ */
+
+require_once "modules/Form.php";
+
+/**
+ *
+ * @package Piwik_Installation
*/
class Piwik_Installation_FormFirstWebsiteSetup extends Piwik_Form
{
diff --git a/plugins/Installation/FormGeneralSetup.php b/plugins/Installation/FormGeneralSetup.php
index 59c87faa53..8d90d9da9d 100644
--- a/plugins/Installation/FormGeneralSetup.php
+++ b/plugins/Installation/FormGeneralSetup.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Installation
- */
-
-require_once "modules/Form.php";
-
-/**
- *
- * @package Piwik_Installation
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Installation
+ */
+
+require_once "modules/Form.php";
+
+/**
+ *
+ * @package Piwik_Installation
*/
class Piwik_Installation_FormGeneralSetup extends Piwik_Form
{
diff --git a/plugins/Installation/Installation.php b/plugins/Installation/Installation.php
index 7e3a65abec..c98fa764a7 100644
--- a/plugins/Installation/Installation.php
+++ b/plugins/Installation/Installation.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Installation
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Installation
+ */
+
+
+require_once "Installation/Controller.php";
-require_once "Installation/Controller.php";
-
-/**
- *
- * @package Piwik_Installation
+/**
+ *
+ * @package Piwik_Installation
*/
class Piwik_Installation extends Piwik_Plugin
{
diff --git a/plugins/Installation/View.php b/plugins/Installation/View.php
index 0b5c6e050b..c42807f97c 100644
--- a/plugins/Installation/View.php
+++ b/plugins/Installation/View.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Installation
- */
-
-
-/**
- *
- * @package Piwik_Installation
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Installation
+ */
+
+
+/**
+ *
+ * @package Piwik_Installation
+ */
class Piwik_Install_View extends Piwik_View
{
protected $mainTemplate = 'Installation/templates/structure.tpl';
diff --git a/plugins/Login/Controller.php b/plugins/Login/Controller.php
index 215855689f..88a42d0528 100644
--- a/plugins/Login/Controller.php
+++ b/plugins/Login/Controller.php
@@ -1,22 +1,22 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Login
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Login
+ */
+
require_once "UsersManager/API.php";
require_once "Login/Form.php";
-require_once "View.php";
-
-
-/**
- *
- * @package Piwik_Login
+require_once "View.php";
+
+
+/**
+ *
+ * @package Piwik_Login
*/
class Piwik_Login_Controller extends Piwik_Controller
{
@@ -35,7 +35,7 @@ class Piwik_Login_Controller extends Piwik_Controller
// value submitted in form
$login = $form->getSubmitValue('form_login');
$password = $form->getSubmitValue('form_password');
- $password = md5($password);
+ $password = md5($password);
$baseUrl = Piwik_Url::getCurrentUrlWithoutQueryString();
$currentUrl = Piwik_Url::getCurrentUrl();
diff --git a/plugins/Login/Form.php b/plugins/Login/Form.php
index fb08e8f007..7fc634a516 100644
--- a/plugins/Login/Form.php
+++ b/plugins/Login/Form.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Login
- */
-
-require_once "modules/Form.php";
-
-/**
- *
- * @package Piwik_Login
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Login
+ */
+
+require_once "modules/Form.php";
+
+/**
+ *
+ * @package Piwik_Login
*/
class Piwik_Login_Form extends Piwik_Form
{
diff --git a/plugins/Login/Login.php b/plugins/Login/Login.php
index 55adbd6817..6d7dd50f30 100644
--- a/plugins/Login/Login.php
+++ b/plugins/Login/Login.php
@@ -1,20 +1,20 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Login
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Login
+ */
require "Login/Controller.php";
require "Cookie.php";
-
-
-/**
- *
- * @package Piwik_Login
+
+
+/**
+ *
+ * @package Piwik_Login
*/
class Piwik_Login extends Piwik_Plugin
{
@@ -69,11 +69,11 @@ class Piwik_Login extends Piwik_Plugin
$authCookieExpiry = time() + 3600;
$authCookie = new Piwik_Cookie($authCookieName, $authCookieExpiry);
-
+
// by defaul the login is anonymous
- $login = 'anonymous';
- // and the token_auth anonymous.
- // Note that the user created in the DB has a token_auth value of anonymous
+ $login = 'anonymous';
+ // and the token_auth anonymous.
+ // Note that the user created in the DB has a token_auth value of anonymous
$tokenAuth = 'anonymous';
// echo $authCookie; exit;
diff --git a/plugins/Openads/Controller.php b/plugins/Openads/Controller.php
index b6f9af9a00..87f82e32ed 100644
--- a/plugins/Openads/Controller.php
+++ b/plugins/Openads/Controller.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Openads
- */
-
-
-/**
- *
- * @package Piwik_Openads
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Openads
+ */
+
+
+/**
+ *
+ * @package Piwik_Openads
+ */
class Piwik_Openads_Controller extends Piwik_Installation_Controller
{
function __construct()
diff --git a/plugins/Openads/Openads.php b/plugins/Openads/Openads.php
index 6f3dc622f9..4cc7fc0950 100644
--- a/plugins/Openads/Openads.php
+++ b/plugins/Openads/Openads.php
@@ -1,12 +1,12 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Openads
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Openads
*/
class Piwik_Openads extends Piwik_Plugin
diff --git a/plugins/PluginsAdmin/templates/manage.tpl b/plugins/PluginsAdmin/templates/manage.tpl
index 6e2a91fc24..6b7658e210 100644
--- a/plugins/PluginsAdmin/templates/manage.tpl
+++ b/plugins/PluginsAdmin/templates/manage.tpl
@@ -10,7 +10,7 @@
<th>Author</th>
<th>Version</th>
<th>Action</th>
-</thead>
+</thead>
<tbody>
{foreach from=$pluginsName key=name item=plugin}
@@ -23,7 +23,7 @@
<td class="switch">{if $plugin.alwaysActivated}<span title="This plugin cannot be deactivated">Activated</span>{elseif $plugin.activated}<a href=?module=PluginsAdmin&action=deactivate&pluginName={$name}>Deactivate</a>
{else}<a href=?module=PluginsAdmin&action=activate&pluginName={$name}>Activate</a>{/if}</td>
</tr>
-{/foreach}
+{/foreach}
</tbody>
</table>
diff --git a/plugins/Provider/API.php b/plugins/Provider/API.php
index 0a0d9ba3e5..1dfd64f2b4 100644
--- a/plugins/Provider/API.php
+++ b/plugins/Provider/API.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Provider
- */
-
-/**
- *
- * @package Piwik_Provider
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Provider
+ */
+
+/**
+ *
+ * @package Piwik_Provider
*/
class Piwik_Provider_API extends Piwik_Apiable
{
diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php
index 8721963244..db8bed9302 100644
--- a/plugins/Provider/Provider.php
+++ b/plugins/Provider/Provider.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Provider
- */
-
-/**
- *
- * @package Piwik_Provider
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Provider
+ */
+
+/**
+ *
+ * @package Piwik_Provider
*/
class Piwik_Provider extends Piwik_Plugin
{
@@ -32,12 +32,12 @@ class Piwik_Provider extends Piwik_Plugin
function install()
{
// add column hostname / hostname ext in the visit table
- $query = "ALTER IGNORE TABLE `".Piwik::prefixTable('log_visit')."` ADD `location_provider` VARCHAR( 100 ) NOT NULL";
-
+ $query = "ALTER IGNORE TABLE `".Piwik::prefixTable('log_visit')."` ADD `location_provider` VARCHAR( 100 ) NOT NULL";
+
// if the column already exist do not throw error. Could be installed twice...
- try {
- Zend_Registry::get('db')->query($query);
- }
+ try {
+ Zend_Registry::get('db')->query($query);
+ }
catch(Exception $e){}
}
diff --git a/plugins/Referers/API.php b/plugins/Referers/API.php
index 99d4b144fd..2c8a0bf845 100644
--- a/plugins/Referers/API.php
+++ b/plugins/Referers/API.php
@@ -1,18 +1,18 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Referers
- */
-
-
-/**
- *
- * @package Piwik_Referers
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Referers
+ */
+
+
+/**
+ *
+ * @package Piwik_Referers
*/
class Piwik_Referers_API extends Piwik_Apiable
{
diff --git a/plugins/Referers/Referers.php b/plugins/Referers/Referers.php
index 3e26fb4fa7..56f567b629 100644
--- a/plugins/Referers/Referers.php
+++ b/plugins/Referers/Referers.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_Referers
- */
-
-/**
- *
- * @package Piwik_Referers
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_Referers
+ */
+
+/**
+ *
+ * @package Piwik_Referers
*/
class Piwik_Referers extends Piwik_Plugin
{
@@ -252,8 +252,8 @@ class Piwik_Referers extends Piwik_Plugin
$numberOfDistinctSearchEngines = count($keywordBySearchEngine);
- $numberOfDistinctKeywords = count($searchEngineByKeyword);
-
+ $numberOfDistinctKeywords = count($searchEngineByKeyword);
+
// var_dump($interestByCampaign);exit;
$numberOfDistinctCampaigns = count($interestByCampaign); //TODO bug here
$numberOfDistinctWebsites = count($interestByWebsite[Piwik_Common::REFERER_TYPE_WEBSITE]);
diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php
index a0b25c051f..5a1158cdb4 100755
--- a/plugins/SitesManager/API.php
+++ b/plugins/SitesManager/API.php
@@ -1,14 +1,14 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_SitesManager
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_SitesManager
+ */
+
/**
*
* @package Piwik_SitesManager
@@ -219,8 +219,8 @@ class Piwik_SitesManager_API extends Piwik_Apiable
* The name must not be empty.
* The URLs array must contain at least one URL called the 'main_url' ;
* if several URLs are provided in the array, they will be recorded as Alias URLs for
- * this website.
- *
+ * this website.
+ *
* Requires Super User access.
*
* @return int the website ID created
@@ -255,12 +255,12 @@ class Piwik_SitesManager_API extends Piwik_Apiable
return (int)$idSite;
}
- /**
- * Delete a website from the database, given its Id.
- *
- * Requires Super User access.
- *
- * @param int $idSite
+ /**
+ * Delete a website from the database, given its Id.
+ *
+ * Requires Super User access.
+ *
+ * @param int $idSite
*/
static public function deleteSite( $idSite )
{
@@ -408,7 +408,7 @@ class Piwik_SitesManager_API extends Piwik_Apiable
if(count($urls) > 1)
{
self::replaceSiteUrls($idSite, $urls);
- }
+ }
}
diff --git a/plugins/SitesManager/Controller.php b/plugins/SitesManager/Controller.php
index 2c148f6387..e7b5a3f91f 100644
--- a/plugins/SitesManager/Controller.php
+++ b/plugins/SitesManager/Controller.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_SitesManager
- */
-
-
-/**
- *
- * @package Piwik_SitesManager
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_SitesManager
+ */
+
+
+/**
+ *
+ * @package Piwik_SitesManager
+ */
class Piwik_SitesManager_Controller extends Piwik_Controller
{
function index()
@@ -28,15 +28,15 @@ class Piwik_SitesManager_Controller extends Piwik_Controller
// var_dump($sites);exit;
$view->sites = $sites;
echo $view->render();
- }
-
- function displayJavascriptCode()
- {
- $jsTag = Piwik::getJavascriptCode(Piwik_Common::getRequestVar('idsite',1), Piwik_Url::getCurrentUrlWithoutFileName());
-
- $view = new Piwik_View('SitesManager/templates/DisplayJavascriptCode.tpl');
- $view->jsTag = $jsTag;
-
- echo $view->render();
+ }
+
+ function displayJavascriptCode()
+ {
+ $jsTag = Piwik::getJavascriptCode(Piwik_Common::getRequestVar('idsite',1), Piwik_Url::getCurrentUrlWithoutFileName());
+
+ $view = new Piwik_View('SitesManager/templates/DisplayJavascriptCode.tpl');
+ $view->jsTag = $jsTag;
+
+ echo $view->render();
}
} \ No newline at end of file
diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php
index 08cffe774e..7189cc70bc 100644
--- a/plugins/SitesManager/SitesManager.php
+++ b/plugins/SitesManager/SitesManager.php
@@ -1,36 +1,36 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_SitesManager
- */
-
-/**
- *
- * @package Piwik_SitesManager
- */
-class Piwik_SitesManager extends Piwik_Plugin
-{
- public function getInformation()
- {
- $info = array(
- // name must be the className prefix!
- 'name' => 'SitesManager',
- 'description' => 'Description',
- 'author' => 'Piwik',
- 'homepage' => 'http://piwik.org/',
- 'version' => '0.1',
- 'translationAvailable' => false,
- );
-
- return $info;
- }
-
-}
-
-Piwik_AddAdminMenu('Sites', array('module' => 'SitesManager'));
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_SitesManager
+ */
+
+/**
+ *
+ * @package Piwik_SitesManager
+ */
+class Piwik_SitesManager extends Piwik_Plugin
+{
+ public function getInformation()
+ {
+ $info = array(
+ // name must be the className prefix!
+ 'name' => 'SitesManager',
+ 'description' => 'Description',
+ 'author' => 'Piwik',
+ 'homepage' => 'http://piwik.org/',
+ 'version' => '0.1',
+ 'translationAvailable' => false,
+ );
+
+ return $info;
+ }
+
+}
+
+Piwik_AddAdminMenu('Sites', array('module' => 'SitesManager'));
+
diff --git a/plugins/SitesManager/templates/DisplayJavascriptCode.tpl b/plugins/SitesManager/templates/DisplayJavascriptCode.tpl
index a02d7a59a0..efbc060321 100644
--- a/plugins/SitesManager/templates/DisplayJavascriptCode.tpl
+++ b/plugins/SitesManager/templates/DisplayJavascriptCode.tpl
@@ -1,5 +1,5 @@
-<p>Here is the javascript code to include on all your pages:</p>
-
-<code>
-{$jsTag}
-</code>
+<p>Here is the javascript code to include on all your pages:</p>
+
+<code>
+{$jsTag}
+</code>
diff --git a/plugins/UserCountry/API.php b/plugins/UserCountry/API.php
index 8d82ce0b6c..631e4ea8e6 100644
--- a/plugins/UserCountry/API.php
+++ b/plugins/UserCountry/API.php
@@ -1,21 +1,21 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UserCountry
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UserCountry
+ */
+
require_once "DataFiles/Countries.php";
-
-
-/**
- *
- * @package Piwik_UserCountry
+
+
+/**
+ *
+ * @package Piwik_UserCountry
*/
class Piwik_UserCountry_API extends Piwik_Apiable
{
diff --git a/plugins/UserCountry/UserCountry.php b/plugins/UserCountry/UserCountry.php
index 2ea7ad21c1..ff1d9d694c 100644
--- a/plugins/UserCountry/UserCountry.php
+++ b/plugins/UserCountry/UserCountry.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UserCountry
- */
-
-/**
- *
- * @package Piwik_UserCountry
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UserCountry
+ */
+
+/**
+ *
+ * @package Piwik_UserCountry
*/
class Piwik_UserCountry extends Piwik_Plugin
{
diff --git a/plugins/UserSettings/API.php b/plugins/UserSettings/API.php
index ba68860b6a..7f1bee7901 100644
--- a/plugins/UserSettings/API.php
+++ b/plugins/UserSettings/API.php
@@ -1,21 +1,21 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UserSettings
- */
-
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UserSettings
+ */
+
require_once "DataFiles/Browsers.php";
require_once "DataFiles/OS.php";
-
-/**
- *
- * @package Piwik_UserSettings
+
+/**
+ *
+ * @package Piwik_UserSettings
*/
class Piwik_UserSettings_API extends Piwik_Apiable
{
diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php
index 3b606320f6..482b84d0f5 100644
--- a/plugins/UserSettings/UserSettings.php
+++ b/plugins/UserSettings/UserSettings.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UserSettings
- */
-
-/**
- *
- * @package Piwik_UserSettings
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UserSettings
+ */
+
+/**
+ *
+ * @package Piwik_UserSettings
*/
class Piwik_UserSettings extends Piwik_Plugin
{
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index cb230e5f2d..2aad5956d5 100755
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UsersManager
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UsersManager
+ */
-/**
- *
- * @package Piwik_UsersManager
+/**
+ *
+ * @package Piwik_UsersManager
*/
class Piwik_UsersManager_API extends Piwik_Apiable
{
@@ -181,7 +181,7 @@ class Piwik_UsersManager_API extends Piwik_Apiable
$user = $db->fetchRow("SELECT *
FROM ".Piwik::prefixTable("user")
." WHERE login = ?", $userLogin);
-// var_dump($user); exit;
+// var_dump($user); exit;
return $user;
}
@@ -224,8 +224,8 @@ class Piwik_UsersManager_API extends Piwik_Apiable
}
static private function getCleanPassword($password)
- {
- // if change here, should also edit the installation process
+ {
+ // if change here, should also edit the installation process
// to change how the root pwd is saved in the config file
return md5($password);
}
@@ -255,8 +255,8 @@ class Piwik_UsersManager_API extends Piwik_Apiable
$alias = self::getCleanAlias($alias,$userLogin);
$passwordTransformed = self::getCleanPassword($password);
-
- $token_auth = self::getTokenAuth($userLogin, $passwordTransformed);
+
+ $token_auth = self::getTokenAuth($userLogin, $passwordTransformed);
$db = Zend_Registry::get('db');
@@ -284,8 +284,8 @@ class Piwik_UsersManager_API extends Piwik_Apiable
*/
static public function updateUser( $userLogin, $password = false, $email = false, $alias = false )
{
- Piwik::checkUserIsSuperUserOrTheUser($userLogin);
- self::checkUserIsNotAnonymous( $userLogin );
+ Piwik::checkUserIsSuperUserOrTheUser($userLogin);
+ self::checkUserIsNotAnonymous( $userLogin );
$userInfo = self::getUser($userLogin);
@@ -339,13 +339,13 @@ class Piwik_UsersManager_API extends Piwik_Apiable
static public function deleteUser( $userLogin )
{
Piwik::checkUserIsSuperUser();
- self::checkUserIsNotAnonymous( $userLogin );
+ self::checkUserIsNotAnonymous( $userLogin );
if(!self::userExists($userLogin))
{
throw new Exception("User '$userLogin' doesn't exist therefore it can't be deleted.");
- }
-
+ }
+
self::deleteUserOnly( $userLogin );
self::deleteUserAccess( $userLogin );
@@ -385,12 +385,12 @@ class Piwik_UsersManager_API extends Piwik_Apiable
{
self::checkAccessType( $access );
self::checkUserExists( $userLogin);
-
- if($userLogin == 'anonymous'
- && $access == 'admin')
- {
- throw new Exception("You cannot grant 'admin' access to the 'anonymous' user.");
- }
+
+ if($userLogin == 'anonymous'
+ && $access == 'admin')
+ {
+ throw new Exception("You cannot grant 'admin' access to the 'anonymous' user.");
+ }
// in case idSites is null we grant access to all the websites on which the current connected user
// has an 'admin' access
@@ -444,13 +444,13 @@ class Piwik_UsersManager_API extends Piwik_Apiable
throw new Exception("User '$userLogin' doesn't exist.");
}
}
-
- static private function checkUserIsNotAnonymous( $userLogin )
- {
- if($userLogin == 'anonymous')
- {
- throw new Exception("The anonymous user cannot be edited or deleted. It is used by Piwik to define a user that has not loggued in yet. For example, you can make your statistics public by granting the 'view' access to the 'anonymous' user.");
- }
+
+ static private function checkUserIsNotAnonymous( $userLogin )
+ {
+ if($userLogin == 'anonymous')
+ {
+ throw new Exception("The anonymous user cannot be edited or deleted. It is used by Piwik to define a user that has not loggued in yet. For example, you can make your statistics public by granting the 'view' access to the 'anonymous' user.");
+ }
}
static private function checkAccessType($access)
diff --git a/plugins/UsersManager/Controller.php b/plugins/UsersManager/Controller.php
index 35bbe8dd60..6605899892 100644
--- a/plugins/UsersManager/Controller.php
+++ b/plugins/UsersManager/Controller.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_UsersManager
- */
-
-
-/**
- *
- * @package Piwik_UsersManager
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_UsersManager
+ */
+
+
+/**
+ *
+ * @package Piwik_UsersManager
+ */
class Piwik_UsersManager_Controller extends Piwik_Controller
{
function index()
diff --git a/plugins/UsersManager/templates/UsersManager.tpl b/plugins/UsersManager/templates/UsersManager.tpl
index 771b71da17..144b84d021 100644
--- a/plugins/UsersManager/templates/UsersManager.tpl
+++ b/plugins/UsersManager/templates/UsersManager.tpl
@@ -101,7 +101,7 @@
{/if}
{/foreach}
</tbody>
-</table>
+</table>
<div id="addrow"><img src='plugins/UsersManager/images/add.png'> Add a new user</div>
<script type="text/javascript" src="plugins/UsersManager/templates/UsersManager.js"></script>
diff --git a/plugins/VisitFrequency/API.php b/plugins/VisitFrequency/API.php
index a99861fb41..6d49fddbd4 100644
--- a/plugins/VisitFrequency/API.php
+++ b/plugins/VisitFrequency/API.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_VisitFrequency
- */
-
-
-/**
- *
- * @package Piwik_VisitFrequency
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_VisitFrequency
+ */
+
+
+/**
+ *
+ * @package Piwik_VisitFrequency
+ */
class Piwik_VisitFrequency_API extends Piwik_Apiable
{
static private $instance = null;
diff --git a/plugins/VisitFrequency/VisitFrequency.php b/plugins/VisitFrequency/VisitFrequency.php
index 82d85e6f5c..c62c157269 100644
--- a/plugins/VisitFrequency/VisitFrequency.php
+++ b/plugins/VisitFrequency/VisitFrequency.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_VisitFrequency
- */
-
-/**
- *
- * @package Piwik_VisitFrequency
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_VisitFrequency
+ */
+
+/**
+ *
+ * @package Piwik_VisitFrequency
*/
class Piwik_VisitFrequency extends Piwik_Plugin
{
diff --git a/plugins/VisitTime/API.php b/plugins/VisitTime/API.php
index b53ab40351..779460c9c3 100644
--- a/plugins/VisitTime/API.php
+++ b/plugins/VisitTime/API.php
@@ -1,18 +1,18 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_VisitTime
- */
-
-
-/**
- *
- * @package Piwik_VisitTime
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_VisitTime
+ */
+
+
+/**
+ *
+ * @package Piwik_VisitTime
*/
class Piwik_VisitTime_API extends Piwik_Apiable
{
@@ -40,7 +40,7 @@ class Piwik_VisitTime_API extends Piwik_Apiable
$dataTable = $archive->getDataTable($name);
$dataTable->queueFilter('Piwik_DataTable_Filter_ColumnCallbackReplace', array('label', 'Piwik_getTimeLabel'));
$dataTable->queueFilter('Piwik_DataTable_Filter_ReplaceColumnNames');
-
+
return $dataTable;
}
diff --git a/plugins/VisitTime/VisitTime.php b/plugins/VisitTime/VisitTime.php
index 4006c197d3..484e3f0b2b 100644
--- a/plugins/VisitTime/VisitTime.php
+++ b/plugins/VisitTime/VisitTime.php
@@ -1,18 +1,18 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- *
- * @package Piwik_VisitTime
- */
-
-/**
- *
- * @package Piwik_VisitTime
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ *
+ * @package Piwik_VisitTime
+ */
+
+/**
+ *
+ * @package Piwik_VisitTime
*/
class Piwik_VisitTime extends Piwik_Plugin
{
@@ -57,8 +57,8 @@ class Piwik_VisitTime extends Piwik_Plugin
public function archiveDay( $notification )
{
$archiveProcessing = $notification->getNotificationObject();
-
- $this->archiveProcessing = $archiveProcessing;
+
+ $this->archiveProcessing = $archiveProcessing;
$recordName = 'VisitTime_localTime';
$labelSQL = "HOUR(visitor_localtime)";
@@ -69,22 +69,22 @@ class Piwik_VisitTime extends Piwik_Plugin
$recordName = 'VisitTime_serverTime';
$labelSQL = "HOUR(visit_first_action_time)";
- $tableServerTime = $archiveProcessing->getDataTableInterestForLabel($labelSQL);
+ $tableServerTime = $archiveProcessing->getDataTableInterestForLabel($labelSQL);
$this->makeSureAllHoursAreSet($tableServerTime);
$record = new Piwik_ArchiveProcessing_Record_BlobArray($recordName, $tableServerTime->getSerialized());
// echo $tableServerTime;
- }
-
- private function makeSureAllHoursAreSet($table)
- {
- for($i=0;$i<=23;$i++)
- {
- if($table->getRowFromLabel($i) === false)
- {
- $row = $this->archiveProcessing->getNewInterestRowLabeled($i);
- $table->addRow( $row );
- }
- }
+ }
+
+ private function makeSureAllHoursAreSet($table)
+ {
+ for($i=0;$i<=23;$i++)
+ {
+ if($table->getRowFromLabel($i) === false)
+ {
+ $row = $this->archiveProcessing->getNewInterestRowLabeled($i);
+ $table->addRow( $row );
+ }
+ }
}
}
diff --git a/plugins/VisitorInterest/API.php b/plugins/VisitorInterest/API.php
index 6011b07f71..ee79fb1a21 100644
--- a/plugins/VisitorInterest/API.php
+++ b/plugins/VisitorInterest/API.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_VisitorInterest
- */
-
-
-/**
- *
- * @package Piwik_VisitorInterest
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_VisitorInterest
+ */
+
+
+/**
+ *
+ * @package Piwik_VisitorInterest
+ */
class Piwik_VisitorInterest_API extends Piwik_Apiable
{
static private $instance = null;
@@ -37,7 +37,7 @@ class Piwik_VisitorInterest_API extends Piwik_Apiable
{
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
- $dataTable = $archive->getDataTable('VisitorInterest_timeGap');
+ $dataTable = $archive->getDataTable('VisitorInterest_timeGap');
$dataTable->queueFilter('Piwik_DataTable_Filter_ReplaceColumnNames');
$dataTable->queueFilter('Piwik_DataTable_Filter_Sort', array('label', 'asc', true));
@@ -106,7 +106,7 @@ function Piwik_getPageGapLabel($label)
if($return == 1)
{
return $return . " page";
- }
-
+ }
+
return $return . " pages";
}
diff --git a/plugins/VisitorInterest/VisitorInterest.php b/plugins/VisitorInterest/VisitorInterest.php
index 5c83b1a4ec..ae7d5a802a 100644
--- a/plugins/VisitorInterest/VisitorInterest.php
+++ b/plugins/VisitorInterest/VisitorInterest.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_VisitorInterest
- */
-
-/**
- *
- * @package Piwik_VisitorInterest
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_VisitorInterest
+ */
+
+/**
+ *
+ * @package Piwik_VisitorInterest
*/
class Piwik_VisitorInterest extends Piwik_Plugin
{
@@ -106,7 +106,7 @@ class Piwik_VisitorInterest extends Piwik_Plugin
}
else
{
- $minGap = $gap[0];
+ $minGap = $gap[0];
$plusEncoded = urlencode('+');
$gapName = "'".$minGap.$plusEncoded."'";
$select[] = "sum(case when visit_total_actions > $minGap then 1 else 0 end) as $gapName ";
@@ -140,8 +140,8 @@ class Piwik_VisitorInterest extends Piwik_Plugin
}
$toSelect = implode(" , ", $select);
- $table = $this->archiveProcessing->getSimpleDataTableFromSelect($toSelect, Piwik_Archive::INDEX_NB_VISITS);
-// echo $table;
+ $table = $this->archiveProcessing->getSimpleDataTableFromSelect($toSelect, Piwik_Archive::INDEX_NB_VISITS);
+// echo $table;
return $table;
}
diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php
index baf3945a87..420d637fdf 100644
--- a/plugins/VisitsSummary/API.php
+++ b/plugins/VisitsSummary/API.php
@@ -1,19 +1,19 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_VisitsSummary
- */
-
-
-/**
- *
- * @package Piwik_VisitsSummary
- */
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_VisitsSummary
+ */
+
+
+/**
+ *
+ * @package Piwik_VisitsSummary
+ */
class Piwik_VisitsSummary_API extends Piwik_Apiable
{
static private $instance = null;
diff --git a/plugins/VisitsSummary/VisitsSummary.php b/plugins/VisitsSummary/VisitsSummary.php
index 7f595e49e9..7470636e2e 100644
--- a/plugins/VisitsSummary/VisitsSummary.php
+++ b/plugins/VisitsSummary/VisitsSummary.php
@@ -1,17 +1,17 @@
-<?php
-/**
- * Piwik - Open source web analytics
- *
- * @link http://piwik.org
- * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
- * @version $Id$
- *
- * @package Piwik_VisitsSummary
- */
-
-/**
- *
- * @package Piwik_VisitsSummary
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
+ * @version $Id$
+ *
+ * @package Piwik_VisitsSummary
+ */
+
+/**
+ *
+ * @package Piwik_VisitsSummary
*/
class Piwik_VisitsSummary extends Piwik_Plugin
{
diff --git a/tests/all_tests.php b/tests/all_tests.php
index 64399e3314..98d2a9c894 100755
--- a/tests/all_tests.php
+++ b/tests/all_tests.php
@@ -1,21 +1,21 @@
<?php
flush();
-require_once "config_test.php";
+require_once "config_test.php";
Piwik::createConfigObject();
$databaseTestName = Zend_Registry::get('config')->database_tests->dbname;
-Zend_Registry::get('config')->doWriteFileWhenUpdated = false;
-?>
-
-<h2>Piwik unit tests</h2>
-<p>Some of the tests require a database access. The database used for tests is different from your normal Piwik database.
-You may need to create this database ; you can edit the settings for the unit tests database access in your config file
-/config/global.ini.php</p>
-<p><b>The database used in your tests is called "<?php echo $databaseTestName; ?>". Create it if necessary.</b></p>
-<p><a href='modules'>Run the tests by module</a></p>
-<hr>
-
-<?php
+Zend_Registry::get('config')->doWriteFileWhenUpdated = false;
+?>
+
+<h2>Piwik unit tests</h2>
+<p>Some of the tests require a database access. The database used for tests is different from your normal Piwik database.
+You may need to create this database ; you can edit the settings for the unit tests database access in your config file
+/config/global.ini.php</p>
+<p><b>The database used in your tests is called "<?php echo $databaseTestName; ?>". Create it if necessary.</b></p>
+<p><a href='modules'>Run the tests by module</a></p>
+<hr>
+
+<?php
/*
assertTrue($x) Fail if $x is false
assertFalse($x) Fail if $x is true
diff --git a/tests/config_test.php b/tests/config_test.php
index 2b7c563098..b2cc28716c 100755
--- a/tests/config_test.php
+++ b/tests/config_test.php
@@ -11,11 +11,11 @@ if(!defined("PATH_TEST_TO_ROOT2"))
if(!defined('PIWIK_INCLUDE_PATH'))
{
define('PIWIK_INCLUDE_PATH', PATH_TEST_TO_ROOT);
-}
+}
-set_include_path( PATH_TEST_TO_ROOT .'/'
- . PATH_SEPARATOR . PATH_TEST_TO_ROOT .'/../'
- . PATH_SEPARATOR . '../' . PATH_TEST_TO_ROOT
+set_include_path( PATH_TEST_TO_ROOT .'/'
+ . PATH_SEPARATOR . PATH_TEST_TO_ROOT .'/../'
+ . PATH_SEPARATOR . '../' . PATH_TEST_TO_ROOT
. PATH_SEPARATOR . getcwd()
. PATH_SEPARATOR . getcwd() . '/../'
. PATH_SEPARATOR . PATH_TEST_TO_ROOT2
@@ -40,8 +40,8 @@ set_include_path( PATH_TEST_TO_ROOT .'/'
. PATH_SEPARATOR . PATH_TEST_TO_ROOT2 . '/plugins/'
. PATH_SEPARATOR . PATH_TEST_TO_ROOT2 . '/modules/'
. PATH_SEPARATOR . PATH_TEST_TO_ROOT2 . '/tests/'
- . PATH_SEPARATOR . PATH_TEST_TO_ROOT2 . '/'
- . PATH_SEPARATOR . get_include_path()
+ . PATH_SEPARATOR . PATH_TEST_TO_ROOT2 . '/'
+ . PATH_SEPARATOR . get_include_path()
. PATH_SEPARATOR . get_include_path() . '../'
);
diff --git a/tests/modules/Common.test.php b/tests/modules/Common.test.php
index 3126c2fca7..42c66ab14b 100755
--- a/tests/modules/Common.test.php
+++ b/tests/modules/Common.test.php
@@ -440,31 +440,31 @@ class Test_Piwik_Common extends UnitTestCase
$expectedResult = 'Поиск в Интернете Поиск страниц на русском _*()!$!£$^!£$%';
$expectedResult = htmlentities($expectedResult);
$this->assertEqual($result, $expectedResult);
- }
-
-
- public function test_isValidFilenameValidValues()
- {
-
- $valid = array(
- "test", "test.txt","test.......", "en-ZHsimplified",
- );
- foreach($valid as $toTest)
- {
- $this->assertTrue(Piwik_Common::isValidFilename($toTest), $toTest." not valid!");
- }
- }
- public function test_isValidFilenameNotValidValues()
- {
-
- $notvalid = array(
- "../test", "/etc/htpasswd", '$var', ';test', '[bizarre]', '', ".htaccess", "very long long eogaioge ageja geau ghaeihieg heiagie aiughaeui hfilename",
- );
- foreach($notvalid as $toTest)
- {
- $this->assertFalse(Piwik_Common::isValidFilename($toTest), $toTest." valid but shouldn't!");
- }
- }
+ }
+
+
+ public function test_isValidFilenameValidValues()
+ {
+
+ $valid = array(
+ "test", "test.txt","test.......", "en-ZHsimplified",
+ );
+ foreach($valid as $toTest)
+ {
+ $this->assertTrue(Piwik_Common::isValidFilename($toTest), $toTest." not valid!");
+ }
+ }
+ public function test_isValidFilenameNotValidValues()
+ {
+
+ $notvalid = array(
+ "../test", "/etc/htpasswd", '$var', ';test', '[bizarre]', '', ".htaccess", "very long long eogaioge ageja geau ghaeihieg heiagie aiughaeui hfilename",
+ );
+ foreach($notvalid as $toTest)
+ {
+ $this->assertFalse(Piwik_Common::isValidFilename($toTest), $toTest." valid but shouldn't!");
+ }
+ }
}
diff --git a/tests/modules/LogStats_Db.test.php b/tests/modules/LogStats_Db.test.php
index e611d3089f..43ccb743b8 100644
--- a/tests/modules/LogStats_Db.test.php
+++ b/tests/modules/LogStats_Db.test.php
@@ -1,37 +1,37 @@
-<?php
-if(!defined("PATH_TEST_TO_ROOT")) {
- define('PATH_TEST_TO_ROOT', '..');
-}
-if(!defined('CONFIG_TEST_INCLUDED'))
-{
- require_once PATH_TEST_TO_ROOT ."/../tests/config_test.php";
-}
-
-require 'LogStats/Db.php';
-//Zend_Loader::loadClass('Piwik_');
-
-class Test_Piwik_LogStats_Db extends UnitTestCase
-{
- function __construct( $title = '')
- {
- parent::__construct( $title );
- }
-
- public function setUp()
- {
- }
-
- public function tearDown()
- {
- }
-
-
- /**
- * test that the profiler is disabled (mandatory on a production server)
- */
- public function test_profilingDisabledProduction()
- {
- $this->assertTrue(Piwik_LogStats_Db::isProfilingEnabled() === false, 'PROFILER SHOULD BE DISABLED IN PRODUCTION!! See Piwik_LogStats_Db::$profiling');
- }
-}
-
+<?php
+if(!defined("PATH_TEST_TO_ROOT")) {
+ define('PATH_TEST_TO_ROOT', '..');
+}
+if(!defined('CONFIG_TEST_INCLUDED'))
+{
+ require_once PATH_TEST_TO_ROOT ."/../tests/config_test.php";
+}
+
+require 'LogStats/Db.php';
+//Zend_Loader::loadClass('Piwik_');
+
+class Test_Piwik_LogStats_Db extends UnitTestCase
+{
+ function __construct( $title = '')
+ {
+ parent::__construct( $title );
+ }
+
+ public function setUp()
+ {
+ }
+
+ public function tearDown()
+ {
+ }
+
+
+ /**
+ * test that the profiler is disabled (mandatory on a production server)
+ */
+ public function test_profilingDisabledProduction()
+ {
+ $this->assertTrue(Piwik_LogStats_Db::isProfilingEnabled() === false, 'PROFILER SHOULD BE DISABLED IN PRODUCTION!! See Piwik_LogStats_Db::$profiling');
+ }
+}
+
diff --git a/tests/modules/PHP_Related.test.php b/tests/modules/PHP_Related.test.php
index 264bf84dd2..a37adeb5a3 100644
--- a/tests/modules/PHP_Related.test.php
+++ b/tests/modules/PHP_Related.test.php
@@ -38,9 +38,9 @@ class Test_PHP_Related extends UnitTestCase
$this->assertEqual($elem1, 'key');
$this->assertEqual($elem2, 'elem2');
}
- function test_TMP()
- {
- echo md5('root'.md5('nintendo'));
+ function test_TMP()
+ {
+ echo md5('root'.md5('nintendo'));
}
public function testStringEqualszero()
@@ -49,7 +49,7 @@ class Test_PHP_Related extends UnitTestCase
// it might seem strange. This was the reason of a bug I searched 1 hour for!!
$this->assertTrue( $columnToSort == 0);
- }
+ }
public function testMergeArray()
{
@@ -263,42 +263,42 @@ class Test_PHP_Related extends UnitTestCase
$size = round($size/1024/1024,3);
//echo "<br>size compressed string = ". $size."mb";
//echo "<br>after compression all sub arrays = ". $timer;
- }
-
- function test_functionReturnNothing()
- {
- function givemenothing()
- {
- $a = 4;
- }
-
- $return = givemenothing();
-
- $this->assertFalse(isset($return));
- $this->assertTrue(empty($return));
- $this->assertTrue(!is_int($return));
- $this->assertTrue(!is_string($return));
- $this->assertTrue(!is_bool($return));
}
-
+
+ function test_functionReturnNothing()
+ {
+ function givemenothing()
+ {
+ $a = 4;
+ }
+
+ $return = givemenothing();
+
+ $this->assertFalse(isset($return));
+ $this->assertTrue(empty($return));
+ $this->assertTrue(!is_int($return));
+ $this->assertTrue(!is_string($return));
+ $this->assertTrue(!is_bool($return));
+ }
+
+}
+
+
+class test_staticAttr
+{
+ static public $a = 'testa';
+ public $b = 'testb';
}
-
-class test_staticAttr
-{
- static public $a = 'testa';
- public $b = 'testb';
-}
-
-class test_magicMethodStaticAttr
-{
- static $test = "test";
-
- function __get($name)
- {
- print("reading static attr ; __get called");
- return 1;
- }
+class test_magicMethodStaticAttr
+{
+ static $test = "test";
+
+ function __get($name)
+ {
+ print("reading static attr ; __get called");
+ return 1;
+ }
}
diff --git a/tests/modules/Period.test.php b/tests/modules/Period.test.php
index 85d67026f7..ba13fe3bc1 100644
--- a/tests/modules/Period.test.php
+++ b/tests/modules/Period.test.php
@@ -26,34 +26,34 @@ class Test_Piwik_Period extends UnitTestCase
{
// echo $this->timer . "<br> ";
}
-
- public function test_getId()
- {
- $period = new Piwik_Period_Day( Piwik_Date::today() );
- $this->assertTrue( $period->getId() !== 0 );
- $period = new Piwik_Period_Week( Piwik_Date::today() );
- $this->assertTrue( $period->getId() !== 0 );
- $period = new Piwik_Period_Month( Piwik_Date::today() );
- $this->assertTrue( $period->getId() !== 0 );
- $period = new Piwik_Period_Year( Piwik_Date::today() );
- $this->assertTrue( $period->getId() !== 0 );
- }
-
- public function test_getLabel()
- {
- $period = new Piwik_Period_Day( Piwik_Date::today() );
- $label = $period->getLabel();
- $this->assertTrue( is_string($label) && !empty($label));
- $period = new Piwik_Period_Week( Piwik_Date::today() );
- $label = $period->getLabel();
- $this->assertTrue( is_string($label) && !empty($label));
- $period = new Piwik_Period_Month( Piwik_Date::today() );
- $label = $period->getLabel();
- $this->assertTrue( is_string($label) && !empty($label));
- $period = new Piwik_Period_Year( Piwik_Date::today() );
- $label = $period->getLabel();
- $this->assertTrue( is_string($label) && !empty($label));
- }
+
+ public function test_getId()
+ {
+ $period = new Piwik_Period_Day( Piwik_Date::today() );
+ $this->assertTrue( $period->getId() !== 0 );
+ $period = new Piwik_Period_Week( Piwik_Date::today() );
+ $this->assertTrue( $period->getId() !== 0 );
+ $period = new Piwik_Period_Month( Piwik_Date::today() );
+ $this->assertTrue( $period->getId() !== 0 );
+ $period = new Piwik_Period_Year( Piwik_Date::today() );
+ $this->assertTrue( $period->getId() !== 0 );
+ }
+
+ public function test_getLabel()
+ {
+ $period = new Piwik_Period_Day( Piwik_Date::today() );
+ $label = $period->getLabel();
+ $this->assertTrue( is_string($label) && !empty($label));
+ $period = new Piwik_Period_Week( Piwik_Date::today() );
+ $label = $period->getLabel();
+ $this->assertTrue( is_string($label) && !empty($label));
+ $period = new Piwik_Period_Month( Piwik_Date::today() );
+ $label = $period->getLabel();
+ $this->assertTrue( is_string($label) && !empty($label));
+ $period = new Piwik_Period_Year( Piwik_Date::today() );
+ $label = $period->getLabel();
+ $this->assertTrue( is_string($label) && !empty($label));
+ }
/**
* Testing Period_Day
@@ -98,97 +98,97 @@ class Test_Piwik_Period extends UnitTestCase
$this->assertEqual( $period->getSubperiods(), array());
$this->assertEqual( $period->getNumberOfSubperiods(), 0);
}
-
- // test date that doesn't exist, should return the corresponding correct date
- function test_day_getDateStart1()
- {
- // create the period
- $period = new Piwik_Period_Day( new Piwik_Date("2007-02-31"));
-
- // start date
- $startDate = $period->getDateStart();
-
- // expected string
- $this->assertEqual( $startDate->toString(), "2007-03-03");
-
- // check that for a day, getDateStart = getStartEnd
- $this->assertEqual($startDate, $period->getDateEnd() );
- }
-
- // test normal date
- function test_day_getDateStart2()
- {
- // create the period
- $period = new Piwik_Period_Day( new Piwik_Date("2007-01-03"));
-
- // start date
- $startDate = $period->getDateStart();
-
- // expected string
- $this->assertEqual( $startDate->toString(), "2007-01-03");
-
- // check that for a day, getDateStart = getStartEnd
- $this->assertEqual($startDate, $period->getDateEnd() );
- }
-
- // test last day of year
- function test_day_getDateStart3()
- {
- // create the period
- $period = new Piwik_Period_Day( new Piwik_Date("2007-12-31"));
-
- // start date
- $startDate = $period->getDateStart();
-
- // expected string
- $this->assertEqual( $startDate->toString(), "2007-12-31");
-
- // check that for a day, getDateStart = getStartEnd
- $this->assertEqual($startDate, $period->getDateEnd() );
- }
-
-
- // test date that doesn't exist, should return the corresponding correct date
- function test_day_getDateEnd1()
- {
- // create the period
- $period = new Piwik_Period_Day( new Piwik_Date("2007-02-31"));
-
- // end date
- $endDate = $period->getDateEnd();
-
- // expected string
- $this->assertEqual( $endDate->toString(), "2007-03-03");
-
- }
-
- // test normal date
- function test_day_getDateEnd2()
- {
- // create the period
- $period = new Piwik_Period_Day( new Piwik_Date("2007-04-15"));
-
- // end date
- $endDate = $period->getDateEnd();
-
- // expected string
- $this->assertEqual( $endDate->toString(), "2007-04-15");
- }
-
- // test last day of year
- function test_day_getDateEnd3()
- {
- // create the period
- $period = new Piwik_Period_Day( new Piwik_Date("2007-12-31"));
-
- // end date
- $endDate = $period->getDateEnd();
-
- // expected string
- $this->assertEqual( $endDate->toString(), "2007-12-31");
- }
-
- // test date that doesn't exist, should return the corresponding correct date
+
+ // test date that doesn't exist, should return the corresponding correct date
+ function test_day_getDateStart1()
+ {
+ // create the period
+ $period = new Piwik_Period_Day( new Piwik_Date("2007-02-31"));
+
+ // start date
+ $startDate = $period->getDateStart();
+
+ // expected string
+ $this->assertEqual( $startDate->toString(), "2007-03-03");
+
+ // check that for a day, getDateStart = getStartEnd
+ $this->assertEqual($startDate, $period->getDateEnd() );
+ }
+
+ // test normal date
+ function test_day_getDateStart2()
+ {
+ // create the period
+ $period = new Piwik_Period_Day( new Piwik_Date("2007-01-03"));
+
+ // start date
+ $startDate = $period->getDateStart();
+
+ // expected string
+ $this->assertEqual( $startDate->toString(), "2007-01-03");
+
+ // check that for a day, getDateStart = getStartEnd
+ $this->assertEqual($startDate, $period->getDateEnd() );
+ }
+
+ // test last day of year
+ function test_day_getDateStart3()
+ {
+ // create the period
+ $period = new Piwik_Period_Day( new Piwik_Date("2007-12-31"));
+
+ // start date
+ $startDate = $period->getDateStart();
+
+ // expected string
+ $this->assertEqual( $startDate->toString(), "2007-12-31");
+
+ // check that for a day, getDateStart = getStartEnd
+ $this->assertEqual($startDate, $period->getDateEnd() );
+ }
+
+
+ // test date that doesn't exist, should return the corresponding correct date
+ function test_day_getDateEnd1()
+ {
+ // create the period
+ $period = new Piwik_Period_Day( new Piwik_Date("2007-02-31"));
+
+ // end date
+ $endDate = $period->getDateEnd();
+
+ // expected string
+ $this->assertEqual( $endDate->toString(), "2007-03-03");
+
+ }
+
+ // test normal date
+ function test_day_getDateEnd2()
+ {
+ // create the period
+ $period = new Piwik_Period_Day( new Piwik_Date("2007-04-15"));
+
+ // end date
+ $endDate = $period->getDateEnd();
+
+ // expected string
+ $this->assertEqual( $endDate->toString(), "2007-04-15");
+ }
+
+ // test last day of year
+ function test_day_getDateEnd3()
+ {
+ // create the period
+ $period = new Piwik_Period_Day( new Piwik_Date("2007-12-31"));
+
+ // end date
+ $endDate = $period->getDateEnd();
+
+ // expected string
+ $this->assertEqual( $endDate->toString(), "2007-12-31");
+ }
+
+ // test date that doesn't exist, should return the corresponding correct date
/**
* Testing Period_Month
diff --git a/tests/modules/Piwik.test.php b/tests/modules/Piwik.test.php
index f4c94383d7..864fa18d97 100644
--- a/tests/modules/Piwik.test.php
+++ b/tests/modules/Piwik.test.php
@@ -48,17 +48,17 @@ class Test_Piwik extends UnitTestCase
{
$this->assertFalse(Piwik::isNumeric($toTest), $toTest." valid but shouldn't!");
}
- }
-
- public function test_secureDiv()
- {
- $this->assertTrue( Piwik::secureDiv( 9,3 ) === 3 );
- $this->assertTrue( Piwik::secureDiv( 9,0 ) === 0 );
- $this->assertTrue( Piwik::secureDiv( 10,1 ) === 10 );
- $this->assertTrue( Piwik::secureDiv( 10.0, 1.0 ) === 10.0 );
- $this->assertTrue( Piwik::secureDiv( 11.0, 2 ) === 5.5 );
- $this->assertTrue( Piwik::secureDiv( 11.0, 'a' ) === 0 );
-
+ }
+
+ public function test_secureDiv()
+ {
+ $this->assertTrue( Piwik::secureDiv( 9,3 ) === 3 );
+ $this->assertTrue( Piwik::secureDiv( 9,0 ) === 0 );
+ $this->assertTrue( Piwik::secureDiv( 10,1 ) === 10 );
+ $this->assertTrue( Piwik::secureDiv( 10.0, 1.0 ) === 10.0 );
+ $this->assertTrue( Piwik::secureDiv( 11.0, 2 ) === 5.5 );
+ $this->assertTrue( Piwik::secureDiv( 11.0, 'a' ) === 0 );
+
}
}
diff --git a/tests/modules/SitesManager.test.php b/tests/modules/SitesManager.test.php
index cd2722c1bc..70ca724790 100755
--- a/tests/modules/SitesManager.test.php
+++ b/tests/modules/SitesManager.test.php
@@ -1,10 +1,10 @@
<?php
-if(!defined("PATH_TEST_TO_ROOT")) {
- define('PATH_TEST_TO_ROOT', getcwd().'/../../');
-}
-if(!defined('CONFIG_TEST_INCLUDED'))
-{
- require_once PATH_TEST_TO_ROOT."tests/config_test.php";
+if(!defined("PATH_TEST_TO_ROOT")) {
+ define('PATH_TEST_TO_ROOT', getcwd().'/../../');
+}
+if(!defined('CONFIG_TEST_INCLUDED'))
+{
+ require_once PATH_TEST_TO_ROOT."tests/config_test.php";
}
require_once "Database.test.php";
diff --git a/tests/modules/TablePartitioning.test.php b/tests/modules/TablePartitioning.test.php
index e512ba991e..43027cb8a8 100755
--- a/tests/modules/TablePartitioning.test.php
+++ b/tests/modules/TablePartitioning.test.php
@@ -48,7 +48,7 @@ class Test_Piwik_TablePartitioning extends Test_Database
$p->setTimestamp( $timestamp );
- $allTablesInstalled = Piwik::getTablesInstalled($forceReload = true);
+ $allTablesInstalled = Piwik::getTablesInstalled($forceReload = true);
$this->assertTrue( in_array($tablename, $allTablesInstalled), "$tablename !==".var_export($allTablesInstalled,true));
$this->assertTrue( $tablename, $p->getTableName());
diff --git a/tests/modules/UsersManager.test.php b/tests/modules/UsersManager.test.php
index 148617feee..a635ee5d54 100644
--- a/tests/modules/UsersManager.test.php
+++ b/tests/modules/UsersManager.test.php
@@ -1,11 +1,11 @@
<?php
-if(!defined("PATH_TEST_TO_ROOT")) {
- define('PATH_TEST_TO_ROOT', getcwd().'/../../');
-}
-if(!defined('CONFIG_TEST_INCLUDED'))
-{
- require_once PATH_TEST_TO_ROOT."tests/config_test.php";
-}
+if(!defined("PATH_TEST_TO_ROOT")) {
+ define('PATH_TEST_TO_ROOT', getcwd().'/../../');
+}
+if(!defined('CONFIG_TEST_INCLUDED'))
+{
+ require_once PATH_TEST_TO_ROOT."tests/config_test.php";
+}
require_once "Database.test.php";
@@ -31,58 +31,58 @@ class Test_Piwik_UsersManager extends Test_Database
FakeAccess::$superUser = true;
Zend_Registry::set('access', $pseudoMockAccess);
- }
-
- private function _checkUserHasNotChanged($user, $newPassword, $newEmail = null, $newAlias= null)
- {
- if(is_null($newEmail))
- {
- $newEmail = $user['email'];
- }
- if(is_null($newAlias))
- {
- $newAlias = $user['alias'];
- }
- $userAfter = Piwik_UsersManager_API::getUser($user["login"]);
- unset($userAfter['date_registered']);
-
- // we now compute what the token auth should be, it should always be a hash of the login and the current password
- // if the password has changed then the token_auth has changed!
- $user['token_auth']= Piwik_UsersManager_API::getTokenAuth($user["login"], md5($newPassword) );
-
- $user['password']=md5($newPassword);
- $user['email']=$newEmail;
- $user['alias']=$newAlias;
- $this->assertEqual($user,$userAfter);
- }
-
- /**
- * bad password => exception
- */
- function test_updateUser_badpasswd()
- {
- $login="login";
- $user = array('login'=>$login,
- 'password'=>"geqgeagae",
- 'email'=>"test@test.com",
- 'alias'=>"alias");
-
- Piwik_UsersManager_API::addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
-
-
- try {
- Piwik_UsersManager_API::updateUser( $login, "pas");
- }
- catch (Exception $expected) {
- $this->assertPattern("(password)", $expected->getMessage());
-
- $this->_checkUserHasNotChanged($user,$user['password']);
- return;
- }
- $this->fail("Exception not raised.");
-
- }
-//} class test{
+ }
+
+ private function _checkUserHasNotChanged($user, $newPassword, $newEmail = null, $newAlias= null)
+ {
+ if(is_null($newEmail))
+ {
+ $newEmail = $user['email'];
+ }
+ if(is_null($newAlias))
+ {
+ $newAlias = $user['alias'];
+ }
+ $userAfter = Piwik_UsersManager_API::getUser($user["login"]);
+ unset($userAfter['date_registered']);
+
+ // we now compute what the token auth should be, it should always be a hash of the login and the current password
+ // if the password has changed then the token_auth has changed!
+ $user['token_auth']= Piwik_UsersManager_API::getTokenAuth($user["login"], md5($newPassword) );
+
+ $user['password']=md5($newPassword);
+ $user['email']=$newEmail;
+ $user['alias']=$newAlias;
+ $this->assertEqual($user,$userAfter);
+ }
+
+ /**
+ * bad password => exception
+ */
+ function test_updateUser_badpasswd()
+ {
+ $login="login";
+ $user = array('login'=>$login,
+ 'password'=>"geqgeagae",
+ 'email'=>"test@test.com",
+ 'alias'=>"alias");
+
+ Piwik_UsersManager_API::addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
+
+
+ try {
+ Piwik_UsersManager_API::updateUser( $login, "pas");
+ }
+ catch (Exception $expected) {
+ $this->assertPattern("(password)", $expected->getMessage());
+
+ $this->_checkUserHasNotChanged($user,$user['password']);
+ return;
+ }
+ $this->fail("Exception not raised.");
+
+ }
+//} class test{
/**
* wrong login / integer => exception
@@ -499,23 +499,23 @@ class Test_Piwik_UsersManager extends Test_Database
);
}
-
- /**
- * normal case
- */
- function test_getUsersLogin()
- {
-
- Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- Piwik_UsersManager_API::addUser("geggeqge632ge56a4qag", "geqgegeagae", "tesggt@tesgt.com", "alias");
- Piwik_UsersManager_API::addUser("geggeqgeqagqegg", "geqgeaggggae", "tesgggt@tesgt.com");
-
- $logins = Piwik_UsersManager_API::getUsersLogin();
-
- $this->assertEqual($logins,
- array( "gegg4564eqgeqag", "geggeqge632ge56a4qag", "geggeqgeqagqegg")
- );
- }
+
+ /**
+ * normal case
+ */
+ function test_getUsersLogin()
+ {
+
+ Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
+ Piwik_UsersManager_API::addUser("geggeqge632ge56a4qag", "geqgegeagae", "tesggt@tesgt.com", "alias");
+ Piwik_UsersManager_API::addUser("geggeqgeqagqegg", "geqgeaggggae", "tesgggt@tesgt.com");
+
+ $logins = Piwik_UsersManager_API::getUsersLogin();
+
+ $this->assertEqual($logins,
+ array( "gegg4564eqgeqag", "geggeqge632ge56a4qag", "geggeqgeqagqegg")
+ );
+ }
/**