Réalisation d'un site avec eGipe
Ce document décrit les étapes nécessaires à la réalisation d'un site internet avec eGipe
Installation et configuration d'eGipe
Pré-requis
L'installation d'eGipe nécessite d'avoir un serveur web Http Apache 2 (avec le module url_rewrite) et supérieur, PHP 5 et supérieur et MySQL 4 et supérieur. Le paramètre ini_path du fichier php.ini doit pointer sur l'api d'eGipe.
Déclaration du site pour Apache
Pour chaque site à créer, vous devez définir un virtual-host dans le fichier httpd.conf.
<VirtualHost 10.0.0.3:80>
ServerName europoiseaux.gaesys.com
DocumentRoot /egipe/domains/europoiseaux
RewriteEngine on
RewriteOptions inherit
php_admin_value include_path /egipe/api
Alias /services /egipe/api/services
<Directory "/egipe/domains/europoiseaux">
allow from all
order allow,deny
</Directory>
</VirtualHost>
Les 3 premières directives indique les règles de réécriture nécessaire au fonctionnement correct d'eGipe. Les directives ServerName et DocumentRoot définissent le nom du serveur de la répertoire principal des documents du site. La directive suivante définit l'accès par PHP à l'api eGipe. La directive Alias permet l'accès aux services d'eGipe pour la site (thumbnail, fir...). Le groupe Directory indique les droits d'accès au répertoire définit par DocumentRoot.
Création de la base de données liée au site
Il est nécessaire, pour permetre la gestion des utilisateurs de créer une base de données contenant un table utilisateur. Cette base peut être unique pour le site ou liées à plusieurs sites. La table utilisateur nécessaire se nomme "_user" et a la structure suivante :
CREATE TABLE `_users` (
`reference` int(11) NOT NULL auto_increment,
`user` varchar(60) NOT NULL default \'\',
`password` varchar(32) NOT NULL default \'\',
`pseudonyme` varchar(50) NOT NULL default \'\',
`groupe` enum(\'Administrateur\',\'Membre Actif\',\'Membre\') NOT NULL default \'Membre\',
`presentation` longtext,
`image` varchar(60) default NULL,
`logged` tinyint(1) NOT NULL default \'0\',
`start` datetime default NULL,
PRIMARY KEY (`reference`),
UNIQUE KEY `email` (`user`)
)
Configuration du site
Description XML de la base de données
Fichier de description
Chaque table doit avoir une description XML afin d'être correctement utilisé par l'api. Cette description XML de la base de donnée permet d'implémenter des fonctions relationnelles dans la base de données.
<database name="europoiseaux" xmlns="http://www.gaesys.com/schemas-db">
<table name="_users">
<field name="reference" type="integer" use="uid"/>
<field name="user" type="email" use="required"/>
<field name="password" type="password" use="required"/>
<field name="pseudonyme" type="string" length="50" use="required"/>
<field name="groupe" type="string" use="required" default="Membre">
<restriction>
<enumeration value="Administrateur"/>
<enumeration value="Membre actif"/>
<enumeration value="Membre"/>
</restriction>
</field>
<field name="presentation" type="xmlfragment"/>
<field name="image" type="string" length="60" use="required"/>
<field name="logged" type="boolean" use="required" default="0"/>
<field name="start" type="date" use="optional"/>
</table>
</database>
la balise parente "database" a un argument "name" correspondant à la base de donnée MySQL.
Chaque table de la base de données doit avoir une définition indiquée par la balise "table" avec comme argument "name" correspondant au nom de la table.
Pour chaque champs de la table on crée une balise "field" avec comme arguments :
- name : nom du champs (obligatoire)
- type : type de champs (obligatoire, peut contenir : integer,string,boolean,date,xmlfragment et certains type étendus comme email,password, ou fkey pour indiquer une clef étrangère)
- use : indique l'utilisation du champs (obligatoire, peut contenir : uid, required, optional)
- length : taille du champs (facultatif)
- default : valeur par défaut (facultatif)
Précision sur la définition des types et l'utilisation de "use"
Le type "fkey"
Le type "fkey" permet de définir une relation étrangère vers une autre table de la base de données. L'utilisation de ce type rend obligatoire l'ajout d'un attribut "table" à la balise "field" indiquant le nom de la table mise en relation
L'attribut "use"
L'attribut "use" définit si un champs est facultatif ou obligatoire. De plus l'indication "uid" dans "use" indique que ce champs est une clef primaire.
Utilisation des restrictions
La balise restriction indique les restriction sur les valeurs possible du champs. Un champ de type 'enum' dans la table doit être indiqué ici à l'aide de la séquence restriction/enumeration.
Les restrictions sont similaires à celles des schemas XSD, et DOIVENT implementer les mêmes possibilités.
Description XML du site (WUL)
Le langage WUL est une description en XML de l'interface utilisateur pour des applications web.
Les différentes fonctionnalités d'une description wul sont :
- La gestion complète de l'arborescence du site.
- La gestion indépendante de la charte graphique commune à toutes les pages.
- Un ensemble d'objet simplifiant l'écriture de différentes fonctionnalités comme les formulaires.
<?xml version="1.0" encoding="utf-8"?>
<site xmlns="http://www.gaesys.com/schemas"
xmlns:html="http://www.w3.org/1999/xhtml"
xml:lang="fr"
id="site"
label="Mon site web">
<root-directory>
<index>
<head>
<title>Accueil du site</title>
</head>
<body>
<html:h1>Page d\'index du site</html:h1>
</body>
</index>
</root-directory>
<site>