Les dernières fonctions
chargePage() est des plus
simples :
function chargePage($titre)
{
$sql = "SELECT * FROM $this->tabl WHERE titre='$titre'
ORDER BY date DESC LIMIT 1;";
$rsql = mysql_query($sql);
if (mysql_num_rows($rsql) == 0)
{
$this->date = -1;
}
else
{
$this->titre = mysql_result($rsql,
0, "titre");
$this->contenu = mysql_result($rsql,
0, "contenu");
$this->auteur = mysql_result($rsql,
0, "auteur");
$this->date = mysql_result($rsql,
0, "date");
}
}
Idem pour sauvePage() :
function sauvePage()
{
$this->titre = $_REQUEST['titre'];
$this->contenu = $_REQUEST['contenu'];
$this->auteur = $_REQUEST['auteur'];
$this->date = $_REQUEST['date'];
$sql = "INSERT INTO $this->tabl (titre, contenu,
auteur, date) ";
$sql .= "VALUES ('$this->titre', '$this->contenu',
'$this->auteur', '$this->date');";
if (mysql_query($sql))
{
$this->affichePage($this->titre);
}
else
{
$this->date = -1;
}
}
Ces deux fonctions ne diffèrent pas trop de ce que
l'on trouve dans notre article "Utiliser
l'Objet de PHP pour gérer sa base de données".
wiki2html()
est autrement plus intéressante, car il s'agit là
du coeur du système Wiki. Celui repose sur le fait
que l'on peut mettre en page un contenu sans connaître
HTML, et créer des pages simplement en créant
un lien vers elles... Notre fonction récupère
donc le contenu de la page affichée, et convertit certaines
combinaison de caractères en code HTML. Pour notre
exemple :
"http:gkjnfkgjn.com" donne "<a
href="gkjnfkgjn.com">gkjnfkgjn.com</a>"
"MonWikiTralala" donne "<a href="?titre=MonWikiTralala&mode=lecture">MonWikiTralala</a>"
"lapon@lapin.net" donne "<a href="mailto:lapon@lapin.net">lapin@lapin.net</a>"
Deux retours à la ligne donnent "<br
/>"
Trois tirets donnent "<hr />"
function wiki2html($chaine)
{
$chaine = preg_replace(
array(
"/(http:[^ \n]*)/",
"/(([A-Z][a-z]+){2,})/",
"/ ?([^@\s]+@([-a-z0-9]+\.)+[a-z]{2,})
?/",
"/\n+/",
"/-{3}/",
),
array(
'<a href="\1">\1</a>',
'<a href="?titre=\1&mode=lecture">\1</a>',
'<a href="mailto:\1">\1</a>',
'<br/>',
'<hr/>',
),
$chaine);
return $chaine;
}
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Nous aurions aussi pu passer par la bibliothèque wiki2html
de Olivier Meunier... Nous vous invitons à essayer
de l'intégrer à la place de notre propre fonction,
et même à ajouter les autres fonctionnalités
wiki que nous n'avons pas abordées...
Voici notre code source.
|