<?php
/**
* $Id$
* $Log$
*/
/****************************************************************************************
*
* Cette classe est la représentation générale d'une page WEB de cette application
* Interface:
* AbstractPage(String $name, String $head, String $body, Array $argv) Constructeur
* boolean makeHtmlHeader()
* boolean makeHtmlBody()
* void out()
*
***************************************************************************************/
Class AbstractPage
{
/**
* Nom ou titre de la page
*/
var $_name;
/**
* objet XTemplate du fichier XTPL contenant les en-têtes
*/
var $_head;
/**
* objet XTemplate du fichier XTPL contenant le corps de pages
*/
var $_body;
/**
* Paramètre de la page
* "sheet" => fichier CSS à utiliser
* "headerfile" => fichier contenant les entetes html
*
*/
var $_argv;
/**
* Constructeur de la classe
* @param $name nom de la page
* @param $head fichier d'en-tete xtpl
* @param $head fichier xtpl du corps de page
* @param $argv argument de l'URL
*/
function AbstractPage($name, $body = false, $argv = false)
{
$this->_name = $name;
$this->_argv = $argv;
if($this->_argv)
if($this->_argv[headerfile])
$this->_head = new XTemplate($this->_argv[headerfile]);
if($body)
$this->_body = new XTemplate($body);
}/* AbstractPage() */
/**
* Génère les en-tetes html
*/
function makeHtmlHeader()
{
if(!$this->_head)
return(false);
if($this->_argv["sheet"])
$this->_head->assign("StyleSheetFile", CssLOCATION . $this->_argv["sheet"]);
else
$this->_head->assign("MaskSheet", "!--");
$this->_head->assign("title", $this->_name);
$this->_head->assign("baseurl", BASE_url);
return(true);
}/* makeHtmlHeader() */
/**
* Génère le corps de la page html
*/
function makeHtmlBody()
{
return($this->_body != false);
}/* makeHtmlBody() */
/**
* Transmet la page vers le navigateur
*/
function out()
{
if($this->makeHtmlHeader())
{
$this->_head->parse("main.html_header");
$this->_head->out("main.html_header");
$this->makeHtmlBody();
$this->_head->parse("main.html_footer");
$this->_head->out("main.html_footer");
}else
$this->makeHtmlBody();
}/* out() */
}/* Class AbstractPage */
?>