Compteur de visites (hit) paramétrable - release 2.0.0.a

Description

Nouvelle version de notre compteur de visites développé en PHP5 et en mode objet pour une utilisation dynamique dans de simples pages HTML à la mode "lessive"...(Ajax).

Toujours gratuit et toujours sans inscription, totalement paramétrable, ce compteur qui permet d'afficher (ou non) un (ou plusieurs) compteur(s) de visites (hit) en différents modes texte et en de multiples modes graphiques est livré avec huit jeux d'images, trois pages PHP et deux pages HTML de test, deux scripts JavaScript complémentaires (pour les pages HTML), un manuel d'utilisation au format PDF de 66 pages et une documentation technique complète au format HTML.

Le script en lui même est proposé en deux versions strictement identiques au niveau fonctionnel : une version totalement documentée de 144 Ko. (pour vous permettre de nous corriger) et une version de production de 33 Ko. (donc sans commentaires ni espace inutiles et superflu).

Le package complet décrit ci-dessus n'est malheureusement disponible que sur le site des Liberated Seven Dwarfs (LSD) en raison de sa taille (3Mo.).

Pour le télécharger, rendez-vous à l'adresse suivante : http://theliberated7dwarfs.as2.com

Source / Exemple :


<?php
   /**

  • Page PHP de test de production du compteur de visites LSD_Php5_Counter2.php
*
  • PHP version 5
*
  • LICENSE: Ce script vous est gracieusement offert par The Liberated Seven Dwarfs et est libre de tout droit
  • d'utilisation privée et non commerciale sous la restriction de conserver le présent entête et de respecter
  • la licence Creative Commons : By-Nc-Sa.
* session_start(); @require_once("../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php"); @$my_Counter2=new LSD_Php5_Counter2("../","scripts/php/LSD_Php5_Counter2/","default_Counter2"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/> <meta name="Author" content="The Liberated Seven Dwarfs"/> <meta name="keywords" content="AS2, Liberated, Seven, Dwarfs, script, php, mysql, javascript, ajax, free, download"/> <title>LSD Php5 Counter2 Test Page</title> <link href="../css/LSD_Php5_Counter2_Test.css" rel="stylesheet" type="text/css"/> </head> <body class="Fixed_Centered"> <div id="container"> <br/> &nbsp;Le compteur par défaut est affiché comme cela :&nbsp; <?php @$my_Counter2->get_LSD_Php5_Counter2_Hit_Result(); ?> </div> </body> </html> Le script PHP : <?php /**
  • Compteur de visites (hit) paramétrable utilisable soit depuis une page PHP5 soit depuis une page HTML via les
  • deux scripts LSD_Mouse_Events2.js et LSD_Stuff2.js
*
  • PHP version 5
*
  • LICENSE: Ce script vous est gracieusement offert par The Liberated Seven Dwarfs et est libre de tout droit
  • d'utilisation privée et non commerciale sous la restriction de conserver le présent entête et de respecter
  • la licence Creative Commons : By-Nc-Sa.
* /**
  • Première partie du script : Instencier l'objet compteur en mode Ajax
  • /
new LSD_Ajax_Counter2(); /**
  • Seconde partie du script LSD_Counter2.php : Objet qui instencie l'objet compteur pour le mode Ajax via les
  • deux javascript LSD_Mouse_Events2.js et LSD_Ajax_Stuff2.js
  • Lors du chargement du script en mode Ajax via le script LSD_Mouse_Events.js, il faut passer les paramètres
  • suivants à l'objet compteur, les 3 premiers paramètres sont obligatoires et doivent être passés dans l'ordre
  • défini ci-dessous, tous les autres paramètres sont optionnels et sans ordre particulier à respecter :
*
  • 1 - $ajax_Load, obligatoire, [doit être le mot "AJAX" pour activer ce mode]
  • 2 - $rough_Response, obligatoire, [doit être le mot "ROUGH" pour activer ce mode]
  • 3 - $ajax_Root, obligatoire même vide, [est le chemin relatif pour remonter à la racine du site. Exemple "../"]
*
  • 4 - $ajax_Config, est le nom du fichier de configuration, sans chemin ni extention [optionnel mais recommandé car
  • si le fichier de configuration n'est pas spécifié, le compteur se comportera avec sa configuration par défaut
  • ou affichera un message d'erreur si le mode d'aide à la mise au point est activé]
  • 5 - $ajax_Debug, doit être le mot "DEBUG" pour activer ce mode [optionnel]
  • 6 - $ajax_Mode, doit être la lettre "T" ou la lettre "G" [optionnel]
  • 7 - $ajax_Pad, n'a aucun effet si $ajax_Mode n'est pas initialisé en même temps [optionnel]
  • 8 - $ajax_Read, doit être le mot "TRUE" pour activer ce mode [optionnel]
  • 9 - $ajax_Hidden, doit être le mot "TRUE" pour activer ce mode (annulé si $ajax_Read a la valeur true)[optionnel]
  • 10 - $ajax_Session, doit être une chaîne de caractère non vide pour changer la variable de session [optionnel]
  • /
/**
  • Objet qui intencie l'objet LSD_Php5_Counter2 en mode Ajax et qui affiche le résultat du compteur en tenant compte
  • des paramètres passés par la page HTML appelante via les deux javascripts LSD_Mouse_Events2.js et LSD_Ajax_Stuff2.js.
  • /
class LSD_Ajax_Counter2 { /**
  • constante over_Root : indique le chemin absolu du script par rapport à la racine du site
  • /
const over_Root="../../../"; /**
  • constante script_Path : indique le nom du chemin du script
  • /
const script_Path="scripts/php/LSD_Php5_Counter2/"; /**
  • $ajax_Load : variable d'initialisation du mode de lancement Ajax de l'objet compteur.
  • @var string
  • /
private $ajax_Load; /**
  • $rough_Response : variable d'initialisation de la réponse sans balise HTML lorsque le mode de lancement Ajax est initialisé.
  • @var string
  • /
private $rough_Response; /**
  • $ajax_Root : variable du chemin à appliquer aux images lorsque le mode Ajax de l'objet compteur Ajax est initialisé.
  • @var string
  • /
private $ajax_Root; /**
  • $ajax_Debug : variable d'initialisation du mode de mise au point lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
private $ajax_Debug; /**
  • $ajax_Config : variable du nom du fichier de configuration lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
private $ajax_Config; /**
  • $ajax_Mode1 : variable du mode d'affichage du compteur lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
private $ajax_Mode; /**
  • $ajax_Pad : variable du nombre de chiffres du compteur lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
private $ajax_Pad; /**
  • ajax_Read : variable d'initialisation du mode lecture seule
  • @var string
  • /
private $ajax_Read; /**
  • ajax_Hidden : variable d'initialisation du mode caché
  • @var string
  • /
private $ajax_Hidden; /**
  • ajax_Session : variable d'initialisation d'une nouvelle variable de session
  • @var string
  • /
private $ajax_Session; /**
  • ajax_New : variable d'initialisation d'un nouveau chemin du fichier des visites
  • @var string
  • /
private $ajax_New; /**
  • my_Ajax_Counter2 : variable d'initialisation d'une nouvelle extention du fichier des visites
  • @var string
  • /
private $my_Ajax_Counter2; /**
  • Méthode qui initialise les différents attributs de l'objet LSD_Ajax_Counter2.
*
  • /
function __construct() { /**
  • $this->ajax_Load : attribut d'initialisation du mode de lancement Ajax de l'objet compteur.
  • @var string
  • /
$this->ajax_Load=""; /**
  • $this->rough_Response : attribut d'initialisation de la réponse sans balise HTML lorsque le mode de lancement Ajax est initialisé.
  • @var string
  • /
$this->rough_Response=""; /**
  • $this->ajax_Root : attribut du chemin à appliquer aux images lorsque le mode Ajax de l'objet compteur Ajax est initialisé.
  • @var string
  • /
$this->ajax_Root=""; /**
  • $this->ajax_Debug : attribut d'initialisation du mode de mise au point lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
$this->ajax_Debug=""; /**
  • $this->ajax_Config : attribut du nom du fichier de configuration lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
$this->ajax_Config=""; /**
  • $this->ajax_Mode1 : attribut du mode d'affichage du compteur lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
$this->ajax_Mode=""; /**
  • $this->ajax_Pad : attribut du nombre de chiffres du compteur lorsque le mode Ajax de l'objet compteur est initialisé.
  • @var string
  • /
$this->ajax_Pad=""; /**
  • ajax_Read : attribut d'initialisation du mode lecture seule
  • @var string
  • /
$this->ajax_Read=""; /**
  • ajax_Hidden : attribut d'initialisation du mode caché
  • @var string
  • /
$this->ajax_Hidden=""; /**
  • ajax_Session : attribut d'initialisation d'une nouvelle variable de session
  • @var string
  • /
$this->ajax_Session=""; /**
  • my_Ajax_Counter2 : attribut qui reçoit le résultat de l'objet compteur.
  • @var string
  • /
$this->my_Ajax_Counter2=""; /**
  • Si le script est lancé avec le paramètre LSD_Load et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Load'])) { /**
  • alors, l'attribut $this->ajax_Mode reçoit l'argument passé dans LSD_Load
  • /
$this->ajax_Load=$_REQUEST['LSD_Load']; } /**
  • Si le script est lancé avec le paramètre LSD_Rough et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Rough'])) { /**
  • alors, l'attribut $this->rough_Response reçoit l'argument passé dans LSD_Rough
  • /
$this->rough_Response=$_REQUEST['LSD_Rough']; } /**
  • Si le script est lancé avec le paramètre LSD_Root et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Root'])) { /**
  • alors l'attribut $this->ajax_Root reçoit l'argument passé dans LSD_Root
  • /
$this->ajax_Root=$_REQUEST['LSD_Root']; } /**
  • Si le script est lancé avec le paramètre LSD_Debug et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Debug'])) { /**
  • alors l'attribut $this->ajax_Debug reçoit l'argument passé dans LSD_Debug
  • /
$this->ajax_Debug=$_REQUEST['LSD_Debug']; } /**
  • Si le script est lancé avec le paramètre LSD_Config et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Config'])) { /**
  • alors l'attribut $this->ajax_Config reçoit l'argument passé dans LSD_Config
  • /
$this->ajax_Config=$_REQUEST['LSD_Config']; } /**
  • Si le script est lancé avec le paramètre LSD_Mode et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Mode'])) { /**
  • alors, l'attribut $this->ajax_Mode reçoit l'argument passé dans LSD_Mode
  • /
$this->ajax_Mode=$_REQUEST['LSD_Mode']; } /**
  • Si le script est lancé avec le paramètre LSD_Pad et que l'argument n'est pas vide
  • /
if(isset($_REQUEST['LSD_Pad'])) { /**
  • alors, l'attribut $this->ajax_Pad reçoit l'argument passé dans LSD_Pad
  • /
$this->ajax_Pad=$_REQUEST['LSD_Pad']; /**
  • si l'attribut $this->ajax_Pad est une chaîne de caractères
  • /
if(is_string($this->ajax_Pad)) { /**
  • alors, l'attribut $this->ajax_Pad prend soit une valeur différente de 0, soit la valeur "0"
  • /
$this->ajax_Pad=($this->ajax_Pad!="0")?$this->ajax_Pad:"0"; } } /**
  • Si le script est lancé avec le paramètre LSD_Read et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Read'])) { /**
  • alors l'attribut $this->ajax_Read reçoit l'argument passé dans LSD_Read
  • /
$this->ajax_Read=$_REQUEST['LSD_Read']; } /**
  • Si le script est lancé avec le paramètre LSD_Session et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Session'])) { /**
  • alors l'attribut $this->ajax_Session reçoit l'argument passé dans LSD_Session
  • /
$this->ajax_Session=$_REQUEST['LSD_Session']; } /**
  • Si le script est lancé avec le paramètre LSD_Hidden et que l'argument n'est pas vide
  • /
if(!empty($_REQUEST['LSD_Hidden'])) { /**
  • alors l'attribut $this->ajax_Hidden reçoit l'argument passé dans LSD_Hidden
  • /
$this->ajax_Hidden=$_REQUEST['LSD_Hidden']; } /**
  • appeler la méthode start_LSD_Counter2()
  • /
$this->start_LSD_Counter2(); } /**
  • Méthode qui instencie l'objet compteur en mode Ajax
  • /
private function start_LSD_Counter2() { /**
  • Si l'attribut $this->ajax_Load est le mot "ajax"
  • /
if((strtolower($this->ajax_Load)=='ajax')) { /**
  • alors, lancer une session
  • /
session_start(); /**
  • indiquer le nom du fichier de configuration
  • /
$this->config_Name='default_Counter2'; /**
  • instencier l'objet compteur
  • /
$this->my_Ajax_Counter2=new LSD_Php5_Counter2(self::over_Root,self::script_Path,$this->config_Name); /**
  • activer le mode ajax
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Ajax_Load(true,$this->ajax_Root); /**
  • puis tester les paramètres passés à l'objet
  • /
$this->check_Params(); /**
  • puis afficher le compteur à l'aide de la méthode get_LSD_Php5_Counter2_Hit_Result() :
  • /
$this->my_Ajax_Counter2->get_LSD_Php5_Counter2_Hit_Result(); } /**
  • sinon (donc l'attribut $this->ajax_Mode n'est pas le mot "ajax"),
  • /
else { /**
  • alors forcer la valeur de l'attribut $this->ajax_Load à vide ("")
  • /
$this->ajax_Load=''; } } /**
  • Méthode qui teste les paramètres passés à l'objet LSD_Ajax_Counter2.
  • /
private function check_Params() { /**
  • si l'attribut $this->ajax_Debug est le mot "debug"
  • /
if((strtolower($this->ajax_Debug)=='debug')) { /**
  • alors activer le mode debug à l'aide de la méthode set_LSD_Php5_Counter2_Debug_Mode()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Debug_Mode(true); } /**
  • si l'attribut $this->ajax_Config n'est pas vide
  • /
if((!empty($this->ajax_Config))&&($this->ajax_Config!='')) { /**
  • alors, changer le fichier de configuration à l'aide de la méthode set_LSD_Php5_Counter2_Config_Name()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Config_Name($this->ajax_Config); } /**
  • si la paramètre $this->rough_Response est le mot "rough"
  • /
if((strtolower($this->rough_Response)=='rough')) { /**
  • alors activer le mode d'affichage sans balise HTML à l'aide de la méthode set_LSD_Php5_Counter2_Rough_Response()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Rough_Response(true); } /**
  • si la paramètre $this->ajax_Read est le mot "true"
  • /
if((strtolower($this->ajax_Read)=='true')) { /**
  • alors activer le mode lecture seule à l'aide de la méthode set_LSD_Php5_Counter2_Read_Only()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Read_Only(true); } /**
  • si la paramètre $this->ajax_Hidden est le mot "true"
  • /
if((strtolower($this->ajax_Hidden)=='true')) { /**
  • alors activer le mode caché à l'aide de la méthode set_LSD_Php5_Counter2_Hidden_Result()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Hidden_Result(true); } /**
  • si l'attribut $this->ajax_Session est une chaîne de caractères non vide et non nulle
  • /
if((!empty($this->ajax_Session))&&(is_string($this->ajax_Session))&&($this->ajax_Session!="")) { /**
  • alors changer l'attribut de session à l'aide de la méthode set_LSD_Php5_Counter2_Session_Id()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Session_Id($this->ajax_Session); } /**
  • si l'attribut $this->ajax_Mode est la lettre "T" ou la lettre "G"
  • /
if((strtoupper($this->ajax_Mode)==='T')||(strtoupper($this->ajax_Mode)==='G')) { /**
  • alors changer le mode d'affichage à l'aide de la méthode set_LSD_Php5_Counter2_Response_Mode()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Response_Mode($this->ajax_Mode); } /**
  • si l'attribut $this->ajax_Pad n'est pas vide et n'est pas null
  • /
if((isset($this->ajax_Pad))&&($this->ajax_Pad!='')&&($this->ajax_Pad!=null)) { /**
  • alors changer le nombre de digit du compteur à l'aide de la méthode set_LSD_Php5_Counter2_Pad_Number()
  • /
$this->my_Ajax_Counter2->set_LSD_Php5_Counter2_Pad_Number($this->ajax_Pad); } } } /**
  • Troisième partie du script LSD_Php5_Counter2.php - L'objet compteur.
  • /
/**
  • Objet PHP5 qui affiche un compteur de visites (hit) paramétrable en mode texte ou en mode graphique.
  • @return - affiche soit un compteur, soit un message d'erreur si la variable "$debug" a été initialisée à "true" avant l'appel du compteur.
  • /
class LSD_Php5_Counter2 { /**
  • bi : constante de l'objet compteur utilisée pour construire le début de la balise HTML d'une image
  • /
const bi="<img src=\""; /**
  • mi : constante de l'objet compteur utilisée pour construire le milieu de la balise HTML d'une image
  • /
const mi="\""; /**
  • ei : constante de l'objet compteur utilisée pour construire la fin de la balise HTML d'une image
  • /
const ei="/>"; /**
  • h : constante de l'objet compteur utilisée pour construire le début de la balise HTML de la hauteur d'une image
  • /
const h="height=\""; /**
  • w : constante de l'objet compteur utilisée pour construire le début de la balise HTML de la largeur d'une image
  • /
const w="width=\""; /**
  • p : constante de l'objet compteur utilisée pour construire la fin de la balise HTML de la dimention d'une image
  • /
const p="px\""; /**
  • bt : constante de l'objet compteur utilisée pour construire le début de la balise HTML d'un texte
  • /
const bt="<span style=\""; /**
  • mt : constante de l'objet compteur utilisée pour construire le milieu de la balise HTML d'un texte
  • /
const mt="\">"; /**
  • et : constante de l'objet compteur utilisée pour construire la fin de la balise HTML d'un texte
  • /
const et="</span>"; /**
  • s : constante de l'objet compteur utilisée pour écrire le signe ;
  • /
const s=";"; /**
  • ff : constante de l'objet compteur utilisée pour construire le début de la balise HTML de la famille de fonte d'un texte
  • /
const ff=" font-family:"; /**
  • fs : constante de l'objet compteur utilisée pour construire le début de la balise HTML de la taille d'un texte
  • /
const fs=" font-size:"; /**
  • cp : constante de l'objet compteur utilisée pour construire le chemin des fichiers de configuration
  • /
const cp="config/"; /**
  • ce : constante de l'objet compteur utilisée pour l'extention du nom des fichiers de configuration
  • /
const ce=".inc"; /**
  • fp : constante de l'objet compteur utilisée pour le chemin des fichiers de vistes
  • /
const fp="hits/"; /**
  • $debug : variable du mode de mise au point
  • @var boolean
  • /
private $debug; /**
  • $read_Only : variable de lecture seule du fichier des visites
  • @var boolean
  • /
private $read_Only; /**
  • $over_Root : variable de surcharge des chemins absolus
  • @var string
  • /
private $over_Root; /**
  • $config_Root : variable de sauvegarde du chemin à rajouter au chemin des images lorsque le mode ajax est activé
  • @var string
  • /
private $config_Root; /**
  • $ajax : variable d'activation de l'appel du script par un Javasript pour retourner le compteur en mode Ajax
  • @var boolean
  • /
private $ajax; /**
  • $ajax_Root : chemin à rajouter au chemin des images lorsque le mode ajax est activé
  • @var string
  • /
private $ajax_Root; /**
  • $msg : variable du message
  • @var string
  • /
private $msg; /**
  • $msg_Nb : variable du numéro du message
  • @var string
  • /
private $msg_Nb; /**
  • $script_Path : variable du chemin du script
  • @var string
  • /
private $script_Path; /**
  • $config_Path : chemin du fichier de configuration
  • @var string
  • /
private $config_Path; /**
  • $config_Name : variable du nom du fichier de configuration
  • @var string
  • /
private $config_Name; /**
  • $changed_Config : variable de changement du nom du fichier de configuration
  • @var string
  • /
private $changed_Config; /**
  • $new_Config : nouveau nom du fichier de configuration
  • @var string
  • /
private $new_Config; /**
  • $file_Path : variable du chemin du fichier des visites
  • @var string
  • /
private $file_Path; /**
  • $file_Name : variable du nom du fichier des visites
  • @var string
  • /
private $file_Name; /**
  • $changed_Name : variable de changement du nom du nouveau fichier des visites
  • @var string
  • /
private $changed_Name; /**
  • $cnew_Name : nom du nouveau fichier des visites
  • @var string
  • /
private $new_Name; /**
  • $session_Id : variable de la variable de session
  • @var string
  • /
private $session_Id; /**
  • $new_Id : nouveau nom de variable de session
  • @var string
  • /
private $new_Id; /**
  • $changed_Id : variable de changement de la valeur de la variable de session
  • @var boolean
  • /
private $changed_Id; /**
  • $init : variable d'initialisation du compteur
  • @var string
  • /
private $init; /**
  • $cheat : variable de triche de comptabilisation des visites
  • @var string
  • /
private $cheat; /**
  • $hidden : variable d'affichage du compteur
  • @var boolean
  • /
private $hidden; /**
  • $changed_Hidden : variable de changement d'affichage du compteur
  • @var boolean
  • /
private $changed_Hidden; /**
  • $mode : variable du mode d'affichage du compteur (texte ou graphique)
  • @var char
  • /
private $mode; /**
  • $changed_Mode : variable de changement du mode d'affichage du compteur (texte ou graphique)
  • @var char
  • /
private $changed_Mode; /**
  • $default_Mode : variable initiale du nom du mode d'affichage
  • @var string
  • /
private $default_Mode; /**
  • $new_Mode : nouveau mode d'affichage du compteur
  • @var char
  • /
private $new_Mode; /**
  • $pad : variable du nombre de chiffres du compteur (texte ou graphique)
  • @var string
  • /
private $pad; /**
  • $changed_Pad : variable de changement du nombre de chiffres du compteur (texte ou graphique)
  • @var string
  • /
private $changed_Pad; /**
  • $default_Pad : variable initiale du nombre de digit du compteur
  • @var string
  • /
private $default_Pad; /**
  • $new_Pad : nouveau nombre de chiffres du compteur (texte ou graphique)
  • @var string
  • /
private $new_Pad; /**
  • $color : variable de la couleur d'avant plan du texte du compteur texte
  • @var string
  • /
private $color; /**
  • $b_Color : variable de la couleur de fond du texte du compteur texte
  • @var string
  • /
private $b_Color; /**
  • $f_Fam : variable de la f_Fame du texte du compteur texte
  • @var string
  • /
private $f_Fam; /**
  • $size : variable de la taille du texte du compteur texte
  • @var string
  • /
private $size; /**
  • $t_0 : variable du texte affiché s'il n'y a pas eu de visite (compteur en mode texte)
  • @var string
  • /
private $t_0; /**
  • $t_1 : variable du texte affiché avant le nombre de visites (compteur en mode texte)
  • @var string
  • /
private $t_1; /**
  • $t_2 : variable du texte affiché après le nombre de visites s'il n'y a eu qu'une seule visite (compteur en mode texte)
  • @var string
  • /
private $t_2; /**
  • $t_3 : variable du texte affiché après le nombre de visites s'il n'y a eu plus d'une visite (compteur en mode texte)
  • @var string
  • /
private $t_3; /**
  • $i_Path : variable du chemin des images du compteur graphique
  • @var string
  • /
private $i_Path; /**
  • $i_Name : variable du nom des images du compteur graphique
  • @var string
  • /
private $i_Name; /**
  • $i_Ext : variable de l'extention des images du compteur graphique
  • @var string
  • /
private $i_Ext; /**
  • $i_H : variable de la hauteur des images des chiffres du compteur graphique
  • @var string
  • /
private $i_H; /**
  • $i_W : variable de la largeur des images des chiffres du compteur graphique
  • @var string
  • /
private $i_W; /**
  • $i_border : variable d'affichage des images de bord du compteur graphique
  • @var boolean
  • /
private $i_Border; /**
  • $i_Lft : variable du nom de l'image du bord gauche du compteur graphique
  • @var string
  • /
private $i_Lft; /**
  • $i_Lft_H : variable de la hauteur de l'image du bord gauche du compteur graphique
  • @var string
  • /
private $i_Lft_H; /**
  • $i_Lft_H : variable de la largeur de l'image du bord gauche du compteur graphique
  • @var string
  • /
private $i_Lft_W; /**
  • $i_Rgt1 : variable du nom de l'image du bord droit n°1 du compteur graphique affichée lorsqu'il y a eu moins de 2 visites
  • @var string
  • /
private $i_Rgt1; /**
  • $i_Rgt1_H : variable de la hauteur de l'image du bord droit n°1 du compteur graphique
  • @var string
  • /
private $i_Rgt1_H; /**
  • $i_Rgt1_W : variable de la largeur de l'image du bord droit n°1 du compteur graphique
  • @var string
  • /
private $i_Rgt1_W; /**
  • $i_Rgt2 : variable du nom de l'image du bord droit n°2 du compteur graphique affichée lorsqu'il y a eu plus d'une visite
  • @var string
  • /
private $i_Rgt2; /**
  • $i_Rgt2_H : variable de la hauteur de l'image du bord droit n°2 du compteur graphique
  • @var string
  • /
private $i_Rgt2_H; /**
  • $i_Rgt2_W : variable de la largeur de l'image du bord droit n°2 du compteur graphique
  • @var string
  • /
private $i_Rgt2_W; /**
  • $c : chaîne de caractères de balise HTML de la couleur d'avant plan du texte
  • @var string
  • /
private $c; /**
  • $b : chaîne de caractères de balise HTML de la couleur de fond du texte
  • @var string
  • /
private $b; /**
  • $t : chaîne de caractères de fin balise HTML de la taille du texte
  • @var string
  • /
private $t; /**
  • $i : Indice de boucle
  • @var integer
  • /
private $i; /**
  • $hit_File : fichier des visites
  • @var string
  • /
private $hit_File; /**
  • $n_Hit : nombre de visites
  • @var integer
  • /
private $n_Hit; /**
  • $n_Str : transformation du nombre de visites en chaîne de caractères
  • @var string
  • /
private $n_Str; /**
  • $LSD_Php5_Counter2 : chaîne HTML qui représente le compteur
  • @var string
  • /
private $LSD_Php5_Counter2; /**
  • $n_Digit : chaîne HTML de concaténation des nombres
  • @var string
  • /
private $n_Digit; /**
  • $rough_Response : variable d'activation du mode texte sans balise HTML lorsque le mode ajax est activé
  • @var boolean
  • /
private $rough_Response; /**
  • Méthode constructeur de l'objet compteur.
*
  • @param string $over_Root
  • @param string $script_Path
  • @param string $config_Name
  • @param boolean $read_Only
  • /
function __construct($over_Root,$script_Path,$config_Name) { /**
  • Appeler la méthode qui initialise tous les attributs de l'objet compteur
  • /
$this->init_Attributes(); /**
  • puis, appeler la méthode $this->initial_Load($this->over_Root,$this->script_Path,$this->config_Name)
  • /
$this->initial_Load($over_Root,$script_Path,$config_Name); } /**
  • Méthode qui initialise tous les attributs de l'objet compteur avant son utilisation
  • /
private function init_Attributes() { $this->debug=false; $this->read_Only=false; $this->over_Root=''; $this->config_Root=''; $this->ajax=false; $this->ajax_Root=''; $this->msg='None'; $this->msg_Nb=0; $this->script_Path=''; $this->config_Path=''; $this->config_Name=''; $this->changed_Config=false; $this->new_Config=''; $this->file_Path=''; $this->file_Name=''; $this->changed_Name=false; $this->new_Name=''; $this->session_Id=''; $this->new_Id=''; $this->changed_Id=false; $this->init=0; $this->cheat=0; $this->hidden=false; $this->changed_Hidden=false; $this->mode=''; $this->changed_Mode=false; $this->default_Mode=''; $this->new_Mode=''; $this->pad=''; $this->changed_Pad=false; $this->default_Pad=''; $this->new_Pad=''; $this->color=''; $this->b_Color=''; $this->f_Fam=''; $this->size=''; $this->t_0=''; $this->t_1=''; $this->t_2=''; $this->t_3=''; $this->i_Path=''; $this->i_Name=''; $this->i_Ext=''; $this->i_H=''; $this->i_W=''; $this->i_Border=''; $this->i_Lft=''; $this->i_Lft_H=''; $this->i_Lft_W=''; $this->i_Rgt1=''; $this->i_Rgt1_H=''; $this->i_Rgt1_W=''; $this->i_Rgt2=''; $this->i_Rgt2_H=''; $this->i_Rgt2_W=''; $this->c=''; $this->b=''; $this->t=''; $this->i=0; $this->hit_File=''; $this->n_Hit=0; $this->n_Str=''; $this->LSD_Php5_Counter2=''; $this->n_Digit=''; $this->rough_Response=false; } /**
  • Méthode qui teste l'existance du fichier de configuration et qui le charge s'il est trouvé
  • /
private function initial_Load($over_Root,$script_Path,$config_Name) { /**
  • Si la variable $script_Path n'est pas initialisée,
  • /
if(!isset($script_Path)) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(1); } /**
  • sinon
  • /
else { /**
  • alors, si le répertoire n'existe pas
  • /
if(!file_exists($over_Root.$script_Path)) { /**
  • alors, affecter la valeur de la variable $script_Path à l'attribut $this->script_Path
  • /
$this->script_Path=$script_Path; /**
  • puis, créer le message suivant,
  • /
$this->create_Message(2); /**
  • puis passer la valeur de l'attribut $this->script-Path à null.
  • /
$this->script_Path=null; } /**
  • sinon (donc le répertoire existe)
  • /
else { /**
  • L'attribut $this->script_Path est initialisé avec la valeur de la variable $script_Path passée en paramètre,
  • /
$this->script_Path=$script_Path; } } /**
  • Si la variable $config_Name n'est pas initialisée,
  • /
if(!isset($config_Name)) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(3); } /**
  • sinon
  • /
else { /**
  • L'attribut $this->c_Name est initialisé avec la valeur de la variable $config_Name passée en paramètre,
  • /
$this->config_Name=$config_Name; } /**
  • Initialisation du sous-répertoire contenant le(s) fichier(s) de configuration.
  • /
$this->config_Path=$script_Path.self::cp; /**
  • Si l'attribut $over_Root n'a pas été initialisé dans la page qui appèle le script,
  • /
if(!isset($over_Root)) { /**
  • alors, initialiser cet attribut a vide ('').
  • /
$this->over_Root=''; } /**
  • sinon
  • /
else { /**
  • alors l'attribut $over_Root prend la valeur passée en paramètre.
  • /
$this->over_Root=$over_Root; } /**
  • Si le répertoire $this->script_Path.self::cp n'existe pas
  • /
if(!file_exists($this->over_Root.$this->config_Path)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(4); } /**
  • Si l'attribut $this->msg a toujours la valeur "None" et que le fichier de configuration n'est pas trouvé,
  • /
if(($this->msg=="None")&&(!file_exists($this->over_Root.$this->config_Path.$this->config_Name.self::ce))) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(5); } /**
  • si il n'y a pas d'erreur,
  • /
if($this->msg=="None") { /**
  • alors, charger le fichier de configuration.
  • /
require ($this->over_Root.$this->config_Path.$this->config_Name.self::ce); } } /**
  • Méthode qui assigne les messages d'erreur.
  • /
private function create_Message($msg_Nb) { switch($msg_Nb) { case 0: $this->msg=htmlentities("None"); break; case 1: $this->msg=htmlentities("Erreur #01:La variable du chemin du fichier script n'est pas initialisée avant l'appel du script!"); break; case 2: $this->msg=htmlentities("Erreur #02:Le chemin du fichier script ".$this->over_Root.$this->script_Path." est introuvable!"); break; case 3: $this->msg=htmlentities("Erreur #03:La variable du nom de fichier de configuration n'est pas initialisée avant l'appel du script!"); break; case 4: $this->msg=htmlentities("Erreur #04:Le répertoire ".$this->over_Root.$this->config_Path." est introuvable!"); break; case 5: $this->msg=htmlentities("Erreur #05:Le fichier de configuration ".$this->over_Root.$this->config_Path.$this->config_Name.self::ce." est introuvable!"); break; case 6: $this->msg=htmlentities("Erreur #06:L'attribut \$this->session_Id n'est pas initialisé!"); break; case 7: $this->msg=htmlentities("Erreur #07:L'attribut \$this->file_Path n'est pas initialisé!"); break; case 8: $this->msg=htmlentities("Erreur #08:L'attribut \$this->file_Name n'est pas initialisé!"); break; case 9: $this->msg=htmlentities("Erreur #09:L'attribut \$this->file_Ext n'est pas initialisé!"); break; case 10: $this->msg=htmlentities("Erreur #10:Le répertoire ".$this->over_Root.$this->file_Path." est introuvable!"); break; case 11: $this->msg=htmlentities("Erreur #11:L'attribut \$this->init n'est pas initialisé!"); break; case 12: $this->msg=htmlentities("Erreur #12:L'attribut \$this->cheat n'est pas initialisé!"); break; case 13: $this->msg=htmlentities("Erreur #13:L'attribut \$this->hidden n'est pas initialisé!"); break; case 14: $this->msg=htmlentities("Erreur #14:L'attribut \$this->mode n'est pas initialisé!"); break; case 15: $this->msg=htmlentities("Erreur #15:L'attribut \$this->pad n'est pas initialisé!"); break; case 16: $this->msg=htmlentities("Erreur #16:L'attribut \$this->color n'est pas initialisé!"); break; case 17: $this->msg=htmlentities("Erreur #17:L'attribut \$this->b_Color n'est pas initialisé!"); break; case 18: $this->msg=htmlentities("Erreur #18:L'attribut \$this->size n'est pas initialisé!"); break; case 19: $this->msg=htmlentities("Erreur #19:L'attribut \$this->f_Fam n'est pas initialisé!"); break; case 20: $this->msg=htmlentities("Erreur #20:L'attribut \$this->t_0 n'est pas initialisé!"); break; case 21: $this->msg=htmlentities("Erreur #21:L'attribut \$this->t_1 n'est pas initialisé!"); break; case 22: $this->msg=htmlentities("Erreur #22:L'attribut \$this->t_2 n'est pas initialisé!"); break; case 23: $this->msg=htmlentities("Erreur #23:L'attribut \$this->t_3 n'est pas initialisé!"); break; case 24: $this->msg=htmlentities("Erreur #24:L'attribut \$this->i_Path n'est pas initialisé!"); break; case 25: $this->msg=htmlentities("Erreur #25:Le répertoire ".$this->over_Root.$this->i_Path." est introuvable!"); break; case 26: $this->msg=htmlentities("Erreur #26:L'attribut \$this->i_Name n'est pas initialisé!"); break; case 27: $this->msg=htmlentities("Erreur #27:L'attribut \$this->i_Ext n'est pas initialisé!"); break; case 28: $this->msg=htmlentities("Erreur #28:L'attribut \$this->i_Border n'est pas initialisé!"); break; case 29: $this->msg=htmlentities("Erreur #29:L'attribut \$this->i_Lft n'est pas initialisé!"); break; case 30: $this->msg=htmlentities("Erreur #30:L'image ".$this->over_Root.$this->i_Path.$this->i_Name.$this->i_Lft.'.'.$this->i_Ext." est introuvable!"); break; case 31: $this->msg=htmlentities("Erreur #31:L'attribut \$this->i_Lft_H n'est pas initialisé!"); break; case 32: $this->msg=htmlentities("Erreur #32:L'attribut \$this->i_Lft_W n'est pas initialisé!"); break; case 33: $this->msg=htmlentities("Erreur #33:L'attribut \$this->i_Rgt1 n'est pas initialisé!"); break; case 34: $this->msg=htmlentities("Erreur #34:L'image ".$this->over_Root.$this->i_Path.$this->i_Name.$this->i_Rgt1.'.'.$this->i_Ext." est introuvable!"); break; case 35: $this->msg=htmlentities("Erreur #35:L'attribut \$this->i_Rgt1_H n'est pas initialisé!"); break; case 36: $this->msg=htmlentities("Erreur #36:L'attribut \$this->i_Rgt1_W n'est pas initialisé!"); break; case 37: $this->msg=htmlentities("Erreur #37:L'attribut \$this->i_Rgt2 n'est pas initialisé!"); break; case 38: $this->msg=htmlentities("Erreur #38:L'image ".$this->over_Root.$this->i_Path.$this->i_Name.$this->i_Rgt2.'.'.$this->i_Ext." est introuvable!"); break; case 39: $this->msg=htmlentities("Erreur #39:L'attribut \$this->i_Rgt2_H n'est pas initialisé!"); break; case 40: $this->msg=htmlentities("Erreur #40:L'attribut \$this->i_Rgt2_W n'est pas initialisé!"); break; case 41: $this->msg=htmlentities("Erreur #41:L'image ".$this->over_Root.$this->i_Path.$this->i_Name.$this->i.'.'.$this->i_Ext." est introuvable!"); break; case 42: $this->msg=htmlentities("Erreur #42:L'attribut \$this->i_H n'est pas initialisé!"); break; case 43: $this->msg=htmlentities("Erreur #43:L'attribut \$this->i_W n'est pas initialisé!"); break; case 44: $this->msg=htmlentities("Erreur #44:L'attribut \$this->mode n'est pas correctement initialisé!"); break; case 45: $this->msg=htmlentities("Erreur #45:Le paramètre \$this->mode n'est pas correctement initialisé!"); break; case 46: $this->msg=htmlentities("Erreur #46:Le chemin passé en paramètre à la méthode set_LSD_Php5_Counter2_Ajax_Load() est invalide!"); break; case 47: $this->msg=htmlentities("Erreur #47:Le chemin passé en paramètre à la méthode set_LSD_Php5_Counter2_Ajax_Load() en mode AJAX est invalide!"); break; case 48: $this->msg=htmlentities("Erreur #48:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Ajax_Load() est invalide!"); break; case 49: $this->msg=htmlentities("Erreur #49:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Ajax_Load() en mode AJAX est invalide!"); break; case 50: $this->msg=htmlentities("Erreur #50:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Config_Name() est invalide!"); break; case 51: $this->msg=htmlentities("Erreur #51:Le fichier de configuration passé en paramètre à la méthode set_LSD_Php5_Counter2_Config_Name() en mode AJAX est introuvable!"); break; case 52: $this->msg=htmlentities("Erreur #52:La fichier de configuration passé en paramètre à la méthode set_LSD_Php5_Counter2_Debug_Mode() est introuvable!!"); break; case 53: $this->msg=htmlentities("Erreur #53:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Debug_Mode() en mode AJAX est invalide!"); break; case 54: $this->msg=htmlentities("Erreur #54:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Hidden_Result() est invalide!"); break; case 55: $this->msg=htmlentities("Erreur #55:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Hidden_Result() en mode AJAX est invalide!"); break; case 56: $this->msg=htmlentities("Erreur #56:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Rough_Response() est invalide!"); break; case 57: $this->msg=htmlentities("Erreur #57:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Rough_Response() en mode AJAX est invalide!"); break; case 58: $this->msg=htmlentities("Erreur #58:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Read_Only() est invalide!"); break; case 59: $this->msg=htmlentities("Erreur #59:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Read_Only() en mode AJAX est invalide!"); break; case 60: $this->msg=htmlentities("Erreur #60:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Session_Id() est invalide!"); break; case 61: $this->msg=htmlentities("Erreur #61:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Session_Id() en mode AJAX est invalide!"); break; case 62: $this->msg=htmlentities("Erreur #62:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Response_Mode() est invalide!"); break; case 63: $this->msg=htmlentities("Erreur #63:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Response_Mode() en mode AJAX est invalide!"); break; case 64: $this->msg=htmlentities("Erreur #64:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Pad_Number() est invalide!"); break; case 65: $this->msg=htmlentities("Erreur #65:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Pad_Number() en mode AJAX est invalide!"); break; case 66: $this->msg=htmlentities("Erreur #66:Le fichier des visites avec le nom passé en paramètre à la méthode set_LSD_Php5_Counter2_Hit_Name() est introuvable!"); break; case 67: $this->msg=htmlentities("Erreur #67:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Hit_Name() est invalide!"); break; case 68: $this->msg=htmlentities("Erreur #68:La variable passée en paramètre à la méthode set_LSD_Php5_Counter2_Hit_Name() en mode AJAX est invalide!"); break; default: $this->msg=htmlentities("None"); break; } } /**
  • Méthode qui teste les attributs définis par le fichier de configuration sélectionné.
  • /
private function test_Config() { /**
  • Si l'attribut de session n'est pas initialisée ou est vide,
  • /
if((!isset($this->session_Id))||(empty($this->session_Id))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(6); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut de chemin du fichier des visites n'est pas initialisé,
  • /
if(!isset($this->file_Path)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(7); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut de nom du fichier des visites n'est pas initialisé ou est vide,
  • /
if((!isset($this->file_Name))||(empty($this->file_Name))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(8); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut de l'extention du nom du fichier des visites n'est pas initialisé ou est vide,
  • /
if((!isset($this->file_Ext))||(empty($this->file_Ext))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(9); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si le répertoire du fichier de configuration n'existe pas
  • /
if(!file_exists($this->over_Root.$this->file_Path)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(10); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut d'initialisation du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->init))&&(empty($this->init))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(11); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut de triche du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->cheat))&&(empty($this->cheat))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(12); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut d'affichage du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->hidden))&&(empty($this->hidden))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(13); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut du mode d'affichage du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->mode))||(empty($this->mode))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(14); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut d'affichage du nombre de chiffres du compteur graphique n'est pas initialisé,
  • /
if((!isset($this->pad))&&(empty($this->pad))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(15); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut $this->mode a la valeur "t" ou "T" (le compteur est en mode texte)
  • /
if(strtolower($this->mode)=="t") { /**
  • Si l'attribut de couleur du texte du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->color))||(empty($this->color))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(16); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut de couleur de fond du texte du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->b_Color))||(empty($this->b_Color))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(17); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut de taille du texte du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->size))||(empty($this->size))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(18); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut de police du texte du compteur n'est pas initialisé ou est vide,
  • /
if((!isset($this->f_Fam))||(empty($this->f_Fam))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(19); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut du texte à afficher au lieu du compteur s'il n'y pas eu de visite n'est pas initialisé,
  • /
if(!isset($this->t_0)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(20); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut du texte à afficher avant le nombre de visites n'est pas initialisé,
  • /
if(!isset($this->t_1)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(21); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut du texte à afficher après une seule visite n'est pas initialisé,
  • /
if(!isset($this->t_2)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(22); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • Si l'attribut du texte à afficher après plusieurs visites n'est pas initialisé,
  • /
if(!isset($this->t_3)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(23); /**
  • puis sortir de la méthode test_Config().
  • /
return; } } /**
  • sinon, si l'attribut $this->mode a la valeur "g" ou "G" (le compteur est en mode graphique)
  • /
elseif(strtolower($this->mode)=="g") { /**
  • alors, si l'attribut de chemin des images n'est pas initialisé,
  • /
if(!isset($this->i_Path)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(24); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si le répertoire des images n'est ps trouvé,
  • /
if(!file_exists($this->over_Root.$this->i_Path)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(25); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut du nom générique des images n'est pas initialisé ou est vide,
  • /
if((!isset($this->i_Name))||(empty($this->i_Name))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(26); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de l'extention du nom des fichiers images n'est pas initialisé ou est vide,
  • /
if((!isset($this->i_Ext))||(empty($this->i_Ext))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(27); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut d'affichage des bords du compteur graphique n'est pas initialisé,
  • /
if((!isset($this->i_Border))&&(empty($this->i_Border))) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(28); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut $this->i_Border a la valeur "true",
  • /
if($this->i_Border==true) { /**
  • alors, si l'attribut du nom de l'image de gauche du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Lft)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(29); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'image de gauche du compteur graphique n'est pas trouvée,
  • /
if(!file_exists($this->over_Root.$this->i_Path.$this->i_Name.$this->i_Lft.'.'.$this->i_Ext)) { /**
  • alors, créer le message suivant
  • /
$this->create_Message(30); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de la hauteur de l'image de gauche du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Lft_H)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(31); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de la largeur de l'image de gauche du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Lft_W)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(32); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de nom de l'image de droite n° 1 du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Rgt1)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(33); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'image de droite n° 1 du compteur graphique n'est pas trouvée,
  • /
if(!file_exists($this->over_Root.$this->i_Path.$this->i_Name.$this->i_Rgt1.'.'.$this->i_Ext)) { /**
  • alors, créer le message suivant
  • /
$this->create_Message(34); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de la hauteur de l'image de droite n° 1 du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Rgt1_H)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(35); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de la largeur de l'image de droite n° 1 du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Rgt1_W)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(36); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de nom de l'image de droite n° 2 du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Rgt2)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(37); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de nom de l'image de droite n° 2 est différent de celui de l'image de droite n° 1
  • /
if($this->i_Rgt2!=$this->i_Rgt1) { /**
  • alors, si l'image de droite n° 2 du compteur graphique n'est pas trouvée,
  • /
if(!file_exists($this->over_Root.$this->i_Path.$this->i_Name.$this->i_Rgt2.'.'.$this->i_Ext)) { /**
  • alors, créer le message suivant
  • /
$this->create_Message(38); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de la hauteur de l'image de droite n° 2 du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Rgt2_H)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(39); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de la largeur de l'image de droite n° 2 du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_Rgt2_W)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(40); /**
  • puis sortir de la méthode test_Config().
  • /
return; } } } /**
  • alors, faire une boucle pour tester l'existence des 10 images des chiffres du compteur.
  • /
for($this->i=0;$this->i<10;$this->i++) { /**
  • si une image n'exsite pas,
  • /
if(!file_exists($this->over_Root.$this->i_Path.$this->i_Name.$this->i.'.'.$this->i_Ext)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(41); /**
  • puis sortir de la méthode test_Config().
  • /
return; } } /**
  • alors, si l'attribut de la hauteur des chiffres du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_H)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(42); /**
  • puis sortir de la méthode test_Config().
  • /
return; } /**
  • alors, si l'attribut de la largeur des chiffres du compteur graphique n'est pas initialisé,
  • /
if(!isset($this->i_W)) { /**
  • alors, créer le message suivant :
  • /
$this->create_Message(43); /**
  • puis sortir de la méthode test_Config().
  • /
return; } } /**
  • sinon (l'attribut $this->mode a une autre valeur que "t", "T", "g" ou "G")
  • /
else { /**
  • alors créer le message suivant :
  • /
$this->create_Message(44); /**
  • puis sortir de la méthode test_Config().
  • /
return; } } /**
  • Méthode qui défini les paramètres de la configuration d'un objet compteur minimal en mode texte qui est affiché en cas d'erreur
  • si le mode mise au point n'est pas actif.
  • /
private function create_Config() { /**
  • Attribut qui défini la variable de session du compteur.
  • /
$this->session_Id="Default_LSD_Php5_Counter2"; /**
  • Dans la configuration par défaut, le répertoire qui contient le fichier des visites est un sous-répertoire nommé "hits/"
  • situé en dessous du répertoire du script.
  • Si ce répertoire n'existe pas, le répertoire est créé.
  • /
if(!file_exists($this->over_Root.$this->script_Path.self::fp)) { /**
  • créer le sous-répertoire.
  • /
mkdir($this->over_Root.$this->script_Path.self::fp,0777); } /**
  • Attribut qui indique le chemin du répertoire qui contient le fichier des visites par rapport à la page qui appele le script.
  • /
$this->file_Path=$this->script_Path.self::fp; /**
  • Attribut qui indique le nom du fichier des visites. Dans la configuration par défaut, ce nom est "Default_LSD_Php5_Counter2".
  • /
$this->file_Name="Default_LSD_Php5_Counter2"; /**
  • Attribut qui indique le nom de l'extention du fichier des visites. Dans la configuration par défaut, cette extention est "nbr".
  • /
$this->file_Ext="nbr"; /**
  • Attribut qui indique le nombre de visites à insérer dans le fichier lors de la création du fichier des visites.
  • /
$this->init="0"; /**
  • Attribut de "triche" d'incrémentation du nombre des visites à chaque visite!
  • /
$this->cheat="0"; /**
  • Attribut qui indique si le compteur est visible ou caché.
  • /
$this->hidden=false; /**
  • Attribut qui indique si le compteur est en mode texte ou en mode graphique.
  • /
$this->mode="T"; /**
  • Attribut qui indique le nombre de chiffres à afficher par défaut dans le compteur.
  • /
$this->pad="1"; /**
  • Attribut qui défini la couleur du mode texte. Dans la configuration par défaut, c'est la couleur de la f_Fame utilisée dans la page.
  • /
$this->color="inherit"; /**
  • Attribut qui défini la couleur de fond du mode texte. Dans la configuration par défaut, c'est un fond transparent.
  • /
$this->b_Color="none"; /**
  • Attribut qui défini la famille de fontes du mode texte. Dans la configuration par défaut, c'est la f_Fame utilisée par défaut dans la page.
  • /
$this->f_Fam="inherit"; /**
  • Attribut qui défini la taille du mode texte exprimée en px. Dans la configuration par défaut, c'est la taille de la f_Fame utilisée par défaut dans la page.
  • /
$this->size="inherit"; } /**
  • Méthode qui réinitialise les différents attributs pour un nouvel affichage du compteur en mode PHP
  • /
private function reset_Config() { /**
  • puis réinitialiser l'attribut $this->msg à la valeur "None" pour d'éventuelles autres itérations de la méthode Get_LSD_Php5_Counter2_Result()
  • /
$this->create_Message(0); /**
  • et réinitialiser l'attribut $this->n_File à 0.
  • /
$this->new_File=0; /**
  • et réinitialiser l'attribut $this->n_Digit (la chaîne des nombres) à la valeur null.
  • /
$this->n_Digit=null; /**
  • si l'attribut $this->ajax a la valeur true
  • /
if($this->ajax) { /**
  • alors passer la valeur de l'attribut $this->config_Root à l'attribut $this->over_Root
  • /
$this->over_Root=$this->config_Root; } /**
  • et réinitialiser la valeur de l'attribut $this->ajax à "false".
  • /
$this->ajax=false; /**
  • et réinitialiser la valeur de l'attribut $this->rough_Response à "false".
  • /
$this->rough_Response=false; /**
  • si l'attribut $this->changed_mode a la valeur "true".
  • /
if($this->changed_Mode) { /**
  • alors, passer le type d'affichage en mode graphique
  • /
$this->mode=$this->default_Mode; /**
  • puis passer la valeur de l'attribut $this->changed_Mode à la valeur false
  • /
$this->changed_Mode=false; /**
  • et réinitialiser la valeur de l'attribut $this->default_Mode à ""
  • /
$this->default_Mode=""; } /**
  • si l'attribut $this->changed_Pad a la valeur "true".
  • /
if($this->changed_Pad) { /**
  • alors réinitialiser l'attribut $this->pad à sa valeur initiale.
  • /
$this->pad=$this->default_Pad; /**
  • puis réinitialiser l'attribut $this->changed_pad avec la valeur "false".
  • /
$this->changed_Pad=false; /**
  • et réinitialiser la valeur de l'attribut $this->default_Pad à ""
  • /
$this->default_Pad=""; } /**
  • et réinitialiser l'attribut $this->changed_Config à la valeur "false".
  • /
$this->changed_Config=false; /**
  • et réinitialiser l'attribut $this->changed_Name à la valeur "false".
  • /
$this->changed_Name=false; /**
  • et réinitialiser l'attribut $this->changed_Id à la valeur "false".
  • /
$this->changed_Id=false; /**
  • et réinitialiser l'attribut $this->LSD_Php5_Counter2 (la chaîne du compteur) à la valeur null.
  • /
$this->LSD_Php5_Counter2=null; } /**
  • Méthode qui teste les changements apportés à la configuration par les différentes commandes set_LSD_Php5_Counter2_XYZ()
  • /
private function test_Changes() { /**
  • si la variable $changed_Config a la valeur true
  • /
if($this->changed_Config===true) { /**
  • alors affecter la valeur de l'attribut $this->new_Config à l'attribut $this->Config_Name
  • /
$this->config_Name=$this->new_Config; } /**
  • si la variable de session a été changée
  • /
if($this->changed_Id===true) { /**
  • alors attribuer à l'attribut $this->session_Id la valeur de la variable $n_Id
  • /
$this->session_Id=$this->new_Id; } /**
  • si la variable $changed_Hidden a la valeur true
  • /
if($this->changed_Hidden===true) { /**
  • alors affecter la valeur de l'attribut $this->changed_Hidden à l'attribut $this->hidden
  • /
$this->hidden=$this->changed_Hidden; } /**
  • si la variable $changed_Mode a la valeur true
  • /
if($this->changed_Mode===true) { /**
  • alors affecter la valeur de l'attribut $this->new_Mode à l'attribut $this->Mode
  • /
$this->mode=$this->new_Mode; } /**
  • si la variable $changed_Pad a la valeur true
  • /
if($this->changed_Pad===true) { /**
  • alors affecter la valeur de l'attribut $this->new_Pad à l'attribut $this->Pad
  • /
$this->pad=$this->new_Pad; } /**
  • si la variable $changed_Name a la valeur true
  • /
if($this->changed_Name===true) { /**
  • alors affecter la valeur de l'attribut $this->new_Name à l'attribut $this->file_Name
  • /
$this->file_Name=$this->new_Name; } } /**
  • Méthode qui crée le compteur en appelant la méthode de calcul des visite puis la méthode du mode texte ou du mode graphique
  • /
private function create_Counter() { /**
  • Appeler la méthode de calcul du nombre de visites
  • /
$this->compute_Hit(); /**
  • Si l'attribut $this->read_Only est initialisée et a la valeur "true" (pour le mode lecture),
  • /
if(isset($this->read_Only)&&$this->read_Only==true) { /**
  • alors, initialiser le mode d'affichage à visible.
  • /
$this->hidden=false; } /**
  • Si la valeur de l'attribut $this->hidden est à "false" (pour le mode compteur affiché),
  • /
if($this->hidden==false) { /**
  • alors, si la valeur de l'attribut $this->mode est G ou g (pour un compteuren mode graphique),
  • /
if(($this->mode=="G")||($this->mode=="g")) { /**
  • alors, appeler la méthode $this->draw_Counter2().
  • /
$this->draw_Counter(); } /**
  • sinon (donc le compteur est en mode texte),
  • /
elseif(($this->mode=="T")||($this->mode=="t")) { /**
  • alors appeler la méthode $this->write_Counter2().
  • /
$this->write_Counter(); } /**
  • sinon
  • /
else { /**
  • créer le message suivant.
  • /
$this->create_Message(45); } } } /**
  • Méthode qui lit le fichier des visites et calcule le nombre de visites
  • /
private function compute_Hit() { /**
  • Si le fichier des visites n'existe pas,
  • /
if(!file_exists($this->over_Root.$this->file_Path.$this->file_Name.'.'.$this->file_Ext)) { /**
  • alors, si l'attribut $this->read_Only n'est pas initialisé ou a la valeur "false" (pour le mode écriture),
  • /
if((!isset($this->read_Only))||($this->read_Only==false)) { /**
  • alors, créer le fichier des visites.
  • /
$this->hit_File=fopen($this->over_Root.$this->file_Path.$this->file_Name.'.'.$this->file_Ext,"a"); /**
  • si l'attribut de départ $this->init est initialisée et est suppérieur à 0,
  • /
if((isset($this->init))&&(strval($this->init)>0)) { /**
  • alors, le nombre de hits a la valeur de $this->init.
  • /
$this->n_Hit=strval($this->init); } /**
  • sinon (donc si l'attribut $this->init n'est pas initialisé ou est n'est pas suppérieur à 0),
  • /
else { /**
  • alors, le nombre de hits est 0
  • /
$this->n_Hit=0; } } /**
  • sinon (donc le compteur est en mode lecture)
  • /
else { /**
  • alors, le nombre de hits est 0
  • /
$this->n_Hit=0; } } /**
  • sinon (donc le fichier des visites existe),
  • /
else { /**
  • alors, ouvrir le fichier des visites,
  • /
$this->hit_File=fopen($this->over_Root.$this->file_Path.$this->file_Name.'.'.$this->file_Ext,"r+"); /**
  • puis récupérer le nombre de hits sur 15 chiffres (valeur maximale et raisonnable d'un nombre de visites!!!)
  • /
$this->n_Hit=fgets($this->hit_File,15); } /**
  • Si l'attribut $this->read_Only n'est pas initialisé ou a la valeur "false" (pour le mode ecriture),
  • /
if((!isset($this->read_Only))||($this->read_Only==false)) { /**
  • alors, si l'attribut de triche $this->cheat est initialisée et est suppérieur à 0,
  • /
if((isset($this->cheat))&&(strval($this->cheat)>0)) { /**
  • alors, ajouter la valeur de triche $this->cheat à la valeur du nombre de hits strval($this->cheat).
  • /
$this->n_Hit=$this->n_Hit+strval($this->cheat); } /**
  • et si l'attribut de session $_SESSION[$this->s_Id] n'est pas initialisé,
  • /
if(!isset($_SESSION[$this->session_Id])) { /**
  • alors, créer l'attribut de session $_SESSION[$this->s_Id] avec la valeur de $this->s_Id,
  • /
$_SESSION[$this->session_Id]=$this->session_Id; /**
  • puis ajouter 1 au nombre de hits,
  • /
$this->n_Hit=$this->n_Hit+1; /**
  • puis se placer au début du fichier,
  • /
fseek($this->hit_File,0); /**
  • puis écrire le nouveau nombre de hits dans le fichier.
  • /
fwrite($this->hit_File,$this->n_Hit); } } /**
  • Si le fichier des visites existe,
  • /
if(file_exists($this->hit_File)) { /**
  • alors, fermer le fichier.
  • /
fclose($this->hit_File); } /**
  • Transformer la valeur de l'attribut du nombre de hits $this->n_Hit en une chaîne de caractères $this->n_Str.
  • /
$this->n_Str=strval($this->n_Hit); /**
  • Si la longueur de la chaîne de caractères $this->n_Str est inférieure à la valeur de l'attribut $this->pad,
  • /
if(strlen($this->n_Str)<strval($this->pad)) { /**
  • alors, remplir la chaîne de caractères $this->n_Str par la gauche avec des 0.
  • /
$this->n_Str=STR_PAD($this->n_Hit,$this->pad,'0',STR_PAD_LEFT); } } /**
  • Méthode qui crée la chaîne de caractères HTML correspondant au compteur en mode graphique
  • /
private function draw_Counter() { /**
  • si l'attribut $this->ajax a la valeur "true",
  • /
if($this->ajax==true) { /**
  • alors passer la valeur de l'attribut $this->ajax_Root à l'attribut $this->over_Root
  • /
$this->over_Root=$this->ajax_Root; } /**
  • si la valeur de l'attribut $this->i_Border est à "true" (pour afficher les images de bordure),
  • /
if($this->i_Border==true) { /**
  • alors, définir l'image de gauche du compteur dans le début de la chaîne de caractères $this->LSD_Php5_Counter2.
  • /
$this->LSD_Php5_Counter2=self::bi.$this->over_Root.$this->i_Path.$this->i_Name.$this->i_Lft.".".$this->i_Ext.self::mi.self::h.$this->i_Lft_H.self::p.self::w.$this->i_Lft_W.self::p.self::ei; } /**
  • puis initialiser l'attribut du nombre de chiffres à afficher dans le compteur $this->n_Digit à vide (''),
  • /
$this->n_Digit=""; /**
  • puis boucler sur le nombre de caractères du compteur strlen($this->n_Str),
  • /
for($this->i=0;$this->i<strlen($this->n_Str);$this->i++) { /**
  • Concaténer les chaînes de caractères des chiffres du compteur dans l'attribut $this->n_Digit
  • /
$this->n_Digit.=self::bi.$this->over_Root.$this->i_Path.$this->i_Name.substr($this->n_Str,$this->i,1).".".$this->i_Ext.self::mi.self::h.$this->i_H.self::p.self::w.$this->i_W.self::p.self::ei; } /**
  • puis concaténer la chaîne de caractères de l'image du compteur $this->LSD_Php5_Counter2 avec l'attribut $this->n_Digit.
  • /
$this->LSD_Php5_Counter2.=$this->n_Digit; /**
  • puis si la valeur de l'attribut $this->i_Border est à "true" (pour afficher les images de bordure),
  • /
if($this->i_Border==true) { /**
  • alors, si le nombre de hits $this->n_Hit est inférieur à 2,
  • /
if($this->n_Hit<2) { /**
  • alors, concaténer la chaîne de caractères $this->LSD_Php5_Counter2 avec celle de l'attribut de l'image de droite n°1
  • /
$this->LSD_Php5_Counter2.=self::bi.$this->over_Root.$this->i_Path.$this->i_Name.$this->i_Rgt1.".".$this->i_Ext.self::mi.self::h.$this->i_Rgt1_H.self::p.self::w.$this->i_Rgt1_W.self::p.self::ei; } /**
  • sinon (donc le nombre de hits $this->n_Hit est égal ou suppérieur à 2)
  • /
else { /**
  • alors, concaténer la chaîne de caractères $this->LSD_Php5_Counter2 avec celle de l'attribut de l'image de droite n°2
  • /
$this->LSD_Php5_Counter2.=self::bi.$this->over_Root.$this->i_Path.$this->i_Name.$this->i_Rgt2.".".$this->i_Ext.self::mi.self::h.$this->i_Rgt2_H.self::p.self::w.$this->i_Rgt2_W.self::p.self::ei; } } } /**
  • Méthode qui crée la chaîne de caractères HTML correspondant au compteur en mode texte
  • /
private function write_Counter() { /**
  • Initialisation des attributs servant à écrire trois balises HTML différentes du compteur en mode texte en fonction du contexte
  • /
if($this->color=="inherit") { $this->c="color:"; } else { $this->c="color:#"; } if($this->b_Color=="none") { $this->b=" background:"; } else { $this->b=" background:#"; } if($this->size=="inherit") { $this->t=";"; } else { $this->t="px;"; } /**
  • si l'attribut $this->pad est suppérieur à 0
  • /
if($this->pad>0) { /**
  • alors, concaténer la chaîne de caractères $this->LSD_Php5_Counter2 avec l'attribut $this->n_Str.
  • /
$this->LSD_Php5_Counter2=self::bt.$this->c.$this->color.self::s.$this->b.$this->b_Color.self::s.self::ff.$this->f_Fam.self::s.self::fs.$this->size.$this->t.self::mt.$this->n_Str.self::et; } /**
  • sinon (donc l'attribut $this->pad n'est pas suppérieur 0)
  • /
else { /**
  • alors, si l'attribut $this->n_Hit à la valeur 0 (il n'y a pas encore eu de hit)
  • /
if($this->n_Hit==0) { /**
  • alors, créer la chaîne de caractères $this->LSD_Php5_Counter2 et la concaténer avec l'attribut $this->t_0.
  • /
$this->LSD_Php5_Counter2=self::bt.$this->c.$this->color.self::s.$this->b.$this->b_Color.self::s.self::ff.$this->f_Fam.self::s.self::fs.$this->size.$this->t.self::mt.$this->t_0.self::et; } /**
  • sinon, si l'attribut $this->n_Hit à la valeur 1
  • /
elseif($this->n_Hit==1) { /**
  • alors, créer la chaîne de caractères $this->LSD_Php5_Counter2 et la concaténer avec l'attribut $this->t_1 et avec l'attribut $this->t_2.
  • /
$this->LSD_Php5_Counter2=self::bt.$this->c.$this->color.self::s.$this->b.$this->b_Color.self::s.self::ff.$this->f_Fam.self::s.self::fs.$this->size.$this->t.self::mt.$this->t_1.$this->n_Hit.$this->t_2.self::et; } /**
  • sinon (donc l'attribut $this->n_Hit est suppérieur à 1)
  • /
else { /**
  • alors, créer la chaîne de caractères $this->LSD_Php5_Counter2 et la concaténer avec l'attribut $this->t_1 et avec l'attribut $this->t_3.
  • /
$this->LSD_Php5_Counter2=self::bt.$this->c.$this->color.self::s.$this->b.$this->b_Color.self::s.self::ff.$this->f_Fam.self::s.self::fs.$this->size.$this->t.self::mt.$this->t_1.$this->n_Hit.$this->t_3.self::et; } } /**
  • si le mode texte sans balise est activé
  • /
if($this->rough_Response===true) { /**
  • alors, appeler la méthode send_Rough()
  • /
$this->send_Rough(); } } /**
  • Méthode qui supprime les balises HTML et qui convertit les accents et caractères spéciaux
  • /
private function send_Rough() { /**
  • supprime les balises HTML
  • /
$this->LSD_Php5_Counter2=strip_tags($this->LSD_Php5_Counter2); /**
  • et convertit les accents et autres caractères spéciaux.
  • /
$this->LSD_Php5_Counter2=html_entity_decode($this->LSD_Php5_Counter2,0,'UTF-8'); } /**
  • Méthode qui renvoie soit le mot "None", soit un message d'erreur explicite.
*
  • @return string-($msg)
  • /
public function get_LSD_Php5_Counter2_Error_Status() { /**
  • renvoie soit le mot "None", soit un message d'erreur.
  • /
return $this->msg; } /**
  • Méthode qui renvoie l'état du mode Ajax
  • @return char-(T/F)
  • /
public function get_LSD_Php5_Counter2_Ajax_Load() { /**
  • si le mode Ajax est activé
  • /
if($this->ajax) { /**
  • alors, renvoie le chemin des images
  • /
return ($this->ajax_Root.$this->i_Path); } /**
  • sinon (donc le mode Ajax n'est pas activé)
  • /
else { /**
  • alors, renvoie la lettre F
  • /
return ("F"); } } /**
  • Méthode qui permet d'activer le mode de chargement Ajax, ce qui a pour effet de changer le chemin relatif des images.
*
  • @param $ajax boolean
  • @param $ajax_Root string
  • @example set_LSD_Php5_Counter2_Ajax_Load(true,'../')
  • /
public function set_LSD_Php5_Counter2_Ajax_Load() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Ajax_Mode(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter le premier argument à la variable $ajax.
  • /
$ajax=func_get_arg(0); /**
  • si la variable $ajax est un booléen,
  • /
if(is_bool($ajax)) { /**
  • alors, changer la valeur de l'attribut $this->ajax par la valeur passée en paramètre.
  • /
$this->ajax=$ajax; /**
  • si il y a un deuxième argument passé en paramètre
  • /
if(func_num_args()>1) { /**
  • alors sauvegarder la valeur de l'attribut $this->over_Root dans l'attribut $this->config_Root
  • /
$this->config_Root=$this->over_Root; /**
  • puis changer la valeur de l'attribut $this->ajax_Root par la valeur du second paramètre
  • /
$this->ajax_Root=func_get_arg(1); /**
  • si le chemin des images n'existe pas
  • /
if(!file_exists($this->ajax_Root.$this->i_Path)) { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(46); } /**
  • sinon (donc le mode Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(47); } } } } } /**
  • sinon, si la variable $ajax est vide ou nulle ou n'a pas été initialisée
  • /
elseif(($ajax=="")||($ajax==null)||(empty($ajax))) { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(48); } /**
  • sinon (donc le mode Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(49); } /**
  • puis, attribuer la valeur false à l'attribut $this->ajax.
  • /
$this->ajax=false; /**
  • et attribuer la valeur null à l'attribut $this->ajax_Root.
  • /
$this->ajax_Root=null; } } /**
  • Méthode qui renvoie le chemin et le nom complet du fichier de configuration
  • @return string-($over_Root.$config_Path.$config_Name.self::ce)
  • /
public function get_LSD_Php5_Counter2_Config_Name() { /**
  • si l'attribut $this->changed_Config a la valeur true
  • /
if($this->changed_Config) { /**
  • alors, renvoie le nouveau nom complet du fichier de configuration
  • /
return ($this->over_Root.$this->config_Path.$this->new_Config.self::ce); } /**
  • sinon (donc le nom du fichier de configuration n'a pas été changé)
  • /
else { /**
  • alors, renvoie le nom du fichier de configuration actif.
  • /
return ($this->over_Root.$this->config_Path.$this->config_Name.self::ce); } } /**
  • Méthode qui permet de changer le nom du fichier de configuration (le chemin et l'extention étant fixes).
  • @param $new_Config string
  • /
public function set_LSD_Php5_Counter2_Config_Name() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Config_Name(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter le premier argument à la variable $new_Config.
  • /
$new_Config=func_get_arg(0); /**
  • si la variable $new_Config est une chaîne de caractères non vide,
  • /
if((is_string($new_Config))&&($new_Config!="")) { /**
  • alors si le fichier de configuration existe
  • /
if(file_exists($this->over_Root.$this->config_Path.$new_Config.self::ce)) { /**
  • alors, changer la valeur de l'attribut $this->c_Name par la valeur passée en paramètre.
  • /
$this->config_Name=$new_Config; /**
  • puis passer la valeur de l'attribut $this->changed_Config a true,
  • /
$this->new_Config=$new_Config; /**
  • puis passer la valeur de l'attribut $this->changed_Config a true,
  • /
$this->changed_Config=true; /**
  • et passer la valeur de l'attribut $this->msg à "None".
  • /
$this->create_Message(0); } /**
  • sinon
  • /
else { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(50); } /**
  • sinon (donc le Pad Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(51); } /**
  • puis passer la valeur de l'attribut $this->changed_Config a false,
  • /
$this->changed_Config=false; } } } } /**
  • Méthode qui renvoie l'état du mode d'aide à la mise au point
  • @return char-(T/F)
  • /
public function get_LSD_Php5_Counter2_Debug_Mode() { /**
  • si le mode d'aide à la mise au point est activé
  • /
if($this->debug) { /**
  • renvoie la lettre T
  • /
return ("T"); } /**
  • sinon (donc la mode d'aide à la mise au point n'est pas activé)
  • /
else { /**
  • renvoie la lettre F
  • /
return ("F"); } } /**
  • Méthode qui permet de changer le mode d'aide à la mise au point.
*
  • @param $debug boolean
  • /
public function set_LSD_Php5_Counter2_Debug_Mode() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Debug_Mode(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter le premier argument à la variable $debug.
  • /
$debug=func_get_arg(0); /**
  • si la variable $debug est un booléen,
  • /
if(is_bool($debug)) { /**
  • alors, changer la valeur de l'attribut $this->debug par la valeur passée en paramètre.
  • /
$this->debug=$debug; } /**
  • sinon, si la variable $debug n'est pas vide ou n'a pas été initialisée
  • /
elseif(($debug=="")||($debug==null)||(empty($debug))) { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(52); } /**
  • sinon (donc le Pad Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(53); } } } } /**
  • Méthode qui renvoie l'état d'affichage du compteur (mode caché)
  • @return char-(T/F)
  • /
public function get_LSD_Php5_Counter2_Hidden_Result() { /**
  • si le mode caché est activé
  • /
if($this->changed_Hidden) { /**
  • alors, renvoie la lettre T
  • /
return ("T"); } /**
  • sinon (donc le mode caché n'est pas activé)
  • /
else { /**
  • alors renvoie la lettre F
  • /
return ("F"); } } /**
  • Méthode qui permet d'activer le mode caché.
*
  • @param $changed_Hidden boolean
  • /
public function set_LSD_Php5_Counter2_Hidden_Result() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Hidden_Result(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter le premier argument à la variable $hidden.
  • /
$changed_Hidden=func_get_arg(0); /**
  • si la variable $changed_Hidden est un booléen,
  • /
if(is_bool($changed_Hidden)) { /**
  • alors, changer la valeur de l'attribut $this->hidden par la valeur passée en paramètre.
  • /
$this->changed_Hidden=$changed_Hidden; } /**
  • sinon, si la variable $changed_Hidden est vide ou n'a pas été initialisée
  • /
elseif(($changed_Hidden=="")||($changed_Hidden==null)||(empty($changed_Hidden))) { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(54); } /**
  • sinon (donc le mode Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(55); } /**
  • puis, attribuer la valeur false à l'attribut $this->changed_Hidden.
  • /
$this->changed_Hidden=false; } } } /**
  • Méthode qui renvoie l'état du mode d'affichage sans balise HTML.
  • @return char-(T/F)
  • /
public function get_LSD_Php5_Counter2_Rough_Response() { /**
  • si le mode d'affichage sans balise HTML est activé
  • /
if($this->rough_Response) { /**
  • alors, renvoie la lettre T
  • /
return ("T"); } /**
  • sinon (donc le mode d'affichage sans balise HTML n'est pas activé)
  • /
else { /**
  • alors, renvoie la lettre F
  • /
return ("F"); } } /**
  • Méthode qui permet d'activer le mode d'affichage sans balise HTML.
*
  • @param $rough_Response boolean
  • /
public function set_LSD_Php5_Counter2_Rough_Response() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Rough_Response(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter le premier argument à la variable $rough_Response.
  • /
$rough_Response=func_get_arg(0); /**
  • si la variable $ajax_Raw est un booléen,
  • /
if(is_bool($rough_Response)) { /**
  • alors, changer la valeur de l'attribut $this->rough_Response par la valeur passée en paramètre.
  • /
$this->rough_Response=$rough_Response; } /**
  • sinon, si la variable $rough_Response est vide ou n'a pas été initialisée
  • /
elseif(($rough_Response=="")||($rough_Response==null)||(empty($rough_Response))) { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(56); } /**
  • sinon (donc le Pad Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(57); } /**
  • puis, attribuer la valeur false à l'attribut $this->rough_Response.
  • /
$this->rough_Response=false; } } } /**
  • Méthode qui renvoie l'état du mode lecture seule.
  • @return char-(T/F)
  • /
public function get_LSD_Php5_Counter2_Read_Only() { /**
  • si le mode lecture seule est activé.
  • /
if($this->read_Only) { /**
  • alors, renvoie la lettre T
  • /
return ("T"); } /**
  • sinon (donc le mode lecture seule n'est pas activé)
  • /
else { /**
  • alors, renvoie la lettre F
  • /
return ("F"); } } /**
  • Méthode qui permet de changer le mode lecture seule.
*
  • @param $read_Only boolean
  • /
public function set_LSD_Php5_Counter2_Read_Only() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Read_Only(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter l'argument à la variable $read_Only.
  • /
$read_Only=func_get_arg(0); /**
  • si la variable $read_Only est un booléen,
  • /
if(is_bool($read_Only)) { /**
  • alors, changer la valeur de l'attribut $this->read_Only par la valeur passée en paramètre.
  • /
$this->read_Only=$read_Only; } /**
  • sinon, si la variable $read_Only est vide ou n'a pas été initialisée
  • /
elseif(($read_Only=="")||($read_Only==null)||(empty($read_Only))) { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(58); } /**
  • sinon (donc le Pad Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(59); } /**
  • alors, initialiser l'attribut $this->read_Only avec la valeur false.
  • /
$this->read_Only=false; } } } /**
  • Méthode qui renvoie le nom de la variable de session
  • @return string-($session_Id)
  • /
public function get_LSD_Php5_Counter2_Session_Id() { /**
  • si la variable de session a été changée
  • /
if($this->changed_Id==true) { /**
  • renvoie la valeur de l'attribut $this->new_Id
  • /
return ($this->new_Id); } /**
  • sinon
  • /
else { /**
  • renvoie la valeur de l'attribut $this->session_Id.
  • /
return ($this->session_Id); } } /**
  • Méthode qui permet de changer le nom de la variable de session.
  • @param $n_Id string
  • /
public function set_LSD_Php5_Counter2_Session_Id() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Session_Id(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter l'argument à la variable $n_Id.
  • /
$new_Id=func_get_arg(0); /**
  • si la variable $new_Id est une chaîne de caractères non vide,
  • /
if((!empty($new_Id))&&(is_string($new_Id))&&($new_Id!="")) { /**
  • alors, passer la valeur de l'attribut $this->changed_Id à la valeur true.
  • /
$this->changed_Id=true; /**
  • et affecter la valeur de la variable $new_Id à l'attribut $this->new_Id.
  • /
$this->new_Id=$new_Id; } /**
  • sinon (donc la variable $new_Id est vide ou n'a pas été initialisée)
  • /
else { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(60); } /**
  • sinon (donc le Pad Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(61); } /**
  • alors, passer la valeur de l'attribut $this->changed_Id à false.
  • /
$this->changed_Id=false; } } } /**
  • Méthode qui renvoie le mode d'affichage du compteur (texte ou graphique)
  • @return char-(T/G)
  • /
public function get_LSD_Php5_Counter2_Response_Mode() { /**
  • si l'attribut $this->changed_Mode a la valeur true
  • /
if($this->changed_Mode==true) { /**
  • alors, si l'attribut $this->mode est la lettre "t"
  • /
if(strtolower($this->new_Mode)==="t") { /**
  • alors, renvoyer la lettre "T"
  • /
return ("T"); } /**
  • sinon
  • /
else { /**
  • alors, renvoyer la lettre "G"
  • /
return ("G"); } } /**
  • sinon (donc le mode d'affichage n'a pas été changé)
  • /
else { /**
  • alors, renvoyer la valeur de l'attribut $this->mode.
  • /
return ($this->mode); } } /**
  • Méthode qui permet de changer le mode d'affichage du compteur.
  • @param $changed_Mode char
  • /
public function set_LSD_Php5_Counter2_Response_Mode() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Response_Mode(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter l'argument à la variable $changed_Mode.
  • /
$changed_Mode=func_get_arg(0); /**
  • si la variable $changed_Mode est une chaîne de caractères non vide,
  • /
if((!empty($changed_Mode))&&(is_string($changed_Mode))&&($changed_Mode!="")&&((strtolower($changed_Mode)==="t")||(strtolower($changed_Mode)==="g"))) { /**
  • alors, passer la valeur de l'attribut $this->changed_Mode à la valeur true.
  • /
$this->changed_Mode=true; /**
  • et affecter la valeur de l'attribut $this->mode à l'attribut $this->default_Mode
  • /
$this->default_Mode=$this->mode; /**
  • puis affecter la valeur de la variable $new_Mode à l'attribut $this->new_Mode.
  • /
$this->new_Mode=$changed_Mode; } /**
  • sinon (la variable $new_Mode est vide ou n'a pas été initialisée)
  • /
else { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(62); } /**
  • sinon (donc le mode Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(63); } /**
  • puis, passer la valeur de l'attribut $this->changed_Mode à false.
  • /
$this->changed_Mode=false; } } } /**
  • Méthode qui renvoie le nombre de digit du compteur (texte ou graphique)
  • @return string-($pad)
  • /
public function get_LSD_Php5_Counter2_Pad_Number() { /**
  • si l'attribut $this->changed_Pad a la valeur true
  • /
if($this->changed_Pad==true) { /**
  • alors, renvoyer la valeur de l'attribut $this->new_Pad
  • /
return $this->new_Pad; } /**
  • sinon (donc le nombre de digit du compteur n'a pas été changé)
  • /
else { /**
  • alors, renvoyer la valeur de l'attribut $this->pad.
  • /
return ($this->pad); } } /**
  • Méthode qui permet de changer le nombre de chiffres du compteur.
  • @param $changed_Pad char
  • /
public function set_LSD_Php5_Counter2_Pad_Number() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Pad_Number(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter l'argument à la variable $changed_Pad.
  • /
$changed_Pad=func_get_arg(0); /**
  • si la variable $changed_Pad est une chaîne de caractères non vide,
  • /
if((isset($changed_Pad))&&(is_string($changed_Pad))&&($changed_Pad!="")) { /**
  • alors, passer la valeur de l'attribut $this->changed_Pad à la valeur true.
  • /
$this->changed_Pad=true; /**
  • et affecter la valeur de l'attribut $this->pad à l'attribut $this->default_Pad
  • /
$this->default_Pad=$this->pad; /**
  • puis affecter la valeur de la variable $new_Pad à l'attribut $this->new_Pad.
  • /
$this->new_Pad=strval($changed_Pad); } /**
  • sinon (la variable $new_Pad est vide ou n'a pas été initialisée)
  • /
else { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(64); } /**
  • sinon (donc le mode Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(65); } /**
  • alors, passer la valeur de l'attribut $this->changed_Pad à false.
  • /
$this->changed_Pad=false; } } } /**
  • Méthode qui renvoie le nom du fichier des visites.
  • @return string-($file_Name)
  • /
public function get_LSD_Php5_Counter2_Hit_Name() { /**
  • si l'attribut $this->changed_Name a la valeur true
  • /
if($this->changed_Name) { /**
  • alors, renvoyer la valeur de l''attribut $this->new_Name
  • /
return ($this->new_Name); } /**
  • sinon (donc le nom du fichier des visites n'a pas été changé)
  • /
else { /**
  • alors, renvoyer la valeur de l'attribut $this->file_Name
  • /
return ($this->file_Name); } } /**
  • Méthode qui permet de changer le nom du fichier des visites
*
  • @param $changed_Name string
  • /
public function set_LSD_Php5_Counter2_Hit_Name() { /**
  • si au moins un argument est passé en paramètre à la méthode set_LSD_Php5_Counter2_Hit_Name(),
  • /
if(func_num_args()>0) { /**
  • alors, affecter le premier argument à la variable $changed_Name.
  • /
$changed_Name=func_get_arg(0); /**
  • si la variable $changed_Name est une chaîne de caractères,
  • /
if(is_string($changed_Name)) { /**
  • alors si le fichier des visites existe
  • /
if(file_exists($this->over_Root.$this->file_Path.$changed_Name.'.'.$this->file_Ext)) { /**
  • alors, changer la valeur de l'attribut $this->file_Name par la valeur passée en paramètre.
  • /
$this->new_Name=$changed_Name; /**
  • et passer la valeur de l'attribut $this->changed_Name à true
  • /
$this->changed_Name=true; } /**
  • sinon (donc le nouveau fichier des visites est n'est pas trouvé)
  • /
else { /**
  • alors, créer le message suivant
  • /
$this->create_Message(66); } } /**
  • sinon, si la variable $changed_Name est vide ou n'a pas été initialisée
  • /
elseif(($changed_Name=="")||($changed_Name==null)||(empty($changed_Name))) { /**
  • si le mode Ajax n'est pas activé
  • /
if($this->ajax!=true) { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(67); } /**
  • sinon (donc le mode Ajax est activé)
  • /
else { /**
  • alors, créer le message suivant.
  • /
$this->create_Message(68); } /**
  • puis, attribuer la valeur false à l'attribut $this->changed_Name.
  • /
$this->changed_Name=false; } } } /**
  • Méthode qui affiche l'objet compteur
  • @return printf("%s",$this->LSD_Php5_Counter2) string
  • /
public function get_LSD_Php5_Counter2_Hit_Result() { /**
  • Si l'attribut $this->msg a la valeur "None" (donc il n'y a pas d'erreur avant l'appel du script)
  • /
if($this->msg=="None") { /**
  • si le fichier de configuration a été changé
  • /
if($this->changed_Config) { /**
  • alors, charger le nouveau fichier de configuration.
  • /
require ($this->over_Root.$this->config_Path.$this->config_Name.self::ce); } /**
  • puis vérifier les paramètres du fichier de configuration,
  • /
$this->test_Config(); /**
  • Si l'attribut $this->msg a toujours la valeur "None" après la vérification des paramètres du fichier de configuration,
  • /
if($this->msg=="None") { /**
  • puis tester les changements par rapport au fichier de configuration
  • /
$this->test_Changes(); /**
  • puis, créer le compteur.
  • /
$this->create_Counter(); } } /**
  • Si l'attribut $this->msg n'a plus la valeur "None" (donc il y a une d'erreur après la lecture du fichier de configuration)
  • /
if($this->msg!="None") { /**
  • alors, si l'attribut $this->debug a la valeur "true" (le mode mise au point est activé)
  • /
if($this->debug==true) { /**
  • alors affecter à l'attribut $this->couter la valeur de l'attribut $this->msg (le compteur sera alors le message d'erreur),
  • /
$this->LSD_Php5_Counter2=$this->msg; } /**
  • sinon (donc le mode mise au point n'est pas activé)
  • /
else { /**
  • alors utiliser la méthode create_Config() qui crée les paramètres d'une configuration texte minimale par défaut.
  • /
$this->create_Config(); /**
  • puis utiliser la méthode create_Counter2()
  • /
$this->create_Counter(); } } /**
  • si l'attribut $this->msg n'a plus la valeur "None" et que l'attibut $this->debug a la valeur "true" (mode mise au point activé)
  • /
if(($this->msg!="None")&&($this->debug==true)) { /**
  • alors le compteur est le message d'erreur.
  • /
$this->LSD_Php5_Counter2=$this->msg; /**
  • si l'attribut $this->rough_Response a la valeur true
  • /
if($this->rough_Response==true) { /**
  • alors, appeler la méthode $this->send_Rough()
  • /
$this->send_Rough(); } } /**
  • affiche l'attribut $this->LSD_Php5_Counter2.
  • /
printf("%s",$this->LSD_Php5_Counter2); /**
  • puis réinitialiser les attributs nécessaires à d'éventuelles autres itérations de la méthode Get_LSD_Php5_Counter2_Result()
  • /
$this->reset_Config(); } } ?> Le fichier de configuration : <?php /**
  • Fichier de configuration documenté du compteur de visites LSD_Php5_Counter2.php
*
  • PHP version 5
*
  • LICENSE: Ce script vous est gracieusement offert par The Liberated Seven Dwarfs et est libre de tout droit
  • d'utilisation privée et non commerciale sous la restriction de conserver le présent entête et de respecter
  • la licence Creative Commons : By-Nc-Sa.
* /**
  • Quatrième et dernière partie du script LSD_Php5_Counter2.php - Les paramètres de configuration du compteur.
  • /
/**
  • Attributs communs au deux modes (texte et graphique).
  • /
/**
  • L'attribut $this->session_Id défini la variable de session du compteur.
  • Cet attribut est utilisé pour ne pas comptabiliser plusieurs fois la même page à la suite de rafraichissements
  • de la page.
  • @var string
  • /
$this->session_Id="default_Counter2"; /**
  • L'attribut $this->file_Path indique le chemin absolu du répertoire qui contient le fichier des visites par rapport
  • à la racine du site.
  • Dans la configuration par défaut, ce répertoire est le sous-répertoire "hits/" du répertoire contenant le script.
  • Exemple de modification de cet attribut : $this->file_Path="my_Data/my_Counters/";
  • REMARQUE : Ne pas supprimer l'attribut $this->script_Path. placé avant la valeur de l'attribut $this->file_Path et
  • ne pas oublier le signe slash (/) à la fin du nom du répertoire.
  • @var string
  • /
$this->file_Path=$this->script_Path."hits/"; /**
  • L'attribut $this->f_Name indique le nom du fichier des visites. Dans la configuration par défaut, ce nom est
  • "my_LSD_Php5_Counter2".
  • Exemple de modification de cet attribut : $this->file_Name="compteur_rouge"
  • @var string
  • /
$this->file_Name="default_Counter2"; /**
  • L'attribut $this->file_Ext indique le nom de l'extension du fichier des visites.
  • Exemple de modification de cet attribut : $this->file_Ext="txt";
  • @var string
  • /
$this->file_Ext="nbr"; /**
  • L'attribut $this->init indique le nombre de visites à insérer dans le fichier lors de la création du fichier de
  • décompte des visites.
  • Exemple de modification de cet attribut : $this->init="100";
  • @var int
  • /
$this->init="0"; /**
  • L'attribut $this->cheat permet de "tricher" l'incrémentation du nombre des visites à chaque visite!
  • Exemple de modification de cet attribut : $this->cheat="9"; augmentera le nombre de visites de 10 à chaque visite.
  • @var int
  • /
$this->cheat="0"; /**
  • L'attribut $this->hidden indique si le compteur est visible ou caché.
  • Valeurs admises : "true" pour caché et "false" pour visible.
  • @var boolean
  • /
$this->hidden=false; /**
  • L'attribut $this->mode indique si le compteur est en mode texte ou en mode graphique.
  • Valeurs admises : T (ou t) pour le mode texte et G (ou g) pour le mode graphique.
  • @var char
  • /
$this->mode="G"; /**
  • L'attribut $this->pad indique le nombre de chiffres à afficher par défaut dans le compteur.
  • Ne pas dépasser 15 qui est la valeur maximale lue par le compteur !
  • REMARQUE : Si cet attribut a une valeur supérieure à 0, le compteur en mode texte n'affichera pas les attributs
  • $this->t_0, t_1, t_2 et t_3.
  • * @var integer
  • /
$this->pad="5"; /**
  • Attributs spécifiques du mode texte.
  • /
/**
  • L'attribut $this->color défini la couleur du mode texte.
  • Exemple de modification de cet attribut : $this->t_color="0033FF"; pour obtenir un texte écrit en bleu.
  • Définir $this->t_color="inherit"; pour utiliser la couleur de la fonte utilisée dans la page.
  • @var string
  • /
$this->color="inherit"; /**
  • L'attribut $this->b_Color défini la couleur de fond du mode texte.
  • Exemple de modification de cet attribut : $this->b_color="FFFF99"; pour obtenir un fond jaune clair.
  • Définir $this->b_color="none"; pour obtenir un fond transparent.
  • @var string
  • /
$this->b_Color="none"; /**
  • L'attribut $this->f_Fam défini la famille de fontes du mode texte.
  • Exemple $this->f_Fam="Script"; ou encore $this->f_Fam="Verdana, Arial, Helvetica, sans-serif";
  • Définir $this->f_Fam="inherit" pour utiliser la fonte utilisée par défaut dans la page.
  • @var string
  • /
$this->f_Fam="inherit"; /**
  • L'attribut $this->size défini la taille du mode texte exprimée en pixel.
  • Exemple $this->size="30"; pour écrire un texte de 30 pixels.
  • Définir $this->size="inherit"; pour utiliser la taille de la fonte utilisée par défaut dans la page.
  • @var string
  • /
$this->size="inherit"; /**
  • L'attribut $this->t_0 défini le texte placé avant le compteur en mode texte s'il n'y a pas eu de visite.
  • @var string
  • /
$this->t_0="Il n'y a pas encore eu de visite."; /**
  • L'attribut $this->t_1 défini le texte placé avant le compteur en mode texte.
  • @var string
  • /
$this->t_1="Vous êtes le "; /**
  • L'attribut $this->t_2 défini le texte placé après le compteur en mode texte si le nombre de hit est 1.
  • @var string
  • /
$this->t_2="er visiteur."; /**
  • L'attribut $this->t_3 défini le texte placé après le compteur en mode texte si le nombre de hit est
  • supérieur à 1.
  • @var string
  • /
$this->t_3="ème visiteur."; /**
  • Attributs spécifiques du mode graphique.
  • /
/**
  • L'attribut $this->i_Path indique le chemin absolu du répertoire qui contient les images du compteur par rapport
  • à la racine du site.
  • Dans la configuration par défaut, ce répertoire est placé juste en dessous du répertoire qui contient le script.
  • Exemple de modification de cet attribut : $this->i_Path = "data/my_images/png/";
  • REMARQUE : Ne pas supprimer l'attribut $this->script_Path. placé avant la valeur de l'attribut $this->i_Path et
  • ne pas oublier le signe slash (/) à la fin du nom du répertoire.
  • @var string
  • /
$this->i_Path=$this->script_Path."pictures/default/"; /**
  • L'attribut $this->i_Name défini le nom à ajouter devant le nom des images pour obtenir les noms complets des
  • fichiers d'images.
  • Exemple $this->i_Name="Img"; donnera (my_Img0, my_Img1, ..., my_Img9)
  • @var string
  • /
$this->i_Name="default_"; /**
  • L'attribut this->i_Ext défini l'extension du nom de fin d'image.
  • Définir $this->i_Ext="jpg"; si les images sont au format "jpeg" ou $this->i_Ext="bmp"; pour des bitmaps.
  • RTEMARQUES : Toutes les images d'un même compteur doivent avoir le même format et donc avoir la même extension,
  • et donc être du même type.
  • @var string
  • /
$this->i_Ext="gif"; /**
  • L'attribut $this->i_H défini la hauteur des images des chiffres exprimée en pixel.
  • @var integer
  • /
$this->i_H="30"; /**
  • L'attribut $this->i_W défini la largeur des images des chiffres exprimée en pixel.
  • @var integer
  • /
$this->i_W="20"; /**
  • L'attribut $this->i_Border indique s'il faut entourer le compteur avec des images de départ et de fin
  • de compteur.
  • Valeurs admises : "false" pour non et "true" pour oui.
  • @var boolean
  • /
$this->i_Border=true; /**
  • L'attribut $this->i_Lft défini le nom de l'image de gauche du compteur.
  • @var string
  • /
$this->i_Lft="Left"; /**
  • L'attribut $this->i_Lft_H défini la hauteur de l'image de gauche exprimée en pixel.
  • @var integer
  • /
$this->i_Lft_H="30"; /**
  • L'attribut $this->i_Lft_W défini la largeur de l'image de gauche exprimée en pixel.
  • @var integer
  • /
$this->i_Lft_W="15"; /**
  • L'attribut $this->i_Rgt1 défini le nom de l'image de droite n° 1 du compteur si le nombre de hits est
  • inférieur à 2.
  • @var string
  • /
$this->i_Rgt1="Right1"; /**
  • L'attribut $this->i_Rgt1_H défini la hauteur de l'image de droite n° 1 exprimée en pixel.
  • @var integer
  • /
$this->i_Rgt1_H="30"; /**
  • L'attribut $this->i_Rgt1_W défini la largeur de l'image de droite n° 1 exprimée en pixel.
  • @var integer
  • /
$this->i_Rgt1_W="90"; /**
  • L'attribut $this->i_Rgt2 défini le nom de l'image de droite n° 2 du compteur si le nombre de hits est
  • supérieur à 1.
  • @var string
  • /
$this->i_Rgt2="Right2"; /**
  • L'attribut $this->i_Rgt2_H défini la hauteur de l'image de droite n° 2 exprimée en pixel.
  • @var integer
  • /
$this->i_Rgt2_H="30"; /**
  • L'attribut $this->i_Rgt2_W défini la largeur de l'image de droite n° 2 exprimée en pixel.
  • @var integer
  • /
$this->i_Rgt2_W="90"; /**
  • NOTE :
  • ======
*
  • La modification de ces attributs n'est utile que dans le cas de la personnalisation de la présentation, ou dans le
  • cadre de l'utilisation de plusieurs compteurs utilisant chacun, soit un fichier de décompte de différent, soit un
  • affichage différent.
*
  • Exemple : L'utilisation d'un compteur général visible dans la page d'accueil de votre site web, et l'utilisation
  • d'un compteur caché dans chacune des pages de votre site web, chacun de ces compteurs ayant son propre fichier de
  • décompte de visites. Cela est particulièrement utile pour mesurer la fréquentation des différentes pages d'un site.
*
  • Après la modification de ces attributs, n'hésitez pas à utiliser la page documented_LSD_Php5_Counter2_Test_Page.php
  • pour vérifier le résultat de vos modifications.
*
  • REMARQUE : D'une part, les modifications ne doivent exclusivement être effectuées qu'à l'intérieur des signes " " sous
  • peine de provoquer un message d'erreur lors du contrôle des attributs, et d'autre part, ces modifications doivent
  • être réalistes sous peine de provoquer des affichages incohérents.
  • /
?> La seconde page PHP de test : <?php /**
  • Page PHP de test de production du compteur de visites LSD_Php5_Counter2.php
*
  • PHP version 5
*
  • LICENSE: Ce script vous est gracieusement offert par The Liberated Seven Dwarfs et est libre de tout droit
  • d'utilisation privée et non commerciale sous la restriction de conserver le présent entête et de respecter
  • la licence Creative Commons : By-Nc-Sa.
* /**
  • Cette page doit être placée dans un sous-répertoire de premier niveau par rapport à la racine du site.
  • Elle affiche un compteur en fonction des paramètres définis dans le fichier de configuration default_Counter2.inc
  • /
/**
  • La fonction "session_start()" démarre une session nécessaire au script pour ne pas comptabiliser plus d'une
  • fois une même page qui serait rafraichie plusieurs fois lors de la même session.
  • /
session_start(); /**
  • La variable $error est un message qui sera affiché si l'objet compteur rencontre une erreur lors de
  • son exécution. Elle est initialisée à vide pour éviter un message de type Warning dans Zend Studio for Eclipse.
  • @var string $error
  • /
$error=""; /**
  • La variable $over_Root permet d'indiquer une surcharge à appliquer aux différents chemins définis dans le
  • fichier de configuration.
  • Cette variable est utilisée lorsque le script est appelé dans une page placée d'un sous-répertoire de la racine
  • du site.
  • REMARQUE : Il n'est pas obligatoire de définir cette variable si la page qui appèle le script est située à la
  • racine du site, la valeur assumée par défaut par l'objet compteur étant vide ("").
  • Cepndant, si cette page est placée dans un sous-répertoire de premier niveau par rapport à la racine du site,
  • la variable $over_Root doit être définie de la manière suivante : ($over_Root="../";) et si cette page est
  • placée dans un sous-répertoire de second niveau par rapport à la racine du site, la variable $over_Root doit
  • être définie de la manière suivante : ($over_Root="../../";), et ainsi de suite.
  • @var string $over_Root
  • /
$over_Root="../"; /**
  • La variable $script_Path indique le chemin absolu du répertoire contenant le fichier script par rapport à la
  • racine du site.
  • Par défaut, ce répertoire est "scripts/php/LSD_Counter/".
  • REMARQUE : Ne pas oublier le signe "/" à la fin du chemin.
  • @var string $script_Path
  • /
$script_Path="scripts/php/LSD_Php5_Counter2/"; /**
  • la variable $script_Name indique le nom du fichier script. Par défaut, ce nom est LSD_Php5_Counter2
  • @var string $script_Name
  • /
$script_Name="LSD_Php5_Counter2"; /**
  • la variable $script_Ext indique l'extension du fichier script. Par défaut, cette extension est "php".
  • @var string $script_Ext
  • /
$script_Ext="php"; /**
  • La variable $config_Name indique le nom du fichier de configuration.
  • L'extention du nom du fichier de configuration ".inc" est assumée par le script.
  • Si le fichier de configuration n'est pas trouvé, le script retournera soit un compteur par défaut en mode texte
  • minimal dont les visites seront comptabilisées dans le fichier "the_Default_LSD_Counter.nbr", soit un message
  • d'erreur si la méthode $my_Counter->set_LSD_Php_Counter2_Debug_Mode(true) a été utilisée juste avant la méthode
  • $my_Counter->get_LSD_Php_Counter()
  • @var string $config_Name_Result
  • /
$config_Name="default_Counter2"; /**
  • La variable $script indique le nom complet (chemin + nom + extension) du fichier script.
  • Elle est initialisée à vide pour éviter un message de type Warning dans Zend Studio for Eclipse.
  • @var string $script
  • /
$script=""; /**
  • Fonction qui instancie l'objet compteur et qui renvoie le résultat de cet objet.
*
  • @param string $over_Root
  • @param string $script_Path
  • @param string $script_Name
  • @param string $script_Ext
  • @param string $config_Name
  • @global string $script
  • @var string $error
  • @return - soit un compteur, soit un message d'erreur si la méthode set_LSD_Php5_Counter_Debug_Mode()
  • a été initialisée avec la valeur "true" avant l'appel de la méthode get_LSD_Php5_Counter_Result().
  • /
function start_the_LSD_Php5_Counter2( $over_Root, $script_Path, $script_Name, $script_Ext, $config_Name ) { /**
  • La variable $script est déclarée globale pour être accessible à l'extérieur de la fonction
  • @global string $script
  • /
global $script; /**
  • La variable $not_Found est un message d'erreur local à la fonction start_the_LSD_Php5_Counter2(...)
  • qui sera renvoyée par la fonction si le fichier script n'est pas trouvé.
  • Elle est initialisée à vide.
  • @var string $not_Found
  • /
$not_Found=""; /**
  • La variable globale $script est la concaténation du chemin et du nom du fichier script
  • @global string $script
  • /
$script=$over_Root.$script_Path.$script_Name.'.'.$script_Ext; /**
  • Si le fichier script est trouvé,
  • /
if(file_exists($script)) { /**
  • alors charger le fichier script,
  • /
require_once($script); /**
  • puis instancier l'objet compteur avec les trois paramètres indispensables suivants :
  • - $s_Root,
  • - $script_Path
  • - et $config_Name
  • @var object $my_LSD_Counter
  • @method LSD_Php_Counter($over_Root,$script_Path,$config_Name)
  • @param string $over_Root
  • @param string $script_Path
  • @param string $config_Name
  • /
$my_LSD_Php5_Counter2=new LSD_Php5_Counter2( $over_Root, $script_Path, $config_Name ); /**
  • et renvoyer de résultat de l'objet compteur.
  • /
return($my_LSD_Php5_Counter2); } /**
  • sinon (donc le fichier de script n'a pas été trouvé),
  • /
else { /**
  • alors, construire le message suivant :
  • /
$not_Found="Erreur : le fichier script : ".$script." est introuvable!"; /**
  • puis renvoyer le message d'erreur.
  • /
return($not_Found); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta name="Author" content="The Liberated Seven Dwarfs"/> <meta name="keywords" content="AS2, Liberated, Seven, Dwarfs, script, php, mysql, javascript, ajax, free, download"/> <title>LSD Php5 Counter2 Documented Test Page</title> <link href="../css/documented_LSD_Php5_Counter2_Test.css" rel="stylesheet" type="text/css"/> </head> <body class="Fixed_Center"> <div id="container"> <br /> <table align="center" border="1px"> <tr> <td style="text-align: center" align="left" width="600px"> <span class="Style1"> Page de test documentée du compteur de visites <br /> LSD_Php5_Counter2.php </span> </td> <td style="text-align: center" align="right" width="400px"> <img src="../pictures/gif/my_php.gif" title="Script PHP" alt="Script PHP"/> </td> </tr> <tr> <td> <?php /**
  • La variable $my_Counter reçoit le résultat de l'objet compteur renvoyé par la fonction
  • start_the_LSD_Counter2($s_Root,$script_Path,$script_Name,$script_Ext,$config_Name).
  • @var string $my_Counter2
  • /
$my_Counter=start_the_LSD_Php5_Counter2( $over_Root, $script_Path, $script_Name, $script_Ext, $config_Name ); /**
  • Si la variable $my_Counter a reçu le message d'erreur de la fonction
  • start_the_LSD_Counter1($over_Root,$script_Path,$script_Name,$script_Ext,$config_Name),
  • /
if($my_Counter == "Erreur : le fichier script : ".$script." est introuvable!") { /**
  • alors, afficher le message d'erreur de la fonction "start_the_LSD_Counter2(...).
  • /
echo $my_Counter; } /**
  • sinon (donc la variable $my_Counter n'a pas reçu le message d'erreur de la fonction
  • start_the_LSD_Php5_Counter2(...))
  • /
else { /**
  • La méthode set_LSD_Php5_Counter_Debug_Mode() initialise le mode mise au point.
  • REMARQUE : Le paramètre "true" active le mode mise au point de l'objet compteur et
  • le paraètre "false" le désactive.
  • @method $my_Counter->set_LSD_Counter_Debug_Mode()
  • @param boolean
  • @return boolean
  • /
$my_Counter->set_LSD_Php5_Counter2_Debug_Mode(true); /**
  • La variable $error reçoit le résultat de la méthode get_LSD_Php5_Counter2_Error().
  • @var string $error
  • @method $my_Counter->get_LSD_Counter_Error()
  • @return string
  • /
$error=$my_Counter->get_LSD_Php5_Counter2_Error_Status(); /**
  • Si la variable $error reçoit le mot "None" de la méthode get_LSD_Php5_Counter2_Error(),
  • (donc il n'y a pas eu d'erreur lors de l'exécution du script),
  • /
if($error == "None") { /**
  • alors, afficher le message suivant :
  • /
echo "Avec le fichier de configuration : \"<B>".$script_Path."config/".$config_Name. ".inc</B>\",<br /> le compteur sera affiché comme cela :"; } } ?> </td> <td style="text-align: center"> <?php /**
  • Si la variable $my_Counter n'a pas reçu le message d'erreur de la fonction
  • start_the_LSD_Php5_Counter2(...)
  • et n'a pas la valeur "null",
  • /
if(($my_Counter != "Erreur : le fichier script : ".$script." est introuvable!") && ($my_Counter != null)) { /**
  • alors lancer la méthode du compteur $my_Counter->get_LSD_Php5_Counter2().
  • @method $my_Counter->get_LSD_Php5_Counter2()
  • @return string HTML
  • /
$my_Counter->get_LSD_Php5_Counter2_Hit_Result(); } /**
  • sinon (donc la variable $my_Counter a reçu le message d'erreur de la fonction
  • start_the_LSD_Php5_Counter2(...),
  • /
else { /**
  • alors, afficher le message suivant:
  • /
echo "Affichage d'un compteur impossible!"; } ?> </td> </tr> </table> </div> </body> </html> La première page HTML de test (Ajax) : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset = iso-8859-1"/> <meta name="Author" content="The Liberated Seven Dwarfs"/> <meta name="keywords" content="AS2, Liberated, Seven, Dwarfs, script, php, mysql, javascript, ajax, free, download"/> <title>LSD Ajax Counter2 Test</title> <link href="../css/LSD_Ajax_Counter2_Test.css" rel="stylesheet" type="text/css"/> </head> <body class="Fixed_Center"> <div id="container" align="center"> <br/> <p align="center"> <span class="Style1">CSS + HTML + JS + Php5 = Ajax </span> <br/><br/> Comme dans une page PHP, le compteur de cette page HTML est affiché automatiquement lors du chargement de la page. <br /> <br/> <span id="counter0"> </span> </p> </div> <script language="javascript" src="../scripts/js/LSD_Ajax_Stuff2.js" type="text/javascript"> </script> <script language="javascript" src="../scripts/js/LSD_Mouse_Events2.js" type="text/javascript"> </script> <script language="javascript" type="text/javascript"> /**
  • Fonction qui lance le compteur en mode Ajax.
  • Le compteur sera affiché dans la balise <span> qui a l'id 'counter0'.
  • @param string - url_Id
  • @param string - php5_Root
  • @param array - counter2_Params [Config] [Debug] [Mode] [Pad] [Read] [Hidden] [Session] [Call]
  • @param array - ajax_Params [Html_Id] [Form_Id] [Msg_Id] [Html_El]
  • /
function show_Counter2() { LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', '', '../', { 'Config':'default_Counter2' }, { 'html_Id':'counter0' } ); } window.onload = show_Counter2; </script> </body> </html> Le premier script JavaScript nécessaire aux pages HTML (Ajax) : <!-- // JavaScript Document /**
  • Compteur de visites (hit) paramétrable utilisable soit depuis une page PHP5 soit depuis une page HTML via les
  • deux scripts LSD_Mouse_Events2.js et LSD_Stuff2.js
*
  • JavaScript
*
  • LICENSE: Ce script vous est gracieusement offert par The Liberated Seven Dwarfs et est libre de tout droit
  • d'utilisation privée et non commerciale sous la restriction de conserver le présent entête et de respecter
  • la licence Creative Commons : By-Nc-Sa.
* // LSD_Ajax_Stuff2.js /**
  • Ajax connector
  • /
var net=new Object(); /**
  • Constants
  • /
net.READY_STATE_UNINITIALIZED=0; net.READY_STATE_LOADED=1; net.READY_STATE_INTERACTIVE=2; net.READY_STATE_COMPLETE=4; /**
  • /
net.ParamOnload=function(param) { if(param) { this.paramOnload=(param=='NULL')?null:param; } else { return this.paramOnload; } } /**
  • Constructors
  • /
net.ContentLoader=function(url,onload,onerror,method,params,contentType) { this.url=url; this.req=null; this.onload=onload; this.onerror=(onerror)?onerror:this.defaultError; this.paramOnLoad=net.ParamOnload(); this.loadXMLdoc(url,method,params,contentType,this.paramOnload); } /** *
  • /
net.ContentLoader.prototype.loadXMLdoc=function(url,method,params,contentType) { if(!method) { method="GET"; } if(!contentType&&method=="POST") { contentType="application/x-www-form-urlencoded"; } if(window.XMLHttpRequest) { this.req=new XMLHttpRequest(); } else if(window.ActiveObject) { this.req=new ActiveObject("Microsoft.XMLHTTP"); } if(this.req) { try { var loader=this; this.req.onreadystatechange=function() { loader.onReadyState.call(loader); } this.req.open(method,url,true); if(contentType) { this.req.setRequestHeader("content-Type",contentType); } this.req.send(params); } catch(err) { this.onerror.call(this); } } } /** *
  • /
net.ContentLoader.prototype.onReadyState=function() { var req=this.req; var ready=req.readyState; if(ready==net.READY_STATE_COMPLETE) { var httpStatus=req.status; if(httpStatus==200||httpStatus==0) { this.onload.call(this,this.paramOnLoad); } else { this.onerror.call(this); } } } /** *
  • /
net.ContentLoader.prototype.defaultError=function() { alert("Erreur pour obtenir les données : "+"\n readystate:"+this.req.readyState+"\n status :"+this.req.status+"\n headers:"+this.req.getAllResponseHeaders()); } /**
  • Short_cut Function
  • @param element
  • @return document.getElementById(element)
  • /
function LSD_$(element) { var my_Element=""; if(element) { my_Element=element; } return document.getElementById(my_Element); } /** *
  • /
function call_Ajax(element, url) { if(element) { net.ParamOnload(element); } if (url) { htppReq = new net.ContentLoader(url, show_Ajax, null, 'GET'); } } /** *
  • /
function show_Ajax(element) { if(element) { LSD_$(element).innerHTML = this.req.responseText; } } // --> Le second script JavaScript nécessaire aux pages HTML (Ajax) : <!-- // JavaScript Document /**
  • Script pour le compteur LSD_Php5_Counter2.php utilisable soit depuis une page PHP5 soit depuis une page HTML
  • avec le script LSD_Ajax_Stuff2.js
*
  • JavaScript
*
  • LICENSE: Ce script vous est gracieusement offert par The Liberated Seven Dwarfs et est libre de tout droit
  • d'utilisation privée et non commerciale sous la restriction de conserver le présent entête et de respecter
  • la licence Creative Commons : By-Nc-Sa.
* // LSD_Mouse_Events2.js /**
  • @param string -
  • url_Id
  • @param string -
  • php5_Root
  • @param array -
  • counter2_Params [Config] [Debug] [Mode] [Pad] [Read] [Hidden]
  • [Session] [Call]
  • @param array -
  • ajax_Params [Html_Id] [Form_Id] [Msg_Id] [Html_El]
  • /
function LSD_Load_Php_Script(url_Id, rough_Response, php5_Root, counter2_Params, ajax_Params) { var my_Url_Id = ''; var js_Fct = "LSD_Download_File"; var my_Php5_Load = 'AJAX'; var my_Rough_Response = ''; var my_Php5_Root = ''; var my_Param = ''; var my_Url_Post = ''; var my_Url_Get = ''; if(url_Id) { my_Url_Id = url_Id; } if(my_Url_Id) { if(ajax_Params && ajax_Params['html_Id'] || ajax_Params['html_El'] ) { if(rough_Response) { my_Rough_Response = rough_Response; } if(php5_Root) { my_Php5_Root = php5_Root; } if(counter2_Params) { var my_Counter2_Config = ''; var my_Counter2_Debug = ''; var my_Counter2_Mode = ''; var my_Counter2_Pad = ''; var my_Counter2_Read = ''; var my_Counter2_Hidden = ''; var my_Counter2_Session = ''; var my_Js_Call = 'POST'; for (var key in counter2_Params) { switch(key) { case 'Config': var counter2_Config = counter2_Params[key]; my_Counter2_Config = counter2_Config; break; case 'Debug': var counter2_Debug = counter2_Params[key]; if (counter2_Debug == 'DEBUG'.toUpperCase()) { my_Counter2_Debug = counter2_Debug; } break; case 'Mode': var counter2_Mode = counter2_Params[key]; my_Counter2_Mode = counter2_Mode; break; case 'Pad': var counter2_Pad = counter2_Params[key]; my_Counter2_Pad = counter2_Pad; break; case 'Read': var read_Mode = counter2_Params[key]; my_Counter2_Read = read_Mode; break; case 'Hidden': var counter2_Hidden = counter2_Params[key]; my_Counter2_Hidden = counter2_Hidden; break; case 'Session': var session_Id = counter2_Params[key]; my_Counter2_Session = session_Id; break; case 'Call': var Js_Call = counter2_Params[key].toUpperCase(); if (Js_Call == 'GET') { my_Js_Call = 'GET'; } break; default: break; } } } my_Param = 'LSD_Load='+my_Php5_Load+ '&LSD_Rough='+my_Rough_Response+ '&LSD_Root='+my_Php5_Root+ '&LSD_Debug='+my_Counter2_Debug+ '&LSD_Config='+my_Counter2_Config+ '&LSD_Mode='+my_Counter2_Mode+ '&LSD_Pad='+my_Counter2_Pad+ '&LSD_Read='+my_Counter2_Read+ '&LSD_Hidden='+my_Counter2_Hidden+ '&LSD_Session='+my_Counter2_Session; my_Url_Get = my_Url_Id + '?'+ my_Param; my_Url_Post = my_Url_Id; var my_Js_Fct = eval(js_Fct); if (my_Js_Call != 'POST') { LSD_Get_Ajax_Data(my_Url_Get,ajax_Params,my_Js_Fct); } else { LSD_Post_Data(my_Url_Post,ajax_Params,my_Param,null,my_Js_Fct); } if(ajax_Params['html_Id'] && LSD_$(ajax_Params['html_Id'])) { LSD_$(ajax_Params['html_Id']).innerHTML=''; LSD_$(ajax_Params['html_Id']).style.display='block'; } } } } /**
  • @param array -
  • params
  • /
function LSD_Download_File(params) { if(params) { for( var key in params) { switch(key) { case 'html_Id': var my_Html_Id = params[key]; break; case 'form_Id': var my_Form_Id = params[key]; break; case 'msg_Id': var my_Msg_Id = params[key]; break; case 'html_El': var my_Html_El = params[key]; break; default: break; } } if(my_Form_Id && LSD_$(my_Form_Id)) { if(confirm(my_Msg_Id)) { LSD_$(my_Form_Id).submit(); } } if(my_Html_Id) { if(!my_Form_Id) { if(my_Msg_Id) { alert(my_Msg_Id); } } if (LSD_$(my_Html_Id)) LSD_$(my_Html_Id).innerHTML = this.req.responseText; } if(my_Html_El) { my_Html_El.title = this.req.responseText; } } } /**
  • @param string -
  • url_Id est la page à appeller (php, asp, txt avec les paramètres)
  • @param string -
  • element_Id est l'id de l'élément HTML où écrire la réponse
  • @param function -
  • js_Fct est la fonction JS à exécuter
  • /
function LSD_Get_Ajax_Data(url_Id, element_Id, js_Fct) { var my_Url_Id = ""; var my_Element_Id = ""; var my_Js_Fct = ""; if(url_Id) { my_Url_Id = url_Id; if(element_Id) { my_Element_Id = element_Id; net.ParamOnload(my_Element_Id); } else { net.ParamOnload('NULL'); } if(js_Fct) { my_Js_Fct = js_Fct; } new net.ContentLoader(my_Url_Id, my_Js_Fct, null, 'GET'); } } /**
  • @param string -
  • url_Id est l'id de la page à appeler
  • @param string_ou_object -
  • element_Id est soit l'Id d'un élément HTML soit un objet {html_Id :
  • xxx, html_El:xxx}
  • @param string -
  • param est la valeur à envoyer par le POST. Exemple :
  • nom=valeur&xxx=yyy etc ...
  • @param string -
  • content est le header à envoyer par défaut text/html
  • @param function -
  • js_Fct est la fonction JS à executer pour traiter les données
  • retournées
  • /
function LSD_Post_Data(url_Id, element_Id, param, content, js_Fct) { var my_Url = ""; var my_Param = ""; var my_Content = ""; var my_Js_Fct = ""; if(url_Id) { my_Url = url_Id; if(element_Id) { var my_Element_Id = element_Id; net.ParamOnload(my_Element_Id); } else { net.ParamOnload('NULL'); } if(param) { my_Param = param; } if(content) { my_Content = content; } if(js_Fct) { my_Js_Fct = js_Fct; } new net.ContentLoader(my_Url, my_Js_Fct, null, 'POST', my_Param, my_Content); } } // --> La seconde page HTML de test (Ajax) : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset = iso-8859-1"/> <meta name="Author" content="The Liberated Seven Dwarfs"/> <meta name="keywords" content="AS2, Liberated, Seven, Dwarfs, script, php, mysql, javascript, ajax, free, download"/> <title>LSD Php5 Counter2 Ajax Demo</title> <link href="../css/LSD_Ajax_Counter2_Demo.css" rel="stylesheet" type="text/css"/> </head> <body class="Fixed_Center"> <div id="container" align="center"><br/> <table cellspacing="0" border="1px" bgcolor="#CCCCCC" width="1000px"> <tr> <td height="110px" width="660px"> <p align="center"> <span class="Style1">Petite démonstration de l'utilisation dynamique du compteur en mode Ajax </span> <br/><br/> Le premier compteur de cette page est affiché automatiquement lors du chargement de la page. <br /> <br/> <span id="counter0"> </span> </p> </td> <td align="center"> <img src="../pictures/gif/my_htm.gif" alt="Code HTML" align="middle" onmouseover="LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', 'ROUGH', '../', { 'Debug':'DEBUG', 'Config':'default_Counter2', 'Mode':'T', 'Pad':'1' }, { 'html_El':this } );" onclick="LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', 'ROUGH', '../', { 'Debug':'DEBUG', 'Config':'default_Counter2', 'Mode':'T', 'Pad':'0' }, { 'html_El':LSD_$('counter0') } );" /> &nbsp; + &nbsp; <img src="../pictures/gif/my_js.gif" alt="Script JavaScript" align="middle" onmouseover="LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', 'ROUGH', '../', { 'Debug':'DEBUG', 'Config':'default_Counter2', 'Mode':'T' }, { 'html_El':this } );" /> &nbsp; + &nbsp; <img src="../pictures/gif/my_php.gif" alt="Script PHP" align="middle" onmouseover="LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', 'ROUGH', '../', { 'Debug':'DEBUG', 'Config':'default_Counter2', 'Mode':'T', 'Pad':'0' }, { 'html_El':this } );" /> </td> </tr> <tr> <td align="left"> <p class="Style1">Affichages dynamiques des sept autres compteurs de cette page. </p> &nbsp;Affichez trois compteurs différents dans les titres des images HTM, JS et PHP en plaçant la souris sur chacune d'elle.<br /> &nbsp;Affichez un cinquième compteur dans le titre du bouton &quot;Télécharger ici!&quot; en plaçant la souris sur le bouton et en<br /> &nbsp;même temps, affichez aussi un sixième compteur dans la cellule ci-dessous.<br /> &nbsp;Affichez un septième compteur à côté en enlevant la souris du bouton &quot;Télécharger Ici!&quot;<br /> &nbsp;Lancez un téléchargement et affichez un huitième et dernier compteur en cliquant sur le bouton &quot;Télécharger Ici!&quot;<br /> <br /> </td> <td align="center"> <form action="../ziped/the_LSD_Php5_Hit_Counter.zip" method="get" id="my_Form"> <img src="../pictures/gif/telechargez_moi.gif" alt="LSD_Php5_Counter2.php en mode Ajax" onmouseover="LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', 'ROUGH', '../', { 'Debug':'DEBUG', 'Config':'ajax_Counter2', 'Mode':'T', 'Pad':'0' }, { 'html_El':this } ); LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', 'ROUGH', '../', { 'Debug':'DEBUG', 'Config':'default_Counter2', 'Mode':'T', 'Pad':'5' }, { 'html_El':LSD_$('counter1') } ); LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', 'ROUGH', '../', { 'Debug':'DEBUG', 'Config':'default_Counter2', 'Mode':'T', 'Pad':'3' }, { 'html_El':LSD_$('counter2') } ); LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', '', '../', { 'Debug':'DEBUG', 'Config':'pool_Counter2', 'Pad':'5' }, { 'html_Id':'counter1' } );" onmouseout="LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', '', '../', { 'Debug':'DEBUG', 'Config':'tarot_Counter2', 'Pad':'3' }, { 'html_Id':'counter2' } );" onclick="LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', '', '../', { 'Debug':'DEBUG', 'Config':'ajax2_Counter2', 'Mode':'T', 'Pad':'0' }, { 'html_Id':'counter3', 'form_Id':'my_Form', 'msg_Id':'Voulez-vous télécharger ce compteur ?.', 'html_El':'' } );" /> </form> </td> </tr> <tr> <td height="150px"> <table> <tr> <td width="350px"> <span id="counter1"> </span> </td> <td> <span id="counter2"> </span> </td> </tr> </table> </td> <td align="center"> <span id="counter3"> </span> </td> </tr> </table> </div> <script language="javascript" src="../scripts/js/LSD_Ajax_Stuff2.js" type="text/javascript"> </script> <script language="javascript" src="../scripts/js/LSD_Mouse_Events2.js" type="text/javascript"> </script> <script language="javascript" type="text/javascript"> /**
  • Fonction qui lance le compteur en mode Ajax.
  • Ici, le compteur sera affiché à l'endroit de la page défini par le paramètre html_Id qui a l'id 'counter0'.
  • @param string - url_Id
  • @param string - php5_Root
  • @param array - counter2_Params [Config] [Debug] [Hidden] [Mode] [Pad] [Read] [Session] [Call]
  • @param array - ajax_Params [Html_Id] [Form_Id] [Msg_Id] [Html_El]
  • /
function show_Counter2() { LSD_Load_Php_Script( '../scripts/php/LSD_Php5_Counter2/LSD_Php5_Counter2.php', '', '../', { 'Config':'default_Counter2', 'Debug':'', 'Hidden':'', 'Mode':'', 'Pad':'', 'Read':'', 'Session':'', 'Call':'' }, { 'html_Id':'counter0', 'form_Id':'', 'msg_Id':'', 'html_El':'' } ); } window.onload = show_Counter2; </script> </body> </html>

Conclusion :


N'hésitez pas à faire parvenir au boss des Dwarfs (doc.lsd@as2.com) toutes vos remarques et suggestions d'amélioration, même si vous les pensez un peu désobligeantes ou acerbes.

Cordiales salutations à tous.

Sneezy.
sneezy.lsd@as2.com

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.