From b59ab2490b1bb82dc1d0b58d89584182b405d0a0 Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 19 Jun 2006 02:31:27 +0000 Subject: build script update. Fixed #82 and #165. --- .../Converters/CHM/default/CHMdefaultConverter.inc | 1753 ++++++++++++++++++++ .../CHM/default/templates/default/options.ini | 507 ++++++ .../templates/default/templates/basicindex.tpl | 21 + .../default/templates/default/templates/blank.tpl | 13 + .../default/templates/default/templates/class.tpl | 94 ++ .../templates/default/templates/classleft.tpl | 8 + .../templates/default/templates/classtrees.tpl | 12 + .../default/templates/default/templates/const.tpl | 29 + .../templates/default/templates/contents.hhc.tpl | 11 + .../default/templates/default/templates/define.tpl | 33 + .../templates/default/templates/docblock.tpl | 31 + .../templates/default/templates/elementindex.tpl | 9 + .../default/templates/default/templates/errors.tpl | 21 + .../templates/default/templates/fileleft.tpl | 8 + .../templates/default/templates/filesource.tpl | 6 + .../default/templates/default/templates/footer.tpl | 8 + .../templates/default/templates/function.tpl | 44 + .../default/templates/default/templates/global.tpl | 32 + .../default/templates/default/templates/header.tpl | 22 + .../default/templates/default/templates/hhp.tpl | 17 + .../templates/default/templates/include.tpl | 26 + .../templates/default/templates/index.hhk.tpl | 8 + .../default/templates/default/templates/index.tpl | 24 + .../templates/default/templates/media/bg_left.png | Bin 0 -> 991 bytes .../default/templates/media/stylesheet.css | 129 ++ .../default/templates/default/templates/method.tpl | 55 + .../templates/default/templates/packages.tpl | 3 + .../default/templates/default/templates/page.tpl | 34 + .../default/templates/pkgelementindex.tpl | 14 + .../default/templates/default/templates/ric.tpl | 6 + .../templates/default/templates/tocentry.tpl | 11 + .../templates/default/templates/todolist.tpl | 14 + .../templates/default/templates/tutorial.tpl | 32 + .../templates/default/templates/tutorial_toc.tpl | 29 + .../templates/default/templates/tutorial_tree.tpl | 5 + .../default/templates/default/templates/var.tpl | 30 + 36 files changed, 3099 insertions(+) create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl create mode 100644 buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl (limited to 'buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM') diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc new file mode 100644 index 00000000..ac38031b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc @@ -0,0 +1,1753 @@ + + * @since 1.0rc1 + * @version $Id: CHMdefaultConverter.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $ + */ +/** + * Generates files that MS HTML Help Worshop can use to create a MS Windows + * compiled help file (CHM) + * + * The free MS HTML Help compiler takes the project file (phpdoc.hhp) and reads + * the table of contents file specified in the project (which is always contents.hhc + * in phpDocumentor). When the converter reaches stable state, it will also + * output an index file index.hhk. The free download for MS HTML Help Workshop + * is available below + * @link http://www.microsoft.com/downloads/release.asp?releaseid=33071 MS HTML Help Workshop download + * @package Converters + * @subpackage CHMdefault + * @author Greg Beaver + * @since 1.0rc1 + * @version $Revision: 1.1 $ + */ +class CHMdefaultConverter extends Converter +{ + /** + * CHMdefaultConverter wants elements sorted by type as well as alphabetically + * @see Converter::$sort_page_contents_by_type + * @var boolean + */ + var $sort_page_contents_by_type = true; + /** @var string */ + var $outputformat = 'CHM'; + /** @var string */ + var $name = 'default'; + /** + * indexes of elements by package that need to be generated + * @var array + */ + var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => false, 'globals' => false); + + /** + * output directory for the current procedural page being processed + * @var string + */ + var $page_dir; + + /** + * target directory passed on the command-line. + * {@link $targetDir} is malleable, always adding package/ and package/subpackage/ subdirectories onto it. + * @var string + */ + var $base_dir; + + /** + * output directory for the current class being processed + * @var string + */ + var $class_dir; + + /** + * array of converted package page names. + * Used to link to the package page in the left index + * @var array Format: array(package => 1) + */ + var $package_pages = array(); + + /** + * controls formatting of parser informative output + * + * Converter prints: + * "Converting /path/to/file.php... Procedural Page Elements... Classes..." + * Since CHMdefaultConverter outputs files while converting, it needs to send a \n to start a new line. However, if there + * is more than one class, output is messy, with multiple \n's just between class file output. This variable prevents that + * and is purely cosmetic + * @var boolean + */ + var $juststarted = false; + + /** + * contains all of the template procedural page element loop data needed for the current template + * @var array + */ + var $current; + + /** + * contains all of the template class element loop data needed for the current template + * @var array + */ + var $currentclass; + var $wrote = false; + var $ric_set = array(); + /** + * Table of Contents entry for index.hhk + * @var array + */ + var $KLinks = array(); + + /** + * sets {@link $base_dir} to $targetDir + * @see Converter() + */ + function CHMdefaultConverter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title) + { + Converter::Converter($allp, $packp, $classes, $procpages,$po, $pp, $qm, $targetDir, $templateDir, $title); + $this->base_dir = $targetDir; + } + + /** + * @deprecated in favor of PHP 4.3.0+ tokenizer-based source highlighting + */ + function unmangle($sourcecode) + { + $sourcecode = str_replace('','
',$sourcecode);
+        $sourcecode = str_replace('','
',$sourcecode); + $sourcecode = str_replace('
',"\n",$sourcecode); + $sourcecode = str_replace(' ',' ',$sourcecode); + $sourcecode = str_replace('<','<',$sourcecode); + $sourcecode = str_replace('>','>',$sourcecode); + $sourcecode = str_replace('&','&',$sourcecode); + return $sourcecode; + } + + /** + * @param string full path to the source file + * @param string fully highlighted source code + */ + function writeSource($path, $value) + { + $templ = &$this->newSmarty(); + $pathinfo = $this->proceduralpages->getPathInfo($path, $this); + $templ->assign('source',$value); + $templ->assign('package',$pathinfo['package']); + $templ->assign('subpackage',$pathinfo['subpackage']); + $templ->assign('name',$pathinfo['name']); + $templ->assign('source_loc',$pathinfo['source_loc']); + $templ->assign('docs',$pathinfo['docs']); + $templ->assign("subdir",'../'); + $templ->register_outputfilter('CHMdefault_outputfilter'); + $this->setTargetDir($this->getFileSourcePath($this->base_dir)); + $this->addSourceTOC($pathinfo['name'],$this->getFileSourceName($path),$pathinfo['package'],$pathinfo['subpackage'], true); + phpDocumentor_out("\n"); + $this->setSourcePaths($path); + $this->writefile($this->getFileSourceName($path).'.html',$templ->fetch('filesource.tpl')); + } + + function writeExample($title, $path, $source) + { + $templ = &$this->newSmarty(); + $templ->assign('source',$source); + if (empty($title)) + { + $title = 'example'; + addWarning(PDERROR_EMPTY_EXAMPLE_TITLE, $path, $title); + } + $templ->assign('title',$title); + $templ->assign('file',$path); + $templ->assign("subdir",'../'); + $templ->register_outputfilter('CHMdefault_outputfilter'); + $pathinfo = $this->proceduralpages->getPathInfo($path, $this); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . '__examplesource'); + $this->addSourceTOC($title,'exsource_'.$path,$pathinfo['package'],$pathinfo['subpackage'], false); + phpDocumentor_out("\n"); + $this->writefile('exsource_'.$path.'.html',$templ->fetch('examplesource.tpl')); + } + + function getExampleLink($path, $title) + { + return $this->returnLink('{$subdir}__examplesource' . PATH_DELIMITER . 'exsource_'.$path.'.html',$title); + } + + function getSourceLink($path) + { + // fix 1171583 + $x = str_replace(PATH_DELIMITER, '', $this->getFileSourcePath('{$subdir}')) . + PATH_DELIMITER; + return $this->returnLink($x . + $this->getFileSourceName($path).'.html','Source Code for this file'); + } + + /** + * Used to convert the <> tag in a docblock + * @param string + * @param boolean + * @return string + */ + function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/, + $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/) + { + return $this->PreserveWhiteSpace(parent::ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath)); + } + + /** + * @param string + */ + function TutorialExample($example) + { + $trans = $this->template_options['desctranslate']; + $this->template_options['desctranslate'] = array(); + $example = '
    ' . parent::TutorialExample($example) + .'
'; + $this->template_options['desctranslate'] = $trans; + if (!isset($this->template_options['desctranslate'])) return $example; + if (!isset($this->template_options['desctranslate']['code'])) return $example; + $example = $this->template_options['desctranslate']['code'] . $example; + if (!isset($this->template_options['desctranslate']['/code'])) return $example; + return $example . $this->template_options['desctranslate']['/code']; + } + + /** + * Retrieve a Converter-specific anchor to a segment of a source code file + * parsed via a {@tutorial tags.filesource.pkg} tag. + * @param string full path to source file + * @param string name of anchor + * @param string link text, if this is a link + * @param boolean returns either a link or a destination based on this + * parameter + * @return string link to an anchor, or the anchor + */ + function getSourceAnchor($sourcefile,$anchor,$text = '',$link = false) + { + if ($link) { + $x = str_replace(PATH_DELIMITER, '', $this->getFileSourcePath('{$subdir}')) . + PATH_DELIMITER; + return $this->returnLink($x . + $this->getFileSourceName($sourcefile).'.html#a'.$anchor, $text); + } else + return ''; + } + + function getCurrentPageLink() + { + return $this->curname . '.html'; + } + + /** + * Uses htmlspecialchars() on the input + */ + function postProcess($text) + { + return htmlspecialchars($text); + } + + /** + * Use the template tutorial_toc.tpl to generate a table of contents for HTML + * @return string table of contents formatted for use in the current output format + * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...) + */ + function formatTutorialTOC($toc) + { + $template = &$this->newSmarty(); + $template->assign('toc',$toc); + return $template->fetch('tutorial_toc.tpl'); + } + + function &SmartyInit(&$templ) + { + if (!isset($this->package_index)) + foreach($this->all_packages as $key => $val) + { + if (isset($this->pkg_elements[$key])) + { + if (!isset($start)) $start = $key; + $this->package_index[] = array('link' => "li_$key.html", 'title' => $key); + } + } + $templ->assign("packageindex",$this->package_index); + $templ->assign("subdir",''); + return $templ; + } + + + /** + * Writes out the template file of {@link $class_data} and unsets the template to save memory + * @see registerCurrentClass() + * @see parent::endClass() + */ + function endClass() + { + $a = '../'; + if (!empty($this->subpackage)) $a .= '../'; + if ($this->juststarted) + { + $this->juststarted = false; + phpDocumentor_out("\n"); + flush(); + } + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); + $this->class_data->assign("subdir",$a); + $this->class_data->register_outputfilter('CHMdefault_outputfilter'); + $this->addTOC($this->class,$this->class,$this->package,$this->subpackage, true); + $this->writefile($this->class . '.html',$this->class_data->fetch('class.tpl')); + unset($this->class_data); + } + + /** + * Writes out the template file of {@link $page_data} and unsets the template to save memory + * @see registerCurrent() + * @see parent::endPage() + */ + function endPage() + { + $this->package = $this->curpage->package; + $this->subpackage = $this->curpage->subpackage; + $a = '../'; + if (!empty($this->subpackage)) $a .= '../'; + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); + $this->page_data->assign("package",$this->package); + $this->page_data->assign("subdir",$a); + $this->page_data->register_outputfilter('CHMdefault_outputfilter'); + $this->addTOC($this->curpage->file,$this->page,$this->package,$this->subpackage); + $this->writefile($this->page . '.html',$this->page_data->fetch('page.tpl')); + unset($this->page_data); + } + + /** + * @param string + * @param string + * @return string <a href="'.$link.'">'.$text.''.$text.''; + } + + /** + * CHMdefaultConverter chooses to format both package indexes and the complete index here + * + * This function formats output for the elementindex.html and pkgelementindex.html template files. It then + * writes them to the target directory + * @see generateElementIndex(), generatePkgElementIndex() + */ + function formatPkgIndex() + { + list($package_indexes,$packages,$mletters) = $this->generatePkgElementIndexes(); + for($i=0;$inewSmarty(); + $this->package = $package_indexes[$i]['package']; + $this->subpackage = ''; + $template->assign("index",$package_indexes[$i]['pindex']); + $template->assign("package",$package_indexes[$i]['package']); + $template->assign("letters",$mletters[$package_indexes[$i]['package']]); + $template->assign("title","Package ".$package_indexes[$i]['package']." Element Index"); + $template->assign("subdir",'../'); + $template->register_outputfilter('CHMdefault_outputfilter'); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $package_indexes[$i]['package']); + $this->addTOC($package_indexes[$i]['package']." Alphabetical Index",'elementindex_'.$package_indexes[$i]['package'],$package_indexes[$i]['package'],''); + $this->writefile('elementindex_'.$package_indexes[$i]['package'].'.html',$template->fetch('pkgelementindex.tpl')); + } + phpDocumentor_out("\n"); + flush(); + } + + /** + * CHMdefaultConverter uses this function to format template index.html and packages.html + * + * This function generates the package list from {@link $all_packages}, eliminating any + * packages that don't have any entries in their package index (no files at all, due to @ignore + * or other factors). Then it uses the default package name as the first package index to display. + * It sets the right pane to be either a blank file with instructions on making package-level docs, + * or the package-level docs for the default package. + * @global string Used to set the starting package to display + */ + function formatIndex() + { + global $phpDocumentor_DefaultPackageName; + list($elindex,$mletters) = $this->generateElementIndex(); + $template = &$this->newSmarty(); + $template->assign("index",$elindex); + $template->assign("letters",$mletters); + $template->assign("title","Element Index"); + $template->assign("date",date("r",time())); + $template->register_outputfilter('CHMdefault_outputfilter'); + phpDocumentor_out("\n"); + flush(); + $this->setTargetDir($this->base_dir); + $this->addTOC("Alphabetical Index Of All Elements",'elementindex',"Index",''); + $this->writefile('elementindex.html',$template->fetch('elementindex.tpl')); + usort($this->package_index,"CHMdefault_pindexcmp"); + $index = &$this->newSmarty(); + foreach($this->all_packages as $key => $val) + { + if (isset($this->pkg_elements[$key])) + { + if (!isset($start)) $start = $key; + if (!isset($this->package_pages[$key])) $this->writeNewPPage($key); + } + } + $this->setTargetDir($this->base_dir); + // Created index.html + if (isset($this->pkg_elements[$phpDocumentor_DefaultPackageName])) $start = $phpDocumentor_DefaultPackageName; + $this->package = $start; + $this->subpackage = ''; + $setalready = false; + if (isset($this->tutorials[$start]['']['pkg'])) + { + foreach($this->tutorials[$start]['']['pkg'] as $tute) + { + if ($tute->name == $start . '.pkg') + { + $setalready = true; + $this->addTOC("Start page",$start.'/tutorial_'.$tute->name,"Index",''); + } + } + } + if (!$setalready) + { + if (isset($this->package_pages[$start])) + { + $this->addTOC("Start page",'package_'.$start,"Index",''); + } + else + { + $index->assign("blank","blank"); + $blank = &$this->newSmarty(); + $blank->assign('package',$phpDocumentor_DefaultPackageName); + $this->addTOC("Start page",'blank',"Index",''); + $this->writefile("blank.html",$blank->fetch('blank.tpl')); + Converter::writefile('index.html',$blank->fetch('tutorial.tpl')); + } + } + phpDocumentor_out("\n"); + flush(); + + unset($index); + } + + function writeNewPPage($key) + { + return; + $template = &$this->newSmarty(); + $this->package = $key; + $this->subpackage = ''; + $template->assign("date",date("r",time())); + $template->assign("title",$this->title); + $template->assign("package",$key); + $template->register_outputfilter('CHMdefault_outputfilter'); + phpDocumentor_out("\n"); + flush(); + $this->setTargetDir($this->base_dir); + + $this->addTOC("$key Index","li_$key",$key,''); + $this->writefile("li_$key.html",$template->fetch('index.tpl')); + unset($template); + } + + /** + * Generate indexes for li_package.html and classtree output files + * + * This function generates the li_package.html files from the template file left.html. It does this by + * iterating through each of the $page_elements, $class_elements and $function_elements arrays to retrieve + * the pre-sorted {@link abstractLink} descendants needed for index generation. Conversion of these links to + * text is done by {@link returnSee()}. The {@link $local} parameter is set to false to ensure that paths are correct. + * + * Then it uses {@link generateFormattedClassTrees()} to create class trees from the template file classtrees.html. Output + * filename is classtrees_packagename.html. This function also unsets {@link $elements} and {@link $pkg_elements} to free + * up the considerable memory these two class vars use + * @see $page_elements, $class_elements, $function_elements + */ + function formatLeftIndex() + { + phpDocumentor_out("\n"); + flush(); + $this->setTargetDir($this->base_dir); + if (0)//!isset($this->left)) + { + debug("Nothing parsed, check the command-line"); + die(); + } + foreach($this->all_packages as $package => $rest) + { + if (!isset($this->pkg_elements[$package])) continue; + + // Create class tree page + $template = &$this->newSmarty(); + $template->assign("classtrees",$this->generateFormattedClassTrees($package)); + $template->assign("package",$package); + $template->assign("date",date("r",time())); + $template->register_outputfilter('CHMdefault_outputfilter'); + $this->addTOC("$package Class Trees","classtrees_$package",$package,''); + $this->writefile("classtrees_$package.html",$template->fetch('classtrees.tpl')); + phpDocumentor_out("\n"); + flush(); + } + // free up considerable memory + unset($this->elements); + unset($this->pkg_elements); + } + + /** + * This function takes an {@link abstractLink} descendant and returns an html link + * + * @param abstractLink a descendant of abstractlink should be passed, and never text + * @param string text to display in the link + * @param boolean this parameter is not used, and is deprecated + * @param boolean determines whether the returned text is enclosed in an tag + */ + function returnSee(&$element, $eltext = false, $with_a = true) + { + if (!$element) return false; + if (!$with_a) return $this->getId($element, false); + if (!$eltext) + { + $eltext = ''; + switch($element->type) + { + case 'tutorial' : + $eltext = strip_tags($element->title); + break; + case 'method' : + case 'var' : + case 'const' : + $eltext .= $element->class.'::'; + case 'page' : + case 'define' : + case 'class' : + case 'function' : + case 'global' : + default : + $eltext .= $element->name; + if ($element->type == 'function' || $element->type == 'method') $eltext .= '()'; + break; + } + } + return ''.$eltext.''; + } + + function getId($element, $fullpath = true) + { + if (phpDocumentor_get_class($element) == 'parserdata') + { + $element = $this->addLink($element->parent); + $elp = $element->parent; + } elseif (is_a($element, 'parserbase')) + { + $elp = $element; + $element = $this->addLink($element); + } + $c = ''; + if (!empty($element->subpackage)) + { + $c = '/'.$element->subpackage; + } + $b = '{$subdir}'; + switch ($element->type) + { + case 'page' : + if ($fullpath) + return $b.$element->package.$c.'/'.$element->fileAlias.'.html'; + return 'top'; + break; + case 'define' : + case 'global' : + case 'function' : + if ($fullpath) + return $b.$element->package.$c.'/'.$element->fileAlias.'.html#'.$element->type.$element->name; + return $element->type.$element->name; + break; + case 'class' : + if ($fullpath) + return $b.$element->package.$c.'/'.$element->name.'.html'; + return 'top'; + break; + case 'method' : + case 'var' : + case 'const' : + if ($fullpath) + return $b.$element->package.$c.'/'.$element->class.'.html#'.$element->type.$element->name; + return $element->type.$element->name; + break; + case 'tutorial' : + $d = ''; + if ($element->section) + { + $d = '#'.$element->section; + } + return $b.$element->package.$c.'/tutorial_'.$element->name.'.html'.$d; + } + } + + function ConvertTodoList() + { + $todolist = array(); + foreach($this->todoList as $package => $alltodos) + { + foreach($alltodos as $todos) + { + $converted = array(); + $converted['link'] = $this->returnSee($todos[0]); + if (!is_array($todos[1])) + { + $converted['todos'][] = $todos[1]->Convert($this); + } else + { + foreach($todos[1] as $todo) + { + $converted['todos'][] = $todo->Convert($this); + } + } + $todolist[$package][] = $converted; + } + } + $templ = &$this->newSmarty(); + $templ->assign('todos',$todolist); + $templ->register_outputfilter('CHMdefault_outputfilter'); + $this->setTargetDir($this->base_dir); + $this->addTOC('Todo List','todolist','Index','',false,true); + $this->addKLink('Todo List', 'todolist', '', 'Development'); + $this->writefile('todolist.html',$templ->fetch('todolist.tpl')); + } + + /** + * Convert README/INSTALL/CHANGELOG file contents to output format + * @param README|INSTALL|CHANGELOG + * @param string contents of the file + */ + function Convert_RIC($name, $contents) + { + $template = &$this->newSmarty(); + $template->assign('contents',$contents); + $template->assign('name',$name); + $this->setTargetDir($this->base_dir); + $this->addTOC($name,'ric_'.$name,'Index','',false,true); + $this->addKLink($name, 'ric_'.$name, '', 'Development'); + $this->writefile('ric_'.$name . '.html',$template->fetch('ric.tpl')); + $this->ric_set[$name] = true; + } + + /** + * Create errors.html template file output + * + * This method takes all parsing errors and warnings and spits them out ordered by file and line number. + * @global ErrorTracker We'll be using it's output facility + */ + function ConvertErrorLog() + { + global $phpDocumentor_errors; + $allfiles = array(); + $files = array(); + $warnings = $phpDocumentor_errors->returnWarnings(); + $errors = $phpDocumentor_errors->returnErrors(); + $template = &$this->newSmarty(); + foreach($warnings as $warning) + { + $file = '##none'; + $linenum = 'Warning'; + if ($warning->file) + { + $file = $warning->file; + $allfiles[$file] = 1; + $linenum .= ' on line '.$warning->linenum; + } + $files[$file]['warnings'][] = array('name' => $linenum, 'listing' => $warning->data); + } + foreach($errors as $error) + { + $file = '##none'; + $linenum = 'Error'; + if ($error->file) + { + $file = $error->file; + $allfiles[$file] = 1; + $linenum .= ' on line '.$error->linenum; + } + $files[$file]['errors'][] = array('name' => $linenum, 'listing' => $error->data); + } + $i=1; + $af = array(); + foreach($allfiles as $file => $num) + { + $af[$i++] = $file; + } + $allfiles = $af; + usort($allfiles,'strnatcasecmp'); + $allfiles[0] = "Post-parsing"; + foreach($allfiles as $i => $a) + { + $allfiles[$i] = array('file' => $a); + } + $out = array(); + foreach($files as $file => $data) + { + if ($file == '##none') $file = 'Post-parsing'; + $out[$file] = $data; + } + $template->assign("files",$allfiles); + $template->assign("all",$out); + $template->assign("title","phpDocumentor Parser Errors and Warnings"); + $this->setTargetDir($this->base_dir); + $this->writefile("errors.html",$template->fetch('errors.tpl')); + unset($template); + phpDocumentor_out("\n\nTo view errors and warnings, look at ".$this->base_dir. PATH_DELIMITER . "errors.html\n"); + flush(); + } + + function getCData($value) + { + return '
'.htmlentities($value).'
'; + } + + function getTutorialId($package,$subpackage,$tutorial,$id) + { + return $id; + } + + /** + * Converts package page and sets its package as used in {@link $package_pages} + * @param parserPackagePage + */ + function convertPackagepage(&$element) + { + phpDocumentor_out("\n"); + flush(); + $this->package = $element->package; + $this->subpackage = ''; + $contents = $element->Convert($this); + $this->package_pages[$element->package] = str_replace('{$subdir}','../',$contents); + phpDocumentor_out("\n"); + flush(); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package); + $this->addTOC($element->package." Tutorial",'package_'.$element->package,$element->package,''); + $this->writeFile('package_'.$element->package.'.html',str_replace('{$subdir}','../',$contents)); + $this->setTargetDir($this->base_dir); + Converter::writefile('index.html',str_replace('{$subdir}','',$contents)); + $this->addKLink($element->package." Tutorial", 'package_'.$element->package, '', 'Tutorials'); + } + + /** + * @param parserTutorial + */ + function convertTutorial(&$element) + { + phpDocumentor_out("\n"); + flush(); + $template = &parent::convertTutorial($element); + $a = '../'; + if ($element->subpackage) $a .= '../'; + $template->assign('subdir',$a); + $template->register_outputfilter('CHMdefault_outputfilter'); + $contents = $template->fetch('tutorial.tpl'); + if ($element->package == $GLOBALS['phpDocumentor_DefaultPackageName'] && empty($element->subpackage) && ($element->name == $element->package . '.pkg')) + { + $template->assign('subdir',''); + $this->setTargetDir($this->base_dir); + Converter::writefile('index.html',$template->fetch('tutorial.tpl')); + } + $a = ''; + if ($element->subpackage) $a = PATH_DELIMITER . $element->subpackage; + phpDocumentor_out("\n"); + flush(); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package . $a); + $this->addTOC($a = strip_tags($element->getTitle($this)), 'tutorial_'.$element->name, + $element->package, $element->subpackage, false, true); + $this->writeFile('tutorial_'.$element->name.'.html',$contents); + $this->addKLink($element->getTitle($this), $element->package . $a . PATH_DELIMITER . 'tutorial_'.$element->name, + '', 'Tutorials'); + } + + /** + * Converts class for template output + * @see prepareDocBlock(), generateChildClassList(), generateFormattedClassTree(), getFormattedConflicts() + * @see getFormattedInheritedMethods(), getFormattedInheritedVars() + * @param parserClass + */ + function convertClass(&$element) + { + parent::convertClass($element); + $this->class_dir = $element->docblock->package; + if (!empty($element->docblock->subpackage)) $this->class_dir .= PATH_DELIMITER . $element->docblock->subpackage; + $a = '../'; + if ($element->docblock->subpackage != '') $a = "../$a"; + + $this->class_data->assign('subdir',$a); + $this->class_data->assign("title","Docs For Class " . $element->getName()); + $this->class_data->assign("page",$element->getName() . '.html'); + $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER . $this->class, '', 'Classes'); + } + + + /** + * Converts class variables for template output + * @see prepareDocBlock(), getFormattedConflicts() + * @param parserDefine + */ + function convertVar(&$element) + { + parent::convertVar($element, array('var_dest' => $this->getId($element,false))); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); + $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Properties'); + } + + /** + * Converts class constants for template output + * @see prepareDocBlock(), getFormattedConflicts() + * @param parserDefine + */ + function convertConst(&$element) + { + parent::convertConst($element, array('const_dest' => $this->getId($element,false))); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); + $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Constants'); + } + + /** + * Converts class methods for template output + * @see prepareDocBlock(), getFormattedConflicts() + * @param parserDefine + */ + function convertMethod(&$element) + { + parent::convertMethod($element, array('method_dest' => $this->getId($element,false))); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir); + $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Methods'); + } + + /** + * Converts function for template output + * @see prepareDocBlock(), parserFunction::getFunctionCall(), getFormattedConflicts() + * @param parserFunction + */ + function convertFunction(&$element) + { + $funcloc = $this->getId($this->addLink($element)); + parent::convertFunction($element,array('function_dest' => $this->getId($element,false))); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); + $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Functions'); + } + + /** + * Converts include elements for template output + * @see prepareDocBlock() + * @param parserInclude + */ + function convertInclude(&$element) + { + parent::convertInclude($element, array('include_file' => '_'.strtr($element->getValue(),array('"' => '', "'" => '','.' => '_')))); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); + $this->addKLink(str_replace('"', '', $element->getValue()), $this->page_dir . PATH_DELIMITER . $this->page, '', ucfirst($element->name)); + } + + /** + * Converts defines for template output + * @see prepareDocBlock(), getFormattedConflicts() + * @param parserDefine + */ + function convertDefine(&$element) + { + parent::convertDefine($element, array('define_link' => $this->getId($element,false))); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); + $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Constants'); + } + + /** + * Converts global variables for template output + * @param parserGlobal + */ + function convertGlobal(&$element) + { + parent::convertGlobal($element, array('global_link' => $this->getId($element,false))); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); + $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Global Variables'); + } + + /** + * converts procedural pages for template output + * @see prepareDocBlock(), getClassesOnPage() + * @param parserData + */ + function convertPage(&$element) + { + parent::convertPage($element); + $this->juststarted = true; + $this->page_dir = $element->parent->package; + if (!empty($element->parent->subpackage)) $this->page_dir .= PATH_DELIMITER . $element->parent->subpackage; + // registering stuff on the template + $this->page_data->assign("page",$this->getPageName($element) . '.html'); + $this->page_data->assign("title","Docs for page ".$element->parent->getFile()); + $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir); + $this->addKLink($element->parent->file, $this->page_dir . PATH_DELIMITER . $this->page, '', 'Files'); + } + + function getPageName(&$element) + { + if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName(); + return '_'.$element->parent->getName(); + } + + /** + * returns an array containing the class inheritance tree from the root object to the class + * + * @param parserClass class variable + * @return array Format: array(root,child,child,child,...,$class) + * @uses parserClass::getParentClassTree() + */ + + function generateFormattedClassTree($class) + { + $tree = $class->getParentClassTree($this); + $out = ''; + if (count($tree) - 1) + { + $result = array($class->getName()); + $parent = $tree[$class->getName()]; + $distance[] = ''; + while ($parent) + { + $x = $parent; + if (is_object($parent)) + { + $subpackage = $parent->docblock->subpackage; + $package = $parent->docblock->package; + $x = $parent; + $x = $parent->getLink($this); + if (!$x) $x = $parent->getName(); + } + $result[] = + $x; + $distance[] = + "\n%s|\n" . + "%s--"; + if (is_object($parent)) + $parent = $tree[$parent->getName()]; + elseif (isset($tree[$parent])) + $parent = $tree[$parent]; + } + $nbsp = ' '; + for($i=count($result) - 1;$i>=0;$i--) + { + $my_nbsp = ''; + for($j=0;$jarray_reverse($result),'distance'=>array_reverse($distance)); + } else + { + return array('classes'=>$class->getName(),'distance'=>array('')); + } + } + + /** @access private */ + function sortVar($a, $b) + { + return strnatcasecmp($a->getName(),$b->getName()); + } + + /** @access private */ + function sortMethod($a, $b) + { + if ($a->isConstructor) return -1; + if ($b->isConstructor) return 1; + return strnatcasecmp($a->getName(),$b->getName()); + } + + /** + * returns a template-enabled array of class trees + * + * @param string $package package to generate a class tree for + * @see $roots, HTMLConverter::getRootTree() + */ + function generateFormattedClassTrees($package) + { + if (!isset($this->roots[$package])) return array(); + $roots = $trees = array(); + $roots = $this->roots[$package]; + for($i=0;$i $roots[$i],'class_tree' => "
    \n".$this->getRootTree($this->getSortedClassTreeFromClass($roots[$i],$package,''),$package)."
\n"); + } + return $trees; + } + + /** + * return formatted class tree for the Class Trees page + * + * @param array $tree output from {@link getSortedClassTreeFromClass()} + * @see Classes::$definitechild, generateFormattedClassTrees() + * @return string + */ + function getRootTree($tree,$package) + { + if (!$tree) return ''; + $my_tree = ''; + $cur = '#root'; + $lastcur = array(false); + $kids = array(); + $dopar = false; + if ($tree[$cur]['parent']) + { + $dopar = true; + if (!is_object($tree[$cur]['parent'])) + { +// debug("parent ".$tree[$cur]['parent']." not found"); + $my_tree .= '
  • ' . $tree[$cur]['parent'] .'
      '; + } + else + { +// debug("parent ".$this->returnSee($tree[$cur]['parent'])." in other package"); + $my_tree .= '
    • ' . $this->returnSee($tree[$cur]['parent']); + if ($tree[$cur]['parent']->package != $package) $my_tree .= ' (Different package)
        '; + } + } + do + { +// fancy_debug($cur,$lastcur,$kids); + if (count($tree[$cur]['children'])) + { +// debug("$cur has children"); + if (!isset($kids[$cur])) + { +// debug("set $cur kids"); + $kids[$cur] = 1; + $my_tree .= '
      • '.$this->returnSee($tree[$cur]['link']); + $my_tree .= '
          '."\n"; + } + array_push($lastcur,$cur); + list(,$cur) = each($tree[$cur]['children']); +// var_dump('listed',$cur); + if ($cur) + { + $cur = $cur['package'] . '#' . $cur['class']; +// debug("set cur to child $cur"); +// $my_tree .= '
        • '.$this->returnSee($tree[$cur]['link']); + continue; + } else + { +// debug("end of children for $cur"); + $cur = array_pop($lastcur); + $cur = array_pop($lastcur); + $my_tree .= '
      • '."\n"; + if ($dopar && ($cur == '#root' || !$cur)) $my_tree .= '
    • '; + } + } else + { +// debug("$cur has no children"); + $my_tree .= '
    • '.$this->returnSee($tree[$cur]['link'])."
    • "; + if ($dopar && $cur == '#root') $my_tree .= '
  • '; + $cur = array_pop($lastcur); + } + } while ($cur); + return $my_tree; + } + /** + * Generate indexing information for given element + * + * @param parserElement descendant of parserElement + * @see generateElementIndex() + * @return array + */ + function getIndexInformation($elt) + { + $Result['type'] = $elt->type; + $Result['file_name'] = $elt->file; + $Result['path'] = $elt->getPath(); + + if (isset($elt->docblock)) + { + $Result['description'] = $elt->docblock->getSDesc($this); + + if ($elt->docblock->hasaccess) + $Result['access'] = $elt->docblock->tags['access'][0]->value; + else + $Result['access'] = 'public'; + + $Result['abstract'] = isset ($elt->docblock->tags['abstract'][0]); + } + else + $Result['description'] = ''; + + $aa = $Result['description']; + if (!empty($aa)) $aa = "
        $aa"; + + switch($elt->type) + { + case 'class': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Class'; + $Result['link'] = $this->getClassLink($elt->getName(), + $elt->docblock->package, + $elt->getPath(), + $elt->getName()); + $Result['listing'] = 'in file '.$elt->file.', class '.$Result['link']."$aa"; + break; + case 'define': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Constant'; + $Result['link'] = $this->getDefineLink($elt->getName(), + $elt->docblock->package, + $elt->getPath(), + $elt->getName()); + $Result['listing'] = 'in file '.$elt->file.', constant '.$Result['link']."$aa"; + break; + case 'global': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Global'; + $Result['link'] = $this->getGlobalLink($elt->getName(), + $elt->docblock->package, + $elt->getPath(), + $elt->getName()); + $Result['listing'] = 'in file '.$elt->file.', global variable '.$Result['link']."$aa"; + break; + case 'function': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Function'; + $Result['link'] = $this->getFunctionLink($elt->getName(), + $elt->docblock->package, + $elt->getPath(), + $elt->getName().'()'); + $Result['listing'] = 'in file '.$elt->file.', function '.$Result['link']."$aa"; + break; + case 'method': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Method'; + $Result['link'] = $this->getMethodLink($elt->getName(), + $elt->class, + $elt->docblock->package, + $elt->getPath(), + $elt->class.'::'.$elt->getName().'()' + ); + if ($elt->isConstructor) $Result['constructor'] = 1; + $Result['listing'] = 'in file '.$elt->file.', method '.$Result['link']."$aa"; + break; + case 'var': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Variable'; + $Result['link'] = $this->getVarLink($elt->getName(), + $elt->class, + $elt->docblock->package, + $elt->getPath(), + $elt->class.'::'.$elt->getName()); + $Result['listing'] = 'in file '.$elt->file.', variable '.$Result['link']."$aa"; + break; + case 'const': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Variable'; + $Result['link'] = $this->getConstLink($elt->getName(), + $elt->class, + $elt->docblock->package, + $elt->getPath(), + $elt->class.'::'.$elt->getName()); + $Result['listing'] = 'in file '.$elt->file.', class constant '.$Result['link']."$aa"; + break; + case 'page': + $Result['name'] = $elt->getFile(); + $Result['title'] = 'Page'; + $Result['link'] = $this->getPageLink($elt->getFile(), + $elt->package, + $elt->getPath(), + $elt->getFile()); + $Result['listing'] = 'procedural page '.$Result['link']; + break; + case 'include': + $Result['name'] = $elt->getName(); + $Result['title'] = 'Include'; + $Result['link'] = $elt->getValue(); + $Result['listing'] = 'include '.$Result['name']; + break; + } + + return $Result; + } + /** + * Generate alphabetical index of all elements + * + * @see $elements, walk() + */ + function generateElementIndex() + { + $elementindex = array(); + $letters = array(); + $used = array(); + foreach($this->elements as $letter => $nutoh) + { + foreach($this->elements[$letter] as $i => $yuh) + { + if ($this->elements[$letter][$i]->type != 'include') + { + if (!isset($used[$letter])) + { + $letters[]['letter'] = $letter; + $elindex['letter'] = $letter; + $used[$letter] = 1; + } + + $elindex['index'][] = $this->getIndexInformation($this->elements[$letter][$i]); + } + } + if (isset($elindex['index'])) + { + $elementindex[] = $elindex; + } else + { + unset($letters[count($letters) - 1]); + } + $elindex = array(); + } + return array($elementindex,$letters); + } + + function setTemplateDir($dir) + { + Converter::setTemplateDir($dir); + $this->smarty_dir = $this->templateDir; + } + + function copyMediaRecursively($media,$targetdir,$subdir = '') + { + if (!is_array($media)) { + return; + } + foreach($media as $dir => $files) + { + if ($dir === '/') + { + $this->copyMediaRecursively($files,$targetdir); + } else + { + if (!is_numeric($dir)) + { + // create the subdir + phpDocumentor_out("creating $targetdir/$dir\n"); + Converter::setTargetDir($targetdir . PATH_DELIMITER . $dir); + if (!empty($subdir)) $subdir .= PATH_DELIMITER; + $this->copyMediaRecursively($files,"$targetdir/$dir",$subdir . $dir); + } else + { + // copy the file + phpDocumentor_out("copying $targetdir/".$files['file']."\n"); + $this->copyFile($files['file'],$subdir); + } + } + } + } + + /** + * calls the converter setTargetDir, and then copies any template images and the stylesheet if they haven't been copied + * @see Converter::setTargetDir() + */ + function setTargetDir($dir) + { + Converter::setTargetDir($dir); + if ($this->wrote) return; + $this->wrote = true; + $template_images = array(); + $stylesheets = array(); + $tdir = $dir; + $dir = $this->templateDir; + $this->templateDir = $this->templateDir.'templates/'; + $info = new Io; + $this->copyMediaRecursively($info->getDirTree($this->templateDir.'media',$this->templateDir),$tdir); + } + + /** + * Generate alphabetical index of all elements by package and subpackage + * + * @param string $package name of a package + * @see $pkg_elements, walk(), generatePkgElementIndexes() + */ + function generatePkgElementIndex($package) + { +// var_dump($this->pkg_elements[$package]); + $elementindex = array(); + $letters = array(); + $letterind = array(); + $used = array(); + $subp = ''; + foreach($this->pkg_elements[$package] as $subpackage => $els) + { + if (empty($els)) continue; + if (!empty($subpackage)) $subp = " (subpackage: $subpackage)"; else $subp = ''; + foreach($els as $letter => $yuh) + { + foreach($els[$letter] as $i => $yuh) + { + if ($els[$letter][$i]->type != 'include') + { + if (!isset($used[$letter])) + { + $letters[]['letter'] = $letter; + $letterind[$letter] = count($letters) - 1; + $used[$letter] = 1; + } + $elindex[$letter]['letter'] = $letter; + + $elindex[$letter]['index'][] = $this->getIndexInformation($els[$letter][$i]); + } + } + } + } + ksort($elindex); + usort($letters,'CHMdefault_lettersort'); + if (isset($elindex)) + { + while(list($letter,$tempel) = each($elindex)) + { + if (!isset($tempel)) + { + unset($letters[$letterind[$tempel['letter']]]); + } else + $elementindex[] = $tempel; + } + } else $letters = array(); + return array($elementindex,$letters); + } + + /** + * + * @see generatePkgElementIndex() + */ + function generatePkgElementIndexes() + { + $packages = array(); + $package_names = array(); + $pkg = array(); + $letters = array(); + foreach($this->pkg_elements as $package => $trash) + { + $pkgs['package'] = $package; + $pkg['package'] = $package; + list($pkg['pindex'],$letters[$package]) = $this->generatePkgElementIndex($package); + if (count($pkg['pindex'])) + { + $packages[] = $pkg; + $package_names[] = $pkgs; + } + unset($pkgs); + unset($pkg); + } + foreach($packages as $i => $package) + { + $pnames = array(); + for($j=0;$jreturnSee($a, $text, $with_a); + } + + /** + * @param string name of function + * @param string package name + * @param string full path to look in (used in index generation) + * @param boolean deprecated + * @param boolean return just the URL, or enclose it in an html a tag + * @return mixed false if not found, or an html a link to the function's documentation + * @see parent::getFunctionLink() + */ + function getFunctionLink($expr,$package, $file = false,$text = false) + { + $a = Converter::getFunctionLink($expr,$package,$file); + if (!$a) return false; + return $this->returnSee($a, $text); + } + + /** + * @param string name of define + * @param string package name + * @param string full path to look in (used in index generation) + * @param boolean deprecated + * @param boolean return just the URL, or enclose it in an html a tag + * @return mixed false if not found, or an html a link to the define's documentation + * @see parent::getDefineLink() + */ + function getDefineLink($expr,$package, $file = false,$text = false) + { + $a = Converter::getDefineLink($expr,$package,$file); + if (!$a) return false; + return $this->returnSee($a, $text); + } + + /** + * @param string name of global variable + * @param string package name + * @param string full path to look in (used in index generation) + * @param boolean deprecated + * @param boolean return just the URL, or enclose it in an html a tag + * @return mixed false if not found, or an html a link to the global variable's documentation + * @see parent::getGlobalLink() + */ + function getGlobalLink($expr,$package, $file = false,$text = false) + { + $a = Converter::getGlobalLink($expr,$package,$file); + if (!$a) return false; + return $this->returnSee($a, $text); + } + + /** + * @param string name of procedural page + * @param string package name + * @param string full path to look in (used in index generation) + * @param boolean deprecated + * @param boolean return just the URL, or enclose it in an html a tag + * @return mixed false if not found, or an html a link to the procedural page's documentation + * @see parent::getPageLink() + */ + function getPageLink($expr,$package, $path = false,$text = false) + { + $a = Converter::getPageLink($expr,$package,$path); + if (!$a) return false; + return $this->returnSee($a, $text); + } + + /** + * @param string name of method + * @param string class containing method + * @param string package name + * @param string full path to look in (used in index generation) + * @param boolean deprecated + * @param boolean return just the URL, or enclose it in an html a tag + * @return mixed false if not found, or an html a link to the method's documentation + * @see parent::getMethodLink() + */ + function getMethodLink($expr,$class,$package, $file = false,$text = false) + { + $a = Converter::getMethodLink($expr,$class,$package,$file); + if (!$a) return false; + return $this->returnSee($a, $text); + } + + /** + * @param string name of var + * @param string class containing var + * @param string package name + * @param string full path to look in (used in index generation) + * @param boolean deprecated + * @param boolean return just the URL, or enclose it in an html a tag + * @return mixed false if not found, or an html a link to the var's documentation + * @see parent::getVarLink() + */ + function getVarLink($expr,$class,$package, $file = false,$text = false) + { + $a = Converter::getVarLink($expr,$class,$package,$file); + if (!$a) return false; + return $this->returnSee($a, $text); + } + + /** + * @param string name of class constant + * @param string class containing class constant + * @param string package name + * @param string full path to look in (used in index generation) + * @param boolean deprecated + * @param boolean return just the URL, or enclose it in an html a tag + * @return mixed false if not found, or an html a link to the var's documentation + * @see parent::getVarLink() + */ + function getConstLink($expr,$class,$package, $file = false,$text = false) + { + $a = Converter::getConstLink($expr,$class,$package,$file); + if (!$a) return false; + return $this->returnSee($a, $text); + } + + /** + * does a nat case sort on the specified second level value of the array + * + * @param mixed $a + * @param mixed $b + * @return int + */ + function rcNatCmp ($a, $b) + { + $aa = strtoupper($a[$this->rcnatcmpkey]); + $bb = strtoupper($b[$this->rcnatcmpkey]); + + return strnatcasecmp($aa, $bb); + } + + /** + * does a nat case sort on the specified second level value of the array. + * this one puts constructors first + * + * @param mixed $a + * @param mixed $b + * @return int + */ + function rcNatCmp1 ($a, $b) + { + $aa = strtoupper($a[$this->rcnatcmpkey]); + $bb = strtoupper($b[$this->rcnatcmpkey]); + + if (strpos($aa,'CONSTRUCTOR') === 0) + { + return -1; + } + if (strpos($bb,'CONSTRUCTOR') === 0) + { + return 1; + } + if (strpos($aa,strtoupper($this->class)) === 0) + { + return -1; + } + if (strpos($bb,strtoupper($this->class)) === 0) + { + return -1; + } + return strnatcasecmp($aa, $bb); + } + + /** + * Write a file to disk, and add it to the {@link $hhp_files} list of files + * to include in the generated CHM + * + * {@source} + */ + function writefile($file,$contents) + { + $this->addHHP($this->targetDir . PATH_DELIMITER . $file); + Converter::writefile($file,$contents); + } + + /** + * @uses $hhp_files creates the array by adding parameter $file + */ + function addHHP($file) + { + $file = str_replace($this->base_dir . PATH_DELIMITER, '', $file); + $file = str_replace('\\',PATH_DELIMITER,$file); + $file = str_replace('//',PATH_DELIMITER,$file); + $file = str_replace(PATH_DELIMITER,'\\',$file); + $this->hhp_files[]['name'] = $file; + } + + function generateTOC() + { + $comppack = ''; + $templ = &$this->newSmarty(); + foreach($this->TOC as $package => $TOC1) + { + $comp_subs = ''; + $comp_subs1 = false; + foreach($TOC1 as $subpackage => $types) + { + $comp_types = ''; + foreach($types as $type => $files) + { + $comp = ''; + $templ1 = &$this->newSmarty(); + $templ1->assign('entry', array()); + foreach($files as $file) + { + // use book icon for classes + if ($type == 'Classes') { + $templ1->append('entry', array('paramname' => $file[0],'outputfile' => $file[1],'isclass' => 1)); + } else { + $templ1->append('entry', array('paramname' => $file[0],'outputfile' => $file[1])); + } + } + $templ = &$this->newSmarty(); + $templ->assign('tocsubentries',$templ1->fetch('tocentry.tpl')); + $templ->assign('entry', array(array('paramname' => $type))); + $comp_types .= $templ->fetch('tocentry.tpl'); + } + if (!empty($subpackage)) + { + $templ = &$this->newSmarty(); + $templ->assign('tocsubentries',$comp_types); + $templ->assign('entry', array(array('paramname' => $subpackage))); + $comp_subs .= $templ->fetch('tocentry.tpl'); + } else + { + $comp_subs1 = $comp_types; + } + } + if ($comp_subs1) + $templ->assign('tocsubentries',$comp_subs1); + if (!empty($comp_subs)) + $templ->assign('entry', array(array('paramname' => $package, 'tocsubentries' => $comp_subs))); + else + $templ->assign('entry', array(array('paramname' => $package))); + $comppack .= $templ->fetch('tocentry.tpl'); + } + return $comppack; + } + + function addSourceTOC($name, $file, $package, $subpackage, $source = false) + { + $file = str_replace($this->base_dir . PATH_DELIMITER, '', $this->targetDir) + . PATH_DELIMITER . $file . '.html'; + $file = str_replace('\\',PATH_DELIMITER,$file); + $file = str_replace('//',PATH_DELIMITER,$file); + $file = str_replace(PATH_DELIMITER,'\\',$file); + $sub = $source ? 'Source Code' : 'Examples'; + $this->TOC[$package][$subpackage][$sub][] = array($name, $file); + } + + function addTOC($name,$file,$package,$subpackage,$class = false,$tutorial = false) + { + $file = str_replace($this->base_dir . PATH_DELIMITER, '', $this->targetDir) + . PATH_DELIMITER . $file . '.html'; + $file = str_replace('\\',PATH_DELIMITER,$file); + $file = str_replace('//',PATH_DELIMITER,$file); + $file = str_replace(PATH_DELIMITER,'\\',$file); + $file = str_replace($this->base_dir . '\\', '', $file); + $sub = $class ? 'Classes' : 'Files'; + if ($tutorial) $sub = 'Manual'; + $this->TOC[$package][$subpackage][$sub][] = array($name,$file); + } + + /** + * Add an item to the index.hhk file + * @param string $name index entry name + * @param string $file filename containing index + * @param string $bookmark html anchor of location in file, if any + * @param string $group group this entry with a string + * @uses $KLinks tracks the index + * @author Andrew Eddie + */ + function addKLink($name, $file, $bookmark='', $group='') + { + $file = $file . '.html'; + $file = str_replace('\\',PATH_DELIMITER,$file); + $file = str_replace('//',PATH_DELIMITER,$file); + $file = str_replace(PATH_DELIMITER,'\\',$file); +// debug("added $name, $file, $bookmark, $group "); + $link = $file; + $link .= $bookmark ? "#$bookmark" :''; + if ($group) { + $this->KLinks[$group]['grouplink'] = $file; + $this->KLinks[$group][] = array($name,$link); + } + $this->KLinks[] = array($name,$link); + } + + /** + * Get the table of contents for index.hhk + * @return string contents of tocentry.tpl generated from $KLinks + * @author Andrew Eddie + */ + function generateKLinks() + { + $templ = &$this->newSmarty(); + $templ->assign('entry', array()); + foreach($this->KLinks as $group=>$link) + { + if (isset($link['grouplink'])) { + $templg = &$this->newSmarty(); + $templg->assign('entry', array()); + foreach($link as $k=>$sublink) + { + if ($k != 'grouplink') { + $templg->append('entry', array('paramname' => $sublink[0],'outputfile' => $sublink[1])); + } + } + $templ->append('entry', array('paramname' => $group, 'outputfile' => $link['grouplink'], 'tocsubentries' => $templg->fetch('tocentry.tpl') )); + } else { + $templ->append('entry', array('paramname' => $link[0],'outputfile' => $link[1])); + } + } + return $templ->fetch('tocentry.tpl'); + } + + /** + * Create the phpdoc.hhp, contents.hhc files needed by MS HTML Help Compiler + * to create a CHM file + * + * The output function generates the table of contents (contents.hhc) + * and file list (phpdoc.hhp) files used to create a .CHM by the + * free MS HTML Help compiler. + * {@internal + * Using {@link $hhp_files}, a list of all separate .html files + * is created in CHM format, and written to phpdoc.hhp. This list was + * generated by {@link writefile}. + * + * Next, a call to the table of contents: + * + * {@source 12 2} + * + * finishes things off}} + * @todo use to directly call html help compiler hhc.exe + * @link http://www.microsoft.com/downloads/release.asp?releaseid=33071 + * @uses generateTOC() assigns to the toc template variable + */ + function Output() + { + $templ = &$this->newSmarty(); + $templ->assign('files',$this->hhp_files); + $this->setTargetDir($this->base_dir); + Converter::writefile('phpdoc.hhp',$templ->fetch('hhp.tpl')); + $templ = &$this->newSmarty(); + $templ->assign('toc',$this->generateTOC()); + Converter::writefile('contents.hhc',$templ->fetch('contents.hhc.tpl')); + $templ->assign('klinks',$this->generateKLinks()); + Converter::writefile('index.hhk',$templ->fetch('index.hhk.tpl')); + phpDocumentor_out("NOTE: to create the documentation.chm file, you must now run Microsoft Help Workshop on phpdoc.hhp\n"); + phpDocumentor_out("To get the free Microsoft Help Workshop, browse to: http://go.microsoft.com/fwlink/?LinkId=14188\n"); + flush(); + } +} + +/** + * @access private + * @global string name of the package to set as the first package + */ +function CHMdefault_pindexcmp($a, $b) +{ + global $phpDocumentor_DefaultPackageName; + if ($a['title'] == $phpDocumentor_DefaultPackageName) return -1; + if ($b['title'] == $phpDocumentor_DefaultPackageName) return 1; + return strnatcasecmp($a['title'],$b['title']); +} + +/** @access private */ +function CHMdefault_lettersort($a, $b) +{ + return strnatcasecmp($a['letter'],$b['letter']); +} + +/** @access private */ +function CHMdefault_outputfilter($src, &$smarty) +{ + return str_replace('{$subdir}',$smarty->_tpl_vars['subdir'],$src); +} +?> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini new file mode 100644 index 00000000..56474470 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini @@ -0,0 +1,507 @@ +preservedocbooktags = false + +;; used to highlight the {@source} inline tag, @filesource tag, and @example tag +[highlightSourceTokens] +;; format: +;; T_CONSTANTNAME = open +;; /T_CONSTANTNAME = close +T_ABSTRACT = +/T_ABSTRACT = +T_CLONE = +/T_CLONE = +T_HALT_COMPILER = +/T_HALT_COMPILER = +T_PUBLIC = +/T_PUBLIC = +T_PRIVATE = +/T_PRIVATE = +T_PROTECTED = +/T_PROTECTED = +T_FINAL = +/T_FINAL = +T_IMPLEMENTS = +/T_IMPLEMENTS = +T_CLASS = +/T_CLASS = +T_INTERFACE = +/T_INTERFACE = +T_INCLUDE = +/T_INCLUDE = +T_INCLUDE_ONCE = +/T_INCLUDE_ONCE = +T_REQUIRE_ONCE = +/T_REQUIRE_ONCE = +T_FUNCTION = +/T_FUNCTION = +T_VARIABLE = +/T_VARIABLE = +T_CONSTANT_ENCAPSED_STRING = +/T_CONSTANT_ENCAPSED_STRING = +T_COMMENT = +/T_COMMENT = +T_OBJECT_OPERATOR = +/T_OBJECT_OPERATOR = +T_RETURN = +/T_RETURN = +T_STATIC = +/T_STATIC = +T_SWITCH = +/T_SWITCH = +T_IF = +/T_IF = +T_FOREACH = +/T_FOREACH = +T_FOR = +/T_FOR = +T_VAR = +/T_VAR = +T_EXTENDS = +/T_EXTENDS = +T_RETURN = +/T_RETURN = +T_GLOBAL = +/T_GLOBAL = +T_DOUBLE_COLON = +/T_DOUBLE_COLON = +T_OBJECT_OPERATOR = +/T_OBJECT_OPERATOR = +T_OPEN_TAG = +/T_OPEN_TAG = +T_CLOSE_TAG = +/T_CLOSE_TAG = + +[highlightSource] +;; this is for highlighting things that aren't tokens like "&" +;; format: +;; word = open +;; /word = close +@ = +/@ = +& = +/& = +[ = +/[ = +] = +/] = +! = +/! = +";" = +/; = +( = +/( = +) = +/) = +, = +/, = +{ = +/{ = +} = +/} = +""" = +/" = + +[highlightDocBlockSourceTokens] +;; this is for docblock tokens, using by phpDocumentor_HighlightParser +;; tagphptype is for "string" in @param string description, for example +docblock = +/docblock = +tagphptype = +/tagphptype = +tagvarname = +/tagvarname = +coretag = +/coretag = +tag = +/tag = +inlinetag = +/inlinetag = +internal = +/internal = +closetemplate = +/closetemplate = +docblocktemplate = +/docblocktemplate = + +[highlightTutorialSourceTokens] +;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser +;; +opentag = +/opentag = +;; +closetag = +/closetag = +;; +attribute = +/attribute = +;; +attributevalue = +/attributevalue = +;; &entity; +entity = +/entity = +;; +comment = +/comment = +;; {@inline tag} +itag = +/itag = + +;; used for translation of html in DocBlocks +[desctranslate] +ul =
      +/ul =
    +ol =
      +/ol =
    +li =
  • +/li =
  • +code =
    +/code = 
    +var = +/var = +samp = +/samp = +kbd = +/kbd = +pre =
    +/pre = 
    +p =

    +/p =

    +b = +/b = +i = +/i = +br =
    + +[ppage] +;; this is the DocBook package page translation section. All DocBook tags +;; that have a corresponding html tag must be listed here +;; +;; examples: +;; 1) +;; tagname = newtagname +;; +;; This is the simplest case, where all attributes will be added into the +;; starting tag and the ending tag will be html/xml style +;; becomes and +;; becomes +;; +;; +;; 2) +;; tagname = newtagname +;; tagname->attr = newattrname +;; +;; in this case, everything will be like the first case, except tags like: +;; will become +;; +;; +;; 3) +;; tagname = newtagname +;; tagname->attr = newattrname +;; tagname->attr+value = newvalue +;; +;; in this case, the value is also translated to another. This can be useful +;; for instances such as focus="middle" changing to align="center" or something +;; of that nature. +;; will become +;; +;; +;; 4) +;; tagname = newtagname +;; tagname->attr1 = newattrname +;; tagname->attr2 = newattrname +;; tagname->attr1+value|attr2+value = newvalue +;; +;; in this case, two attributes combine to make one new attribute, and the combined +;; value is translated into a new value +;; will become +;; +;; +;; 5) +;; tagname = newtagname +;; tagname!attr = dummy +;; +;; here, the attribute will be ignored. dummy is not used and may be any value +;; will become +;; +;; +;; 6) +;; tagname = newtagname +;; tagname! = dummy +;; +;; here, all attributes will be ignored. dummy is not used and may be any value +;; will become +;; +;; +;; 7) +;; tagname = newtagname +;; tagname/ = 1 +;; +;; here, the tag will be translated as a single tag with no closing tag, and all +;; attributes +;; {text text} will become +;; +;; +;; 8) +;; tagname = +;; /tagname = closetagtext +;; +;; in this case, the text will be inserted exactly as entered for +;; and closetagtext for +;; will become +;; closetagtext +;; +;; 9) +;; $attr$my_attribute = newattrname +;; +;; tagname = newtagname +;; +;; in this case, all occurences of my_attribute in any tag will be changed to +;; newattrname. This is useful for changing things like role="php" to +;; class="php," for example. Note that the text "$attr$" MUST be on the line +;; start for phpDocumentor to recognize it. +;; +;; 10) +;; &entity; = translation text +;; " = " +;; " = """ +;; < = < +;; +;; Use this to control translation of entities to their appropriate values + +  =   +" = " +” = ” +“ = “ +& = & +< = < +> = > +© = © + +$attr$role = class + +abbrev = abbr + +blockquote = blockquote + +arg = span +arg->choice = class + +author = by +/author = +author! = 0 + +authorblurb = blockquote + +authorgroup = Authors:
    +/authorgroup = +authorgroup! = 0 + +caution =
    Caution
    +/caution =
    +caution! = 0 + +command = +/command = + +cmdsynopsis =
    +/cmdsynopsis =
    + +copyright = +/copyright =
    + +emphasis = strong + +example =
    +/example =
    +example! = 0 + +function = +/function = () + +formalpara = p + +graphic = img +graphic->fileref = src +graphic/ = + +important = u + +informalequation = blockquote + +informalexample = pre + +inlineequation = em + +itemizedlist = ul + +listitem = li + +literal = code + +literallayout = pre + +option = " " +/option = + +orderedlist = ol + +para = p + +programlisting =
    +/programlisting = 
    +programlisting! = 0 + +refentry = div + +refnamediv =
    +/refnamediv =
    +refnamediv! = 0 + +refname = h1 + +refpurpose =

    +/refpurpose =

    + +refsynopsisdiv =
    +/refsynopsisdiv =
    +refsynopsisdiv! = 0 + +refsect1 = span + +refsect2 = +/refsect2 =
    + +refsect3 = +/refsect3 =
    + +releaseinfo = ( +/releaseinfo = )
    + +simpara = +/simpara =
    +simpara! = 0 + +subscript = sub + +superscript = super + +table = table + +table->colsep = rules +table->rowsep = rules +table->colsep+1|rowsep+1 = all +table->colsep+1|rowsep+0 = cols +table->colsep+0|rowsep+1 = rows + +table->frame = frame +table->frame+all = border +table->frame+none = void +table->frame+sides = vsides +table->frame+top = above +table->frame+topbot = hsides + +thead = thead + +tfoot = tfoot + +tbody = tbody + +colspec = col + +tgroup = colgroup +tgroup/ = 1 +tgroup->cols = span + +row = tr + +entry = td +entry->morerows = colspan +entry->morerows+1 = 2 +entry->morerows+2 = 3 +entry->morerows+3 = 4 +entry->morerows+4 = 5 +entry->morerows+5 = 6 +entry->morerows+6 = 7 +entry->morerows+7 = 8 +entry->morerows+8 = 9 +entry->morerows+9 = 10 +entry->morerows+10 = 11 +;; add more if you need more colspans + +warning =
    +/warning =
    +warning! = 0 + +;; now begins the attributes that should be tags in cdata +[$attr$id] +open = a +;close = /a +cdata! = true +quotevalues = true +separator = "=" +;separateall = true +$id = name + +;; now begins the sections that deal with +[refsynopsisdiv_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <h1 class="title" align="center"> +close = </h1> + +[refsect1_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <h2 class="title" align="center"> +close = </h1> + +[refsect2_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <h2 class="title" align="center"> +close = </h2> + +[refsect3_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <h3 class="title" align="center"> +close = </h3> + +[para_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <strong class="title" align="center"> +close = </strong> + +[formalpara_title] +;tag_attr = true +;attr_name = title +cdata_start = true +;cdata_end = true +open = <strong class="title" align="center"> +close = </strong> + +[example_title] +;tag_attr = true +;attr_name = title +;cdata_start = true +cdata_end = true +open = </td></tr><tr><td><strong> +close = </strong> + +[table_title] +;tag_attr = true +;attr_name = true +cdata_start = true +open = <caption> +close = </caption> diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl new file mode 100644 index 00000000..a040830b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl @@ -0,0 +1,21 @@ +{section name=letter loop=$letters} + <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> +{/section} +<table> +{section name=index loop=$index} +<tr><td colspan = "2"><a name="{$index[index].letter}">  </a> +<a href="#top">top</a><br> +<TABLE CELLPADDING='3' CELLSPACING='0' WIDTH='100%' CLASS="border"> + <TR CLASS='TableHeadingColor'> + <TD> + <FONT SIZE='+2'><B>{$index[index].letter}</B></FONT> + </TD> + </TR> +</TABLE> +</td></tr> + {section name=contents loop=$index[index].index} + <tr><td><b>{$index[index].index[contents].name}</b></td><td width="100%" align="left" valign="top">{$index[index].index[contents].listing}</td></tr> + {/section} +{/section} +</table> + diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl new file mode 100644 index 00000000..1fbaca2f --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl @@ -0,0 +1,13 @@ +<html> +<head> + <title>{$maintitle} + + + + +

    {$maintitle}

    +Welcome to {$package}!
    +
    +This documentation was generated by phpDocumentor v{$phpdocversion}
    + + \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl new file mode 100644 index 00000000..1ed17562 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl @@ -0,0 +1,94 @@ +{include file="header.tpl" eltype="class" hasel=true contents=$classcontents} + +

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

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

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

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

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


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

    Inherited Class Constant Summary

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

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

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

    Inherited Class Variable Summary

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

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

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

    Inherited Method Summary

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

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

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

    + {$smarty.capture.title} +

    +{section name=classtrees loop=$classtrees} +Root class {$classtrees[classtrees].class} +{$classtrees[classtrees].class_tree} +{/section} +{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl new file mode 100644 index 00000000..207491a5 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl @@ -0,0 +1,29 @@ +{if $show=="summary"} + + +

    Class Constant Summary

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

    Class Constant Detail

    + +
      +{section name=consts loop=$consts} + +
    • {$consts[consts].const_name} = {$consts[consts].const_value|replace:"\n":"
      \n"|replace:" ":" "|replace:"\t":"   "}
      [line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}]
    • +{include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags} +
      +{/section} +
    +{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl new file mode 100644 index 00000000..cf7ee7cb --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl @@ -0,0 +1,11 @@ + + + + + + + + + +{$toc} + diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl new file mode 100644 index 00000000..3917cc70 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl @@ -0,0 +1,33 @@ +{if $summary} + + +

    Constant Summary

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

    Constant Detail

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

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

      + {/if} +

      + {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags} + {/section} +
    +{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl new file mode 100644 index 00000000..0de18b67 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl @@ -0,0 +1,31 @@ + +{if $function} + {if $params} +

    Parameters

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

    {$params[params].var}

    +

    {$params[params].data}

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

    Returns

    +

    {$tags[tags].data}

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

    Remarks

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

    {$sdesc}

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

    {$desc}

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

    {$tags[tags].keyword}

    +

    {$tags[tags].data}

    +{/if} +{/section} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl new file mode 100644 index 00000000..8e25db5c --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl @@ -0,0 +1,9 @@ +{include file="header.tpl" noleftindex=true} + +

    Index of All Elements

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

    {$file}

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

    Warnings:


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

    Errors:


    +{section name=errors loop=$issues.errors} +{$issues.errors[errors].name} - {$issues.errors[errors].listing}
    +{/section} +{/if} +{/foreach} +{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl new file mode 100644 index 00000000..c85acbe0 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl @@ -0,0 +1,8 @@ +{foreach key=subpackage item=files from=$fileleftindex} + {if $subpackage != ""}subpackage {$subpackage}
    {/if} + {section name=files loop=$files} + {if $files[files].link != ''}{/if} + {$files[files].title} + {if $files[files].link != ''}{/if}
    + {/section} +{/foreach} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl new file mode 100644 index 00000000..a0d7119e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl @@ -0,0 +1,6 @@ +{capture name="tutle"}File Source for {$name}{/capture} +{include file="header.tpl" title=$smarty.capture.tutle} +

    Source for file {$name}

    +

    Documentation is available at {$docs}

    +{$source} +{include file="footer.tpl"} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl new file mode 100644 index 00000000..a015ceea --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl @@ -0,0 +1,8 @@ +{if !$index} +
    +
    + Documentation generated on {$date} by phpDocumentor {$phpdocversion} +
    +{/if} + + diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl new file mode 100644 index 00000000..ea314935 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl @@ -0,0 +1,44 @@ +{if $summary} + + +

    Function Summary

    + + +{else} + + + +

    Function Detail

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

      +Usage: {if $functions[func].ifunction_call.returnsref}&{/if}{$functions[func].function_name}( +{if count($functions[func].ifunction_call.params)} +{section name=params loop=$functions[func].ifunction_call.params} +{if $smarty.section.params.iteration != 1}, {/if}{if $functions[func].ifunction_call.params[params].default != ''}[{/if}{$functions[func].ifunction_call.params[params].type} {$functions[func].ifunction_call.params[params].name}{if $functions[func].ifunction_call.params[params].default != ''} = {$functions[func].ifunction_call.params[params].default|escape:"html"}]{/if} +{/section} +{/if}) +

      +{if $functions[func].function_conflicts.conflict_type} +

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

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

      [ Top ]

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

    Global Variable Summary

    + + + +{else} + + + +

    Global Variable Detail

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

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

      + {include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags} + {/section} +

    +{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl new file mode 100644 index 00000000..bdf6173e --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl @@ -0,0 +1,22 @@ + + + + + + + {$title} + +{if $bgleft} + +{/if} + + + \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl new file mode 100644 index 00000000..a68f02b1 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl @@ -0,0 +1,17 @@ +[OPTIONS] +Compatibility=1.1 or later +Compiled file=documentation.chm +Contents file=contents.hhc +Default topic=index.html +Display compile progress=No +Index file=Index.hhk +Language=0x409 English (United States) + + +[FILES] +{section name=files loop=$files} +{$files[files].name} +{/section} + +[INFOTYPES] + diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl new file mode 100644 index 00000000..1ab7440b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl @@ -0,0 +1,26 @@ +{if $summary} + + +

    Include Statements Summary

    + + +{else} + + + +

    Include Statements Detail

    + +
      + {section name=includes loop=$includes} + +
    • {$includes[includes].include_name} file: = {$includes[includes].include_value} [line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]
      +

      + {include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags} + {/section} +
    +{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl new file mode 100644 index 00000000..8b31a11d --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl @@ -0,0 +1,8 @@ + + + + + + +{$klinks} + diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl new file mode 100644 index 00000000..f73fb8a3 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl @@ -0,0 +1,24 @@ + + + + + + {$title} + + +{if $package_count > 1} + + +{/if} + +{if $package_count > 1} + +{/if} + + + <H2>Frame Alert</H2> + <P>This document is designed to be viewed using the frames feature. + If you see this message, you are using a non-frame-capable web client.</P> + + + diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png new file mode 100644 index 00000000..19fdf05d Binary files /dev/null and b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png differ diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css new file mode 100644 index 00000000..2c08f94f --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css @@ -0,0 +1,129 @@ +BODY, DIV, SPAN, PRE, CODE, TD, TH { + line-height: 140%; + font-size: 10pt; + font-family: verdana,arial,sans-serif; +} + +H1 { + font-size: 12pt; +} + +H4 { + font-size: 10pt; + font-weight: bold; +} + +P.label { + margin-bottom: 5px; +} +P.dt { + margin-top: 0px; + margin-bottom: 0px; +} +P.indent { + margin-top: 0px; + margin-left: 20px; + margin-bottom: 0px; +} +P.method { + background-color: #f0f0f0; + padding: 2px; + border: 1px #cccccc solid; +} + +A { + text-decoration: none; +} + +A:link{ + color: #336699; +} + +A:visited { + color: #003366; +} + +A:active, A:hover { + color: #6699CC; +} + +A:hover{ + text-decoration: underline; +} + +SPAN.type { + color: #336699; + font-size: xx-small; + font-weight: normal; + } + +PRE { + background-color: #EEEEEE; + padding: 10px; + border-width: 1px; + border-color: #336699; + border-style: solid; +} + +HR { + color: #336699; + background-color: #336699; + border-width: 0px; + height: 1px; + filter: Alpha (opacity=100,finishopacity=0,style=1); +} + +DIV.sdesc { + font-weight: bold; + background-color: #EEEEEE; + padding: 10px; + border-width: 1px; + border-color: #336699; + border-style: solid; +} + +DIV.desc { + font-family: monospace; + background-color: #EEEEEE; + padding: 10px; + border-width: 1px; + border-color: #336699; + border-style: solid; +} + +SPAN.code { + font-family: monospace; +} + +CODE.varsummarydefault{ + padding: 1px; + border-width: 1px; + border-style: dashed; + border-color: #336699; +} + +UL.tute { + margin: 0px; + padding: 0px; + padding-left: 5px; + } + +LI.tute { + line-height: 140%; + font-size: 10pt; + text-indent: -15px; + padding-bottom: 2px; + padding-left: 14px; +} + +.small{ + font-size: 9pt; +} + + +.tute-tag { color: #009999 } +.tute-attribute-name { color: #0000FF } +.tute-attribute-value { color: #0099FF } +.tute-entity { font-weight: bold; } +.tute-comment { font-style: italic } +.tute-inline-tag { color: #636311; font-weight: bold } diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl new file mode 100644 index 00000000..9309962b --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl @@ -0,0 +1,55 @@ +{if $show == 'summary'} + + +

    Method Summary

    + + + +{else} + + + +

    Method Detail

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

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

      + +

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

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

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

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

      +{/if} +{if $methods[methods].method_overrides} +

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

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

      [ Top ]

      +
      +{/section} +
    +{/if} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl new file mode 100644 index 00000000..b48b6719 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl @@ -0,0 +1,3 @@ +{section name=packages loop=$packages} +{$packages[packages].title} +{/section} \ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl new file mode 100644 index 00000000..dc93b0a1 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl @@ -0,0 +1,34 @@ +{include file="header.tpl" eltype="Procedural file"} +

    File: {$source_location}
    +

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

    Element index for package {$package}

    +{if count($packageindex) > 1} +Indexes by package:
    +{/if} +{section name=p loop=$packageindex} +{if $packageindex[p].title != $package} +{$packageindex[p].title}
    +{/if} +{/section}
    +Index of all elements
    +{include file="basicindex.tpl" indexname=elementindex_$package} +{include file="footer.tpl"} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl new file mode 100644 index 00000000..c4cb83f9 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl @@ -0,0 +1,6 @@ +{include file="header.tpl"} +

    {$name}

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

    Todo List

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

    {$todopackage}

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

    {$todo[todo].link}

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

    Table of Contents

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

    Class Variable Summary

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

    Variable Detail

    + +
      +{section name=vars loop=$vars} + +
    • {$vars[vars].var_name} = {$vars[vars].var_default|replace:"\n":"
      \n"|replace:" ":" "|replace:"\t":"   "}
      [line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]
    • +
    • Data type: {$vars[vars].var_type}{if $vars[vars].var_overrides}Overrides: {$vars[vars].var_overrides}
      {/if}
    • +{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags} +
      +{/section} +
    +{/if} \ No newline at end of file -- cgit v1.2.3