Composants de cette interface
Les classes
Les classes PHP5 suivantes fournissent la logique métier de cette interface :
Source de la classe database
<?php
/**
* Classe de gestion de la base de données SQLite
*
* @author fab
* @since 2006-01-22
*/
class database {
/**
* Chemin vers le fichier de bdd
*
* @var string path
*/
public $SQLiteBase = '/home/hosted/associations/phpworkgroup.org/ftp/www/phpwg';
/**
* Variable de connexion
*
* @var ressource
*/
public $conn = false;
/**
* Connexion unique (non implémentée)
*
* @var ressource
*/
static $singleConn = false;
/**
* Constructeur de la classe
*
*/
public function __construct() {
$this->conn = new SQLiteDatabase($this->SQLiteBase);
// Ajoute une fonction utilisateur a SQLITE, celle ci permet de palier le manque de DATE_FORMAT
$this->conn->createFunction( 'DateFr', 'dateUS2fr',1);
}
/**
* Méthode d'echappement spécifique à la bdd et à la configuration du serveur
*
* @param void $str l'entrée à echapper
* @return void l'entrée echappée
*/
public function SQLescape($str) {
return sqlite_escape_string(stripslashes($str));
}
/**
* Destructeur de la classe
*
*/
public function __destruct() {
}
/**
* Cache SQLite (non implémenté)
*
* @param string $query la requete
* @param int $rebuild force le recalcul du cache
*/
public function cacheQuery($query, $rebuild=0) {
}
}
?>
Les tables SQLite
Cette interface utilise uniquement des bases de données SQLite, voici les tables utilisées :
CREATE TABLE project_users ( id INTEGER AUTOINCREMENT, user VARCHAR , email VARCHAR , firstname VARCHAR , lastname VARCHAR , passhash VARCHAR, controlhash VARCHAR, inscription DATETIME, level INT , description TEXT, PRIMARY KEY(id) )
CREATE TABLE project_lost_pass ( id INTEGER AUTOINCREMENT, user INTEGER , controlhash VARCHAR, modification DATETIME, PRIMARY KEY(id) )
CREATE TABLE pub ( id INTEGER AUTOINCREMENT, nom_site VARCHAR , url_site VARCHAR , description_site VARCHAR, contact_site VARCHAR, url_banniere VARCHAR, url_logo VARCHAR, date_debut DATETIME, date_fin DATETIME, affichages INT, limite_affichages INT, valide INT , PRIMARY KEY(id) )
CREATE TABLE project_faq ( id INTEGER AUTOINCREMENT, question VARCHAR , response VARCHAR , cat INTEGER, valide INT , PRIMARY KEY(id) )
CREATE TABLE project_faq_cat ( id INTEGER AUTOINCREMENT, name VARCHAR , description VARCHAR , PRIMARY KEY(id) )
CREATE TABLE project_files ( id INTEGER AUTOINCREMENT, user VARCHAR , file VARCHAR , directory VARCHAR, add_date DATETIME, hash VARCHAR, valide INT , PRIMARY KEY(id) )
CREATE TABLE old_project_files ( id INTEGER AUTOINCREMENT, user VARCHAR , file VARCHAR , directory VARCHAR, add_date DATETIME, del_date DATETIME, hash VARCHAR, PRIMARY KEY(id) )
CREATE TABLE project_wall ( id INTEGER AUTOINCREMENT, name VARCHAR , add_date DATETIME, description VARCHAR, code TEXT, valide INT , PRIMARY KEY(id) )
