Formateando fechas validas para Feeds (RFC-822)

Gracias al módulo Views RSS podemos crear nuestro RSS personalizado para que luego sea importado desde Facebook, Twitter etc.

Para crear un RSS que valide en http://www.feedvalidator.org, por ejemplo, debemos introducir una serie de campos obligatorios, y con un formato concreto.

En el caso del campo pubDate (fecha de publicación) debemos formatear la fecha para que tenga este formato:

Mon, 23 Aug 2010 08:09:06 +0200

Gracias a la utilización de la función date de php podemos crear una fecha con este formato. Simplemente con la letra r ya se formatea una fecha con el formato adecuado.

Problema: si nuestro drupal está en Español, obtendremos una fecha inválida:

Lun, 23 Ago 2010 08:09:06 +0200

Solución:

Aplicamos un pequeño parche al archivo views/handlers/views_handler_field_date.inc

--- handlers/views_handler_field_date.inc 2 Jun 2009 18:20:18 -0000 1.3
+++ handlers/views_handler_field_date.inc 20 Jul 2010 17:15:58 -0000
@@ -66,6 +66,9 @@
         case 'time span':
           return t(($time_diff < 0 ? '%time hence' : '%time ago'), array('%time' => format_interval(abs($time_diff), is_numeric($custom_format) ? $custom_format : 2)));
         case 'custom':
+          if ($custom_format == 'r') {
+            return format_date($value, $format, $custom_format, null, 'en');
+          }
           return format_date($value, $format, $custom_format);
         default:
           return format_date($value, $format);

Dirección Trackback de este artículo:

http://www.kreanto.com/trackback/75

Enviar un comentario nuevo

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

Más información sobre opciones de formato

CAPTCHA
Esta pregunta se hace para comprobar que es usted una persona real e impedir el envío automatizado de mensajes basura.