date = date('d.m.Y'); $this->project = $project; $this->path = $path; } // end init(); public function generate($page) { $code = ''; $n =& $this->project->config['showNumbers']; $code .= $this->createTopNavigator($page); $id = str_replace('.', '_', $page['Id']); $code .= '

'.($n ? $page['FullNumber'].'. ' : '').$page['Title'].'

'; $code .= $this->createReference($page); $code .= $page['Content']; if(isset($page['SeeAlso'])) { $code .= $this->createSeeAlso($page['SeeAlso']); } $this->pageContent[$page['Id']] = $code; } // end generate(); public function close() { $translate = tfTranslate::get(); $code = $this->createHeader(); $code .= '

'.$this->project->config['title'].' '.$this->project->config['version'].'

'; $code .= '

Copyright © '.$this->project->config['copyright'].'

'; $code .= '

'.$translate->_('general','doc_license').': '.$this->project->config['license'].'

'; $code .= '

'.$translate->_('general','generated_in',$this->date).'

'; $code .= '

'.$translate->_('general','table_of_contents').'

'; $code .= $this->menuGen('', true); foreach($this->pageOrder as $id) { $code .= $this->pageContent[$id]; } $code .= $this->createFooter(); $this->project->fs->write($this->path.'index.html', $code); } // end close(); private function createHeader() { $translate = tfTranslate::get(); $docTitle = $this->project->config['title']; $docVersion = $this->project->config['version']; $textDocumentation = $translate->_('general','documentation'); $code = << {$docTitle}
EOF; return $code; } // end createHeader(); public function createFooter() { $translate = tfTranslate::get(); $textLicense = $translate->_('general','doc_license'); if(strlen($this->project->config['copyrightLink']) > 0) { $copyright = ''.$this->project->config['copyright'].''; } else { $copyright = $this->project->config['copyright']; } if(strlen($this->project->config['licenseLink']) > 0) { $license = ''.$this->project->config['license'].''; } else { $license = $this->project->config['license']; } $code = <<
EOF; return $code; } // end createFooter(); public function createTopNavigator(&$page) { $n =& $this->project->config['showNumbers']; $translate = tfTranslate::get(); $parent = $this->project->getMetaInfo($page['_Parent'], false); $prev = $this->project->getMetaInfo($page['_Previous'], false); $next = $this->project->getMetaInfo($page['_Next'], false); $code = '
'; if(!is_null($parent)) { $code .= '
'.($n ? $parent['FullNumber'].'. ' : '').$parent['Title'].'
'.($n ? $page['FullNumber'].'. ' : '').$page['Title'].'
'; } else { $code .= '
'.$translate->_('general','table_of_contents').'
'.($n ? $page['FullNumber'].'. ' : '').$page['Title'].'
'; } if(!is_null($prev)) { $code .= '
'.($n ? $prev['FullNumber'].'. ' : '').$prev['Title'].'
« '.$translate->_('navigation','prev').'
'; } if(!is_null($next)) { $code .= '
'.($n ? $next['FullNumber'].'. ' : '').$next['Title'].'
'.$translate->_('navigation','next').' »
'; } $code .= '
'; return $code; } // end createTopNavigator(); public function createSeeAlso($seealso) { $n =& $this->project->config['showNumbers']; $translate = tfTranslate::get(); $prog = tfProgram::get(); $code = '

'.$translate->_('navigation','see_also').':

'; return $code; } // end createSeeAlso(); public function createReference(&$page) { $translate = tfTranslate::get(); $code = ''; if(isset($page['Status'])) { $code .= '

'.$translate->_('tags','status').': '.$page['Status'].'

'; } if(isset($page['Extends'])) { $pp = $this->project->getMetaInfo($page['Extends'], false); if(!is_null($pp)) { $code .= '

'.$translate->_('tags','obj_extends').': '.$pp['ShortTitle'].'

'; } } elseif(isset($page['EExtends'])) { $code .= '

'.$translate->_('tags','obj_extends').': '.$page['EExtends'].'

'; } if(isset($page['Implements']) || isset($page['EImplements'])) { $code .= '

'.$translate->_('tags','obj_implements').':

'; } if(isset($page['ExtendedBy']) || isset($page['EExtendedBy'])) { $code .= '

'.$translate->_('tags','obj_extended').':

'; } if(isset($page['VersionSince'])) { $code .= '

'.$translate->_('tags','version_since').': '.$page['VersionSince'].'

'; } if(isset($page['VersionTo'])) { $code .= '

'.$translate->_('tags','version_to').': '.$page['VersionTo'].'

'; } if(isset($page['Author'])) { $code .= '

'.$translate->_('tags','author').': '.$page['Author'].'

'; } if($code != '') { $code .= '
'; } return $code; } // end createReference(); public function menuGen($what, $recursive = true) { $n =& $this->project->config['showNumbers']; if(isset($this->project->tree[$what]) && count($this->project->tree[$what]) > 0) { $code = ''; return $code; } return ''; } // end menuGen(); public function toAddress($page) { $page = str_replace('.', '_', $page); return '#'.$page; } // end toAddress(); } // end xhtml_single;