par hika - 2005-07-03 11:27:24
crée le 2005-06-28 21:48:45
PHP Gallery Engine
Tout d'abord, c'est quoi Gallery Engine ?
Il s'agit d'un moteur de gestion de galerie photos pour PHP.
Ne vous attendez surtout pas une solution "clé en main". C'est à vous de gérer votre charte graphique.
Ce moteur se présente sous forme d'une classe PHP.
Ses fonctions sont les suivantes :
- Fonction de récupération d'informations d'un dossier, à savoir la liste des fichiers et dossiers ainsi que leurs attributs
- Génération automatique de thumbnails avec gd version 2.
- Système de cache pour les thumbnails
- Gestion de droits d'accès
Pour son utilisation, il y a un fichier de configuration à paramètrer, une base de données avec une table pour la gestion des droits d'accès.
Cette table peut très bien coexister avec les tables de votre base de données, et son nom est paramétrable.
En plus de cela, vous aurez besoin de la class Connect, gérant les accès à la base de données :
- mysql.php pour MySQL
- postgres.php pour PostgreSQL
Ainsi que des fonctions wrapper SQL, db.inc.php
Voici un exemple de fichier de configuration :
<?php
define('GALLERY_ROOT', '/var/bigdata/public/document/photo');
define('GALLERY_CACHE_DIR', '/var/www/wwwphoto/img/cache');
// If false, thumbnail will always be regenerated
// WARNING !!!! Use this with cautious, because memory always be consumed !!!!
// If not defined, cache is used
define('GALLERY_USE_CACHE', true);
define('GALLERY_PARENT_FOLDER_NAME', 'Dossier parent');
// These parameters are regular expressions.
// These only apply to file other than image
define('GALLERY_FILTER_FILENAME', '\.*');
define('GALLERY_DOWNLOADABLE_FILENAME', '\.zip|\.ZIP|\.MOV|\.mov');
define('GALLERY_PRIVILEGE_TABLE', 'gallery_access');
?>
Ce fichier permet de paramètrer :
- le nom du dossier racine des images
- le nom du dossier racine des images qui seront stockée en cache, de préférence un nouveau dossier vide
- l'utilisation du cache ou non
- une expression régulière pour filtrer l'affichage et le téléchargement des fichiers autre que image
- une expression régulière pour n'autoriser le téléchargement que sur les fichiers choisis.
- le nom de la table de base de données, gérant les droits d'accès.
Voici le source de la classe Gallery dans le fichier gallery_engine.inc.php
Voici l'ordre SQL de création de l'unique table, ici pour PostgreSQL :
CREATE TABLE gallery_access
(
privilege_id int4 NOT NULL,
path varchar(255) NOT NULL,
username varchar(50),
permit int2 NOT NULL DEFAULT 0,
visible int2 NOT NULL DEFAULT 1,
inherit int2 NOT NULL DEFAULT 1,
enable int2 NOT NULL DEFAULT 1,
CONSTRAINT privileges_pkey PRIMARY KEY (privilege_id),
CONSTRAINT privileges_path_key UNIQUE ("path", username)
)
WITH OIDS;
Dès que j'aurai plus de temps, une documentation viendrait le jour pour facilement utiliser ce moteur.