Jump to content

Cambios en módulo feeder (rss.php) para correcta validación (valid RSS feed)


tuverano.com

Recommended Posts

Si usamos http://feedvalidator.org/ nos daremos cuenta que nuestro fichero rss.php no pasa la validación.

Indico los cambios que he realizado en module/feeder/rss.php:
- Actualización línea:
- Añadir:
- Borrar tag: "mail"
- Añadir tag: "description"
- Añadir tag: "guid"

Ejemplo: http://www.tuverano.com/modules/feeder/rss.php
Download: http://www.tuverano.com/utils/rss.php.gz

Mi Validator: http://feedvalidator.org/check.cgi?url=http://www.tuverano.com/modules/feeder/rss.php

Bye.

Link to comment
Share on other sites

  • 2 months later...
  • 4 months later...
  • 1 month later...

Hola tengo un pequeño problema para validar mi feed, esta es la recomendación que me sale:

 

 

 

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.


  •  
     
    line 23, column 2: item should contain a guid element (8 occurrences)
    </item>
    ^

alguien me podría ayudar? busco y rebusco y no encuentro solución.....

 

os pongo el código:

<?php

include(dirname(__FILE__).'/../../config/config.inc.php');

require_once(dirname(__FILE__).'/../../init.php');

// Get data

$number = (intval(Tools::getValue('n')) ? intval(Tools::getValue('n')) : 10);

$orderByValues = array(0 => 'name', 1 => 'price', 2 => 'date_add', 3 => 'date_upd', 4 => 'position', 5 => 'manufacturer_name', 6 => 'quantity');

$orderWayValues = array(0 => 'ASC', 1 => 'DESC');

$orderBy = Tools::strtolower(Tools::getValue('orderby', $orderByValues[intval(Configuration::get('PS_PRODUCTS_ORDER_BY'))]));

$orderWay = Tools::strtoupper(Tools::getValue('orderway', $orderWayValues[intval(Configuration::get('PS_PRODUCTS_ORDER_WAY'))]));

if (!in_array($orderBy, $orderByValues))

$orderBy = $orderByValues[0];

if (!in_array($orderWay, $orderWayValues))

$orderWay = $orderWayValues[0];

$id_category = (intval(Tools::getValue('id_category')) ? intval(Tools::getValue('id_category')) : 1);

$products = Product::getProducts(intval($cookie->id_lang), 0, ($number > 10 ? 10 : $number), $orderBy, $orderWay, $id_category, true);

$currency = new Currency(intval($cookie->id_currency));

$affiliate = (Tools::getValue('ac') ? '?ac='.intval(Tools::getValue('ac')) : '');

// Send feed

header("Content-Type:text/xml; charset=utf-8");

echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";

?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title><![CDATA[<?php echo Configuration::get('PS_SHOP_NAME') ?>]]></title>

<link><?php echo _PS_BASE_URL_.__PS_BASE_URI__; ?></link>

<generator></generator>

<description></description>

<language><?php echo Language::getIsoById(intval($cookie->id_lang)); ?></language>

<atom:link href="../../modules/feeder/rss.php" rel="self" type="application/rss+xml" />

<ttl>15</ttl>

 

<image>

<title><?php echo Configuration::get('PS_SHOP_NAME') ?></title>

<url><?php echo _PS_BASE_URL_.__PS_BASE_URI__.'img/logo.jpg'; ?></url>

<link><?php echo _PS_BASE_URL_.__PS_BASE_URI__; ?></link>

</image>

<?php

foreach ($products AS $product)

{

$image = Image::getImages(intval($cookie->id_lang), $product['id_product']);

echo "\t\t<item>\n";

echo "\t\t\t<title><![CDATA[".$product['name']." - ".html_entity_decode(Tools::displayPrice(Product::getPriceStatic($product['id_product']), $currency), ENT_COMPAT, 'UTF-8')." ]]></title>\n";

echo "\t\t\t<description>";

$cdata = true;

if (is_array($image) AND sizeof($image))

{

echo "<![CDATA[<img src='"._PS_BASE_URL_.__PS_BASE_URI__."img/p/".$image[0]['id_product']."-".$image[0]['id_image']."-medium.jpg' title='".str_replace('&', '', $product['name'])."' alt='thumb' />";

$cdata = false;

}

if ($cdata)

echo "<![CDATA[";

echo $product['description_short']."]]></description>\n";

 

echo "\t\t\t<link><![CDATA[".htmlspecialchars($link->getproductLink($product['id_product'], $product['link_rewrite'], Category::getLinkRewrite(intval($product['id_category_default']), $cookie->id_lang))).

$affiliate."]]></link>\n";

echo "\t\t</item>\n";

}

?>

</channel>

</rss>

Link to comment
Share on other sites

  • 3 months later...

Hola Suberbet y Jck, siento la tardanza de mi respuesta, pero he tenido problemas con el sistema de notificación del foro y no me han llegado vuestros comentarios.

 

Para el tema xdd no sabría decirte. Lo siento.

 

Para el error "guid" yo probaría incluir la siguiente línea al final del fichero rss.php. Yo lo tengo así:

 

echo "\t\t\t<guid><![CDATA[http://www.tuverano.com".htmlspecialchars($link->getproductLink($product['id_product'], $product['link_rewrite'], Category::getLinkRewrite(intval($product['id_category_default']), $cookie->id_lang))).$affiliate."]]></guid>\n";

echo "\t\t</item>\n";

}

?></channel>

</rss>

 

Como siempre en estos casos, hacemos una copia del fichero rss.php.

 

Atentamente,

Jpe Franco

Blog: crear tienda online

Edited by tuverano.com (see edit history)
Link to comment
Share on other sites

  • 5 weeks later...

Probablemente este no sea el sitio adecuado para plantear esta cuestión, y pido disculpas de antemano, pero veo que aquí hay mucho nivel y quizás me podais ayudar en esta cuestión. ¿Hay alguna manera de modificar RSS Feed para que aparte de los productos mande también las entradas del modulo Free Blog (Prestalive)?

 

 

Un saludo

Manuel

www.donoferton.com

Edited by miscomasa (see edit history)
Link to comment
Share on other sites

Probablemente este no sea el sitio adecuado para plantear esta cuestión, y pido disculpas de antemano, pero veo que aquí hay mucho nivel y quizás me podais ayudar en esta cuestión. ¿Hay alguna manera de modificar RSS Feed para que aparte de los productos mande también las entradas del modulo Free Blog (Prestalive)?

 

 

Un saludo

Manuel

www.donoferton.com

Hola,

 

Para dudas nuevas abre un tema nuevo, esto ayudara a mantener una mayor organización del foro. (El que un post se llene de dudas distintas, hace que un foro no se termine de organizar)

Link to comment
Share on other sites

  • 5 months later...

Hola..
tengo un problema y es que al acceder a la URL del rss se abre el archibo xml pero sin estilo css, es decir:

<rss version="2.0">
<channel>
<title>
<![CDATA[ mi tienda ]]>
</title>
<link>http://www.miweb.com/</link>
<mail>[email protected]</mail>
<generator>PrestaShop</generator>
<language>es</language>
<image>
<title>
<![CDATA[ mi tienda ]]>
</title>
<url>http://www.miweb.com/img/logo.jpg</url>
<link>http://www.miweb.com/</link>
</image>
<item>
<title>
<![CDATA[ producot1 - 2,90 € ]]>
</title>
<description>
<img src="http://www.miweb
etc........

el problema es que no se que archibo debo modificar para aplicarle un estilo css.
les dejo el enlace al rss de mi web.

gracias Edited by jonysi_d (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...