Journal d'une création
Lancement de la création de cette page de nouvelles. Fatigué de chercher des scripts tout faits que je pourrais adapter à mes besoins, fatigué surtout par le fait que tous les scripts que j'ai récolté avaient tous sans exceptions un problème de fonctionnement dans leur forme originale, j'ai décidé de concevoir moi-même.
C'est le début d'une aventure. Cette page de nouvelles relatera les étapes de l'évolution. Le script en cours d'élaboration: un forum de petite taille facilement gérable et intégrable. Au départ, le besoin que j'ai est un forum à accès limité, réservé aux membres inscrits sur le site d'une association. Comme l'association visée est de petite taille, je vois mal l'utilité d'intégrer un forum, par ailleurs fort bien fait, comme phpBB: trop gros, trop lourd, à lui tout seul, il prend plus de place que le site lui-même.
De plus, je souhaite que l'administrateur du site puisse gérer ce forum avec autant d'aisance que la gestion de l'agenda qu'il a dans sa poche, ajouter une note, supprimer une page ou un élément de page, accorder un droit de visite à telle ou telle personne selon qu'elle est membre ou non de l'association, bref, administrer son site sans devoir écrire la plus petite ligne de code, ce qu'il ne saurait que très difficilement faire à l'intérieur d'un script dont seul son créateur connaît complètement les détours et les implications de tel ajout ou telle modification.
J'en suis donc à la phase préliminaire: analyse du projet et découpage des différents éléments: à partir de là, création des pages de base avec tous les éléments qui doivent se retrouver dans le forum. Schéma, graphiques, viendra ensuite la création de l'interface graphique et son intégration. Après ça, il restera à écrire les programmes en PHP pour traiter tout ça: La suite, au prochain numéro...
Mon interface est à peu de choses près terminée. La phase suivante a consisté à établir la base de données. Quelques questions se sont posées quant à la structure qu'elle devait avoir. Finalement, un échange avec Kévin (Silvercat) a pratiquement confirmé mon hypothèse de base, corrigeant ce qui serait devenu un défaut et ajoutant un élément de simplification.
En fin de compte, quatre tables dont une pour gérer les comptes des membres et les trois autres servant à gérer le contenu des pages. J'ai donc créé une table "membres", une table "themes", une autre "messages" et enfin une "reponses", cette dernière étant l'élément que m'a apporté Kévin et qui va simplifier les requêtes à la base de données.
J'en suis à présent à étudier la structure de mon programme en PHP. Ça n'a vraiment rien d'évident. Un simple tableau en HTML avec une feuille de style aurait sans doute été plus facile à manipuler, mais l'interface graphique pose quelques problèmes de découpage. Il est impératif de garder une esthétique en insérant pas des images coupées. Enfin j'ai déjà réglé un premier problème: le premier accès au forum. Ma structure de programme est établie, il reste à créer le code.
Il me faut maintenant prévoir les sous-programmes de gestion d'interface. Comme tout programmeur, je me trouve dans la partie la plus longue et la plus lourde: l'analyse de mon sujet: je dois envisager toutes les hypothèses imaginables et prévoir les conséquences. Mais ça ne fait qu'illustrer quelque chose que j'ai compris depuis pas mal de temps sans jamais vraiment avoir eu l'occasion auparavant de le mettre en pratique: écrire un programme, c'est découper un problème en autant de questions que nécessaire de façon à ce que les réponses ne puissent plus être que "OUI" ou "NON", "0" ou "1". En informatique, il n'y a pas de "peut-être".
La suite..? bonne question, on verra ça au prochain épisode.
Encore deux jours ont passé. Décidément, j'avance pas mal plus vite que j'espérais même s'il me reste encore un boulot important. Ma structure de programmation étant à peu près établie pour le schéma global, j'ai lancé la conception d'une interface d'installation. Au départ, ce n'était pas vraiment prévu. Mais finalement, ça va simplifier la vie de l'utilisateur non initié aux mystères de PHP/MySQL, même s'il va quand même devoir procéder à quelques manipulations. On installe de toute façon pas un forum sur un site si on ne sait pas au moins ouvrir un fichier en mode texte.
J'ai quand même mis beaucoup de temps avant de commencer à écrire les premières ligne de code PHP. Mais une fois lancé, petit à petit les idées sont apparues et je rajoute des détails qui apparaissent importants. Je songe en particulier à des problèmes de sécurité. Il apparaît en fait que c'est un problème qui pourrait devenir désagréable pour celui qui installe le forum si je ne fais pas attention à ces détails et qu'un pirate du dimanche réussit à tout mettre par terre. Du coup, je réalise que je me suis lancé dans une entreprise plus importante encore que je ne pensais. De plus, cette page que je pensais créer également en PHP pour la compléter via une interface de formulaire ne se fait pas. Tant pis, je m'en occuperai plus tard et en attendant, je la complète en mode HTML dans mon éditeur.
Le premier module de base fonctionne maintenant bien. Il s'agit de la page install.php par laquelle on crée un compte d'administrateur du forum qui est enregistré dans la base de données. Le formulaire est opérationnel, il me manquerait encore un détail pour valider la saisie d'une URL qui est facultative. Un problème d'expressions régulières, je m'en occuperai avant de passer à la page admin.php. L'ajout des données se fait bien. J'ai rajouté un détail sur la base de données. En effet, l'ajout d'un surnom est normal sur un forum, mais le risque de voir un conflit parce que deux personnes utilisent le même m'ont fait ajouter l'attribut UNIQUE à la colonne "surnom" de la table. Il me reste à comprendre comment exploiter le message d'erreur de MYSQL pour afficher un message qui ne soit pas technique mais en français clair tout en réaffichant le formulaire. Mais il est tard. Je n'ai pas trouvé ma réponse dans la documentation de PHP, quant aux forums sur le sujet, leurs moteurs de recherches ne sont pas toujours efficaces et poser la bonne question relève de l'exploit. Je vais sans doute poser une question directement. Et puis il y a également une option qui m'est apparue qui serait extrêmement appréciée: la création des tables de la base de données directement via cette interface de façon automatique, celui qui met en place le forum n'ayant au préalable qu'à créer éventuellement une base vide ou encore indiquer le nom de la base existante. Ce système n'est pas une nouveauté puisque phpBB fonctionne ainsi. Mais je n'ai pas la prétention d'aller à ce niveau de complexité et je limite à un serveur MYSQL.
Bon, je deviens bavard, ce journal risque d'être fort long. Cette création est mon laboratoire d'études privées sur le PHP. J'ai la nette impression que cet apprentissage va me servir utilement dans un avenir plus ou moins rapproché. Sur ces bonnes paroles, je ferme l'éditeur pour ce soir, je vais bavarder encore un peu sur le chat et je vais me coucher. La suite un autre jour :o)
Ça avance doucement. Le problème de la session avec la transmission des variables m'a causé un sacré casse-tête. Il semble en passe de se résoudre même s'il reste encore des détails à ajuster.
Un petit problème de sécurité m'est apparu en cours de route. En activant en effet le lien vers l'interface d'administration dès que l'administrateur s'est identifié, j'oubliais qu'il suffisait de taper directement l'adresse de la page dans la barre d'adresse du navigateur. Ce problème est réglé et il ne s'affiche plus qu'un petit message goguenard à l'intention des petits futés qui essayeront. Le système fonctionne bien pour ça.
J'ai dû aussi réajuster les paramètres de blocage de l'accès à la page d'administration de façon à ce que si le fichier install.php est encore présent, tout accès est impossible. Le détail est soigné puisque même le message en roll-over sur le lien diffère selon l'état du lien, actif ou non.
Enfin il me reste quand même à ajuster un problème d'affichage entre l'identification et la déconnexion. Selon que le statut du visiteur est reconnu ou non, doit apparaître soit un formulaire d'identification soit un bouton de déconnexion. Mais pour le moment, ça bafouille. Lorsque je me déconnecte, je reviens en effet sur la page en tant que visiteur anonyme mais le formulaire d'identification n'est pas affiché. Pire que ça, le bouton déconnexion est toujours là. Et il me faut recharger la page pour revenir à la normale. J'ai dû oublier un détail quelque part.
La suite, à venir, n'en doutons pas...
Déjà le 4, ça passe vite, j'en avais oublié ce journal. Mais j'ai pas mal avancé depuis. Quelques corrections mineures en cours de route. D'abord une petite modification dans la structure de la table jem_themes de la base de données: le titre était en TEXT ce qui permet une grande longueur totalement inutile, je l'ai mis en VARCHAR(255) ce qui est amplement suffisant. Ensuite, au niveau de l'interface d'administration, pas mal de nouveautés.
D'abord la page d'ajout de thèmes, fonctionne très bien: j'ai bien essayé d'ajouter en bas de la page de confirmation un lien pour éditer le thème nouvellement créé pour pouvoir y apporter immédiatement des corrections, mais il faudra, en attendant que je trouve l'astuce, repasser par la page d'accueil de l'administration et cliquer sur le nouveau lien pour éditer à nouveau et faire une modification. Et puisqu'on y est, la page de modification qui affiche le titre et la description contenus dans la base de données est elle aussi fonctionnelle. Retouche de dernière minute, l'ajout d'un lien pour refaire la correction en bas du message de confirmation de mise à jour: lui fonctionne bien. Mais j'ai également du corriger une erreur: en effet quand je mettais à jour un thème, tous les thèmes présents étaient changés avec la correction d'un seul. Si j'avais trois thèmes, les trois étaient mis à jour avec les corrections apportées à un seul: pas très brillant de faire une requête en oubliant de mettre WHERE...
Enfin l'accréditation des membres comme modérateurs. Au départ, je pensais éditer une liste de noms: il s'avère que cette solution serait éventuellement viable sur un forum de 50 ou 100 voire à la rigueur 200 membres, mais s'il y en avait un de 2000 membres, le pauvre administrateur s'arracherait les cheveux pour trouver celui qu'il souhaite accréditer... ou démettre de ses fonctions. Donc implémentation d'un micro-moteur de recherche par le nom ou le surnom ou encore le prénom: un ou plusieurs liens portant le surnom sera alors édité s'il y a une réponse. Il reste un oubli à corriger: la possibilité de faire une nouvelle recherche dans le cas où la première n'aurait rien donné. Un copié/collé et la question devrait être résolue tout à l'heure.
Enfin pour terminer, la page d'administration elle-même qui s'est montée au fil des implémentations de chacun des modules cités. J'ai achevé le tout en sécurisant toutes les pages de cette zone. De la même manière que l'accès à la page d'administration au départ, on ne pourra pas y accéder tant que le fichier install.php sera présent sur le site, et d'autre part on ne pourra pas plus y accéder en tapant directement l'adresse dans la barre de navigation, sur aucune des pages: ni si on est administrateur tant que install.php n'est pas supprimé du site, ni si on est un petit futé qui essaye et n'est donc pas identifié comme administrateur. En principe les risques de piratages sont écartés, mais bon, il reste peut-être des options que j'ignore. Je fais très attention à ces problèmes de sécurité, je ne voudrais pas que mon forum soit critiqué sur ce point. J'annoncerai peut-être au départ une version beta.
Enfin voilà, c'est tout pour aujourd'hui et au fond c'est quand même déjà pas mal. J'ai encore plein de choses à envisager et au fur et à mesure des progrès de cette entreprise, je vois apparaître des options qui n'avaient jamais été seulement évoquées à l'origine. Un moteur de recherche par exemple n'est pas une mince affaire à monter et ce que j'ai mis en place pour chercher un membre dans la liste est vraiment simpliste. Mais pour la recherche de messages, il faudra assurément perfectionner le système pour le rendre efficace sur du texte libre. Dans les gadgets envisageables: un compteur pour le nombre de membres inscrits, un compteur pour le nombre de messages postés, de petites requêtes pas très compliquées à mettre en place, mais petit truc ici, petit truc là, je vais finir par monter un forum aussi gros que phpBB à moi tout seul. Enfin ne rêvons pas, ce ne sera quand même pas du même gabarit coté programmation.
Ha si, j'allais oublier de le mentionner: en créant une page pour ci une page pour ça, je commençais à avoir pas mal de pages à la racine du site: j'ai fait migrer toutes les pages d'administration dans un répertoire à part. J'ai dû changer tous mes liens vers les pages de la racine et vers les images pour une partie. Mais ça m'a posé un petit problème pour les images d'arrière plan des modules prévues pour les pages de la racine. Les liens relatifs ne pouvant pas être modifiés dans les modules sans mettre en l'air mon affichage soit de l'administration soit du forum, j'ai dû me résoudre à faire une copie du répertoire "images" dans le répertoire "admin". Il va falloir que j'explore la fonction "str_replace()" dans mes appels de modules, ça fonctionnerait peut-être et je me dispenserais d'un doublon. Mais le répertoire images fait moins de 8Ko, ça ne mérite peut-être pas autant de soucis qui risqueraient en outre d'alourdir inutilement la charge du serveur PHP.
Allez, je vais me coucher, la suite au prochain épisode des aventures du jem-forum.
Ben c'est pas de la tarte, mais je suis drôlement content de moi. J'ai réussi à afficher ma page d'accueil avec les différents thèmes de discussion présents dans la base de donnée, leur date de création et le nombre de messages de chacun. Je pensais pas que ce serait aussi facile. Enfin ne nous excitons pas trop, il reste quelques petits problèmes à résoudre.
D'abord, chaque sujet est séparé du suivant par un élément graphique qui ferme la case où il se trouve. Mais le dernier sujet a également ce séparateur et du coup, je me retrouve avec une case vide en fin de tableau. Il va falloir que je détermine comment identifier le dernier sujet à afficher et supprimer ce séparateur. Il va aussi falloir que je formate la date de création qui m'est envoyée en chiffres au format anglais. Je n'ai rien contre les personnes s'exprimant dans la langue de William Shakespeare, mais je crée dans la langue de Jean-Baptiste Poquelin dit Molière, ne vous déplaise, et je veux une date selon la formulation francophone. (Purée keske je cause bien :oþ )
Bon, mais je cause et ça avance pas, donc j'y retourne, la suite au prochain numéro.
J'avance pas mal. Mon problème de case vide est réglé et ce n'est pas dommage. Mais je ne devrais pas être fier de moi tellement la solution était simple et logique. J'ai cherché en imaginant une solution beaucoup trop complexe. Il suffisait de déterminer une variable parallèle sans lien direct avec une quelconque ligne du tableau, cependant, comme la variable s'incrémentait à chaque tour de boucle, tant que la variable était inférieure au nombre de ligne déterminé au début de mon programme, il ajoutait un séparateur et dès que l'égalité était faite, la condition n'étant plus vérifiée comme vraie, l'affichage du séparateur ne se faisait plus, fin de la boucle et fermeture de la page.
Les nouveautés du jour: la page d'accueil du forum reçoit maintenant les informations de la base de données et affiche les thèmes mais également le nombre de sujets postés. Les titres des thèmes sont clicables et aboutissent dans une page thématique qui liste les messages. J'ai dû procéder à des petites mises au point dans la structure de ma base de données.
D'abord les titres des thèmes ou des messages ont été raccourcis à 150 caractères au lieu de 255. La raison à ça: j'ai besoin de pouvoir passer ces titres par l'url au lieu de créer une variable de session qu'il faudrait supprimer par la suite, mais comme j'ai d'autres paramètres en plus de l'adresse et de ce titre à passer, on coupe. Et puis un titre doit être et rester succinct, ce n'est donc pas handicapant pour le forum. Également un petit ajout dans la table des messages: outre la date de publication, j'ai ajouté une autre date qui sera mise à jour à chaque nouvelle réponse, ainsi je me faciliterai la vie au moment d'afficher les messages dans un ordre chronologique en commençant par le dernier. Mais il va probablement falloir que je rajoute l'heure pour le cas tout à fait probable où plusieurs réponses s'ajouteront le même jour.
Le bouton d'ajout de message est également en place et va sur la page ad-hoc avec en paramètre le titre du message mentionné au paragraphe précédent. Les messages s'enregistrent bien dans la base même s'il a fallu ajuster quelques détails pour arriver à en rentrer un premier après quatre tentatives. Et dans ma page thématique, le titre du message apparaît à sa place et clicable, ainsi que le nom de l'auteur et la date du message. Ici je n'ajouterai pas l'heure, elle ne servira que pour le classement des messages.
Il reste encore un peu de travail mais je commence à apercevoir le bout de cette entreprise qui est finalement peut-être moins loin que je ne pensais au départ. Mais bon, pendant que je bavarde ici, le forum n'avance pas, donc... suite au prochain épisode.
Une bonne matinée aujourd'hui. Je peux désormais voir les messages et y répondre. Puis l'affichage de chaque message contient outre le texte original les réponses par ordre chronologique. Cependant, j'ai supprimé le champ "reponse" de la table "jem_messages": cette table se révèle inutile puisque j'obtiens le nombre de réponses par un simple comptage avec mysql_num_rows dans une boucle d'affichage.
Il me reste encore un ou deux liens de retour à ajuster. Ce sera probablement prêt dans quelques minutes.
La suite peut-être dans la soirée.
Partie longue: les finitions et les petits ajouts et corrections. Je viens enfin de réussir à ajuster l'affichage des flèches de navigation dans les pages de thème. Le problème était un peu tordu puisque j'avais des affichages qui ne correspondaient pas toujours à la réalité du contenu. Je me suis basé sur le script d'un tutorial de az-php pour créer ce module. Mais le script étant un peu incomplet, j'avais des liens de navigation pour une page ayant plus de sujets que la limite fixée, mais aussi pour une page vide de contenu ce qui est un peu incohérent. La correction est maintenant faite et j'ai pour la page vide un message approprié. J'hésite à rajouter quelque chose pour la page non vide mais qui ne comporte pas de suivantes. D'autre part, il faudrait que je rajoute une série de numéros de pages lorsque leur nombre augmente notablement. Ça va être en effet un problème si un thème de forum a 2000 messages: même en affichant 25 messages par page, ça va quand même faire 80 pages: se rendre à la page 65 ou 78 avec seulement le lien [Suivante] va vite devenir fastidieux. À moins que je ne mette dans un coin un petit formulaire du genre [Se rendre à la page [xx]] sous forme de liste déroulante générée par le script afin d'éviter qu'un petit futé essaye d'aller à la page 81.
J'ai également ajusté un petit détail dans la page d'ajout de nouveau message: dans les avertissements lorsqu'on essaye d'envoyer un formulaire vide ou incomplet, j'ai raffiné la vérification pour envoyer un message selon que le formulaire est vide, qu'il y a seulement un titre ou seulement un texte. Problème suivant.
Là, il faut que je crée le module de suppression de message pour afficher ou non selon le statut ou l'identité du visiteur un bouton de supression. Pour le reste, je verrai après.
Pour terminer, quelques frais hier: l'achat d'un petit pavé de plus de 650 pages: "Programmation en PHP" de Leon Atkinson chez CampusPress. Je sens que j'ai pas fini de découvrir des choses. La suite... dans quelques temps.
Le plus gros est terminé et j'ai un premier échec frustrant. Un copain qui a voulu essayer l'installation sur son site n'a tout simplement pas dépassé la page d'installation, la connexion à la base de données ne se faisant pas. Son site est sur free.fr et j'avoue que je ne comprends pas. D'autant moins que j'ai essayé d'installer le forum que le copain en question utilise pour le moment: il semble qu'il fonctionne très bien sur son site mais pour ma part, je n'ai jamais réussi à installer ce forum sur mon serveur. Le FauxRhum, puisque c'est de lui qu'il est question, m'affiche un nombre hallucinant de messages d'erreurs de variables indéfinies. Les éléments du formulaire d'installation devant apparaître au fur et à mesure, si j'ai bien compris le système, ne sont pas activés parce que je ne dépasse pas le permier élément où je dois insérer une adresse de serveur MySQL et éventuellement un nom et un mot de passe pour y accéder. Son code n'est en outre que très peu commenté. Bref, ça marche pas et j'ai du mal à saisir comment ça peut fonctionner mieux chez free.fr, c'est le mystère du jour.
En attendant, je vais quand même revoir ma procédure d'installation et modifier la défénition des paramètres de configuration en insérant un élément supplémentaire: un formulaire qui génèrera un fichier texte contenant ces paramètres. Dans la foulée, je ferai préfixer au besoin les noms des tables de la base de données.
Enfin bon, j'ai encore du boulot pour revoir tout ça, surtout avec ce problème de préfixe, parce que ça veut dire qu'il faut que je modifie toutes les pages sur lesquelles il y a une ou plusieurs requêtes. Je vais refaire mon analyse, ce sera plus simple. Ma version beta n'est pas encore au point. Et puis je dois vérifier la syntaxe de connexion à la base de données, mon problème vient peut-être de là pour expliquer le non fonctionnement sur free.fr. Pour les amateurs, je rajoute un lien de téléchargement du forum en bas de cette page si vous souhaitez le tester.
La suite au prochain épisode.
Super journée aujourd'hui, plein de bonnes nouvelles. D'abord hier soir l'installation avec succès du jem-forum sur la machine de Kévin, après un petit problème de départ qui a permis d'identifier un autre bobo. L'explication du ratage d'hier chez Mystery. Une erreur de ma part due à un oubli: un second fichier de configuration était resté à la racine du forum et le configurer ne servait strictement à rien puisque l'appel vers la base de données utilisait les information d'un autre fichier de configuration dans le répertoire modules.
J'ai fait une petite découverte des plus instructive qui va en fin de compte me simplifier drôlement la tâche. La fonction «fwrite()» est vraiment géniale et en fait, je peux générer un fichier de configuration, mais je me suis demandé pourquoi lui donner une extension exotique et j'ai fait un petit essai en faisant tout simplement un fichier config.inc.php : résultat, non seulement ça fonctionne très bien, mais je le crée exactement dans le répertoire souhaité, ce qui est encore plus brillant. Donc je me casserai même pas la tête à mettre un fichier config dans le script, je le fais générer à l'installation.
Là, il me reste à mettre au point un petit système pour tester les valeurs en ouvrant et refermant une connexion et si c'est concluant on passe à la phase 2 de création des tables, sinon on recommence en remettant les bonnes informations dans le formulaire. Tout ceci fait un peu grossir le forum global, mais je crois que ça vaut la peine: si c'est correctement installé, ça fonctionne sans problème ni message d'erreur, c'est une satisfaction très encourageante et ça me montre aussi que j'ai quand même appris des choses.
Voilà, les modules qu'il me reste à créer sont peu nombreux, mais il faudrait que je m'y mette, donc... la suite ... c'est ça ;o)
....
Un peu plus tard dans la soirée. Coup de tonerre sur le jem-forum cet après-midi: découverte d'un vice de conception, pas grave heureusement mais qui aurait pu avoir des conséquences un peu désastreuses s'il n'avait été immédiatement corrigé. J'avais en effet omis de penser à la possibilité que quelqu'un insère dans son message du code html. En faisant le test, j'ai vu une mise en page mise par terre, c'était pas beau. Le rajout d'une petite fonction prévue à cet effet sur trois pages à risque et le problème a été résolu.
La procédure d'installation est maintenant coupée en deux... et beaucoup plus simple: plus besoin d'éditer un fichier config.php qui a même tout simplement été retiré du script: il est désormais généré par php lors de la première phase d'installation et un test de connexion ouvre alors la porte vers la phase 2 si il est réussi. Il me reste éventuellement la possibilité d'une autre option préliminaire pour ceux qui n'ont pas de base de donnée du tout et qui devraient la créer. Mais ce serait un petit luxe bien inutile, toux ceux qui ont un hébergement gratuit avec MySQL disposent de phpmyadmin pour créer cette base, voire chez free on la crée pour eux et elle est déjà nommée. Quant aux autres, j'ai des raisons de croire qu'il savent comment créer une base de données aussi bien voire très largement mieux que moi.
Finalement, ça a pris un peu de temps. Fignolages en tous genres, ajustement, corrections, changements, essais divers. et puis aujourd'hui enfin, j'ai réussi ici ce que j'avais réussi sans problème ailleurs, installer ce forum. Un petit problème que je devrai corriger car il est généré par un test de connection à vide lors de la première phase de l'installation. Peut-être bien un problème de syntaxe, le serveur du village ayant l'air d'être particulièrement strict. Ce n'est pas une mauvaise chose en soi, mais c'est frustrant de ne pas trouver.
Du coup, deux autres petites corrections dont une à venir. J'avais corrigé le problème des balises html envoyées dans un message, j'ai miantenant un petit problème inverse et lors de l'affichage de vérification du message quand on l'envoie, j'ai des <br /> au lieu des changement de ligne. Problème mineur et sans gravité que j'ajusterai demain. L'autre était un peu plus ennuyeux car il affectait les titres et les apostrophes contenues dans le titre d'un thème de discussion s'agrémentaient au fil de la navigation à l'intérieur du thème de "\" de plus en plus nombreux. Problème résolu, mais j'ai du modifier plusieurs pages. Sinon, tout est bien en place. Il me reste à finir les ajouts de l'interface d'administration du forum pour qu'il soit à peu près complet pour la base.
En fin de soirée, j'ai quand même peut-être bien mis là main sur le bobo qui m'empéchait de faire une installation comme je le souhaitais. Une petite ligne tout simplement manquante dans le programme d'installation première phase. En effet, je fais créer le fichier "config.php", mais j'avais omis une chose: pour faire une connexion à la base, il faudrait que ledit fichier soit au préalable inclus dans le script et donc une fois créé, il faut l'inclure avant de lancer le test. Il faudra que je vérifie ça lors de la mise en place du démo. Ça aussi ça va être une petit boulot pour mettre en place quelques fusibles: essayer ne veux pas dire tout détruire et je vais devoir mettre en place quelques barrières raisonnables.
Enfin toutes les suggestions seront les bienvenues et le forum est maintenant disponible pour ça.
Comme d'habitude, la suite.... c'est ça ;o)
C'est Pâques. Le temps est morose dehors et je ne me suis pas caché de chocolats partout hier soir. Par contre depuis hier matin, j'ai un peu amélioré mon jem-forum. En réalité depuis plus longtemps que ça, mais disons qu'il y a depuis hier matin trois petits modules supplémentaires dans le jem-forum.
Le plus voyant pour les membres inscrits sera un nouveau lien pour éditer et au besoin modifier leur profil: chacun pourra tout changer à l'exception de son pseudonyme et bien entendu de son statut. Un membre ne pourra pas s'instituer modérateur et un modérateur ne pourra pas redevenir membre, cette option restant réservée à l'administrateur du forum.
Autre modification: dans le fichier d'installation: Lors de la seconde phase de l'installation, le script crée à présent un petit fichier contenant l'adresse de la page d'accueil du site sur lequel est installé le forum pour autant qu'une URL soit inscrite dans le formulaire. Ainsi, si votre site est à www.monsite.com et que dans le formulaire d'informations vous mettez cette adresse dans la case appropriée, lorsque vous rentrerez sur le forum, vous disposerez tout en haut d'un nouveau lien qui vous permettra de revenir vers le site. Ce système est bien entendu en fonction ici-même.
Enfin la dernière implémentation ne concerne que l'administration du forum et la gestion de la liste des membres. Seconde étape en fait parce que je prévois une amélioration pratique. La première étape consistait en une simple recherche par le surnom, le nom ou le prénom. J'ai ajouté quelque chose de plus visuel, en l'occurence une liste qui se présente sous la forme d'un tableau contenant tous les membres. Pour le moment, la liste se constitue dans l'ordre d'inscription. Je prévois la possibilité de listes plus conséquentes et la possibilité d'un affichage page par page alphabétique. Donc une page pour les surnoms commençant par A ou B ou C etc.... Plus tard peut-être une option permettant le même affichage selon le surnom ou bien le nom du membre.
Voilà, dans l'immédiat, l'essentiel est prêt, je vais m'attaquer à la préparation d'une version de démonstration. Notez que le script est toujours téléchargeable au format ZIP. Si je peux trouver comment faire, j'en ferai un exemplaire au format tar.gz mais je ne suis pas un spécialiste de Linux, toute offre d'explication claire de la procédure sera bienvenue.
Petite mise à jour, un détail qui m'avait jusque là échappé. Un problème d'apostrophes dans les titres de thèmes de discussion et les titres de messages qui se retrouvaient parfois précédés de \ voire de \\\ puis de \\\\\\ etc... de façon exponentielle. En principe c'est réglé, et pour ceux qui ont téléchargé et déjà installé avant ce jour le jem-forum, j'ai ici une mise à jour de 4 fichiers à remplacer dans le répertoire racine.
Rien de nouveau à part ça, la suite sera probablement moins fréquente.
....
Un peu plus tard en journée: ça y est, le forum de démonstration est en ligne. J'ai bloqué certaines fonctions pour éviter des destructions inutiles et on ne pourra ni supprimer un message ni supprimer un thème comme administrateur. On ne pourra pas plus modifier le statut de l'administrateur ni du modérateur de démonstration, mais tout le reste est fonctionnel.
Je suis assez content du résultat, il me reste à espérer que cette satisfaction sera partagée. En plus, ça m'a permis de tester l'installation automatique sur levillage que j'ai eu tant de mal à faire avec le forum d'origine. Ça m'a pris 3 minutes chrono auxquelles il faudrait éventuellement ajouter la création d'une base de données pour celui qui n'en aurait pas déjà une. Bienvenue dans le monde du jem-forum, il est là pour votre plaisir et votre satisfaction.
Petite découverte qui aurait pu avoir des conséquences fâcheuses: l'installation du jem-forum de démonstration étant à quelques détails près une copie conforme de l'autre, je me suis rendu compte qu'en m'identifiant comme administrateur dans l'un puis en repassant par le site pour me rendre dans l'autre me laissait mes droits d'administrateur à un endroit où je ne suis pas sensé les avoir. Pas besoin de vous faire un dessin pour imaginer le résultat possible des facéties d'un malfaisant: tout aurait pu être supprimé complètement sur mon jem-forum.
Pas de chance pour les farceurs, j'ai pensé plus vite qu'eux. Ce problème étant corrigé, je vais pouvoir finir le formulaire de commentaires du site.
________________jem-forum________________