Suscriptores, los lectores olvidados

Hace unas semanas atrás, Google anunciaba el cierre de su servicio Google Reader. Miles de tweets se hicieron eco de la noticia y cientos de blogs al rededor del mundo comentaron alternativas y dieron su opinión al respecto de esta importante noticia que al parecer, afectó a muchos usuarios.

La verdad es que yo no usaba Google Reader ni otro servicio de subscripción de noticias, tal vez por falta de interés, o tal vez porque nunca le presté demasiada atención al sistema. Lo cierto es que después de leer en tantos lugares acerca del cierre y de las diferentes alternativas, se me dio por probar, de curioso nomas. Terminé instalando Liferea y empecé a suscribirme a diferentes sitios. Lo primero que pensé fue "uhh esto es excelente, puedo estar al tanto de sitios que ni recordaba que existían", y después llego mi decepción...

¡Una línea nomas! ¡una!

Según había leído la idea del RSS es simplemente descargar las noticias en un lugar central. Con esto nos ahorramos tener que revisar todos los sitios que uno normalmente visita, en busca de nuevas noticias. El concepto es muy interesante especialmente para la gente que trabaja en temas relacionados con la informática, revisar sitios de tecnología es una tarea habitual para mantenerse al día (y a veces para escaparle al trabajo también) y con frecuencia lleva demasiado tiempo.

Después de suscribirme a todos los sitios de noticias que usualmente visito, las diferentes novedades empezaron a acumularse. Y si bien en muchas subscripciones las noticias aparecían completas, en otras simplemente aparecía el resumen, o solo el título.

Este... Esto es una broma, ¿no? Se supone que si me subscribo a las noticias es para leer la noticia, no para leer una línea y tener que visitar el sitio. ¿Sino para que está Twitter?.

En fin, después de respirar un par de veces, recordé que yo también estaba haciendo eso con mi sitio. Lo mio era más que nada por ignorancia, como no usaba lectores de noticias, tampoco había configurado mis feeds para que sean útiles para otros. Asi que pensé que tal vez habría otros como yo, que no sabían lo que hacían, y de ahí surgió este artículo :).

Si ofreces feeds, hacelo bien

El asunto es el siguiente, el iconito ese naranja con rayitas blancas , sí ese, apunta a una versión simplificada de tu sitio web. Usando este iconito, otras personas usualmente se subscriben, y el dueño del sitio, en general no se entera de esto, así que tiene que andar bien. En mi opinión lo ideal sería que el feed contenga la noticia completa.

Si estás usando el sistema de feeds que incluye el núcleo de Drupal, eso se configura desde Administración → Configuración → Publicación de Rss (admin/config/services/rss-publishing), indicando que queremos mostrar el texto completo.

configuración en admin/config/services/rss-publishing

Otra alternativa es que estés usando Views. En ese caso, cada display puede tener su propio feed de RSS. Acá lo importante es sobrescribir el display que provee el feed para que el contenido sea el nodo completo en vez del resumen.

configuración de RSS en views

Cuidando los detalles

Incluso si estás mostrando el contenido de forma completa, puede ser que se hayan escapado algunos Fields que están ocultos cuando navegamos la página usando un navegador.

Al igual que los Teasers y el contenido completo, Drupal permite configurar que campos se van a mostrar en los posts del canal de noticias. Veamos como hacer esto.

Primero, en Administración → Estructura → Tipos de contenido → Articulo → Gestionar presentación, tenemos que activar la personalización de presentación para el display RSS.

Paso 1. Activar la presentación personalizada de un post en el Feed

Luego de guardar los cambios, una nueva pestaña va a aparecer en la intefaz.

Paso 2. Nueva pestaña para configurar RSS

Por último, arrastramos a la zona de 'Oculto' aquellos campos que no queremos mostrar en el Feed.

Paso 3. Ocultar campos que no queremos mostrar en el feed

Agregando CSS a nuestros feeds

Uno de los problemas que tienen los feeds es la falta de estilos visuales. En esta página explican como agregarle estilos a los feeds, el problema es que drupal no permite modificar el template para los feeds, ¿o si?

Los feeds se generan con la siguiente función que vive en drupal/modules/node/node.module (en drupal 7).

<?php

function node_feed($nids = FALSE, $channel = array()) {
  global $base_url, $language_content;
  if ($nids === FALSE) {
    $nids = db_select('node', 'n')
      ->fields('n', array('nid', 'created'))
      ->condition('n.promote', 1)
      ->condition('n.status', 1)
      ->orderBy('n.created', 'DESC')
      ->range(0, variable_get('feed_default_items', 10))
      ->addTag('node_access')
      ->execute()
      ->fetchCol();
  }
  // ... Mucho mas código acá
  $output = "<?xml version="1.0" encoding="utf-8"? >\n";
  $output .= "<rss version="" . $channel["version"] . "" xml:base="" . $base_url . "" " . drupal_attributes($namespaces) . ">\n";
  $output .= format_rss_channel($channel['title'], $channel['link'], $channel['description'], $items, $channel['language'], $channel_extras);
  $output .= "</rss>\n";
  drupal_add_http_header('Content-Type', 'application/rss+xml; charset=utf-8');
  print $output;
}

?>

Como se puede observar en las última líneas, la variable $output no puede modificarse antes de que sea devuelta por la función.

Afortunadamente, podemos hacer que Drupal use otra función en vez de node_feed para imprimir la página. Por ejemplo este simple hook:

<?php

/**
 * Implements hook_menu_alter().
 */
function mimodulo_menu_alter(&$items) {
  // Modificar la función por defecto que imprime los feeds
  $items['rss.xml']['page callback'] = 'mimodulo_node_feed';
}

?>

Nos permitirá que definamos nuestra propia función "mimodulo_node_feed" para imprimir nuestros feeds personalizados. Y allí podemos hacer referencia a nuestra hoja de estilos para RSS.

Con estos simples pasos, nuestros Feeds quedarán más prolijos y serán de utilidad para muchos lectores.

Recapitulando...

Feeds con noticias completas, campos que deberían estar ocultos... ocultos. CSS para nuestros feeds (opcional). Y un lindo iconito naranja para nuestra web.

Te invito a leer también...

Compartir este material en...

Comentarios

Muy interesante el artículo sobre todo lo explicativo y detallado que está

Añadir nuevo comentario