Location: PHPKode > projects > RCS Man on the Web > RCSManager-0.2/classes/AbstractPage.php
<?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 */

?>
Return current item: RCS Man on the Web