Posted by Vinh CHUC on Thu 21 Jun 13:25 (modification of post by view diff)
report abuse | View followups from Efrain | diff | download | new post
- <?php
- /*
- * =========================
- * Name: Amazon Partenaires : Meilleures Ventes
- * Description: Vous avez un compte Amazon Partenaire, ce script vous permet de lister les 10 meilleures
- ventes d'une catégorie au choix, et vous renvoie une liste de liens, AVEC votre id partenaire ( ces
- liens qui vous font potentiellement gagner du fric ), ces liens sont illustrés par l'image du produit
- en question. Vous pouvez personnaliser totalement l'affichage, ainsi que les informations retournées
- ( Sous réserve de consulter la doc du blog amazon partenaires cf ligne 15 ).
- * Version : 1.0RC2
- * License : Creative Commons BY-NC-SA ( http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ )
- * Auteur : Vinh CHUC | http://www.pikkitux.com | vinh/point\chuc chez gmail/point\com
- * P.S. : Ce script est basé sur le tutorial récupéré sur le blog amazon.fr Partenaires
- ( http://affiliation-blog.amazon.fr/ ), le post en question :
- http://affiliation-blog.amazon.fr/2007/05/tutorial_reprod.html, à consulter si vous souhaiter
- personnaliser ce script.
- *********************
- *********************
- * Pré-requis : accès en écriture au dossier ou se situera le script, PHP5 avec SimpleXML activé
- ( c'est le cas par défaut ).
- * INSTALLATION : uploadez ce fichier sur votre FTP ( de préférence dans son propre dossier) ,
- puis appeler ce script depuis l'une de vos pages PHP, entrez :
- echo file_get_contents("cheminverslecript/lescript.php?node=XXXXXX&ligne=X");
- * Un système de cache est intégré ( il est simpliste : on vérifie la date du fichier créé, on execute le script
- que s'il est suffisamment ancien, sinon on se contente "d'includer" le fichier déjà existant.
- Un fichier cache est crée pour chaque combinaison node/nombresdelignes
- * PERSONNALISATION : Lisez la doc d'amazon ( cf ligne 15 ) pour connaître toutes les balises xml disponibles,
- puis modifiez à votre goût les lignes 106 à 111
- ( vous devez maitriser la concaténation de variables pour pas vous perdre au milieu
- des guillemets et apostrophes )
- *
- *
- *
- *
- * Démonstration : http://www.pikkitux.com/boutique.html
- * =====================================================================================
- */
- /*===================== Vos identifiants =====================*/
- /***************************************************************/
- $awsid = "xxxxxxxxx";/* Votre Identifiant Amazon Web Service, si vous êtes seulement
- inscrit chez Amazon Partenaires, vous devez également vous inscrire chez A.W.S ( afin d'avoir une clé permettant
- d'exploiter leur API ) */
- $partenaireid = "xxxxxxxx-21";// Votre Idenfitiant Amazon Partenaire ( avec le -21 )
- $node = $_GET['node']; // Le numéro correspondant a la catégorie dont vous souhaitez listez les meilleures ventes ( variable GET )
- $resultatsparligne = $_GET['ligne'] ; // Le nombre de produits à afficher par lignes ( variables GET )
- /* Pour trouver le numéro de node, rendez vous sur le site d'amazon.fr, dans la catégorie désirée,
- et cherche le numéro dans l'url &node=xxxxxx */
- /* Système de Cache, un fichier est mis en cache pour chaque combinaison node/nombredelignes
- il y a donc un système de cache indépendant pour chacunes de ces combinaisons */
- {
- }
- else
- {
- $modif_ago = 60*60*60 ; // Cette valeur doit être strictement SUPERIEURE a la valeur 3 lignes en dessous
- }
- if ($modif_ago < 60*60*24 ) // Durée du cache ( 1 jour | à modifier si besoin ). Si le fichier xxxx.html ( la ou est enregistré le résultat du script )
- // est suffisamment récent, on se contente de l'inclure à ce script
- {
- include('amazon'.$node.'_'.$resultatsparligne.'.html');
- }
- else /* Sinon on execute les diverses requêtes, qui vont écrire un nouveau xxxx.html, que l'on va également
- inclure au script ( ligne 127 ) */
- {
- if (file_exists('amazon'.$node.'_'.$resultatsparligne.'.html')) { unlink('amazon'.$node.'_'.$resultatsparligne.'.html');}
- /*===================== Traitement de la réponse XML d'aws ======================*/
- $filegetcontentsxml = file_get_contents("http://webservices.amazon.fr/onca/xml?Service=AWSECommerceService&SubscriptionId=$awsid&Operation=BrowseNodeLookup&BrowseNodeId=$node&ResponseGroup=TopSellers");
- // On récupère la réponse XML d'aws, dans une variable de type chaîne de caractère.
- $xmlbrut = <<<XML
- $filegetcontentsxml
- XML;
- $xmlfinal = new SimpleXMLElement($xmlbrut); // La réponse XML est transformée en array
- /**************************************NE PAS MODIFIER A PARTIR DE CETTE LIGNE ***
- ***************************************SI VOUS NE SAVEZ PAS CE QUE VOUS FAITES **/
- /*====================== On parse le xml et on affiche les liens =======================*/
- $i = 0 ; /* Variable que l'on va incrémenter pour chaque élément retourné, on pourra alors insérer un <br /> selon qu'il est pair,
- divisible par 3,4,....,n = le nombre d'éléments à afficher par ligne.*/
- foreach ($xmlfinal->BrowseNodes->BrowseNode->TopSellers->TopSeller as $parser) // On fait une boucle énumérant les différents articles de la réponse
- {
- $i++;
- $ASIN = $parser->ASIN; // On récupère l'ASIN dans une variable
- $filegetcontentsxml2 = file_get_contents("http://ecs.amazonaws.fr/onca/xml?Service=AWSECommerceService&Version=2010-01-01&Operation=ItemLookup&SubscriptionId=$awsid&AssociateTag=$partenaireid&ItemId=$ASIN&ResponseGroup=Large,Offers");
- // Grâce à l'ASIN tout juste récupéré on demande plus d'informations sur le produit ( dont l'url de la page amazon correpondante, et l'url de l'image du produit )
- $xmlbrut2 = <<<XML
- $filegetcontentsxml2
- XML;
- $xmlfinal2 = new SimpleXMLElement($xmlbrut2);
- $parser2 = $xmlfinal2->Items->Item ;
- $temp = ' <a href="'.$parser2->DetailPageURL.'" title="'.$parser2->ItemAttributes->Title.'"><img src="'.$parser2->SmallImage->URL.'" alt="'.$parser2->ItemAttributes->Title.'" /></a> ';
- file_put_contents('amazon'.$node.'_'.$resultatsparligne.'.html',$temp,FILE_APPEND);
- {
- file_put_contents('amazon'.$node.'_'.$resultatsparligne.'.html',"<br />",FILE_APPEND);
- }
- }
- include('amazon'.$node.'_'.$resultatsparligne.'.html');
- }
- ?>
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.