Avant de continuer plus loin avec du code, il nous faut configurer Jelix pour
pouvoir accéder à une base de données et alimenter cette base un minimum. Nous
allons en effet stocker nos news dans une table.
Jelix prend en charge MySQL, PostgreSQL, SQLite et PDO. Par son système de driver,
il est possible d'ajouter d'autres types de bases de données (pour le cas où on ne veuille pas utiliser PDO).
===== Fichier de configuration d'accès =====
L'accès à une base de données est configuré dans le fichier @@actu.org/var/config/profiles.ini.php@@.
Ce fichier regroupe tous les profils de connexion (pour jDb, jKVDb, jCache etc).
Dans ce fichier, on peut spécifier un ou plusieurs profils de connexion, donc
une ou plusieurs connexions, mais il faudra spécifier le type de connexion (ici jDb).
Chaque profil a un nom et est spécifié comme suit :
[jdb:NomProfil]
driver="mysqli" ; nom du driver à utiliser
database="foo" ; nom de la base à utiliser
host= "localhost" ; nom de la machine du serveur de base de données
user= "john" ; utilisateur de connexion
password="doo" ; mot de passe
persistent= on ; indique si la connexion est persistante
; à activer si vous avez des problèmes de caractères bizarres avec vos données :
; force_encoding = on
Mis à part le paramètre driver qui est obligatoire, le reste des paramètres
dépend du driver utilisé. En général, vous aurez toutefois les paramètres
//database//, //host//, //user// et //password//. Changez le contenu de ce
fichier en fonction de votre configuration. Nous prendrons comme nom de profil
"actu.org" par exemple, et nous allons définir ce profil par défaut en
l'indiquant avec le paramètre "default".
[jdb]
; name of the default profile to use for any connection
default = actu.org
[jdb:actu.org]
driver="mysqli"
database="actu"
host= "localhost"
user= "actu"
password="actu"
persistent= on
; à activer si vous avez des problèmes de caractères bizarres avec vos données :
; force_encoding = on
===== Création de la table =====
Dans la base "actu", nous allons maintenant créer une table news. Exécutez ce
script SQL (adaptez-le si vous utilisez une autre base que MySQL)
dans phpmyadmin par exemple :
CREATE TABLE `news` (
`id_news` INT NOT NULL AUTO_INCREMENT ,
`sujet` VARCHAR( 255 ) NOT NULL ,
`texte` TEXT NOT NULL ,
`news_date` DATE NOT NULL ,
PRIMARY KEY ( `id_news` )
);
Et alimentons cette table avec deux news (nous ferons un formulaire plus tard).
INSERT INTO `news` VALUES (1, 'première news',
'Ceci est une première news. In commodo, neque sit amet laoreet accumsan,
neque velit rutrum augue, a fringilla nibh lorem nec est. Cras eleifend eros.
Sed vehicula. Donec vel enim at nunc tincidunt pellentesque. Donec malesuada.
Praesent volutpat orci ut leo. Donec dictum tortor quis odio. Aliquam pulvinar
justo eu eros.',
'2006-01-15');
INSERT INTO `news` VALUES (2, 'Lorem Ipsum',
'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse enim
elit, luctus in, rhoncus quis, facilisis in, nulla. Nam eu dolor vel erat semper
porta. Phasellus pellentesque nulla a urna. Phasellus nonummy diam id risus.
Donec faucibus mi sed nisi. Sed et lectus at ligula scelerisque tempus. Proin
justo nibh, consectetuer porta, accumsan ac, consectetuer id, dui. Morbi at
mi auctor urna elementum convallis. Etiam et massa porta risus imperdiet
ullamcorper. Aenean a metus at tortor ultrices accumsan. Mauris luctus.',
'0000-00-00');
Nous sommes maintenant prêts à utiliser ces données dans notre application.