Livre d’or avec Dream MX

Voici comment créer facilement un livre d’or en PHP pour votre site sans (presque) avoir à mettre le nez dans le code. C’est le script que j’ai mis en place ici : http://lherbeenzik.ultimteam.com/forum.php. Ce tutorial est la bonne occasion d’aborder plusieurs notions et fonctions de Dreamweaver (insertion de données, gestion de l’affichage, optimisation de l’affichage…)

Création du jeu d’enregistrements

D’abord, créez une table dans votre base de donnée, nommée par exemple messages, qui contient une clé primaire id, un titre, le contenu du message, l’auteur et la date. Vous pouvez bien sûr ajouter ou supprimer des champs selon vos désirs, nous allons développer l’exemple à partir de cette table en sql :

CREATE TABLE message (
id int(20) NOT NULL auto_increment,
titre varchar(255) NOT NULL default  »,
message text NOT NULL,
auteur varchar(100) NOT NULL default  »,
date date NOT NULL default ’0000-00-00′,
PRIMARY KEY (id)
) TYPE=MyISAM;

Vous pouvez copier-coller le code dans phpMyAdmin pour vous simplifier la tâche.

Comme toujours au départ, nous allons créer un jeu d’enregistrement, depuis la palette application. Si vous ne savez pas encore créer de connexion et de jeu d’enregistrements, faites d’abord le tutorial :

Application dynamique

1.jpg

Refaites le jeu d’enregistrement de l’image, en choisissant donc la table message, avec tous les champs, même si l’id ne vous sera pas utile. Ne placez pas de filtre (WHERE) mais triez par id décroissant, ce qui affichera vos messages les plus récents en tête.

Début d’affichage du livre d’or

Ensuite, nous allons commencer à afficher le livre d’or. Pour débuter, construisez un tableau type qui accueillera chacun de vos messages. Voici un exemple que ce que vous pouvez faire.

TITRE posté le DATE par AUTEUR
MESSAGE

Définissez bien la mise en page de votre tableau au préalable car si vous devez y retoucher ensuite, cela vous posera certainement beaucoup de problèmes.

Ensuite, très simplement, sélectionnez l’endroit où placer votre titre, cliquez sur l’onglet application de la palette insertion et cliquez sur Texte dynamique, symbolisé par ce bouton :

Cette fenêtre s’ouvre :

Dans votre jeu d’enregistrement s’affiche tous les champs que vous avez selectionnés. Cliquez sur titre, sans spécifier de format. Remarquez par ailleurs que le code correspondant s’affiche en bas. Il est toujours construit comme ça par Dreamweaver. Les variables des requètes sont de la forme $row_nomdujeudenregistrement['champselectionné']

Cliquez ensuite sur OK et à l’endroit sélectionné dans votre tableau s’affiche {messages.titre}. Cela signifie dans Dreamweaver que le champ titre du jeu d’enregistrement messages va s’afficher à cet endroit.

Faites de même avec les autres valeurs : date, auteur et message à leur place respective. Malheureusement, la date ne s’affiche pas dans le format français de cette manière. Pour améliorer ça, téléchargez l’extension Mysql Date Fr de Jean-Luc, elle permet de la même manière que les textes dynamiques d’afficher la date, mais avec la bonne forme (JJ-MM-AAAA).{mospagebreak}

Région répétée : afficher tous les messages

Maintenant, il faut pouvoir afficher tous les messages du livre d’or, car à ce stade, seul le dernier message va s’afficher. Sélectionnez avec la souris toutes les cellules du tableau en faisant attention de ne pas sélectionner le tableau en entier. Si vous avez des difficultés à sélectionner les cellules, placez la souris dans une cellule qui est dans un coin du tableau, cliquez et glissez vers le coin opposé.

Ensuite, lorsque les cellules sont selectionnées, allez dans la palette application, cliquez sur le [+] pour ouvrir le menu déroulant et choisissez région répétée.

Cette fenêtre s’ouvre :

Elle vous permet de régler le nombre de messages que vous afficherez par page. Nous allons laisser le choix par défaut de 10 pour notre exemple mais ça n’a pas d’importance.

Cliquez sur OK, un petit onglet Répéter s’affiche au coin de votre tableau. Si vous n’avez pas sélectionné Afficher tous les enregistrements, maintenant le problème est qu’on ne pourra en voir que 10. Il nous suffit donc dans la palette  Insertion > Application > Barre de navigation du jeu d’enregistrement. Placez la barre de navigation où vous le voulez, avant ou après les messages et décidez si vous voulez afficher cette barre en texte ou en image.

Formulaire d’insertion des messages

Maintenant, vous pourrez afficher tous les messages. Mais on ne peut pas encore en écrire.

Pour permettre cela, on va créer un formulaire. Par simplicité pour l’exercice, nous allons le créer dans la même page. Pensez de nouveau tout de suite à sa mise en page, pour éviter les problèmes. Une astuce par exemple : avant même d’ajouter les champs de formulaire, cliquez sur insertion > formulaires > insérer un formulaire. Créez ensuite seulement un tableau de 2 cellules sur la largeur et du nombre de vos champs à remplir pour la hauteur + 1 à l’intérieur du tableau, la cellule supplémentaire servant à accueillir le bouton de validation.

Ensuite à gauche du tableau par exemple, renseignez les vignettes des champs à remplir et à droite, insérez les champs texte de formulaire. Inutile de créer un champ texte pour la date, nous allons faire en sorte qu’elle s’insére automatiquement à la date du jour. Pour cela, à la place d’un champ de texte, placez un champ masqué. Pensez à bien renseigner le nom de vos champs de formulaire, si possible avec le même nom que la table, donc ici : date, auteur, titre, message : Dreamweaver les reconnaitra automatiquement ensuite.

En ce qui concerne la date, placez ce minuscule bout de code avant la balise <html>, en faisant attention de ne pas l’insérer à l’intérieur d’une balise PHP :

<?php $maintenant = date(« Y-m-d »); ?>

C’est en fait l’utilisation très simple d’une fonction prédéfinie de PHP qui donne la date actuelle, elle est écrite dans la variable $maintenant.

Ensuite, selectionnez le champ masqué date dans le formulaire et dans la palette propriétés, dans le champ Valeur, renseignez :

<?php echo $maintenant; ?>

Cela écrira la valeur de la date actuelle dans ce champ. Rajoutez également un champ masqué nommé id sans valeur. En effet, comme ce champ dans la base s’auto-incrémente à chaque ajout, nous n’avons pas besoin de renseigner de numéro.

Dernière chose à faire sur ce point : créer l’insertion dans la base de donnée. Pour cela, Application > [+] > Insérer un enregistrement. La fenêtre correspondante s’ouvre :

Réglez vos paramètres de connexion et de table. Ensuite, si vous avez bien renseigné vos noms de champ dans le formulaire, Dreamweaver les reconnait et les affiche déjà. Vérifiez tout de même à chaque fois si vous n’avez pas fait d’erreur, dans ce cas, corrigez et faites correspondre les champs de formulaire avec les bons champs de votre table. Vous pouvez ensuite préciser la page vers laquelle vos visiteurs seront redirigés après l’insertion de leur message. Si vous laissez ce champ vide, le retour se fera sur la même page.

Quelques options supplémentaires

Un dernier petit effort pour optimiser votre livre d’or : afficher un message tant qu’il n’y a pas de messages dans le livre d’or. Pour cela, selectionnez le tableau des messages et la barre de navigation, cliquez sur Application > afficher la région > afficher la région si le jeu d’enregistrement n’est pas vide. A  partir de là, vous êtes sûr que le tableau ne sera affiché que s’il y a des messages. Ensuite, placez-vous ailleurs dans la page, tapez une phrase comme « Il n’y a pas encore de message dans ce livre d’or, vous pouvez m’en laisser un. » Ensuite sélectionnez cette phrase et faites la manipulation inverse, c’est-à-dire : Application > afficher la région > afficher la région si le jeu d’enregistrement est vide.

Voilà tout ce qu’il vous faut normalement pour faire un livre d’or complet.

Pour plus d’informations concernant ce module, n’hésitez pas à me contacter. D’ailleurs si ce module vous a plu et que vous l’utilisez, merci de me prévenir, ça fait toujours plaisir. ;) Cependant, merci de ne pas manifester votre enthousiasme dans le livre de d’or d’exemple.

3 réponses Souscrire aux commentaires


  1. formation

    Bonjour,

    Merci pour tout ce que vous faites. Je voudrais savoir si vous pouvez me donner une formation particulière.

    J’attends votre réponse

    01 juin 2009 @ 15:17


  2. le champenois

    Merci pour ces bons tuttoriaux , j’en est appris beaucoup
    Merci
    @peluche
    Le Champenois

    31 mar 2011 @ 21:13


  3. le champenois

    par contre j’ai soucis , quand je rafraichi la page ca remet le message en double …

    31 mar 2011 @ 21:19

Répondre