fluxRSS

41 posts in this topic

Posted · Report post

je l'ai aidé un petit peu quand meme...

:D

yes c'est vrai :D

et tu valide ce code alors ? ;)

Share this post


: post
Share on other sites

Posted · Report post

Je vais modifier pour la validité RSS, mais pas avec l'urlrewrit parce que tous le monde n'a pas le module.

Share this post


: post
Share on other sites

Posted · Report post

Ou bien publie les 2 codes en disant avec ou sans réécriture, car a chaque fois on lutte pour trouver les bonnes versions

Share this post


: post
Share on other sites

Posted · Report post

Merci a Willy et Eric pour leur aide, et a Noya_m pour ses questions ;)

PS : Oui Willy je vais posté le script avec l'url rewrit.

Share this post


: post
Share on other sites

Posted · Report post

Il faut arreter de vous poser des questions je n'ais plus le temps de travailler ;)

Share this post


: post
Share on other sites

Posted · Report post

j'en ai d'autres et non des monidres ;)

Share this post


: post
Share on other sites

Posted · Report post

j'en ai d'autres et non des monidres ;)

en tout cas, je crois que la communauté devrait te remercier sur la meme echelle que tous les contributeurs, car sans tes question, en une semaine, nous n'aurions ni flux rss , ni tags.

Je pense pour ma part, que vu le dvp open source effectué ici, c'est dommage que premium soit encore payante, car soit on dvp pour shopping et là faut avancer de tres tres loin, soit on dvp pour premium et là on dvp en open source pour une source payante. ya quand meme un truc bizarre là dedans. Je pense qu'il est temps de mettre un gros coup d'accelerateur à shopping si on ne veux pas que la partie qui emmene le plus de personnes sur ce forum (la partie gratuite) ne s'amenuise et fasse mourir shopping avant l'heure.

YA DU BOULOT !!

Share this post


: post
Share on other sites

Posted · Report post

suis d'accord avec ton idée générale, mais shopping reste le produit d'appel de peel

Share this post


: post
Share on other sites

Posted · Report post

Justement paulanna, c'est pour cela que shopping doit posseder une base plus large.

Que premium soit multilingue et shopping non, ok

Que premium gère mieux les meta; ok

Que shopping ne gère pas, enfin mis à part grace à notre dev, le stock, pas d'accord.

Que shopping ne gère pas le multi-taille et autre ... pas d'accord.

On gagnerait bcp pour notre webgiciel de shopping, peel, si les deux parties étaient assemblée et que les devs servent à tous. Surtout ceux fait par les forumeurs.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

serait-il possible de mettre le code final pour le rss + rewrite ici

merci a vous

Share this post


: post
Share on other sites

Posted · Report post

Alors dans rewrite.php j'ai ajouter la fonction suivante :

function rss_link($id, $cat){

global $wwwroot;

$link = "";

if($id != 0){
// Produits
$sql_prod_query = mysql_query("SELECT peel_produits.nom_".$_SESSION['langue']." as nom FROM peel_produits WHERE peel_produits.id='".$id."'");
$result_prod = mysql_fetch_array($sql_prod_query);
$chaine = mrpropre($result_prod['nom']) . "-" . $id;
}

//Categories
$sql_cat_query = mysql_query("SELECT peel_categories.nom_".$_SESSION['langue']." as nom FROM peel_categories WHERE peel_categories.id='".$cat."'");
$result_cat = mysql_fetch_array($sql_cat_query);
$chaine2 = mrpropre($result_cat['nom']);
$chaine3 = mrpropre($result_cat['nom'])."-".$cat;

//Rubriques

if($id == 0){ // on est dans une catego
$link = "<link>" .$wwwroot ."/cat-".$chaine3.".html</link>";
}

if($id != 0){
$link = "<guid>" .$wwwroot ."/".$chaine2."-".$cat."/".$chaine.".html</guid>";
} else {
$link = "<guid>" .$wwwroot ."/cat-".$chaine3.".html</guid>";
}

return ($link);
}[/codebox]

Et re-voici le fichier rss.php que j'ai modifié pour affiché en RSS les dereniére mise à jours dans la boutique :

[codebox]<?
/* RSS 3DVF / PEEL
*/
include("configuration.inc.php");

Header("content-type: application/xml");
// En-tête
echo "<"."?xml version=\"1.0\" encoding=\"ISO-8859-1\"?".">
<rss version=\"2.0\">
<channel>
<title>Flux RSS 3DVF.fr</title>
<link>http://www.3dvf.fr</link>
<description> Quoi de neuf sur 3dvf.fr ?</description>
";

// R&eacute;cup&eacute;ration et affichage des donn&eacute;es
$sql = "SELECT id,nom_fr,date_maj,descriptif_fr FROM peel_produits WHERE on_new = '1' AND etat = '1' LIMIT 10";
$result=mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());
while($prod=mysql_fetch_array($result))
{
$id_rss = $prod['id'];
$nom_rss = $prod['nom_fr'];
$date_rss = $prod['date_maj'];
$desc_rss = stripslashes( $prod['descriptif_fr']);
$date = strtotime($date_rss);
$sql2 = mysql_query("SELECT categorie_id FROM peel_produits_categories WHERE produit_id = '$id_rss' ");
$cat = mysql_fetch_array($sql2);
//$url_rss = href_link($id_rss, $cat['categorie_id']);
echo "<item>
<title>".$nom_rss."</title>
".rss_link($id_rss, $cat['categorie_id'])."
<pubDate>".gmdate('D, d M Y H:i:s',$date)." GMT</pubDate>
<description>".$desc_rss."</description>
</item>
";
}
// Fin d'affichage
echo "</channel>
</rss>
";
?>

Share this post


: post
Share on other sites

Posted · Report post

Votre developpement pout le flux rss pourrait-il prendre en compte de la musique ?

Share this post


: post
Share on other sites

Posted · Report post

Votre developpement pout le flux rss pourrait-il prendre en compte de la musique ?

Il puises les infos en base de donnée donc normalement aucun soucis.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

J'ai installé récemment sur un site oscommerce un flux rss avec création d'un fichier xml dans un dossier /feeds/ pour l'import sur www.edgeio.com grâce à une contrib.

J'ai essayé de modifier le fichier rss_edgeio.php de la contrib de base pour l'adapter a peel, pour pouvoir exporter mon catalogue sur www.edgeio.com.

J'ai cette erreur Fatal error: Maximum execution time of 30 seconds exceeded si quelqu'un peut jeter un oeil sur mon fichier rss_edgeio.php me dire la ou j'ai des erreurs :

<?
/* RSS 3DVF / PEEL
*/
include("configuration.inc.php");
Header("content-type: application/xml");
// En-tête
echo "<"."?xml version=\"1.0\" encoding=\"ISO-8859-1\"?".">
<rss version=\"2.0\">
<channel>
<title>monsite</title>
<link>http://www.monsite.fr</link>
<description>Catalogue de </description>
";
$edgeio=true; //enable edge io
$dryrun=true; //whether or not execute actual upload to both or stop at file generation
$limit=' LIMIT 10'; //nice to limit number of posts for debug delete for production

//CHANGE PARAMETERS BELOW///
$feedDirectory = "../feeds/"; //"CHANGEME-full-path-to-file-with-777-dir-and-file-permissions.yahoo-outfile.txt";
$fileEdgeio="edgeio_feed.xml";
$feedTitle=''; //Feed Title i.e. My Company Feed
$feedDescription=' '; //Feed Title i.e. My Company Name
$siteUrl=''; //Your site URL i.e. [url="http://www.mysite.com"]http://www.mysite.com[/url] Site URL
$feedUrl=''; //URL to $OutFile i.e. [url="http://www.mysite.com/feeds/"]http://www.mysite.com/feeds/[/url]
$imageUrl = ''; //Base URL for images i.e. [url="http://www.mysite.com/images/"]http://www.mysite.com/images/[/url]
$productUrl = ''; //Base url for products i.e. [url="http://www.mysite.com/product_info.php?products_id="]http://www.mysite.com/product_info.php?products_id=[/url]
$language='en-us';
$currency='USD'; //ISO Currency code i.e. GBP, EUR
$locationCity='City'; //location of the producti.e. New York
$locationState='State'; //State i.e. CA
$locationZip='ZIP'; //ZIP
$locationCountry='USA';//COUNTRY
$ttl=60; //Time to expiration in days minimum 30 max 90
$paymentAccepted=array('Cash','Visa','MasterCard','AmericanExpress'); // these values should be the same as on google base xml feed spec
$locationAddress='Your Street Address, City,State,Zip';


//***********************
// This query is required if you want to use categories names as search and grouping tags in EDGEIO.COM serach engine
//select categories, the categories names will be used as tags and keywords for listings
$result="SELECT * FROM peel_categories c, peel_categories_description_fr cd WHERE c.peel_categories_id = cd.peel_categories_id ";
$categories=array();
while($row = $result){
$categories[$row['peel_categories_id']]['name']=htmlspecialchars($row['peel_categories_nom_fr']);
$categories[$row['peel_categories_id']]['parent']=$row['peel_categories_parent_id'];
}

$categorytag=array();
//now find path from this category to its parent and then to root so their names can be used as tags
foreach($categories as $key=>$value){
$end=0;
$tags=array($value['name']);
$nextid=$value['parent'];
do{
if($nextid!=0){
array_push($tags,$categories[$nextid]['name']);
$nextid=$categories[$nextid]['parent'];
}else{
$end=1;
}
}while($end!=1);

$categorytag[$key]=$tags;
}


//******************************************************
//Retrieve all product/products_description information feel free to change this
$result="select * from peel_produits p and p.peel_produits_on_stock>0 and p.peel_produits_etat=1 " . $limit;


if($edgeio){
/********************
BUILD EDGEIO FILE
********************/
$output='<?xml version="1.0" encoding="ISO-8859-1" ?>'."\n";
$output.='<rss version="2.0" xmlns:edgeio="http://www.edgeio.com/api/v1">'."\n";
$output.='<channel>'."\n";
$output.='<title>'.$feedTitle.'</title>'."\n";
$output.='<link>'.$siteUrl.'</link>'."\n";
$output.='<feed>'.$feedUrl.$fileEdgeio.'</feed>'."\n";
$output.='<language>'.$language.'</language>'."\n";
$output.='<pubDate>'.date("r").'</pubDate>'."\n";
$output.='<lastBuildDate>'.date("r").'</lastBuildDate>'."\n";
$output.='<docs>http://blogs.law.harvard.edu/tech/rss</docs>'."\n";
$output.='<generator>Edgeio publishing script for oSCommerce 1.2</generator>'."\n";


while($row = tep_db_fetch_array($result)){

$output.=' <item>'."\n";
$output.=' <guid>'.$productUrl . $row['peel_produits_id'].'</guid>'."\n";
$output.=' <pubDate>'.date("r").'</pubDate>'."\n";
$output.=' <title>'.xmlentities(strip_tags($row['peel_produits_nom_fr']). " - " . $row['']) .'</title>'."\n";
$output.=' <link>'.$productUrl . $row['peel_produits_id'] .'</link>'."\n";
$output.=' <description>'.xmlentities(strip_tags($row['peel_produits_description_fr']))."\n";
$output.=' <![CDATA['."\n";
$output.=' <img src="'.$imageUrl . $row['peel_produits_image2'] . '" />'."\n" ;
$output.=' <span class="price">'.$currency.' '.number_format($row['peel_produits_prix'], 2, '.', '').'</span>'."\n";
$output.=' <abbr class="dtexpired" title="'.get_iso_8601_date(time() + ($ttl * 24 * 60 * 60)).'">'.date("F j, Y",strtotime("+".$ttl." day")).'</abbr>'."\n";
$output.=' ]]>'."\n";
$output.=' </description>'."\n";
$output.=' <category>listing</category>'."\n";
$output.=' <category>for sale</category>'."\n";
$output.=' <category>city:'.xmlentities($locationCity).'</category>'."\n";
$output.=' <category>state:'.xmlentities($locationState).'</category>'."\n";
$output.=' <category>zip:'.xmlentities($locationZip).'</category>'."\n";
$output.=' <category>country:'.xmlentities($locationCountry).'</category>'."\n";
if(isset($categorytag[$row['categories_id']])){
foreach($categorytag[$row['categories_id']] as $key=>$value){
$output.=' <category>'.xmlentities($value).'</category>'."\n";
}
}
$output.=' </item>'."\n";
}

$output.='</channel>'."\n";
$output.='</rss>'."\n";

if ( file_exists( $feedDirectory.$fileEdgeio ) )
unlink($feedDirectory.$fileEdgeio );

$fp = fopen($feedDirectory.$fileEdgeio , "w" );
$fout = fwrite($fp , $output );
fclose( $fp );
if(!$dryrun){
echo sendPing($feedTitle,$siteUrl,$feedUrl.$fileEdgeio);
}
echo '<p><a href="'.$feedUrl.$fileEdgeio.'">Edgeio File</a><p>';
}


//--EDGEIO.COM --CLASS CODE DO NOT CHANGE CODE BELOW THIS LINE--//
function sendPing($name="", $url="", $rss="") {
$fp = fsockopen("www.edgeio.com", 80, &$errnum, &$errstr);

if(!$fp) {
return "$errstr ($errnum)<br>\n";
}

if ($rss != "") {
$method = "weblogUpdates.extendedPing";
} else {
$method = "weblogUpdates.ping";
}

$xml = "<?xml version=\"1.0\"?><methodCall><methodName>" .$method .
"</methodName><params><param><value>$name</value></param><param><value>".htmlspecialchars(canonical_url($url))."</value></param>";
if ($rss != "") $xml .= "<param><value>foo</value></param><param><value>".htmlspecialchars(canonical_url($rss))."</value></param>";
$xml .= "</params></methodCall>";

$len = strlen($xml);
fputs($fp,"POST /RPC2 HTTP/1.0\r\n");
fputs($fp,"Content-Type: text/xml\r\n");
fputs($fp,"Content-length: $len\n\n");
fputs($fp,$xml);

$output="";
while(!feof($fp)) $output.=fgets($fp,4096);
fclose($fp);

return $output;
}

function canonical_url($url)
{
$url = trim($url);
if (substr($url,0,7)!="http://") $url = "http://".$url;
$u = @parse_url($url);
if (!$u) return "";
if (!$u['path'] && !$u['query'] && !$u['fragment']) $url .= "/";
return $url;
}

function get_iso_8601_date($int_date) {
//$int_date: current date in UNIX timestamp
$date_mod = date('Y-m-d\TH:i:s', $int_date);
$pre_timezone = date('O', $int_date);
$time_zone = substr($pre_timezone, 0, 3).":".substr($pre_timezone, 3, 2);
$date_mod .= $time_zone;
return $date_mod;
}

function xmlentities($string) {
return str_replace ( array ( '&', '"', "'", '<', '>', '?' ), array ( '&' , '"', '&apos;' , '<' , '>', '&apos;' ), $string );
}
?>
[/codebox]

Merci d'avance à ceux qui pourront m'aider.

Share this post


: post
Share on other sites

Posted · Report post

je pense que tu dois avoir des boucles (ou qu'une seule) sans intérruption(s)

Share this post


: post
Share on other sites

Posted · Report post

J'ai installé le flux rss de 3DVF, merci d'ailleurs à lui, je voudrais l'améliorer un peux notamment en insérant le visuel du produit et pourquoi pas aussi le prix et sa description.

J'ai essayé pour inserer l'image le code suivant.

// Récupération et affichage des données 
$sql = "SELECT id,nom_fr,date_maj,descriptif_fr,image1 FROM peel_produits WHERE on_new = '1' AND etat = '1' LIMIT 10";
$result=mysql_query($sql) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());
while($prod=mysql_fetch_array($result))
{
$id_rss = $prod['id'];
$nom_rss = $prod['nom_fr'];
$date_rss = $prod['date_maj'];
$image1_rss = img src='".$repertoire_upload."/".$prod['image1']."';
$desc_rss = stripslashes( $prod['descriptif_fr']);
$date = strtotime($date_rss);
$sql2 = mysql_query("SELECT categorie_id FROM peel_produits_categories WHERE produit_id = '$id_rss' ");
$cat = mysql_fetch_array($sql2);
//$url_rss = href_link($id_rss, $cat['categorie_id']);
echo "<item>
<title>".$nom_rss."</title>
".rss_link($id_rss, $cat['categorie_id'])."
<pubDate>".gmdate('D, d M Y H:i:s',$date)." GMT</pubDate>
<description>".$desc_rss."</description>
</item>
";
}
// Fin d'affichage
echo "</channel>
</rss>
";
?>[/codebox]

Mais ca ne marche pas, si quelqu'un peux m'aider svp

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping