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

    +/p =

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

    Authors

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

    +/refname =

    + +refpurpose =

    +/refpurpose =

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

    {$maintitle}

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

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

    + + +
    +
    Description
    + +
    + {if $implements} +

    + Implements interfaces: +

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

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

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

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

    Inherited Variables

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

    Inherited from {$ivars[ivars].parent_class}

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

    Inherited Methods

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

    Inherited From {$imethods[imethods].parent_class}

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

    Inherited Constants

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

    Inherited from {$iconsts[iconsts].parent_class}

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

    + {$smarty.capture.title} +

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

    Root class {$classtrees[classtrees].class}

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

    {$sdesc}

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

    {$desc}

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

    Full index

    +

    Package indexes

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

    {$file}

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

    Warnings:


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

    Errors:


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

    {$title}

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

    Source for file {$name}

    +

    Documentation is available at {$docs}

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

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

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

    phpDocumentor v {$phpdocversion}

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

    {$source_location}

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

    [{$package}] element index

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

    Package indexes

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

    {$name}

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

    Todo List

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

    {$todopackage}

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

    {$todo[todo].link}

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

    Table of Contents

    +
      + {assign var="lastcontext" value='refsect1'} + {section name=toc loop=$toc} + + {if $toc[toc].tagname != $lastcontext} + {if $lastcontext == 'refsect1'} +
        +
      • {$toc[toc].link}
      • + {else} + {if $lastcontext == 'refsect2'} + {if $toc[toc].tagname == 'refsect1'} +
      +
    • {$toc[toc].link}
    • + {/if} + {if $toc[toc].tagname == 'refsect3'} +
        +
      • {$toc[toc].link}
      • + {/if} + {else} +
      +
    • {$toc[toc].link}
    • + {/if} + {/if} + {assign var="lastcontext" value=$toc[toc].tagname} + {else} +
    • {$toc[toc].link}
    • + {/if} + {/section} + {if $lastcontext == 'refsect2'} +
    + {/if} + {if $lastcontext == 'refsect3'} + + + {/if} + +{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl new file mode 100644 index 00000000..d5a18355 --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl @@ -0,0 +1,6 @@ + +{if $haskids} +
    + {$kids} +
    +{/if} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl new file mode 100644 index 00000000..59c4d8cd --- /dev/null +++ b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl @@ -0,0 +1,44 @@ +{section name=vars loop=$vars} + +
    + +
    + + {$vars[vars].var_type} + {$vars[vars].var_name} + {if $vars[vars].var_default} = {$vars[vars].var_default|replace:"\n":"
    "}
    {/if} + (line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}) +
    +
    + + {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags} + + {if $vars[vars].var_overrides} +
    +
    Redefinition of:
    +
    +
    {$vars[vars].var_overrides.link}
    + {if $vars[vars].var_overrides.sdesc} +
    {$vars[vars].var_overrides.sdesc}
    + {/if} +
    + {/if} + + {if $vars[vars].descvar} +
    +
    Redefined in descendants as:
    +
      + {section name=vm loop=$vars[vars].descvar} +
    • + {$vars[vars].descvar[vm].link} + {if $vars[vars].descvar[vm].sdesc} + : {$vars[vars].descvar[vm].sdesc} + {/if} +
    • + {/section} +
    + {/if} + +
    +{/section} + -- cgit v1.2.3