Consignes de mise à jour de la version 3.* ou supérieure d'@lex Guestbook à la version 3.2
1- La structure des tables de la base a été modifiée, avec votre gestionnaire de BDD habituel (phpmyadmin par exemple), exécutez les requètes suivantes (ATTENTION, vos noms de tables sont peut être différents, les noms utilisés ici sont les noms par défaut) :
ALTER TABLE `alex_livre_censure` CHANGE `id_mot` `id_mot` MEDIUMINT(11) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `alex_livre_ip` CHANGE `id_ip` `id_ip` MEDIUMINT(11) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `alex_livre_messages` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `alex_livre_messages` ADD `valid` ENUM('yes', 'no') DEFAULT 'yes' NOT NULL; ALTER TABLE `alex_livre_messages` ADD INDEX (`time`); ALTER TABLE `alex_livre_sessions` CHANGE `id_user` `id_user` MEDIUMINT(11) UNSIGNED DEFAULT '0' NOT NULL; ALTER TABLE `alex_livre_sessions` CHANGE `session` `session` VARCHAR(70) NOT NULL; ALTER TABLE `alex_livre_sessions` ADD INDEX (`session`); ALTER TABLE `alex_livre_users` CHANGE `id_user` `id_user` MEDIUMINT(11) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `alex_livre_users` CHANGE `pass` `pass` VARCHAR(10) BINARY NOT NULL; ALTER TABLE `alex_livre_users` ADD INDEX (`login`); ALTER TABLE `alex_livre_users` ADD INDEX (`pass`); ALTER TABLE `alex_livre_smileys` CHANGE `id_smiley` `id_smiley` MEDIUMINT(11) UNSIGNED NOT NULL AUTO_INCREMENT;

2- Téléchargez le zip de la nouvelle version et copiez/collez intégralement les dossiers et fichiers suivants :
"/admin/",
"/db/",
"/images/",
"/include/",
"/languages/",
"/templates/admin/",
"/templates/modelixe/ModeliXe.php",
"/add_message.php",
"/index.php",
"infos_spam.php",
3- Allez dans la partie admin du livre d'or, il y a 2 nouvelles options disponibles : "Souhaitez vous valider les messages avant leur intégration dans le livre d'or ?" et "Nombre maxi de caractères dans un message (0 = illimité)", paramétrez ces deux valeurs comme vous le souhaitez, puis cliquez sur "Enregistrer". Cette étape est nécessaire pour éviter une erreur javascript à l'affichage du livre d'or par la suite.
4- Si vous n'aviez pas personnalisé vos skins, vous pouvez intégralement copier/coller le dossier "/templates/skins/", et pour vous la mise à jour est terminée. Dans le cas contraire vous allez devoir procéder à la mise à jour manuelle de votre skin, cette dernière est détaillée à l'étape 5.
5- Cette étape est nécessaire uniquement si vous souhaitez conserver l'apparence visuelle de votre livre d'or.
> Dans le dossier "templates/skins", sélectionnez le dossier portant le nom du skin que vous allez devoir mettre à jour. La procédure est à peu près similaire pour tous les skins.
> Editez le fichier "assembly.htm", remplacez les 3 premières lignes par :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=<mx:text id="SCRIPT_ENCODAGE"/>">
> Vers la ligne 11 (pour le skin par défaut (alexphpteam), sinon c'est peut être beaucoup plus loin), repérez "<script language="javascript">" jusqu'à "</script>", remplacez toutes ces lignes par :
<script language="javascript" type="text/javascript"> <!-- var lang_max_car = "<mx:text id="caracteres"/>"; var lang_reste = "<mx:text id="il_reste"/>"; var max_car = <mx:text id="maxi_car"/>; function storeCaret (textEl){ if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } function smiley(text){ var F = document.getElementById("form_add_guest"); if (F.message_textarea.createTextRange && F.message_textarea.caretPos) { var caretPos = F.message_textarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? ' ' + text + ' ': ' ' + text + ' '; F.message_textarea.focus(); } else { F.message_textarea.value += ' ' + text + ' '; F.message_textarea.focus(); } } function verif_mail(adresse) { var place = adresse.indexOf("@",1); var point = adresse.indexOf(".",place+1); if ((place > -1)&&(adresse.length >2)&&(point > 1)) return true; else return false; } function verif_add(){ var F = document.getElementById("form_add_guest"); var nom = F.nom.value; var message = F.message_textarea.value; <mx:bloc id="bloc_verif_mail"> var mail= F.email.value; </mx:bloc id="bloc_verif_mail"> if (!nom){ alert("<mx:text id="erreur_add_nom"/> "); return false; } else if (!message){ alert("<mx:text id="erreur_add_message"/> "); return false; } <mx:bloc id="bloc_verif_mail2"> else if (!verif_mail(mail) && mail){ alert("<mx:text id="erreur_mail"/> "); return false; } </mx:bloc id="bloc_verif_mail2"> } function script_popup(page,name,largeur,hauteur,options){ var top=(screen.height-hauteur)/2; var left=(screen.width-largeur)/2; window.open(page,name,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options); } function verifCar(objet){ if (max_car > 0){ if (objet.value.length > max_car) objet.value = objet.value.substring(0, max_car); var F = document.getElementById("form_add_guest"); F.reste_car.value = lang_reste + " " + (max_car - objet.value.length) + " " + lang_max_car; } } //--> </script>

> A la fin du fichier, pour le skin portant la mention "alexphpteam", remplacez le copyright existant par (si votre skin porte la mention "chezpierre", le code à copier/coller est juste après celui ci) :
<!-- // // Alexis Soulard 2002 - 2005 // I request you retain the full copyright notice below including the link to www.alexguestbook.net. This not only gives respect to the large amount of time given freely by the developer but also helps build interest, traffic and use of @lex Guestbook. If you refuse to include even this then support on our guestbook may be affected. --> <p align="center">Powered by <a href="http://www.alexguestbook.net/" target="_blank">@lex Guestbook</a> © - <a href="javascript: script_popup('infos_spam.php?lang=<mx:text id="lang"/>', 'down', 350, 280, 'scrollbars=yes')"><mx:text id="avis_spammeurs"/></a></p>

Si votre skin porte la mention "chezpierre", remplacez le copyright existant par :
<!-- // // Alexis Soulard 2002 - 2005 // I request you retain the full copyright notice below including the link to www.alexguestbook.net. This not only gives respect to the large amount of time given freely by the developer but also helps build interest, traffic and use of @lex Guestbook. If you refuse to include even this then support on our guestbook may be affected. --> <b>___________________________________________________________<br />Powered by : <a href="http://www.alexguestbook.net" target="_blank">@lex Livre D'or</a> © - <a href="javascript: script_popup('infos_spam.php?lang=<mx:text id="lang"/>', 'down', 350, 280, 'scrollbars=yes')"><mx:text id="avis_spammeurs"/></a><br /></b>Skin design by : <a href="http://www.chez-pierre.net/" target="_blank">Un prof belge en vadrouille</a></center><br /><br /></center>
> Editez le fichier "add_message.htm", à partir de la ligne 70, remplacez toute la ligne suivante :

<tr> <td width="100%" colspan="2"> <p align="center"><mx:formField id="message_textarea" rows="8" cols="69"/></p> </td> </tr>

Par :
<tr> <td width="100%" colspan="2"> <p align="center"><textarea id="message_textarea" rows="8" cols="69" onselect="verifCar(this); storeCaret(this); " onclick="verifCar(this); storeCaret(this);" onkeyup="verifCar(this); storeCaret(this);" onFocus="verifCar(this)" onKeyDown="verifCar(this)" onBlur="verifCar(this)" name="message_textarea" /></textarea><br> <mx:bloc id="bloc_max_car"> <input type="text" name="reste_car" value="<mx:text id="value_max_car"/>" size="100" style="border: 0; background: transparent; font-size: 10px; text-align: center; width: 100%" readonly /> </mx:bloc id="bloc_max_car"> </p> </td> </tr>
> Vers la ligne 5, repérerez "<FORM NAME="ajouter" METHOD="post" ACTION="<mx:text id="action_url"/>" onsubmit="javascript:return verif_add();">", remplacez par :
<FORM ID="form_add_guest" METHOD="post" ACTION="<mx:text id="action_url"/>" onsubmit="javascript:return verif_add();">
C'est terminé, votre script est mis à jour :o)