Copyrights 2003 - Matthias de Jouvencel

The free and easy-to-use content manager ...

LemonData Tequilla
V1.0 - 06.03.2003 - Matthias de Jouvencel

Qu'est-ce que c'est ?

Tequilla est un système de content management simple pour gérer un site web en séparant le contenu de la présentation visuelles des pages. Ainsi tout le contenu des pages d'un site développé avec le système LemonData Tequilla est enregistré dans une base de données MySQL. Le design ou les maquettes sont quant à elles, représentées par des fichiers HTML dépourvus de données.

A quoi ca sert ?

C'est très simple, si toutes vos pages sont dans une base de données et que vous disposez de deux, trois templates par type de page (article, test, cv, récit ...) vous pourrez modifier la présentation de votre site en modifiant simplement ces deux trois fichiers via votre éditeur préféré (Dreamweaver par exemple), les transférer en template sur le serveur où est installé Tequilla et toutes vos pages du site seront modifiées automatiquement. Pas mal non ?

Les avantages du système sont :

  • L'utilisation des technologies gratuites les plus répandues, à savoir une base de données MySQL et le langage PHP. Ainsi il est possible d'héberger gratuitement le système sur des providers aussi populaires que Free.fr !
  • Tout est à installer sur un serveur web, rien du côté client, tout peut se faire avec n'importe quel navigateur web (internet explorer) sur n'importe quelle plateforme : client ultra léger et cross-plateforme !

Comment ca marche ?

Chaque page du site est construite en deux parties :

  • Un ou plusieurs enregistrements dans une table de la base de données MySQL pour stocker le contenu de la page.
  • Un fichier HTML contenant des balises spéciales LemonData de la forme [@colonne_donnée@] destinées à recevoir la valeur des colonnes des tables contenant les données de la page web : c'est le template.

Chaque page du site est ensuite appelée via une seule page : engine.php suivi de la requête SQL et du template à utliser. Ce programme php est le coeur du système, il va exécuter la requête passée en paramètre puis charger le template pour construire dynamiquement la page web à partir des informations réccupérées dans la base de données.

Configuration requise

Serveur web supportant PHP3 et MySQL.
Client graphique (navigateur sous Windows, X-Windows, MacOS ...)

Paramétrage du système

Quatre programmes php à copier sur votre serveur web :

engine.php3 le coeur du système
admin.php3 un gestionnaire de base de donnée web, il vous permettra de définir le contenu des pages de votre site de manière simple
add_template.php3 ce programme transforme les pages HTML représentant vos template en fichier .tpl exploitables par le système Tequilla
conf.php3 il contient vos mots de passes d'accès à la base de données, des données sur la localisation des répertoires et sur les tables par défaut de l'outil d'admin

ATTENTION : Il faut veiller à bien donner les droits de lecture et éxécution à tout le monde sur ces fichiers une fois copiés sur le serveur web.

Les fichiers admin.php3 et add_template.php3 doivent se situer dans un sous-répertoire donc l'accès est protégé (par un fichier .htaccess par exemple sur les serveur Apache), afin que personne d'autre que vous ne puisse modifier les données de votre site web.

Conception et transfert des templates

Présentation de l'outil TequillaTemplate

Ce programme permet d'uploader ses templates à l'état de fichiers HTML sur le serveur web en les transformant au passage en fichier .tpl afin de pouvoir être utilisés par le système.

Création d'un fichier HTML avec des balises spéciales pour les champs dynamiques

Utiliser un éditeur comme dreamweaver pour "dessiner" une page web générique, pouvant être utilisé pour plusieurs pages de votre site. Créer des balises [@nom_colonne@] pour définir l'endroit où vous souhaitez voir appraître les données stockées dans la colonne de la table de la base de données contenant le contenu des pages utilisant ce template.

Sur l'exemple ci-dessous un template pour des pages de type "Test de jeu vidéo" et entre les balises [@xxx@] les colonnes d'une table de la base de données.

Transfert du fichier HTML pour le traduire en template .tpl

Le bouton "parcourir" ouvre une fenêtre permettant de choisir le fichier HTML sur votre disque-dur que vous voulez transférer et transformer en template Tequilla. Une fois le fichier selectionné cliquez sur "Transférer" pour l'envoyer sur le serveur web. Votre fichier sera alors transformé en .tpl et toutes vos balises [@donnée@] seront remplacés par du code PHP afin de pouvoir être utilisé par le système.

La liste des templates déjà transférés et utilisables pour vos pages web s'affiche dans la deuxième partie de la page.

Administration de la base de données

Présentation de l'outil TequillaAdmin

Consulter des enregistrements

La table de la base de données parcourue peut être modifiée via la liste de valeurs du haut de page. Les boutons Précedent et Suivant sont ensuite utiliser pour parcourir les enregistrements séquentiellement, dans l'ordre de leur création.

Nouveau/Modifier/Insérer

Le bouton Nouveau vide tous les champs pour pouvoir saisir un nouvel enregistrement.

Le bouton Modifier permet de mettre à jour l'enregistrement affiché.

Le bouton Insérer permet d'utiliser des informations déjà saisies dans l'enregistrement courant pour en créer un nouveau. C'est aussi ce bouton qui doit être choisi pour enregistrer un nouvel enregistrement.

Les précédentes valeurs déjà saisies dans les précédents enregistrements d'une table sont accessibles via les listes de valeurs affichés à droite des champs textes.

Supprimer

Supprime l'enregistrement affiché à l'écran de la base de données. ATTENTION : action irréversible.

Construction dynamique des page web

Syntaxe des adresses pour construire les pages dynamiques

engine.php3?&Tx=table&Sx=template(sans extension)&Cx=condition(clause where)&Ox=ordre(clause order by)

Paramètre
Signification
t(xx) Table contenant les données de la page web à construire dynamiquement
s(xx) Style (template) à utiliser pour la présentation (fichiers .tpl)
c(xx) Condition, correspond à la clause WHERE de la requête SQL (MySQL)
o(xx) Ordre (trier), correspond à la clause ORDER BY de la requpete SQL (MySQL)

Les numéros de template (t), style (s) et condition (c) doivent correspondre à une même page.

IMPORTANT : tous les liens vers des pages dynamiques à l'intérieur de votre site doivent utiliser cette syntaxe.

Remarque : si il n'y a pas de conditions tous les enregistrements seront lus et affichés avec le template choisi.

Exemple 1 : une table, un template

lemon/engine.php3?t1=test&s1=test&c1=idpage="TESTXBOX"

Affiche le template "test.tpl" en effectutant une requête sur la table "test" : select * from test where id_page = "TESTXBOX".

Exemple 2 : plusieurs tables, plusieurs templates

Si plusieurs associations template/table sont spécifiées, les différentes pages construites seront regroupées pour constituer une seule page web dynamique.

../lemon/engine.php3?t1=cv_civil&s1=cv_civil&t2=cv_skill&s2=cv_skill&s3=cv_titre_exp&t4=cv_exp&s4=cv_exp&
o4=annees desc &s5=cv_titre_school&t6=cv_school&s6=cv_school"

Construit un cv :

- bloc 1 : utilise la table cv_civil et le template cv_civil.tpl pour afficher l'état civil dynamiquement.

- bloc 2 : utilise la table cv_skill et le template cv_skill.tpl pour afficher les compétences, comme il n'y a pas de condition, tous les enregistrements de la table cv_skill seront affichés avec le template cv_skill.

- bloc 3 : utilise uniquement le template cv_titre_exp.tpl sans aucune donnée pour afficher un titre statique afin de séparer deux blocs du CV.

- bloc 4 : utilise la table cv_exp et le template cv_exp.tpl pour afficher les expériences professionnelss, comme il n'y a pas de condition, tous les enregistrements de la table cv_exp seront affichés avec le template cv_exp mais le o4 spécifie un tri par années.

- bloc 5 : utilise uniquement le template cv_titre_school.tpl sans aucune donnée pour afficher un titre statique afin de séparer deux blocs du CV.

- bloc 6 : utilise la table cv_school et le template cv_school.tpl pour afficher les établissements scolaires fréquentés, comme il n'y a pas de condition, tous les enregistrements de la table cv_school seront affichés avec le template cv_school.

Ces deux exemples sont consultables sur http://matthias.fr.st.