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();
?>
|