PHPWorkGroup

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)
)

Autres

 
Bannière publicitaire