AddThis Feed Button
AddThis Social Bookmark Button
IMGP1165
IMGP1166
IMGP1143
IMGP1144
IMGP1145
IMGP1146
IMGP1147
IMGP1148
IMGP1149
IMGP1150
Categories

This Month Last Year

Julio 2008
L M X J V S D
« Jun «-»  
 123456
78910111213
14151617181920
21222324252627
28293031  
links
24
Abr

Como crear un RSS para tu página (y II)

RSS
Ahora solo falta saber como generaríamos este código XML desde nuestra web de manera automática. Para ello utilizaremos PHP conectado a nuestra base de datos de MySQL (Voy a ponerlo lo mas genérico posible, cada uno, incluido yo, tenemos nuestras funciones de acceso a base de datos, pero así todo el mundo podrá verlo de manera clara).

\r\n Para empezar, el archivo será un .php para que el servidor ejecute nuestro código, pero para ello necesitamos engañar al navegador cambiando el content type del archivo, para que una vez ejecutado se interprete como XML y no como XHTML o HTML.


header("Content-type: text/xml; charset=ISO-8859-1",true);
print "“;
?>

Inmediatamente después, comenzaríamos rellenando la información del channel manualmente excepto el <pubDate> que puede automatizarse. La parte interesante llega con los <item>. Haremos una consulta que nos devuelva las ultimas 25 entradas de nuestra página (esta os toca hacerla a vosotros, ya que cada modelo de datos es diferente, y no funcionaria una en general). Será del estilo a esta:


SELECT * FROM POSTS ORDER BY POSTID DESC LIMIT 0,25

Ahora utilizaremos esa consulta para recorrer los resultados generando un <item> por cada fila que nos devuelva. Para ello usaremos la conexión entre PHP y MySQL.\r\n


// Objeto de Conexión
$conexion = mysql_pconnect(\’RUTA_SERVIDOR\’,\’USUARIO\’,\’CONTRASEñA\’);
mysql_select_db(\’NOMBRE_BD\’,$conexion) or die(mysql_error());

// Ejecutar la consulta ($consulta contiene la consulta SQL citada anteriormente)

$resultado = mysql_query($consulta) or die(mysql_error());
// Mientras $resultado siga devolviendo filas creamos un
while ($fila=mysql_fetch_array($resultado)) {
?>

http://www.web.com/index.php?p= AUTOR<AUTORl@web.com>
http://web.com/index.php?p=

]]>

}

?>

Como ya avise antes, hay que tener cuidado con las con las fechas del <pubDate>, para eso utilizo una función que me paso Feeddubas que soluciona ese problemilla convirtiendo la fecha al formato de RFC 822 válido.


function makeDate($date) {
$dm=explode(\’ \’,$date);
$f=explode(\’-\’,$dm[0]);
$h=explode(”:”,$dm[1]);
return mktime($h[0],$h[1],$h[2],$f[1],$f[2],$f[0]);
}

Con esto ya tendríais la base de vuestro RSS, otras cosas que podéis añadirle, es controlar si se introducen valores por $_GET (RSS.php?c=1) para tener RSS que filtre por categorías. Eso ya os lo dejo a vuestro criterio.


20
Abr

Como crear un RSS para tu página (I)

RSS
Mucha gente que se hace su propia web o blog, independientemente de cual sea su motivo, querrá disponer de los servicios habituales de una web o un blog convencional. Estas utilidades de las que disponen los CMS, son ya casi imprescindibles para el correcto uso y disfrute de las mismas, y por tanto renunciar a un CMS no puede significar renunciar a estos servicios.

Una de las utilidades más necesarias para cualquier página es el RSS o feed. Para los no iniciados, el feed es un documento en formato XML que contiene información, titulares y noticias de una web, de manera que cada vez que se actualiza, el feed también lo hace. Existen muchos programas cuyo propósito es gestionar estos feeds. Es una buena manera de estar al día con las páginas / blogs / planets que sigues habitualmente sin tener que abrirlas todas, y siempre puedes acceder desde ellos a esa noticia / post en concreto para comentar (en el caso de que se pueda) o ver la pagina en tu navegador habitual.

Como se citó anteriormente, el formato de éste documento es XML, por tanto tendremos que ceñirnos a una referencia para que este documento sea standard y así nadie tenga problemas con él, ampliando un poco mas la accesibilidad de nuestra página / blog. Además, la familia de los feeds se divide en dos escuelas mayoritarias, el RSS (0.x, 1.0 y 2.0) y Atom (1.0). Este último nació para tratar de unificar el RSS o RDF y ha acabo siendo un nuevo modelo pese a seguir en desarrollo.

Nosotros vamos a centrarnos en el más común y en principio preferido por la mayoría de los desarrolladores, el RSS 2.0 . Lo primero que tenemos que entender es la estructura básica de nuestro XML.

<RSS version=”2.0″ >









Este seria el orden habitual de creación del XML para un RSS. Para poder utilizar la mayoría de estas etiquetas, es necesario especificar una serie de doctypes que proveerán al documento de significado. Los más habituales son estos:

<RSS version=”2.0″ xmlns:Dc=”http://purl.org/dc/elements/1.1/”
xmlns:Sy=”http://purl.org/rss/1.0/modules/syndication/”
xmlns:admin=”http://webns.net/mvcb/”
xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:content=”http://purl.org/rss/1.0/modules/content/”
xmlns:wfw=”http://wellformedweb.org/CommentAPI/”
xmlns:dc=”http://purl.org/dc/elements/1.1/” >

Ahora, vamos a ver para qué son las etiquetas. Comenzamos con <channel>, que es un meta-elemento, es decir, va a proporcionar información sobre el feed y sobre la web a la que pertenece. Todos sus subitems estarán relacionados con dicha información.

El siguiente elemento mas importante es <item>, y deberá haber uno completo por cada entrada que se quiera enviar vía RSS. Por lo general entre 5 y 25 entradas. Lo que identifica a un <item> es su <guid>, que es un identificador único que servirá a los agregadores para saber si hay elementos nuevos, además del <pubDate> del <channel>. Si el <guid> ya existe, el agregador lo ignorará (esto es importante de cara a las modificaciones de una entrada).

Hay que tener en cuenta, que el <pubDate> no admite nada mas que fechas en formato RFC 822, por tanto tal vez debamos crearnos una función que devuelva el valor almacenado en ese formato más específico.

La <image> esta formada por tres subitems, <url> (el src de la imagen), <link> (la URL a la que apunta la imagen) y <title> (el texto alternativo o alt). Estos subitems se renderizan en un equivalente al <a href="link"><img src="url" alt="title" /></a>.

Y con ésto ya quedaría claro que es un RSS… En el proximo artículo lo generaremos con PHP y MySQL.

To be continued…