Statistiques| Inscription| Espace privé
Développement Web
Accueil > AJAX > Un lecteur de flux RSS
Le plan Les galeries
Dernière mise à jour :
vendredi 15 mai 2009
Contact
Webmestre
olivier ramos
ParamSPIP
Agenda
<<   Mars 2024   >>
Lu Ma Me Je Ve Sa Di
26 27 28 29 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



Le code javascript
 
 
 
 
//************************************************************************************************************************
//                                                                                   Gestionnaire d'événements
//************************************************************************************************************************
 
// Au chargement de la page.  

window.onload=initialisation;
 
function initialisation() {
setHover();
 choix=0;
 
 document.getElementById("envoi1").onmouseup=function () { eclairer1('envoi1'); }
 document.getElementById("envoi1").onmousedown=function () { foncer1('envoi1'); }
 document.getElementById("envoi1").onmouseout= function () { retournormal1('envoi1'); }
 document.getElementById("envoi1").onmouseover=function () { choix=1; eclairer1('envoi1');  }
 document.getElementById("envoi1").onclick=function () {  LireRSS(1);  }
 
 document.getElementById("envoi2").onmouseup=function () { eclairer1('envoi2'); }
 document.getElementById("envoi2").onmousedown=function () { foncer1('envoi2'); }
 document.getElementById("envoi2").onmouseout= function () { retournormal1('envoi2'); }
 document.getElementById("envoi2").onmouseover=function () {choix=2;  eclairer1('envoi2');  }
 document.getElementById("envoi2").onclick=function () { LireRSS(2);  }  
   
 document.getElementById("envoi3").onmouseup=function () { eclairer1('envoi3'); }
 document.getElementById("envoi3").onmousedown=function () { foncer1('envoi3'); }
 document.getElementById("envoi3").onmouseout= function () { retournormal1('envoi3'); }
 document.getElementById("envoi3").onmouseover=function () {choix=3; eclairer1('envoi3');  }
 document.getElementById("envoi3").onclick=function () { LireRSS(3); }  
   
 document.getElementById("envoi4").onmouseup=function () { eclairer1('envoi4'); }
 document.getElementById("envoi4").onmousedown=function () { foncer1('envoi4'); }
 document.getElementById("envoi4").onmouseout= function () { retournormal1('envoi4'); }
 document.getElementById("envoi4").onmouseover=function () {choix=4; eclairer1('envoi4'); }
 document.getElementById("envoi4").onclick=function () { LireRSS(4);}  
 
 document.getElementById("envoi5").onmouseup=function () { eclairer1('envoi5'); }
 document.getElementById("envoi5").onmousedown=function () { foncer1('envoi5'); }
 document.getElementById("envoi5").onmouseout= function () { retournormal1('envoi5'); }
 document.getElementById("envoi5").onmouseover=function () { choix=5; eclairer1('envoi5'); }
 document.getElementById("envoi5").onclick=function () { LireRSS(5); }  
 
 document.getElementById("envoiRSS").onmouseup=function () { eclairer1('envoiRSS'); }
 document.getElementById("envoiRSS").onmousedown=function () { foncer1('envoiRSS'); }
 document.getElementById("envoiRSS").onmouseout= function () { retournormal1('envoiRSS'); }
 document.getElementById("envoiRSS").onmouseover=function () { choix=6; eclairer1('envoiRSS'); }
 document.getElementById("envoiRSS").onclick=function () { LireRSS(6);}  
 document.getElementById("envoiRSS").style.background="#421b23 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche.gif') no-repeat  center;";
 
 }
//***********************************************************************
// Les trois fonctions suivantes permettent de gérer l'apparence des boutons lumineux.
//***********************************************************************
 

function foncer1(nom){
        
    document.getElementById(nom).style.border="3px inset #777777";
    document.getElementById(nom).style.height="20px";
    document.getElementById(nom).style.color="silver";
if (navigator.appName!="Microsoft Internet Explorer")  
    document.getElementById(nom).style.width="30px";
    
if (nom=="envoiRSS") document.getElementById(nom).style.background="#421b23 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche2.gif') no-repeat  center;";
else document.getElementById(nom).style.background="#421b23";
 
}  
 
function retournormal1(nom){
                                                                       
    document.getElementById(nom).style.color="#ffffff";
    document.getElementById(nom).style.border="5px outset #777777";
if (navigator.appName!="Microsoft Internet Explorer") {
    document.getElementById(nom).style.height="16px";
    document.getElementById(nom).style.width="26px";
}
    document.getElementById('titreRSS').style.background="#550011";
    document.getElementById('titreRSS').innerHTML="";
 
if (nom=="envoiRSS")document.getElementById(nom).style.background="#550011 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche.gif') no-repeat  center;";
else document.getElementById(nom).style.background="#550011";
 
    
}  
 
function eclairer1(nom){
        
    document.getElementById(nom).style.color="#c0c0c0";
    document.getElementById(nom).style.border="5px outset #777777";
if (navigator.appName!="Microsoft Internet Explorer") {
    document.getElementById(nom).style.height="16px";
    document.getElementById(nom).style.width="26px";
}
    document.getElementById('titreRSS').style.color="#c0c0c0";
    document.getElementById('titreRSS').style.background="#880000";
if (nom=="envoi1"){    document.getElementById('titreRSS').innerHTML="phpfrance";}
if (nom=="envoi2"){    document.getElementById('titreRSS').innerHTML="mysql";}
if (nom=="envoi3"){    document.getElementById('titreRSS').innerHTML="editeurjavascript";}
if (nom=="envoi4"){    document.getElementById('titreRSS').innerHTML="W3C";}
if (nom=="envoi5"){    document.getElementById('titreRSS').innerHTML="ParamSPIP";}
if (nom=="envoiRSS"){    
    document.getElementById(nom).style.background="#880000 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche1.gif') no-repeat  center;";
//alert('plugins/paramspip/fichiers/dir'+idarticle+'/fleche1.gif');    
    document.getElementById('titreRSS').innerHTML="Votre choix";}
else document.getElementById(nom).style.background="#880000";
            
}  
 
 
//********************************************************************************
//         Le moteur ajax  
//*********************************************************************************
 

function LireRSS(choix){
// Création de l'objet XMLHttpRequest
    var xhr_object = null;
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else return(false);
// Appel asynchrone du fichier fluxRSS.php qui renverra le flux sous la forme d'un fichier XML   
    var vurl=null;
    if (choix==1) vurl="http://www.phpfrance.com/tutoriaux/rss.php";
    if (choix==2) vurl="http://www-fr.mysql.com/mysql.rss";
    if (choix==3) vurl="http://www.editeurjavascript.com/rss/index.rss";
    if (choix==4) vurl="http://www.w3.org/2000/08/w3c-synd/home.rss";
    if (choix==5) vurl="http://oramos.free.fr/paramSPIP/spip.php?page=backend";
    if (choix==6) vurl=document.getElementById('votre_url').value;
// On déclare ici le paramètre qui sera envoyé par post.    
    var paramurl="vurl="+vurl;
    var fichier="plugins/paramspip/fichiers/dir"+idarticle+"/fluxRSS.php";
    xhr_object.open("POST",fichier,true) ;
 
 
// la valeur envoyée comme type de contenu par post  est     "application/x-www-form-urlencoded" (de type formulaire)

    xhr_object.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr_object.send(paramurl);
    
// Lorsque on a la réponse, on la stocke dans la variable reponseXML
    xhr_object.onreadystatechange = function() {    
        if(xhr_object.readyState == 4){  
            if(xhr_object.status == 200){  
          
            var reponseXML=xhr_object.responseXML;
            //On récupère tous les éléments <item> du fichier reponseXML
            var items=reponseXML.getElementsByTagName("item");
            // On fait une boucle pour récupérer les titres, les liens, les descriptions.
            supprimerlignes()
            for(i=0;i<items.length;i++){
            // firstChild.nodeValue correspond à ce qui est écrit entre <title> et </title>, ou <link> et </link>, ou <description> et </description>
            var titre=items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
            var lien=items[i].getElementsByTagName("link")[0].firstChild.nodeValue;
            // Certains flux n'ont pas de descriptions, donc on enverra "" à la place.
            var description=null;
            if (items[i].getElementsByTagName("description")[0])
            description=items[i].getElementsByTagName("description")[0].firstChild.nodeValue;
            else description="";
            creerlignes(titre,lien,description);
            document.getElementById('titreRSS').innerHTML="Syndication r&eacute;ussie";
            }
    }                             
  } else     document.getElementById('titreRSS').innerHTML="Attente...";    
 }    
 // Un appel récursif, qui pemet d'actualiser les données toutes les 10 minutes.
 setTimeout("LireRSS(choix)",600000);
}
 
function creerlignes(titre,lien,description){
 
//On crée des lignes : une ligne h2 pour le titre sur lequel il y aura un lien vers l'intégralité de l'article,
// une ligne hr de soulignement, des lignes pour la description et en enfin un saut de ligne pour la séparation.  

var nouveauP=document.createElement("h2");
var nouveauP1=document.createElement("div");
var nouveauHr=document.createElement("hr");
var nouveauBr=document.createElement("br");
var nouveauA=document.createElement("a");
var nouveauTxt=document.createTextNode(titre);
var nouveauTxt1=document.createTextNode(description);
nouveauA.setAttribute("href",lien);
nouveauA.appendChild(nouveauTxt);
nouveauP.appendChild(nouveauA);
nouveauP1.innerHTML=description;
 
document.getElementById("conteneurlignesRSS").appendChild(nouveauP);
document.getElementById("conteneurlignesRSS").appendChild(nouveauHr);
document.getElementById("conteneurlignesRSS").appendChild(nouveauP1);
document.getElementById("conteneurlignesRSS").appendChild(nouveauBr);
 
}
 
function supprimerlignes(){
// On supprime tout ce qu'il y a dans conteneurlignesRSS.  
document.getElementById("conteneurlignesRSS").innerHTML="";
}
//************************************************************************************************************************
//                                                                                   Gestionnaire d'événements
//************************************************************************************************************************
 
// Au chargement de la page. 

window.onload=initialisation;
 
function initialisation() {
setHover();
 choix=0;
 
 document.getElementById("envoi1").onmouseup=function () { eclairer1('envoi1'); }
 document.getElementById("envoi1").onmousedown=function () { foncer1('envoi1'); }
 document.getElementById("envoi1").onmouseout= function () { retournormal1('envoi1'); }
 document.getElementById("envoi1").onmouseover=function () { choix=1; eclairer1('envoi1');  }
 document.getElementById("envoi1").onclick=function () {  LireRSS(1);  }
 
 document.getElementById("envoi2").onmouseup=function () { eclairer1('envoi2'); }
 document.getElementById("envoi2").onmousedown=function () { foncer1('envoi2'); }
 document.getElementById("envoi2").onmouseout= function () { retournormal1('envoi2'); }
 document.getElementById("envoi2").onmouseover=function () {choix=2;  eclairer1('envoi2');  }
 document.getElementById("envoi2").onclick=function () { LireRSS(2);  } 
  
 document.getElementById("envoi3").onmouseup=function () { eclairer1('envoi3'); }
 document.getElementById("envoi3").onmousedown=function () { foncer1('envoi3'); }
 document.getElementById("envoi3").onmouseout= function () { retournormal1('envoi3'); }
 document.getElementById("envoi3").onmouseover=function () {choix=3; eclairer1('envoi3');  }
 document.getElementById("envoi3").onclick=function () { LireRSS(3); } 
  
 document.getElementById("envoi4").onmouseup=function () { eclairer1('envoi4'); }
 document.getElementById("envoi4").onmousedown=function () { foncer1('envoi4'); }
 document.getElementById("envoi4").onmouseout= function () { retournormal1('envoi4'); }
 document.getElementById("envoi4").onmouseover=function () {choix=4; eclairer1('envoi4'); }
 document.getElementById("envoi4").onclick=function () { LireRSS(4);} 
 
 document.getElementById("envoi5").onmouseup=function () { eclairer1('envoi5'); }
 document.getElementById("envoi5").onmousedown=function () { foncer1('envoi5'); }
 document.getElementById("envoi5").onmouseout= function () { retournormal1('envoi5'); }
 document.getElementById("envoi5").onmouseover=function () { choix=5; eclairer1('envoi5'); }
 document.getElementById("envoi5").onclick=function () { LireRSS(5); } 
 
 document.getElementById("envoiRSS").onmouseup=function () { eclairer1('envoiRSS'); }
 document.getElementById("envoiRSS").onmousedown=function () { foncer1('envoiRSS'); }
 document.getElementById("envoiRSS").onmouseout= function () { retournormal1('envoiRSS'); }
 document.getElementById("envoiRSS").onmouseover=function () { choix=6; eclairer1('envoiRSS'); }
 document.getElementById("envoiRSS").onclick=function () { LireRSS(6);} 
 document.getElementById("envoiRSS").style.background="#421b23 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche.gif') no-repeat  center;";
 
 }
//***********************************************************************
// Les trois fonctions suivantes permettent de gérer l'apparence des boutons lumineux.
//***********************************************************************
 

function foncer1(nom){
         
    document.getElementById(nom).style.border="3px inset #777777";
    document.getElementById(nom).style.height="20px";
    document.getElementById(nom).style.color="silver";
if (navigator.appName!="Microsoft Internet Explorer") 
    document.getElementById(nom).style.width="30px";
     
if (nom=="envoiRSS") document.getElementById(nom).style.background="#421b23 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche2.gif') no-repeat  center;";
else document.getElementById(nom).style.background="#421b23";
 

 
function retournormal1(nom){
                                                                      
    document.getElementById(nom).style.color="#ffffff";
    document.getElementById(nom).style.border="5px outset #777777";
if (navigator.appName!="Microsoft Internet Explorer") {
    document.getElementById(nom).style.height="16px";
    document.getElementById(nom).style.width="26px";
}
    document.getElementById('titreRSS').style.background="#550011";
    document.getElementById('titreRSS').innerHTML="";
 
if (nom=="envoiRSS")document.getElementById(nom).style.background="#550011 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche.gif') no-repeat  center;";
else document.getElementById(nom).style.background="#550011";
 
     

 
function eclairer1(nom){
         
    document.getElementById(nom).style.color="#c0c0c0";
    document.getElementById(nom).style.border="5px outset #777777";
if (navigator.appName!="Microsoft Internet Explorer") {
    document.getElementById(nom).style.height="16px";
    document.getElementById(nom).style.width="26px";
}
    document.getElementById('titreRSS').style.color="#c0c0c0";
    document.getElementById('titreRSS').style.background="#880000";
if (nom=="envoi1"){    document.getElementById('titreRSS').innerHTML="phpfrance";}
if (nom=="envoi2"){    document.getElementById('titreRSS').innerHTML="mysql";}
if (nom=="envoi3"){    document.getElementById('titreRSS').innerHTML="editeurjavascript";}
if (nom=="envoi4"){    document.getElementById('titreRSS').innerHTML="W3C";}
if (nom=="envoi5"){    document.getElementById('titreRSS').innerHTML="ParamSPIP";}
if (nom=="envoiRSS"){     
    document.getElementById(nom).style.background="#880000 url('plugins/paramspip/fichiers/dir"+idarticle+"/fleche1.gif') no-repeat  center;";
   
    document.getElementById('titreRSS').innerHTML="Votre choix";}
else document.getElementById(nom).style.background="#880000";
             

 
 
//********************************************************************************
//         Le moteur ajax 
//*********************************************************************************
 

function LireRSS(choix){
// Création de l'objet XMLHttpRequest
    var xhr_object = null;
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else return(false);
// Appel asynchrone du fichier fluxRSS.php qui renverra le flux sous la forme d'un fichier XML  
    var vurl=null;
    if (choix==1) vurl="http://www.phpfrance.com/tutoriaux/rss.php";
    if (choix==2) vurl="http://www-fr.mysql.com/mysql.rss";
    if (choix==3) vurl="http://www.editeurjavascript.com/rss/index.rss";
    if (choix==4) vurl="http://www.w3.org/2000/08/w3c-synd/home.rss";
    if (choix==5) vurl="http://oramos.free.fr/paramSPIP/spip.php?page=backend";
    if (choix==6) vurl=document.getElementById('votre_url').value;
// On déclare ici le paramètre qui sera envoyé par post.     
    var paramurl="vurl="+vurl;
    var fichier="plugins/paramspip/fichiers/dir"+idarticle+"/fluxRSS.php";
    xhr_object.open("POST",fichier,true) ;
 
 
// la valeur envoyée comme type de contenu par post  est     "application/x-www-form-urlencoded" (de type formulaire)
    xhr_object.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xhr_object.send(paramurl);
     
// Lorsque on a la réponse, on la stocke dans la variable reponseXML
    xhr_object.onreadystatechange = function() {   
        if(xhr_object.readyState == 4){ 
            if(xhr_object.status == 200){ 
         
            var reponseXML=xhr_object.responseXML;
            //On récupère tous les éléments <item> du fichier reponseXML
            var items=reponseXML.getElementsByTagName("item");
            // On fait une boucle pour récupérer les titres, les liens, les descriptions.
            supprimerlignes()
            for(i=0;i<items.length;i++){
            // firstChild.nodeValue correspond à ce qui est écrit entre <title> et </title>, ou <link> et </link>, ou <description> et </description>
            var titre=items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
            var lien=items[i].getElementsByTagName("link")[0].firstChild.nodeValue;
            // Certains flux n'ont pas de descriptions, donc on enverra "" à la place.
            var description=null;
            if (items[i].getElementsByTagName("description")[0])
            description=items[i].getElementsByTagName("description")[0].firstChild.nodeValue;
            else description="";
            creerlignes(titre,lien,description);
            document.getElementById('titreRSS').innerHTML="Syndication r&eacute;ussie";
            }
    }                              
  } else     document.getElementById('titreRSS').innerHTML="Attente...";     
 }     
 // Un appel récursif, qui pemet d'actualiser les données toutes les 10 minutes.
 setTimeout("LireRSS(choix)",600000);
}
 
function creerlignes(titre,lien,description){
 
//On crée des lignes : une ligne h2 pour le titre sur lequel il y aura un lien vers l'intégralité de l'article,
// une ligne hr de soulignement, des lignes pour la description et en enfin un saut de ligne pour la séparation. 

var nouveauP=document.createElement("h2");
var nouveauP1=document.createElement("div");
var nouveauHr=document.createElement("hr");
var nouveauBr=document.createElement("br");
var nouveauA=document.createElement("a");
var nouveauTxt=document.createTextNode(titre);
var nouveauTxt1=document.createTextNode(description);
nouveauA.setAttribute("href",lien);
nouveauA.appendChild(nouveauTxt);
nouveauP.appendChild(nouveauA);
nouveauP1.innerHTML=description;
 
document.getElementById("conteneurlignesRSS").appendChild(nouveauP);
document.getElementById("conteneurlignesRSS").appendChild(nouveauHr);
document.getElementById("conteneurlignesRSS").appendChild(nouveauP1);
document.getElementById("conteneurlignesRSS").appendChild(nouveauBr);
 
}
 
function supprimerlignes(){
// On supprime tout ce qu'il y a dans conteneurlignesRSS. 
document.getElementById("conteneurlignesRSS").innerHTML="";
}
 

 

Fatal error: Call to undefined function: cron_popularites() in /mnt/112/sda/7/3/wop2/devweb/ecrire/inc/cron.php on line 114