Files
ohmj2/Scripts/cadre.php
2009-09-15 21:08:20 +00:00

360 lines
13 KiB
PHP

<?
/***************************************************************************
cadre.php - Classe Cadre
-------------------
begin : Septembre UTC 2000
copyright : (C) 2002 by NADAL Jean-Baptiste
email : jbnadal@ifrance.com
***************************************************************************
*
* Cette hierarchie de classe permet d'afficher des textes
* soit présent sur une base de donnée soit présent dans un fichier.
*
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************
* $Id: cadre.php,v 1.4 2002/11/27 23:56:02 jb Exp $
***************************************************************************/
/* ============================================================= */
/* Classe de base non instanciable pour afficher des cadres.*/
class Cadre {
// =====================================================
// Les Variables
var $szTitreCadre; // titre du cadre
var $szTabTexte; // Tableau contenant le texte du cadre
var $szDateTexte; // date de derniere modification du texte
var $nLongTexte; // longueur du texte
// ========================================
// Constructeur de la classe
function Cadre($titre,$texte, $date)
{
$this->szTitreCadre = $titre;
$this->szTabTexte = $texte;
$this->szDateTexte = $date;
$this->szBgColor = "#eeea9c";
}
// ========================================
function setTitre($titre)
{
$this->szTitreCadre =$titre;
}
// ========================================
function setDate($date)
{
$this->szDateTexte = $date;
}
function SetBgColor($color)
{
$this->szBgColor=$color;
}
// =============================================================
// Fonction permettant d'afficher le cadre
function Affiche($fin=0)
{
// On affiche le bandeau du haut avec le titre et la date
$this->affiche_CadreHaut(true);
// Puis on affiche le texte du cadre
//echo "<div align=\"justify\">\n";
$tablo = explode( "\n", $this->szTabTexte );
foreach ( $tablo as $elem ) {
if ( $this->ChercheChapitre( $elem, false) == false )
echo "$elem\n";
}
// Puis on fini par afficher le bandeau du bas du cadre
if ( $fin == 0)
$this->affiche_CadreBas(true);
}
function ChercheChapitre($szChaine,$admin)
{
// On creer un tablo qui contiendra la chaine coupée
$tablo = array();
$tablo = explode("=", $szChaine );
// puis on enleve les espaces inutile
$PartieGauche = trim ($tablo[0]);
// Puis on regarde si la partie gauche correspond au mot titre
if (strcmp("CHAPITRE",$PartieGauche) == 0) {
// On a trouvé un titre ! on rajoute donc les embelissement
//$this->szTabTexte[$compteur] = $this->CreerChapitre($tablo[1] );
if ( $admin )
$this->szTabTexte .= $this->CreerChapitre($tablo[1] );
else {
$chapitre = $this->CreerChapitre($tablo[1] );
echo "$chapitre\n";
}
return true;
}// fin if
else
return false;
} // fin fonction ChercheChapitre
function CreerChapitre($szTitreChapitre)
{
return "
<table width=\"50%\" bgcolor=\"#5a69a4\" cellpadding=\"0\" cellspacing=\"0\"
border=\"0\"><tr><td>
<table width=\"100%\" cellpadding=\"3\" cellspacing=\"2\" border=\"0\" >
<tr>
<td bgcolor=\"#5b8cc1\" align=\"left\"><font color=\"white\" size=\"2\">
<b> $szTitreChapitre </b></font><br /></td>
</tr></table></td></tr></table><br />
";
}
// =============================================================
// Cette fonction affiche les balises du haut pour afficher le cadre
function affiche_CadreHaut($bAffiche)
{
$szTexte =
"<table cellspacing=\"0\" cellpadding=\"1\" width=\"95%\"
border=\"0\">
<tbody>
<tr>
<td valign=\"middle\" align=\"center\" bgcolor=\"#ffcc99\">
<table cellspacing=\"0\" cellpadding=\"1\" width=\"99%\"
border=\"0\">
<tr valign=\"top\" bgcolor=\"#ffcc99\">
<td align=\"left\" valign=\"middle\"
style=\"background : url(/ohmj/Imgs/raye10.gif)\" >
<font face=\"helvetica,verdana\" color=\"#ffffff\"
size=\"-1\">&nbsp; <b>
$this->szTitreCadre </b> </font>
</td>
<td align=\"right\"
style=\"background : url(/ohmj/Imgs/raye10.gif)\" >
&nbsp;&nbsp;&nbsp;&nbsp;<b>
<font face=\"helvetica,verdana\" color=\"#f4d4b2\"
size=\"-1\" >
[ $this->szDateTexte ]&nbsp;</font> </b> </td>
</tr></table>
</td></tr>
<tr>
<td valign=\"middle\" align=\"center\" bgcolor=\"#f7ad21\">
<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\"
border=\"0\">
<tbody>
<tr>
<td valign=\"top\" align=\"left\" width=\"100%\"
style=\"background : url(/ohmj/Imgs/fond.png)\" >
<br /><br /><div id=\"cadre\">
";
if ( $bAffiche)
echo $szTexte;
else
return $szTexte;
} // fin de la fonction affiche_CadreHaut()
// =============================================================
// Cette fonction affiche le cadre du bas ( en dessous du texte du cadre
function affiche_CadreBas($bAffiche)
{
$szTexte = "</div>
</td></tr></tbody></table></td></tr></tbody></table><br />\n";
if ( $bAffiche)
echo $szTexte;
else
return $szTexte;
} // fin de la fonction affiche_CadreBas()
} // fin de la classe cadre
// =============================================================
// Cette cadre permet d'afficher les textes présents dans une base
// de données.
class CadreBD extends Cadre {
// =====================================================
// Les Variables
var $szTable; // table dont sont tirés les différents paramètres
var $numPage; // numero de la page que l'on veut accéder
// =============================================================
// Constructeur de la classe
function CadreBD($tab,$numP="1")
{
$this->szTable = $tab;
$this->numPage = $numP;
$this->szBgColor = "#eeea9c";
// Puis on se connecte pour récupérer tous les champs qui nous interresse
if ( $tab != "news")
$this->ConnectDB();
}
// =============================================================
// =============================================================
// Cette méthode permet de se connecter sur la base de donnée
// et de recuperer les donnees qui nous interresse
function ConnectDB()
{
global $sql_bdd;
// On se connecte a la base de donnée du site
$connect_db = jb_sql_connect(true);
if ($connect_db != "") {
// On recupere les différents champs qui nous interresse
// Sur la table passé en paramètre du constructeur
$resultat = mysql_db_query($sql_bdd,"select * from $this->szTable where id=$this->numPage",$connect_db);
// On stock le résultat dans les variables de la classe
$this->szTitreCadre = mysql_result($resultat,0,"titre");
$this->szTabTexte = mysql_result($resultat,0,"texte");
$this->szDateTexte = mysql_result($resultat,0,"date");
$result = mysql_close($connect_db);
} // Fin if
return $connect_db;
}
// =============================================================
// Cette méthode permet de retourner un tableau contenant tous les
//
function GetDataDB()
{
// Les variables locales
global $sql_serveur;
global $sql_bdd;
global $sql_user;
global $sql_passwd;
// Fin des variables locales
// On se connecte sur la base du livre d'Or
$connect_db = jb_sql_connect(false);
$resultat = mysql_db_query($sql_bdd,"select * from news",$connect_db);
return $resultat;
}
} // Fin de la classe Cadre BD
// =============================================================
// Cette classe permet d'afficher un article dans un cadre
class CadrePresse extends Cadre {
// =============================================================
// Constructeur de la classe
function CadrePresse($NomDossier,$titre, $date)
{
// on enregistre les paramètres
$this->szFichier = "./presse/$NomDossier/index.html";
$this->szTitreCadre = $titre;
$this->szDateTexte = $date;
$this->szBgColor = "#eeea9c";
} // fin du constructeur
// =============================================================
// Fonction permettant d'afficher le cadre
function Affiche()
{
// On affiche le bandeau du haut avec le titre et la date
$this->affiche_CadreHaut(true);
// Puis on affiche le texte du cadre
require ($this->szFichier );
// Puis on fini par afficher le bandeau du bas du cadre
$this->affiche_CadreBas(true);
} // fin de la fonction Affiche()
} // fin de la classe CadreFichierPresse
// =============================================================
// Cette classe permet d'afficher les textes présents dans un fichier
// Présent sur le serveur
class CadreFichier extends Cadre {
// =====================================================
// Les Variables
var $szNomDossier; // contient le chemin ou est stocké le fichier
// =============================================================
// Constructeur de la classe
function CadreFichier($szNomFichier,$def=1)
{
$this->szBgColor = "#eeea9c";
// On initialise le nom du dossier ou sont sauvé les testes
if ( $def >= 1 )
$this->szNomDossier = "./Textes/";
else
$this->szNomDossier = "./";
//$this->szTabTexte = array();
// On ouvre dans un premier temps le fichier et on extrait les données
$bResultat= $this->OuvreFichier($szNomFichier, $def);
} // Fin du constructeur
// =============================================================
// Cette fonction ouvre le fichier passé en paramètre
// Retourne 1 s'il c'est bien ouvert
// faut sinon
function OuvreFichier($szNomFichier, $action)
{
$bTrouveTitre=0;
$i=0;
// On creer le chemin complet du fichier
$szChemin = "$this->szNomDossier$szNomFichier";
// On récupere la date de dernière modification du fichier
$this->szDateTexte = date( "d/m/Y H:h:i", filemtime( $szChemin) );
// Puis on ouvre
$pFichier = fopen($szChemin,"r");
if ($pFichier == false) {
echo "le fichier n'existe pas et voila";
return 1;
}
while ( feof($pFichier) != 1 ) {
$szLigne = fgets($pFichier,120);
if ($action == 1) {
if ( $bTrouveTitre == 0 ) {
$bresul = $this->ChercheTitre($szLigne);
if ($bresul == 1)
$bTrouveTitre = 1;
} // fin if
else {
if ( $this->ChercheChapitre($szLigne, true) == false )
$this->szTabTexte.= $szLigne;
//$this->szTabTexte[$i] = $szLigne;
$i++;
} // fin else
}
else
$this->szTabTexte.= $szLigne;
} // fin while
$this->nLongTexte = $i;
// Puis on ferme le fichier
fclose ($pFichier);
return 1;
} // fin de la fonction OuvreFichier($szNomFichier)
// =============================================================
// Cette fonction recherche le titre du document. Si elle le trouve
// elle le sauvegarde dans sa variable et retourn 1 . 0 sinon
function ChercheTitre($szChaine )
{
// On creer un tablo qui contiendra la chaine coupée
$tablo = array();
$tablo = explode("=", $szChaine );
// puis on enleve les espaces inutile
$PartieGauche = trim ($tablo[0]);
// Puis on regarde si la partie gauche correspond au mot titre
if (strcmp("TITRE",$PartieGauche) == 0) {
// Si on a trouvé le titre a lors on le sauvegarde
$this->szTitreCadre = $tablo[1];
// puis on retourne 1
return true;
} // fin if
else
// sinon on retourne 0
return false;
}
}
?>