Citation :
<?php
///////////////////////////////////////////////
// @lex Guestbook //
// by Soulard Alexis - 2002 //
// http://www.alexphpteam.com/ //
// all right reserved //
///////////////////////////////////////////////
unset($chem_absolu, $nb_pages_aff);
$chem_absolu = "./";
$nb_pages_aff = 10;
$page_index = true;
if (!$HTTP_GET_VARS['debut'])
$HTTP_GET_VARS['debut'] = 0;
//----------------------- fichiers à inclure
if (file_exists($chem_absolu."config/extension.inc" )){
include($chem_absolu."config/extension.inc" );
include($chem_absolu."include/livre_include.".$alex_livre_ext);
}
else{
die ("Please setup the script : <a href=\"".$chem_absolu."setup.php\"><b>setup.php</b></a> or refresh your browser : <a href=\"javascript:location.reload();\"><b>refresh</b></a>." );
}
//si un skin est choisi arbitrairement par défaut on l'inclus ici
if ($HTTP_GET_VARS['skin'])
$skin_use = $HTTP_GET_VARS['skin'];
//----------------------- si le nom du template commence par "double_", et que seeAdd n'est pas renseigné, par défaut seeAdd=1
if (substr($skin_use, 0, 7) == "double_" && !isset($HTTP_GET_VARS['seeAdd']))
$HTTP_GET_VARS['seeAdd'] = 1;
//----------------------- chemin du skin
$chem_template = $chem_absolu."templates/skins/".$skin_use."/";
//----------------------- génération de la liste des champs textes de la langue
$tab_champs_langue = array(
1 => "title_guestbook",
"erreur_add_nom",
"erreur_add_message",
"addSignature",
"seeMessages"
);
//----------------------- on récupère tous les smileys / mots censurés
recup_smileys();
recup_mots_interdits();
//----------------------- on récupère tous les messages en effectuant un remplacement pour les smileys / mots censurés
/* si il y a des mots clés on restreint la recherche */
if ($HTTP_GET_VARS['mots_search'] && $ok_aff_moteur){
$HTTP_GET_VARS['mots_search'] = htmlspecialchars(trim($HTTP_GET_VARS['mots_search']));
$mots_nettoyes = nettoyer_car(noaccents(strtolower(urldecode($HTTP_GET_VARS['mots_search']))));
$tab_mots_cles = explode(" ", $mots_nettoyes);
/* création de la requète WHERE */
if ($mots_nettoyes)
$where = "WHERE ";
for ($i = 0; $i < count($tab_mots_cles); $i++){
$where .= "nom LIKE '%".$tab_mots_cles[$i]."%' OR message LIKE '%".$tab_mots_cles[$i]."%'";
if (($i + 1) < count($tab_mots_cles))
$where .= " OR ";
}
}
else
$where = "";
recup_messages("*", $where, "ORDER BY time DESC", "LIMIT ".$HTTP_GET_VARS['debut'].",".$nb_pages, true);
//----------------------- nbre total de messages recup_total_messages($where);
//----------------------- somme de toutes les notes
if ($ok_note)
moyenne_notes_messages();
/* fermeture de la connexion */
$f_db_connexion -> sql_close();
/* traitement de l'url à recharger */
//remplacement des #var en leur valeur réelle
while (strpos($extension_url, "#" )){
eregi("=#([^&]*)", $extension_url, $tab_echo);
$extension_url = str_replace($tab_echo[0], "=".$HTTP_GET_VARS[str_replace("=#", "", $tab_echo[0])], $extension_url);
}
//variables à passer en paramètre lors d'une méthode GET
$tabVar = explode("&", $extension_url);
for ($i=0; $i<count($tabVar); $i++){
$tempChaine = explode("=", $tabVar[$i]);
$chaineGetMethod .= "<input type=\"hidden\" name=\"".$tempChaine[0]."\" value=\"".$tempChaine[1]."\">\n";
}
/* création de la chaine html des smileys */
$chaine_smileys = "";
for ($i = 1; $i <= $nbre_smileys; $i++){
$chaine_smileys .= "<a href=\"javascript:smiley('".$table_car_replace[$i]."');\"><img src=\"".$chem_absolu."images/smileys/".$table_smileys[$i]."\" alt=\"".eregi_replace("[.]{1}(.)*$", "", $table_smileys[$i])."\" border=\"0\"></a>";
if ($i < $nbre_smileys)
$chaine_smileys .= " ";
}
//----------------------- affichage du formulaire
$echo_html = new ModeliXe("assembly.htm", "", "", "", "", $chem_template);
$echo_html -> SetModeliXe();
/* instanciation des blocs */
$echo_html -> MxBloc("bloc_add_message", "modify", $chem_template."add_message.htm" );
$echo_html -> MxBloc("bloc_nb_messages_page", "modify", $chem_template."nb_message_page.htm" );
$echo_html -> MxBloc("bloc_liste_pages", "modify", $chem_template."list_pages.htm" );
/* langue */
generate_langue($tab_champs_langue);
//################ ELEMENTS à passer en paramètres à chaque page ################"
$urlExtAdd = "&mots_search=".urlencode($HTTP_GET_VARS['mots_search'])."&lang=".$HTTP_GET_VARS['lang']."&skin=".$HTTP_GET_VARS['skin']."&seeAdd=".$HTTP_GET_VARS['seeAdd']."&seeNotes=".$HTTP_GET_VARS['seeNotes']."&seeMess=".$HTTP_GET_VARS['seeMess']."&".$extension_url;
/* action lors du clique sur le bouton rechercher */
$echo_html -> MxText("bloc_moteur.action_search", $url_recharger);
$echo_html -> MxText("bloc_moteur.debut", $HTTP_GET_VARS['debut']);
$echo_html -> MxText("bloc_moteur.lang", $HTTP_GET_VARS['lang']);
$echo_html -> MxText("bloc_moteur.skin", $HTTP_GET_VARS['skin']);
$echo_html -> MxText("bloc_moteur.extensionGet", $chaineGetMethod);
/* infos globales qui peuvent être intégrées dans un skin */
globalValuesTemplate();
globalValuesTemplate("bloc_nb_messages_page." );
globalValuesTemplate("bloc_add_message." );
//################ /ELEMENTS à passer en paramètres à chaque page ################"
/* chemin du script */
$echo_html -> MxText("chem_skin", $chem_template);
/* version du guestbook */
$echo_html -> MxText("guestbook_version", $alex_livre_version);
/* affichage oui / non des options facultatives du bloc ajouter un message */
if (!$ok_mail)
$echo_html -> MxBloc("bloc_add_message.bloc_email", "rese" );
if (!$ok_url)
$echo_html -> MxBloc("bloc_add_message.bloc_site", "rese" );
if (!$ok_pays)
$echo_html -> MxBloc("bloc_add_message.bloc_pays", "rese" );
if (!$ok_note){
$echo_html -> MxBloc("bloc_note", "rese" );
$echo_html -> MxBloc("bloc_add_message.bloc_note", "rese" );
}
/* affichage du texte pour la note moyenne */
$echo_html -> MxText("bloc_note.note_moyenne", $f_lang['note_moyenne']);
$echo_html -> MxText("bloc_note.value_note_moyenne", arrondir($value_moyenne_notes_messages));
$echo_html -> MxText("bloc_note.chem_skin", $chem_template);
/* affichage des variables pour la partie ajouter un message */
$echo_html -> MxText("bloc_add_message.bloc_note.note_super", $f_lang['note_super']);
$echo_html -> MxText("bloc_add_message.bloc_note.note_moyen", $f_lang['note_moyen']);
$echo_html -> MxText("bloc_add_message.bloc_note.note_rate", $f_lang['note_rate']);
$echo_html -> MxText("bloc_add_message.nom_pseudo_visiteur", $f_lang['nom_pseudo_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_email.email_visiteur", $f_lang['email_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_site.site_web_visiteur", $f_lang['site_web_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_pays.ville_pays_visiteur", $f_lang['ville_pays_visiteur']);
$echo_html -> MxText("bloc_add_message.bloc_note.note_visiteur", $f_lang['note_visiteur']);
$echo_html -> MxText("bloc_add_message.message_visiteur", $f_lang['message_visiteur']);
$echo_html -> MxText("bloc_add_message.ajouter_message_visiteur", $f_lang['ajouter_message_visiteur']);
$echo_html -> MxFormField("bloc_add_message.message_textarea", "textarea", "message_textarea", "", "ONSELECT=\"storeCaret(this);\" ONCLICK=\"storeCaret(this);\" ONKEYUP=\"storeCaret(this);\"" );
$echo_html -> MxText("bloc_add_message.chaine_smileys", $chaine_smileys);
$echo_html -> MxText("bloc_add_message.bloc_note.pasDeNote", $f_lang['pasDeNote']);
$echo_html -> MxText("bloc_add_message.addMessageBlocAdd", $f_lang['addMessageBlocAdd']);
/* affichage des variables pour la partie des messages / page */
$echo_html -> MxText("bloc_nb_messages_page.messages", $f_lang['messages']);
$echo_html -> MxText("bloc_nb_messages_page.messages_a", $f_lang['messages_a']);
$echo_html -> MxText("bloc_nb_messages_page.page", $f_lang['page']);
$echo_html -> MxText("bloc_nb_messages_page.nbre_messages", $f_lang['nbre_messages']);
/* action lors du clique sur le submit du formulaire */
$echo_html -> MxText("bloc_add_message.action_url", $chem_absolu."add_message.php?".$urlExtAdd);
/* page précédente / suivante */
$page = floor($HTTP_GET_VARS['debut'] / $nb_pages) + 1;
$nb_pages_total = ceil($total_messages_livre / $nb_pages);
//précédente
if ($page > 1)
$echo_html -> MxText("bloc_liste_pages.page_pre", "<a href=\"?debut=".($HTTP_GET_VARS['debut'] - $nb_pages).$urlExtAdd."\">".$f_lang['precedente']."</a>" );
else
$echo_html -> MxText("bloc_liste_pages.page_pre", "<font class=\"Gris_prec_suiv\">".$f_lang['precedente']."</font>" );
//suivante
if ($page < $nb_pages_total)
$echo_html -> MxText("bloc_liste_pages.page_sui", "<a href=\"?debut=".($HTTP_GET_VARS['debut'] + $nb_pages).$urlExtAdd."\">".$f_lang['suivante']."</a>" );
else
$echo_html -> MxText("bloc_liste_pages.page_sui", "<font class=\"Gris_prec_suiv\">".$f_lang['suivante']."</font>" );
/* affichage de l'ensemble des pages disponibles */
$debut_page = $page - ceil($nb_pages_aff / 2);
if (($debut_page + $nb_pages_aff) > $nb_pages_total){
$debut_page = $nb_pages_total - $nb_pages_aff + 1;
}
if ($debut_page < 1)
$debut_page = 1;
$save_debut_page = $debut_page;
$liste_pages_dispos = "";
for ($i = 1; $i <= $nb_pages_aff; $i++){
if ($debut_page <= $nb_pages_total){
if ($debut_page == $page)
$liste_pages_dispos .= "<b>".$debut_page."</b>";
else
$liste_pages_dispos .= "<a href=\"?debut=".(($debut_page - 1) * $nb_pages).$urlExtAdd."\">".$b.$debut_page.$non_b."</a>";
if ($i < $nb_pages_aff && $debut_page < $nb_pages_total)
$liste_pages_dispos .= "-";
}
$debut_page++;
}
if (($save_debut_page + $nb_pages_aff) <= $nb_pages_total)
$liste_pages_dispos .= " ... "."<a href=\"?debut=".(($nb_pages_total - 1) * $nb_pages).$urlExtAdd."\">".$nb_pages_total."</a>";
if ($save_debut_page > 1)
$liste_pages_dispos = "<a href=\"?debut=0".$urlExtAdd."\">1</a> ... ".$liste_pages_dispos;
$echo_html -> MxText("bloc_liste_pages.suite_pages", $liste_pages_dispos);
/* informations sur la page en cours */
$echo_html -> MxText("bloc_nb_messages_page.nb_messages_total", $total_messages_livre);
$echo_html -> MxText("bloc_nb_messages_page.page_en_cours", $page);
if ($total_messages_livre > 0){
$message_de_a1 = $debut + 1;
if ($page == $nb_pages_total)
$message_de_a2 = $total_messages_livre;
else
$message_de_a2 = $debut + $nb_pages;
}
else{
$message_de_a1 = 0;
$message_de_a2 = 0;
}
$echo_html -> MxText("bloc_nb_messages_page.message_de_a1", $message_de_a1);
$echo_html -> MxText("bloc_nb_messages_page.message_de_a2", $message_de_a2);
/* message éventuel à l'encontre d'un visiteur */
if ($HTTP_GET_VARS['no_ip'] == "1" )
$echo_html -> MxText("message_alert", message_javascript($f_lang['no_ip'], false));
else if ($HTTP_GET_VARS['time_erreur'] == "1" )
$echo_html -> MxText("message_alert", message_javascript($f_lang['time_erreur'], false));
else if ($HTTP_GET_VARS['ok_post'] == "1" )
$echo_html -> MxText("message_alert", message_javascript($f_lang['ok_post'], false));
else
$echo_html -> MxText("message_alert", "" );
/* moteur de recherche */
if ($ok_aff_moteur){
/* texte langue */
$echo_html -> MxText("bloc_moteur.text_select_search", $f_lang['text_select_search']);
$echo_html -> MxText("bloc_moteur.text_ok_search", $f_lang['text_ok_search']);
/* valeur du champ */
$echo_html -> MxText("bloc_moteur.value_search", urldecode($HTTP_GET_VARS['mots_search']));
}
else
$echo_html -> MxBloc("bloc_moteur", "rese" );
/* on supprime le controle javascript de la validité d'une email si le visiteur ne peut ajouter son email */
if (!$ok_mail){
$echo_html -> MxBloc("bloc_verif_mail", "rese" );
$echo_html -> MxBloc("bloc_verif_mail2", "rese" );
}
else
$echo_html -> MxText("bloc_verif_mail2.erreur_mail", $f_lang['erreur_mail']);
/* affichage des messages */
if ($nbre_messages > 0){
$echo_html -> WithMxPath("bloc_boucle_mess", "relative" );
for ($i = 1; $i <= $nbre_messages; $i++){
$echo_html -> MxBloc("bloc_corps_messages", "modify", $chem_template."corps_messages.htm" );
/* pseudo */
$echo_html -> MxText("bloc_corps_messages.pseudo", $table_nom_message[$i]);
/* image home page */
if ($table_site_message[$i] && $ok_url){
if (substr($table_site_message[$i], 0, 7) != "http://" )
$table_site_message[$i] = "http://".$table_site_message[$i];
$echo_html -> MxText("bloc_corps_messages.img_home", " <a href=\"".$table_site_message[$i]."\" target=\"_blank\"><img src=\"".$chem_absolu."images/home.gif\" alt=\"".$f_lang['go_home']." [".$table_site_message[$i]."]\" border=\"0\" width=\"12\" height=\"12\"></a>" );
}
else
$echo_html -> MxText("bloc_corps_messages.img_home", "" );
/* image email */
if ($table_email_message[$i] && $ok_mail)
$echo_html -> MxText("bloc_corps_messages.img_mail", " ".CryptageEmail($table_email_message[$i]));
else
$echo_html -> MxText("bloc_corps_messages.img_mail", "" );
/* pays / ville */
if ($table_ville_pays_message[$i] && $ok_pays)
$echo_html -> MxText("bloc_corps_messages.pays_ville", " (".$table_ville_pays_message[$i]." )" );
else
$echo_html -> MxText("bloc_corps_messages.pays_ville", "" );
$echo_html -> MxText("bloc_corps_messages.message_le", $f_lang['message_le']);
$echo_html -> MxText("bloc_corps_messages.message_date", transform_date($table_time_message[$i]));
$echo_html -> MxText("bloc_corps_messages.message_heure", transform_heure($table_time_message[$i]));
$echo_html -> MxText("bloc_corps_messages.message_a", $f_lang['message_a']);
if ($ok_note){
$echo_html -> MxText("bloc_corps_messages.bloc_aff_note.message_note", $f_lang['message_note']);
if ($table_note_message[$i] == "" )
$table_note_message[$i] = "-";
$echo_html -> MxText("bloc_corps_messages.bloc_aff_note.note", $table_note_message[$i]);
}
else
$echo_html -> MxBloc("bloc_corps_messages.bloc_aff_note", "rese" );
$echo_html -> MxText("bloc_corps_messages.message_write", nl2br($table_messages[$i]));
/* nouveau bloc : espace entre chaque message */
$echo_html -> MxBloc("bloc_space", "modify", $chem_template."space.htm" );
$echo_html -> MxBloc("", "loop" );
}
$echo_html -> MxText("no_message", "" );
}
else
$echo_html -> MxText("no_message", "<p align=\"center\">".$f_lang['no_message']."</p>" );
$html = $echo_html -> MxWrite("", true);
/* masquer le bloc de visualisation des messages */
if ($HTTP_GET_VARS['seeMess'])
$html = ereg_replace("<!--=== BLOC MESSAGES ===-->(.)*<!--=== /BLOC MESSAGES ===-->", "", $html);
/* masquer le bloc de visualisation des notes */
if ($HTTP_GET_VARS['seeNotes'])
$html = ereg_replace("<!--=== BLOC NOTES ===-->(.)*<!--=== /BLOC NOTES ===-->", "", $html);
/* masquer le bloc pour ajouter un message */
if ($HTTP_GET_VARS['seeAdd']){
$html = ereg_replace("<!--=== BLOC ADD MESSAGE ===-->(.)*<!--=== /BLOC ADD MESSAGE ===-->", "", $html);
$html = ereg_replace("<!--=== Text SEE ===-->(.)*<!--=== /Text SEE ===-->", "", $html);
}
else
$html = ereg_replace("<!--=== Text ADD ===-->(.)*<!--=== /Text ADD ===-->", "", $html);
echo $html;
?>
|