360 lines
13 KiB
PHP
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<70>sent sur une base de donn<6E>e soit pr<70>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<75>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<75> 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(/legacy/Imgs/raye10.gif)\" >
|
||
<font face=\"helvetica,verdana\" color=\"#ffffff\"
|
||
size=\"-1\"> <b>
|
||
$this->szTitreCadre </b> </font>
|
||
</td>
|
||
<td align=\"right\"
|
||
style=\"background : url(/legacy/Imgs/raye10.gif)\" >
|
||
<b>
|
||
<font face=\"helvetica,verdana\" color=\"#f4d4b2\"
|
||
size=\"-1\" >
|
||
[ $this->szDateTexte ] </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(/legacy/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<70>sents dans une base
|
||
// de donn<6E>es.
|
||
class CadreBD extends Cadre {
|
||
// =====================================================
|
||
// Les Variables
|
||
var $szTable; // table dont sont tir<69>s les diff<66>rents param<61>tres
|
||
var $numPage; // numero de la page que l'on veut acc<63>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<75>rer tous les champs qui nous interresse
|
||
if ( $tab != "news")
|
||
$this->ConnectDB();
|
||
}
|
||
// =============================================================
|
||
|
||
// =============================================================
|
||
// Cette m<>thode permet de se connecter sur la base de donn<6E>e
|
||
// et de recuperer les donnees qui nous interresse
|
||
function ConnectDB()
|
||
{
|
||
global $sql_bdd;
|
||
|
||
// On se connecte a la base de donn<6E>e du site
|
||
$connect_db = jb_sql_connect(true);
|
||
|
||
if ($connect_db != "") {
|
||
// On recupere les diff<66>rents champs qui nous interresse
|
||
// Sur la table pass<73> en param<61>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<61>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<70>sents dans un fichier
|
||
// Pr<50>sent sur le serveur
|
||
class CadreFichier extends Cadre {
|
||
// =====================================================
|
||
// Les Variables
|
||
var $szNomDossier; // contient le chemin ou est stock<63> le fichier
|
||
|
||
// =============================================================
|
||
// Constructeur de la classe
|
||
function CadreFichier($szNomFichier,$def=1)
|
||
{
|
||
$this->szBgColor = "#eeea9c";
|
||
// On initialise le nom du dossier ou sont sauv<75> 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<6E>es
|
||
$bResultat= $this->OuvreFichier($szNomFichier, $def);
|
||
} // Fin du constructeur
|
||
|
||
// =============================================================
|
||
// Cette fonction ouvre le fichier pass<73> en param<61>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<6E>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<75>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<75> 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;
|
||
}
|
||
}
|
||
|
||
?>
|