{"id":469,"date":"2005-09-29T19:43:44","date_gmt":"2005-09-29T17:43:44","guid":{"rendered":"http:\/\/www.marblestation.com\/blog\/?p=469"},"modified":"2012-04-26T17:48:36","modified_gmt":"2012-04-26T15:48:36","slug":"planets","status":"publish","type":"post","link":"https:\/\/www.marblestation.com\/?p=469","title":{"rendered":"Planets"},"content":{"rendered":"<p>Llevo d\u00edas testeando <a href=\"http:\/\/laurel.datsi.fi.upm.es\/metaplanet\/\">metaplanet<\/a> como aplicaci\u00f3n web para mostrar de forma unificada las entradas de diferentes blogs, al estilo del <a href=\"http:\/\/www.planetplanet.org\">planetplanet<\/a> que usamos en <a href=\"http:\/\/planet.gpltarragona.org\">GPL Tarragona Planet<\/a>. Como subscriptores tengo los mismos que los del planet de GPL Tarragona.<\/p>\n<p>Por desgracia, desde hace ya varios d\u00edas, <a href=\"http:\/\/jhernandez.gpltarragona.org\">Joni<\/a> me &#8220;rompi\u00f3&#8221; mi metaplanet con uno de sus posts&#8230; concretamente hacia que siempre saliese siempre en primer lugar su post sobre <a href=\"http:\/\/jhernandez.gpltarragona.org\/blog\/?p=425\">Nintendo revolutions<\/a> y los nuevos que escribia, ni tan siquiera aparecian \ud83d\ude41 Me di\u00f3 mucha r\u00e1bia porque metaplanet se ha comportado muy bien con las codificaciones de caracteres, cosa que con planetplanet siempre hemos tenido muchos problemas.<\/p>\n<p>Hoy me he puesto a investigar cual era el problema, por suerte metaplanet esta escrito en PHP, lenguaje con el que tengo mucha m\u00e1s pr\u00e1ctica que con Python (usado por planetplanet). Al final he dado con el problema, por lo visto seg\u00fan el blog las fechas en el feed (campo &#8220;pubDate&#8221;)  estan en Castellano, Catal\u00e1n o Ingl\u00e9s :S Por ejemplo:<br \/>\n<!--more--><br \/>\n&#8211; <a href=\"http:\/\/alfons.elmeuportal.net\/\">Alfons Nonell i Canals<\/a> tiene las fechas de su feed en Catal\u00e1n: <i>&#8220;Dj, 29 Sep 2005 03:27:35 +0000&#8221;<\/i><br \/>\n&#8211; <a href=\"http:\/\/jhernandez.gpltarragona.org\">Jonathan Hern\u00e1ndez Velasco<\/a> tiene las fechas de su feed en Castellano: <i>&#8220;Jue, 29 Sep 2005 13:55:06 +0000&#8221;<\/i> y Ingl\u00e9s <i>&#8220;Thu, 29 Sep 2005 12:03:43 +0000&#8221;<\/i><br \/>\n&#8211; <a href=\"http:\/\/www.marblestation.com\/blog\">Sergio Blanco Cuaresma<\/a>, yo mismo \ud83d\ude00 tengo las fechas de los feeds completamente en Ingl\u00e9s.<\/p>\n<p>Metaplanet usa una funci\u00f3n en php para traducir esa fecha a otro formato y de esta forma poder ordenar los posts, pero solo funciona correctamente cuando estan en Ingl\u00e9s. \u00bfSoluci\u00f3n? He a\u00f1adido una peque\u00f1a funci\u00f3n en &#8220;cron\/misc.php&#8221;:<\/p>\n<pre>\r\nfunction translate_to_english($time)\r\n{\r\n    \/\/ From Catalan to English\r\n    $new_time = str_replace(\"Dl\", \"Mon\", $time);\r\n    $new_time = str_replace(\"Dm\", \"Tue\", $new_time);\r\n    $new_time = str_replace(\"Dmc\", \"Wed\", $new_time);\r\n    $new_time = str_replace(\"Dj\", \"Thu\", $new_time);\r\n    $new_time = str_replace(\"Dv\", \"Fri\", $new_time);\r\n    $new_time = str_replace(\"Ds\", \"Sat\", $new_time);\r\n    $new_time = str_replace(\"Dg\", \"Sun\", $new_time);\r\n\r\n    \/\/ From Spanish to English\r\n    $new_time = str_replace(\"Lun\", \"Mon\", $new_time);\r\n    $new_time = str_replace(\"Mar\", \"Tue\", $new_time);\r\n    $new_time = str_replace(\"Mi\u00e9\", \"Wed\", $new_time);\r\n    $new_time = str_replace(\"Jue\", \"Thu\", $new_time);\r\n    $new_time = str_replace(\"Vie\", \"Fri\", $new_time);\r\n    $new_time = str_replace(\"S\u00e1b\", \"Sat\", $new_time);\r\n    $new_time = str_replace(\"Dom\", \"Sun\", $new_time);\r\n\r\n    return $new_time;\r\n}\r\n<\/pre>\n<p>Y hago que sea llamada desde la funci\u00f3n &#8220;my_strtotime($time)&#8221; del mismo fichero:<\/p>\n<pre>\r\nfunction my_strtotime($time)\r\n{\r\n    \/\/ If null then returns the base timestamp\r\n    if ($time == NULL)\r\n        return 1;\r\n\r\n    $time = translate_to_english($time);\r\n\r\n    \/\/ Process\r\n    list($year, $month, $day, $hour, $minute, $second, $timezone) = sscanf($time, \"%4d-%2d-%2dT%2d:%2d:%2d+%s\");\r\n    ....\r\n}\r\n<\/pre>\n<p>Quiz\u00e1s no es una soluci\u00f3n elegante, pero funciona \ud83d\ude42 Quiz\u00e1s lo ideal es que en los feeds no hubiese nunca traducciones y siempre se mostrasen las fechas en Ingl\u00e9s. Despu\u00e9s cada sistema ya haria la traducci\u00f3n adecuada seg\u00fan el idioma del cliente.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Llevo d\u00edas testeando metaplanet como aplicaci\u00f3n web para mostrar de forma unificada las entradas de diferentes blogs, al estilo del planetplanet que usamos en GPL Tarragona Planet. Como subscriptores tengo los mismos que los del planet de GPL Tarragona. Por desgracia, desde hace ya varios d\u00edas, Joni me &#8220;rompi\u00f3&#8221; mi metaplanet con uno de sus &hellip; <a href=\"https:\/\/www.marblestation.com\/?p=469\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Planets<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6],"tags":[],"class_list":["post-469","post","type-post","status-publish","format-standard","hentry","category-espanyol","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=469"}],"version-history":[{"count":1,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/469\/revisions"}],"predecessor-version":[{"id":1443,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/469\/revisions\/1443"}],"wp:attachment":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}