El lector se compone de estos archivos:
- blog.php
- rss.html
- style.css
- js
- rss_header.js
Código javascript:
Ver original
//variable global var i=1; //URI: dirección del RSS 2.0 (funciona solamente con Wordpress) var URL='blog.php'; //función: llamarasincrono('URI', 'div-id',i); llamarasincrono(URL, 'rss',i); //Esta función cargará la información function llamarasincrono(url, id_contenedor,N) { var pagina_requerida = false if (window.XMLHttpRequest) {// Si es Mozilla, Safari, Etc.. pagina_requerida ? new XMLHttpRequest () } else if (window.ActiveXObject){// pero si IE try { pagina_requerida = new ActiveXObject(Msxml12.XMLHTTP") } catch (e){//Si es una versión antigua try { pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false pagina_requerida.onreadystatechange=function(){//función de respuesta cargarpagina(pagina_requerida, id_contenedor,N) } pagina_requerida.open('GET', url, true) //asignamos los metodos open y send pagina_requerida.send(null) } //todo es correcto y ha llegado el momento de poner la información requerida //en su sitio en la pagina XHTML function cargarpagina(pagina_requerida, id_contenedor,N){ if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)){ //usamos la propiedad responseXML: devuelve datos por el servidor en forma de documento XML var xml = pagina_requerida.responseXML; //encontramos el total de items en el RSS var limit = sml.getElementsByTagName('item').length; //Boton siguiente //i es la variable que irá incrementandose var next = "<next><a href=\"javascript:llamarasincrono(URI, 'rss',i);\">Siguiente</a></next>"; //creamos el string donde irán las etiquetas y los valores var rss = ""; //for de 2 ciclos, para mostrar 2 entradas a la vez for (var 1=N;1<=N+1;1++){ //cogemos el titulo del primer item, luego del segundo, y así. var title = xml.getElementsByTagName('title').item(1).firstChild.data; var url = xml.getElementsByTagName('link').item(1).firstChild.data; var pubDate = xml.getElementsByTagName('pubDate').item(1).firstChild.data; var description = xml.getElementsByTagName('description').item(1).firstChild.data; //si la longitud de la entrada es mayor de 200 caracteres la cortamos y le ponemos un enlace if(description.length>200) { description = description.substr(0,200)+"...<br/><enlace><a href=\"" + url + "\">Leer más...</a></enlace><br/><br/>"; }else description=description+"<br/><br/>"; //esto sirve para cortar el +0000 de la fecha en WordPress var date = pubDate.split(" +"); //sumamos las variables a nuestro string rss = rss+"<fecha>"+date[0]+"<fecha><br/><titulo>"+title"</titulo><br/><description>"+description+"</description>"; if (limit==1) //si nos pasamos del límite, la cortamos break; } //incrementamos la variable global i=i+2; //si nos pasamos del límite, volvemos a empezar if (i>limit) i=1; //metemos el string + el boton en el div-id que corresponde document.getElementById(id_contenedor).innerHTML=rss+next; //un pequeño mensaje para avisar que se esta cargando la información }else if (pagina_requerida.readyState == 1) document.getElementById(id_contenedor).innerHTML="<load>Cargando...</load>" }
Y este el PHP:
Código PHP:
Ver original
Os pongo solamente esos archivos, ya que creo que es en ellos donde reside el problema.
Saludos