PHP Classes
Icontem

File: class/ohtml.cls.php


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend! ReTweet ReTweet Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Johan Barbier  >  Class Doc  >  class/ohtml.cls.php  
File: class/ohtml.cls.php
Role: Class source
Content type: text/plain
Description: html generator class
Class: Class Doc
Generate PHP code documentation in multiple idioms
 

Contents

Class file image Download
<?php
/**
* CLASS ohtml
* classe de rendu html de la documentation de odocclass et odocfunc
* auteur : johan <barbier_johan@hotmail.com>
* version 10/02/2006
*
* free to use, modify, please just tell me if you make any changes :-)
*/
class ohtml {

	private $oloc;
	/**
	* chaîne contenant le html généré
	*/
	private $sHtml= '';

	private $package;
	/**
	* constantes contenant les répertoires des documentations
	*/
	const docClassDir = 'classes';
	const docFuncDir = 'fonctions';
	const docDir = 'docs';

	public function __construct ($package = '') {
		$this -> oloc = new olocale ($_SESSION['locale']);
		$this -> package = $package;
	}

	/**
	* méthode publique header
	* stocke le header de la page html
	*/
	public function header () {
		$this -> sHtml .= <<<EOS
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
	<link rel="stylesheet" type="text/css" href="../../../../../css/maindoc.css" />
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	</head>
	<body>
	<h2 class="titre">ClassFuncDoc : <em>{$this -> oloc -> getMsg ('gui', 'app_title')}</em></h2>

EOS;
	}

	/**
	* méthode publique headerFunc
	* stocke le header de la page html pour les fonctions
	*/
	public function headerFunc () {
		$this -> sHtml .= <<<EOS
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
	<link rel="stylesheet" type="text/css" href="../../../../css/maindoc.css" />
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	</head>
	<body>
	<h2 class="titre">ClassFuncDoc : <em>{$this -> oloc -> getMsg ('gui', 'app_title')}</em></h2>

EOS;
	}

	/**
	* méthode publique footer
	* stocke le footer de la page html
	*/
	public function footer () {
		$this -> sHtml .= <<<EOS
	</body>
</html>
EOS;
	}

	/**
	* méthode publique setMenuFunc
	* crée le menu html pour les fonctions
	*/
	public function setMenuFunc ($fileName, $aFunctions, $file = '') {
		$this -> sHtml .= <<<EOS
		<div class="path">
		<span class="acc"><a class="acc" href="../../index.html" title="{$this -> oloc -> getMsg ('gui', 'gui_home')}">{$this -> oloc -> getMsg ('gui', 'gui_home')}</a></span><br /><br />
		<span><a class="current" href="{$fileName}.html" title="{$fileName}">{$fileName}</a></span>
		</div>
		<div class="menu">
EOS;
		if (!empty ($aFunctions)) {
			ksort ($aFunctions);
			$this -> sHtml .= <<<EOS
			<ul>Fonctions

EOS;
			foreach ($aFunctions as $clef => $val) {
				if ($file === $clef) {
					$class = 'class="current"';
				} else {
					$class = 'class="other"';
				}
				$this -> sHtml .= <<<EOS
				<li><a {$class} href="{$clef}.html" title="$clef">{$clef}</a></li>

EOS;
			}
		}
		$this -> sHtml .= <<<EOS
		</ul>
		</div>

EOS;
	}

	/**
	* méthode publique setMenu
	* crée le menu html pour les classes
	*/
	public function setMenu ($className, $parent, $child, $aMethods, $aProperties, $file = '') {
		$this -> sHtml .= <<<EOS
		<div class="path">
		<span class="acc"><a class="acc" href="../../../index.html" title="{$this -> oloc -> getMsg ('gui', 'gui_home')}">{$this -> oloc -> getMsg ('gui', 'gui_home')}</a></span> -> <span class="acc"><a class="acc" href="../index.html" title="{$this -> package}">{$this ->package}</a></span><br /><br />
		<span><a class="other" href="../{$parent}/class_{$parent}.html" alt="{$parent}">{$parent}</a> -> <a class="current" href="class_{$className}.html" alt="{$className}">{$className}</a> ->

EOS;
		foreach ($child as $childName) {
			$this -> sHtml .= <<<EOS
				<a class="other" href="../{$childName}/class_{$childName}.html" alt="{$childName}">{$childName}</a>,

EOS;
		}
		$this -> sHtml = rtrim ($this -> sHtml, ',');
		$this -> sHtml .= <<<EOS
		</span>
		</div>
		<div class="menu">
EOS;
		if (!empty ($aMethods)) {
			ksort ($aMethods);
			$this -> sHtml .= <<<EOS
			<ul>{$this -> oloc -> getMsg ('doc', 'doc_methods')}

EOS;
			foreach ($aMethods as $clef => $val) {
				if ($file === $clef) {
					$class = 'class="current"';
				} else {
					$class = 'class="other"';
				}
				$this -> sHtml .= <<<EOS
				<li><a {$class} href="{$clef}.html" title="$clef">{$clef}</a></li>

EOS;
			}
		}
				$this -> sHtml .= <<<EOS
				</ul>

EOS;
		if (!empty ($aProperties)) {
			ksort ($aProperties);
			$this -> sHtml .= <<<EOS
			<ul>{$this -> oloc -> getMsg ('doc', 'doc_properties')}

EOS;
			foreach ($aProperties as $clef => $val) {
				if ($file === $clef) {
					$class = 'class="current"';
				} else {
					$class = 'class="other"';
				}
				$this -> sHtml .= <<<EOS
				<li><a {$class} href="{$clef}.html" title="$clef">{$clef}</a></li>

EOS;
			}
		}
		$this -> sHtml .= <<<EOS
		</ul>
		</div>

EOS;
	}


	/**
	* méthode publique setContentGeneralFunc
	* crée le contenu pours le fichiers de fonctions
	*/
	public function setContentGeneralFunc ($fileName, $aFunctions) {
		$filepath = 'fonctions/'.$fileName;

		$this -> sHtml .= <<<EOS
		<div class="content">

EOS;
		$this -> sHtml .= <<<EOS
				<span class="name">{$fileName}</span><br /><br />

EOS;
		$sCode = file_get_contents ($filepath);
		$code = highlight_string ($sCode, true);
		$this -> sHtml .= <<<EOS
				<a class="other" href="javascript: void(0);" title="{$this -> oloc -> getMsg ('doc', 'doc_seecode')}" onclick="document.getElementById('code').style.display = (document.getElementById('code').style.display == 'block')?'none':'block';">{$this -> oloc -> getMsg ('doc', 'doc_seecode')}</a><br />
				<div class="code" id="code">{$code}</div><br /><br />

EOS;
		$iNbFuncs = count ($aFunctions);
		$this -> sHtml .= <<<EOS
				<span class="owns">
					<ul>{$this -> oloc -> getMsg ('doc', 'doc_functions')}
						<li>{$iNbFuncs}</li>
					</ul>
				</span><br /><br />

EOS;
		$fp = fopen ($filepath, 'r');
		$cpt = 0;
		while (!feof ($fp)) {
			fgets ($fp);
			$cpt ++;
		}
		fclose ($fp);
		$aInfos = array (
			'size' => round (filesize ($filepath)/1024, 2),
			'lines' => $cpt,
			);
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_parameters')}</span><br />

EOS;
		$this -> sHtml .= <<<EOS
					<span class="parameters"><em>{$this -> oloc -> getMsg ('doc', 'doc_filesize')} : </em>{$aInfos['size']} Ko</span><br />
					<span class="parameters"><em>{$this -> oloc -> getMsg ('doc', 'doc_filelines')} : </em>{$aInfos['lines']}</span><br />

EOS;
		$this -> sHtml .= <<<EOS
					<br />

EOS;
		$this -> sHtml .= <<<EOS
		</div>

EOS;
	}

	/**
	* méthode publique setContentFunctions
	* crée le contenu pour les fonctions
	*/
	public function setContentFunctions (array $aArgs) {
		$this -> sHtml .= <<<EOS
		<div class="content">

EOS;
		if (!empty ($aArgs)) {
		$this -> sHtml .= <<<EOS
				<span class="name">{$aArgs['name']}</span><br /><br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="definition">{$aArgs['type']} function {$aArgs['name']} (
EOS;
		$this -> sHtml .= <<<EOS
			<em class="methodParams">
EOS;
		foreach ($aArgs['parameters'] as $clef => $val) {
			$default = (!empty ($val['default']))?' = '.$val['default']:'';
			$this -> sHtml .= <<<EOS
					{$val['reference']} {$val['array']} {$val['name']} {$default},

EOS;
		}
		if (!empty ($aArgs['parameters'])) {
			$this -> sHtml = substr ($this -> sHtml, 0, strlen ($this -> sHtml) - 4);
		}
		$this -> sHtml .= <<<EOS
		</em>)</span><br /><br />

EOS;
		$code = highlight_string ('<?php'."\r\n".$aArgs['code'].' ?>', true);
		$this -> sHtml .= <<<EOS
				<span class="file">{$this -> oloc -> getMsg ('doc', 'doc_file_def1')} {$aArgs['file']} {$this -> oloc -> getMsg ('doc', 'doc_file_def2')} {$aArgs['startline']} {$this -> oloc -> getMsg ('doc', 'doc_file_def3')} {$aArgs['endline']}</span><br /><br />
				<a class="other" href="javascript: void(0);" title="{$this -> oloc -> getMsg ('doc', 'doc_seecode')}" onclick="document.getElementById('code').style.display = (document.getElementById('code').style.display == 'block')?'none':'block';">{$this -> oloc -> getMsg ('doc', 'doc_seecode')}</a><br />
				<div class="code" id="code">{$code}</div><br /><br />

EOS;
		$returns = '';
		foreach ($aArgs['returns'] as $val) {
			$returns .= '<strong>Returns</strong> <em>'.$val.'</em><br />';
		}
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_returns')}</span><br />
				<span class="returns">{$returns}</span><br /><br />

EOS;
		$params = '';
		foreach ($aArgs['params'] as $val) {
			$params .= '<strong>Param</strong> <em>'.$val.'</em><br />';
		}
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_params')}</span><br />
				<span class="params">{$params}</span><br /><br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_parameters')}</span><br />

EOS;
		foreach ($aArgs['parameters'] as $clef => $val) {
			$default = (!empty ($val['default']))?' = '.$val['default']:'';
			$this -> sHtml .= <<<EOS
					<span class="parameters">{$val['reference']} {$val['array']} {$val['name']} {$default} : ({$val['optional']})</span><br />

EOS;
		}
		$this -> sHtml .= <<<EOS
					<br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_returns_ref')}</span><br />

EOS;
			$this -> sHtml .= <<<EOS
					<span class="parameters">{$aArgs['returnsref']}</span><br /><br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_comments')}</span><br />
				<span class="comments">{$aArgs['comments']}</span><br /><br />

EOS;
		}
		$this -> sHtml .= <<<EOS
		</div>

EOS;
	}

	/**
	* méthode publique setContentGeneral
	* crée le contenu pour les objets
	*/
	public function setContentGeneral (array $aArgs) {
		$this -> sHtml .= <<<EOS
		<div class="content">

EOS;
		if (!empty ($aArgs)) {
		$this -> sHtml .= <<<EOS
				<span class="name">{$aArgs['name']}</span><br /><br />

EOS;
		$parent = '';
		if (!empty ($aArgs['classe'])) {
			$type = $aArgs['classeType'] === 'interface'?'implements':'extends';
			$parent = $type.' <a href="../'.$aArgs['classe'].'/class_'.$aArgs['classe'].'.html" title="'.$aArgs['classe'].'">'.$aArgs['classe'].'</a>';
		}
		$this -> sHtml .= <<<EOS
				<span class="definition">{$aArgs['type']} {$aArgs['final']} {$aArgs['abstract']} {$aArgs['interface']} {$aArgs['name']} $parent</span><br /><br />

EOS;
		if (!empty ($aArgs['code'])) {
			$code = highlight_string ('<?php'."\r\n".$aArgs['code'].' ?>', true);
			$this -> sHtml .= <<<EOS
					<span class="file">{$this -> oloc -> getMsg ('doc', 'doc_file_def1')} {$aArgs['file']} {$this -> oloc -> getMsg ('doc', 'doc_file_def2')} {$aArgs['startline']} {$this -> oloc -> getMsg ('doc', 'doc_file_def3')} {$aArgs['endline']}</span><br /><br/>
					<a class="other" href="javascript: void(0);" title="{$this -> oloc -> getMsg ('doc', 'doc_seecode')}" onclick="document.getElementById('code').style.display = (document.getElementById('code').style.display == 'block')?'none':'block';">{$this -> oloc -> getMsg ('doc', 'doc_seecode')}</a><br />
					<div class="code" id="code">{$code}</div><br /><br />

EOS;
		}
		$this -> sHtml .= <<<EOS
				<span class="owns">
					<ul>{$this -> oloc -> getMsg ('doc', 'doc_methods')}
						<li>{$aArgs['total methods']}</li>
					</ul>
					<ul>{$this -> oloc -> getMsg ('doc', 'doc_properties')}
						<li>{$aArgs['total properties']}</li>
					</ul>
				</span><br /><br />

EOS;
		if (!empty ($aArgs['comments'])) {
			$this -> sHtml .= <<<EOS
					<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_comments')}</span><br />
					<span class="comments">{$aArgs['comments']}</span><br /><br />

EOS;
			}
		}
		$this -> sHtml .= <<<EOS
		</div>

EOS;
	}

	/**
	* méthode publique setContentMethods
	* crée le contenu pour les méthodes
	*/
	public function setContentMethods (array $aArgs) {
		$this -> sHtml .= <<<EOS
		<div class="content">

EOS;
		if (!empty ($aArgs)) {
		$this -> sHtml .= <<<EOS
				<span class="name">{$aArgs['name']}</span><br /><br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="definition">{$aArgs['type']} {$aArgs['final']} {$aArgs['abstract']} {$aArgs['static']} {$aArgs['public']} {$aArgs['private']} {$aArgs['protected']} function {$aArgs['name']} (
EOS;
		$this -> sHtml .= <<<EOS
			<em class="methodParams">
EOS;
		foreach ($aArgs['parameters'] as $clef => $val) {
			$default = (!empty ($val['default']))?' = '.$val['default']:'';
			$this -> sHtml .= <<<EOS
					{$val['reference']} {$val['array']} {$val['name']} {$default},

EOS;
		}
		if (!empty ($aArgs['parameters'])) {
			$this -> sHtml = substr ($this -> sHtml, 0, strlen ($this -> sHtml) - 4);
		}
		$this -> sHtml .= <<<EOS
		</em>) : {$aArgs['constructor']}</span><br /><br />

EOS;
		if (!empty ($aArgs['code'])) {
		$code = highlight_string ('<?php'."\r\n".$aArgs['code'].' ?>', true);
		$this -> sHtml .= <<<EOS
				<span class="file">{$this -> oloc -> getMsg ('doc', 'doc_file_def1')} {$aArgs['file']} {$this -> oloc -> getMsg ('doc', 'doc_file_def2')} {$aArgs['startline']} {$this -> oloc -> getMsg ('doc', 'doc_file_def3')} {$aArgs['endline']}</span><br /><br />
				<a class="other" href="javascript: void(0);" title="{$this -> oloc -> getMsg ('doc', 'doc_seecode')}" onclick="document.getElementById('code').style.display = (document.getElementById('code').style.display == 'block')?'none':'block';">{$this -> oloc -> getMsg ('doc', 'doc_seecode')}</a><br />
				<div class="code" id="code">{$code}</div><br /><br />

EOS;
		}
		if (!empty ($aArgs['returns'])) {
			$returns = '';
			foreach ($aArgs['returns'] as $val) {
				$returns .= '<strong>Returns</strong> <em>'.$val.'</em><br />';
			}
			$this -> sHtml .= <<<EOS
					<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_returns')}</span><br />
					<span class="returns">{$returns}</span><br /><br />

EOS;
		}
		if (!empty ($aArgs['params'])) {
			$params = '';
			foreach ($aArgs['params'] as $val) {
				$params .= '<strong>Param</strong> <em>'.$val.'</em><br />';
			}
			$this -> sHtml .= <<<EOS
					<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_params')}</span><br />
					<span class="params">{$params}</span><br /><br />

EOS;
		}
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_owner')}</span><br />
				<span class="owner"><a href="../{$aArgs['classe']}/class_{$aArgs['classe']}.html" title="{$aArgs['classe']}">{$aArgs['classe']}</a></span><br /><br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_modifiers')}</span><br />
				<span class="modifiers">{$aArgs['modifiers']}</span><br /><br />

EOS;
		if (!empty ($aArgs['parameters'])) {
			$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_parameters')}</span><br />

EOS;
			foreach ($aArgs['parameters'] as $clef => $val) {
				$default = (!empty ($val['default']))?' = '.$val['default']:'';
				$this -> sHtml .= <<<EOS
						<span class="parameters">{$val['reference']} {$val['array']} {$val['name']} {$default} : ({$val['optional']})</span><br />

EOS;
			}
		}
		$this -> sHtml .= <<<EOS
					<br />

EOS;
		if (!empty ($aArgs['comments'])) {
			$this -> sHtml .= <<<EOS
					<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_comments')}</span><br />
					<span class="comments">{$aArgs['comments']}</span><br /><br />

EOS;
		}
		}
		$this -> sHtml .= <<<EOS
		</div>

EOS;
	}

	/**
	* méthode publique setContentProperties
	* crée le contenu pour les propriétés
	*/
	public function setContentProperties (array $aArgs) {
		$this -> sHtml .= <<<EOS
		<div class="content">

EOS;
		if (!empty ($aArgs)) {
		$this -> sHtml .= <<<EOS
				<span class="name">{$aArgs['name']}</span><br /><br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="definition">{$aArgs['static']} {$aArgs['public']} {$aArgs['private']} {$aArgs['protected']} property {$aArgs['name']}</span><br /><br />

EOS;
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_owner')}</span><br />
				<span class="owner"><a href="../{$aArgs['classe']}/class_{$aArgs['classe']}.html" title="{$aArgs['classe']}">{$aArgs['classe']}</a></span><br /><br />

EOS;
		if (!empty ($aArgs['code'])) {
			if (false !== $aArgs['code']) {
				$code = highlight_string ('<?php'."\r\n".$aArgs['code'].' ?>', true);
				$this -> sHtml .= <<<EOS
						<a class="other" href="javascript: void(0);" title="{$this -> oloc -> getMsg ('doc', 'doc_seecode')}" onclick="document.getElementById('code').style.display = (document.getElementById('code').style.display == 'block')?'none':'block';">{$this -> oloc -> getMsg ('doc', 'doc_seecode')}</a><br />
						<div class="code" id="code">{$code}</div><br /><br />

EOS;
			}
		}
		if (!empty ($aArgs['defaultvalue'])) {
			$defaultValue = false !== $aArgs['defaultvalue']?highlight_string ('<?php'."\r\n".$aArgs['defaultvalue'].' ?>', true):'';
			$this -> sHtml .= <<<EOS
					<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_default_value')}</span><br />
					<span class="default">{$aArgs['default']}<br />{$defaultValue}</span><br /><br />

EOS;
		}
		$this -> sHtml .= <<<EOS
				<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_modifiers')}</span><br />
				<span class="modifiers">{$aArgs['modifiers']}</span><br /><br />

EOS;
		if (!empty ($aArgs['comments'])) {
			$this -> sHtml .= <<<EOS
					<span class="label">{$this -> oloc -> getMsg ('doc', 'doc_comments')}</span><br />
					<span class="comments">{$aArgs['comments']}</span><br /><br />

EOS;
		}
		}
		$this -> sHtml .= <<<EOS
		</div>

EOS;
	}

	/**
	* méthode publique magique __toString
	* retourne le code html de la propriété privée sHtml
	*/
	public function __toString () {
		return htmlentities ($this -> sHtml);
	}

	/**
	* méthode publique toFileClass
	* crée le fichier html pour les classes
	*/
	public function toFileClass ($className, $fileName) {
		$loc = $this -> oloc -> getLoc ();
		$fileName = 'class_'.$fileName.'.html';
		if (!is_dir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package)) {
			mkdir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package, 0644);
		}
		if (!is_dir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package.'/'.$className)) {
			mkdir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package.'/'.$className, 0644);
		}
		$fp = fopen (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package.'/'.$className.'/'.$fileName, 'w+');
		fwrite ($fp, $this -> sHtml);
		fclose ($fp);
	}

	/**
	* méthode publique toFileMethProps
	* crée le fichier html pour les méthodes et les propriétés
	*/
	public function toFileMethProps ($className, $fileName) {
		$loc = $this -> oloc -> getLoc ();
		$fileName .= '.html';
		if (!is_dir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package)) {
			mkdir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package, 0644);
		}
		if (!is_dir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package.'/'.$className)) {
			mkdir (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package.'/'.$className, 0644);
		}
		$fp = fopen (self::docDir.'/'.$loc.'/'.self::docClassDir.'/'.$this -> package.'/'.$className.'/'.$fileName, 'w+');
		fwrite ($fp, $this -> sHtml);
		fclose ($fp);
	}


	/**
	* méthode publique toFileFunc
	* crée le fichier html pour les fonctions
	*/
	public function toFileFunc ($funcName, $fileName) {
		$loc = $this -> oloc -> getLoc ();
		$funcName .= '.html';
		if (!is_dir (self::docDir.'/'.$loc.'/'.self::docFuncDir.'/'.$fileName)) {
			mkdir (self::docDir.'/'.$loc.'/'.self::docFuncDir.'/'.$fileName, 0644);
		}
		$fp = fopen (self::docDir.'/'.$loc.'/'.self::docFuncDir.'/'.$fileName.'/'.$funcName, 'w+');
		fwrite ($fp, $this -> sHtml);
		fclose ($fp);
	}



	/**
	* méthode publique setIndex
	* crée le fichier html pour la page d'accueil
	*/
	public function setIndex () {
		$loc = $this -> oloc -> getLoc ();
		$this -> sHtml .= <<<EOS
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
	<link rel="stylesheet" type="text/css" href="../../css/maindoc.css" />
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	</head>
	<body>
	<h2 class="titre">ClassFuncDoc : <em>{$this -> oloc -> getMsg ('gui', 'app_title')}</em></h2>
		<div class="menudoc">
			<div class="clsdoc">
				<ul>{$this -> oloc -> getMsg ('gui', 'app_package_list')}<br /><br />

EOS;
						$aDocs = scandir (self::docDir.'/'.$loc.'/classes');
						foreach ($aDocs as $obj) {
							if ($obj !== '.' && $obj !== '..') {
								$this -> sHtml .= <<<EOS
								<li><a class="other" href="classes/{$obj}/index.html" title="{$this -> oloc -> getMsg ('gui', 'app_doc_about')} {$obj}">{$obj}</a></li>

EOS;
							}
						}
				$this -> sHtml .= <<<EOS
				</ul>
			</div>
			<div class="funcdoc">
				<ul>{$this -> oloc -> getMsg ('gui', 'app_func_list')}<br /><br />

EOS;
						$aDocs = scandir (self::docDir.'/'.$loc.'/fonctions');
						foreach ($aDocs as $func) {
							if ($func !== '.' && $func !== '..') {
								$this -> sHtml .= <<<EOS
								<li><a class="other" href="fonctions/{$func}/{$func}.html" title="{$this -> oloc -> getMsg ('gui', 'app_doc_about')} {$func}">{$func}</a></li>

EOS;
							}
						}
				$this -> sHtml .= <<<EOS
				</ul>
			</div>
		</div>
	</body>
</html>
EOS;
		$this -> saveIndex ();
	}

	/**
	* méthode publique setIndexPack
	* crée le fichier html pour la page d'accueil des packages
	*/
	public function setIndexPack ($aChild) {
		$loc = $this -> oloc -> getLoc ();
		$this -> sHtml .= <<<EOS
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
	<link rel="stylesheet" type="text/css" href="../../../../css/maindoc.css" />
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	</head>
	<body>
	<h2 class="titre">ClassFuncDoc : <em>{$this -> oloc -> getMsg ('gui', 'app_title')}</em></h2>
	<span class="acc"><a class="acc" href="../../index.html" title="{$this -> oloc -> getMsg ('gui', 'gui_home')}">{$this -> oloc -> getMsg ('gui', 'gui_home')}</a></span><br /><br />
		<div class="menudoc">
			<div class="clsdoc">
				<ul>{$this -> oloc -> getMsg ('gui', 'app_class_list')} : {$this -> package}<br /><br />

EOS;
						$aDone = array ();
						$aDocs = scandir (self::docDir.'/'.$loc.'/classes/'.$this -> package.'/');
						foreach ($aDocs as $obj) {
							if ($obj !== '.' && $obj !== '..' && $obj !== 'index.html') {
								if  (empty ($aChild[$obj]['parent'])) {
									$aDone[] = $obj;
									$this -> sHtml .= <<<EOS
									<li><a class="other" href="{$obj}/class_{$obj}.html" title="{$this -> oloc -> getMsg ('gui', 'app_doc_about')} {$obj}">{$obj}</a><ul>

EOS;
									$aDone = array_merge ($aDone, $this -> getArbo ($aChild[$obj]['children'], $aChild));
									$this -> sHtml .= <<<EOS
									</ul></li>

EOS;
								}
							}
						}
				$this -> sHtml .= <<<EOS
				</ul>
			</div>
		</div>
	</body>
</html>
EOS;
		$this -> saveIndexPack ();
	}

	/**
	* méthode privée getArbo
	* crée le diagramme d'héritage d'un package, méthode récursive
	* @Params array aTab : tableau des classes enfants
	* @Params array aChild : tableau complet de la hiérarchie des classes du package
	*/
	private function getArbo ($aTab, $aChild) {
		$aDone = array ();
		foreach ($aTab as $child) {
			$aDone[] = $child;
			$this -> sHtml .= <<<EOS
				<li><a class="other" href="{$child}/class_{$child}.html" title="{$this -> oloc -> getMsg ('gui', 'app_doc_about')} {$child}">{$child}</a>

EOS;
			if (!empty ($aChild[$child]['children'])) {
				$this -> sHtml .= <<<EOS
					<ul>
EOS;

				$aDone = array_merge ($aDone, $this -> getArbo ($aChild[$child]['children'], $aChild));
				$this -> sHtml .= <<<EOS
					</ul>
EOS;
			}
				$this -> sHtml .= <<<EOS
					</li>
EOS;
		}
		return $aDone;
	}

	/**
	* méthode privée saveIndex
	* enregistre la page d'accueil
	*/
	private function saveIndex () {
		$loc = $this -> oloc -> getLoc ();
		$fp = fopen (self::docDir.'/'.$loc.'/index.html', 'w+');
		fwrite ($fp, $this -> sHtml);
		fclose ($fp);
	}

	/**
	* méthode privée saveIndexPack
	* enregistre la page d'accueil
	*/
	private function saveIndexPack () {
		$loc = $this -> oloc -> getLoc ();
		$fp = fopen (self::docDir.'/'.$loc.'/classes/'.$this -> package.'/index.html', 'w+');
		fwrite ($fp, $this -> sHtml);
		fclose ($fp);
	}

	/**
	* méthode publique magique __destruct
	* vide la propriété privée sHtml
	*/
	public function freeHtml () {
		$this -> sHtml = '';
	}
}
?>

 
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2009 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products