Bonjour,
Je poursuis actuellement le développement de mon site qui est développé sous forme d'un CMS
avec gestion de contenu en AJAX sauf pour certaines pages, affichées en normal.
Le site fonctionne correctement comme vous pouvez le vérifier (testé / IE7, FF2, et Safari)
La page affichée contient donc :
Une en-tête, des menus, des javascripts, l'objet XmlHttpRequest (XHR) propre à AJX, un titre de page, un contenu
et un pied de page dans lequel se trouve le marqueur XITI.
Le traitement sélectif de XITI pour chaque page affichée n'est pas implémenté sur le site en ligne pour le moment,
c'est la partie sur laquelle je travaile et pour laquelle je sollicite votre aide.
Pour les pages en affichage normal, le nom des pages pour XITI (nom compressé sur 20car) s'affiche correctement, pour les pages en AJAX,
le marqueur est bien calculé par l'objet XHR, mais il est affiché seul sur une nouvelle page au lieu de remplacer le contenu
de la "DIV", et pourtant j'ai bien re-spécifié dans le sript l'affectation du script à la "div" par
"document.getElementById('stats_xiti').innerHTML =" comme vous pouvez le voir dans les scripts ci-dessous.
Au nombre de 3, ces scripts placés dans des fichiers indépendants concernent:
1) l'objet XHR appellé 3 fois, une fois pour le contenu, une fois pour le titre, une foir pour le nom de page compressé (20 acaractère max)
pour XITI.
2) Le pied de page complet, avec la partie de script XITI permettant affichage du marqueur pour la page d'accueil,
3) Le module PHP qui récupère le nom compressé (nom court de moins de 20 caractères) pour renvoyer à l'objet XHR.
Avez vous une idée de mon erreur pour que cela ne fonctionne pas comme souhaité.
Merci par avance pour votre aide
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
| // -----------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------
// --- Appel des 3 entités ("contenu page - titre page et nom compressé pour stats xiti ----------
// -----------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------
function aff_page(alias,method,md){
// L'appel de cette fonction provoque une double lecture :
// celle du titre de la page et celle du contenu.
// (voir les 2 requête "ajax" ci-dessous).
//document.getElementById("icontenu").innerHTML=document.getElementById("contenu").innerHTML;
aliase = alias;
//alert(aliase);
var mtd;
if (method == 1){ mtd="GET"; }
else if (method == 2){ mtd="POST"; }
if (md == 1){ mode = true; }
else if (md == 0){ mode = false; }
//alert("lire_titre_page.php?alias="+aliase+"");
requete_ajx(mtd,"lire_contenu_page.php?alias='"+aliase+"'","contenu", mode);
requete_ajx(mtd,"lire_titre_page.php?alias='"+aliase+"'","nomPage", mode);
requete_ajx(mtd,"xiti_traitement_nompage.php?alias='"+aliase+"'","stats_xiti", mode);
}
// --- 2 Scripts AJAX ------------------------------------------------------------------------------
function new_xhr(){
var xhr_object = null;
if(window.XMLHttpRequest){ // Firefox et autres
xhr_object = new XMLHttpRequest();
}
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur n'est pas compatible avec AJAX...");
xhr_object = false;
}
return xhr_object;
}
// -----------------------------------------------------------------------------------------------
function requete_ajx(mtd,progr,idDiv,mode){
// Dans cette fonction "mtd"= Méthode GET ou POST,
// "progr" programme du serveur sollicité (lire_titre_page?alias= ou lire_contenu_page?alias=),
// "idDiv" le contenaire DIV recevant le résultat de la requête, "mode = "asynchrone ou synchrone.
// alert(progr+" - "+idDiv+" - "+mode);
var loadstatustext="chargement en cours....<br><br><img src='images/chargt.gif' /> Contenu en cours de requête...";
// Fonction qui engendre au niveau du serveur l'affichage du contenu de la page par la technique AJAX
// Le remplacement à la volée s'effectue dans la section définie par l'ID "contenu".
var xhr2 = new_xhr(); // un nouvel objet XmlHttpRequest est créé pour le contenu de la page affichée
if (xhr2){
document.getElementById(""+idDiv+"").innerHTML = loadstatustext;
xhr2.onreadystatechange = function(){
//Si on a tout reçu et que le serveur est ok
if(xhr2.readyState == 4 && xhr2.status == 200){
slide_close();
// --- Pour vérifier le retour d'information ---
if (idDiv == "nomPage") {
//document.write(xhr2.responseText);
}
if (idDiv == "stats_xiti") {
//document.write(xhr2.responseText);
}
if (idDiv == "contenu") {
//document.write(xhr2.responseText);
}
// --- fin vérification ------------------------
if(xhr2.getResponseHeader("Content-Type") == "text/xml"){
document.getElementById(""+idDiv+"").innerHTML = xhr2.responseXML;
}
else{
//alert (xhr2.responseText);
document.getElementById(""+idDiv+"").innerHTML = xhr2.responseText;
// Evaluation des scripts transmis au navigateur par le serveur via AJAX
// Programmes utilisateurs : tous ceux qui fonctionnent en AJAX pour le compteur de Statistiques Xiti
// Les 2 formulaires gérant l'accès aux domaines "administrateur" et "adhérent".
var mesScripts = document.getElementById(""+idDiv+"").getElementsByTagName("script");
for (var i = 0; i < mesScripts.length; i++) {
eval(mesScripts[i].innerHTML);
}
}
}
// Ne pas enlever le point virgule derrière la parenthèse ci-dessous
};
}
//alert(progr+" - "+mtd);
xhr2.open(mtd,progr,mode);
if (mtd == "GET"){
xhr2.send(null);
}
else if (mtd == "POST"){
var pdata = null;
xhr2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr2.send(pdata);
}
}
// -----------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------
// --- Pied de Page ------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------
<?php
...
...
...
// --- Statistiques XITI --------------------------------------------------------------
$stats_xiti = "<script type='text/javascript'>
Xt_param = 's=$_no_xiti&p=$nompage';
try {Xt_r = top.document.referrer;}
catch(e) {Xt_r = document.referrer;}
Xt_h = new Date();
Xt_i = '<a href=\"http://www.xiti.com/xiti.asp?s=$_no_xiti\" target=\"_top\" title=\"WebAnalytics\">';
Xt_i += '<img width=\"39\" height=\"25\" border=\"0\" alt=\"\" ';
Xt_i += 'src=\"http://logv2.xiti.com/hit.xiti?'+Xt_param;
Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds() ;
if(parseFloat(navigator.appVersion)>=4){
Xt_s=screen;
Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth ;
}
document.write(Xt_i+'&ref='+Xt_r.replace(/[<>\"]/g, '').replace(/&/g, '$')+'\" title=\"Audience page :$nompage\"></a>');
</script>";
echo "\n<div id='stats_xiti'>$stats_xiti";
echo "\n</div></div></div>\n";
// ------------------------------------------------------------------------------------
?>
// -----------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------
// ---Le traitement du nom page pour xiti en PhP pour retour à l'objet XmlHttpRequest AJAX -------
// -----------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------
<?php
include ('_admin/configuration.php');
$i = "";
if(isset($_REQUEST['alias'])){
$i = stripslashes($_REQUEST['alias']);
//echo $_Config_host,$_Config_user,$_Config_password,$_Config_db,$i;
//echo $i;
include ('connexion_bdd.php');
$reponse=mysql_query('SELECT * FROM sgl_structsite WHERE AliasPage='.$i);
mysql_close();
while($donnees = mysql_fetch_array($reponse)){
$nompage = xtTraiter($donnees['NomCompress']);
// $nompage contient un nom court de la page a inserrer dans le marqueur
//echo $nompage;
$stats_xiti = "Xt_param = 's=$_no_xiti&p=$nompage';
try {Xt_r = top.document.referrer;}
catch(e) {Xt_r = document.referrer;}
Xt_h = new Date();
Xt_i = '<a href=\"http://www.xiti.com/xiti.asp?s=$_no_xiti\" target=\"_top\" title=\"WebAnalytics\">';
Xt_i += '<img width=\"39\" height=\"25\" border=\"0\" alt=\"\" ';
Xt_i += 'src=\"http://logv2.xiti.com/hit.xiti?'+Xt_param;
Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds() ;
if(parseFloat(navigator.appVersion)>=4){
Xt_s=screen;
Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth ;
}
document.write(Xt_i+'&ref='+Xt_r.replace(/[<>\"]/g, '').replace(/&/g, '$')+'\" title=\"Audience page :$nompage\"></a>');";
$stats_xiti = "<script type='text/javascript'>document.getElementById('stats_xiti').innerHTML = $stats_xiti</script>";
echo $stats_xiti;
}
}
function xtTraiter($nompage) {
$nompage = strtolower($nompage);
$nompage = strtr($nompage,"àâäáîïíôöóùûüéèêëçñ","aaaaiiiooouuueeeecn");
$nompage = eregi_replace("[^a-z0-9_:~\\\/\-]","_",$nompage);
return($nompage);
}
?>
// ----------------------------------------------------------------------------------------------- |
Partager