TUTORIEL PHP 
PHP : construire un wiki
La dernière application à la mode est aussi l'un des plus formidables outils de documentation collaborative. Le JDN Développeurs vous en présente sa version. (29/04/2004)

  1. Intro | 2. L'objet Wiki
3. Les dernières fonctions

Dernière trouvaille des logiciels collaboratifs, le Wiki permet de créer de manière collaborative un nombre quasi-illimité de pages sur autant de sujet, à partir d'une interface Web accessible à tous.

Dans le monde du Wiki, "accessible" à tous n'est jamais dit à la légère : en échange parfois (mais pas toujours) d'une inscription rapide, chacun peut créer une page sur un site de type Wiki, et modifier les pages des autres. Ainsi, un texte écrit hier par une personne peut très bien avoir été totalement revu et corrigé par d'autres personnes au cours de la nuit, et ne plus ressembler que vaguement à l'original.
C'est là un exemple extrême, mais le fait est le Wiki reconnaît la possibilité du vandalisme, et s'en protège en stockant chaque version d'une page, avec possibilité de récupérer le contenu d'une version précédente en cas de WikiVandalisme.

Caractéristiques
Les sites de types Wiki répondent pour la plupart (à quelques exceptions près) à une poignée de principes :
- Tout le monde peut modifier toutes les pages
- Il n'est pas nécessaire connaître HTML pour créer une page
- Une page modifiée est immédiatement publiée
- Un lien vers une autre page peut être créé automatiquement avec les MotWiki

Ce sont là quelques-unes des bases que nous allons tenter d'implémenter dans notre programme. D'autres caractéristiques se retrouvent chez les wikis plus travaillés, comme un moteur de recherche, un comparateur de versions cote à cote, des retroliens (afficher les pages qui lient à la page en cours), une page listant les dernières pages modifiées ou créées, un test de concurrence (empêcher qu'une page soit modifiée en même temps par deux personnes)... Pour le moment, nous n'aborderons pas ces sujets.

Mise en place
Nous allons pimenter notre projet en du XHTML 1.0 Strict, et l'objet de PHP4. Le contenu de notre wiki s'affichera dans un modèle donc très simple, de cette forme :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <title>JDNWiki</title>
  </head>
  <body>
// notre contenu...
  </body>
</html>


Nous construisons donc notre wiki à partir d'un objet Wiki, auquel nous donnerons les méthodes nécessaires.
Notre base MySQL sera configurée de la sorte :

CREATE TABLE `jdnwiki` (
  `id` int(11) NOT NULL auto_increment,
  `titre` varchar(255) NOT NULL default '',
  `contenu` text NOT NULL,
  `date` varchar(255) default NULL,
  `auteur` varchar(255) NOT NULL default '',
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
  )


  Forum

Réagissez dans les forums de JDN Développeurs

Les champs "titre" et "contenu" sont explicites. "date" et "auteur" nous permettrons d'une part de trouver la dernière version, et de l'autre son auteur. "id", pour sa part, servira dans le cas extrême où deux personnes ont modifié la même page à la même seconde (nous n'avons pas de système pour prévenir cela pour le moment).

Notre objet wiki sera appelé à chaque chargement de la page : voici comme se défini notre contenu au sein du XHTML :

<?
$wiki = new wiki();
$wiki->affichage();
?>

  1. Intro | 2. L'objet Wiki
3. Les dernières fonctions

 

 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page