Quelques pistes pour vendre des livres sur un site
ASP-PHP.net est partenaire de la Fnac et d'Amazon pour recommander quelques livres concernant notre sujet favori !
Quelques scripts sont nécessaires au bon fonctionnement de la rubrique livres du site... vous les trouverez ici ainsi qu'une présentation rapide des partenaires.
Pour simplifier la maintenance, j'utilise un dossier "/livres/" dans lequel je place, pour chaque livre à recommander, sa couverture (gif) et un résumé (txt)... le nom des fichiers est le numéro ISBN (unique pour chaque ouvrage)
Par exemple, le livre recommandé par Ludo a pour numéro 274401012x d'où deux fichiers 274401012x.gif et 274401012x.txt
Pour accéder à la fiche cherchée, je transmets l'ISBN via QueryString à une page livres dont le script figure ci-dessous (par exemple livres.php?idlivre=274401012x)
<% Set FSO = _ Server.CreateObject("Scripting.FileSystemObject") dir = Server.MapPath("/livres/") ' on récupère l'id dans la query id=request.QueryString("id") ' si accès sans query >> livre recommandé if id = "" then id = "274401012x" ' si erreur ou livre supprimé >> livre recommandé if not FSO.fileExists(dir & "\" & id & ".txt")_ then id = "274401012x" ' affichage %> <!-- #include file="_top.asp"--> <img src="/livres/<%=id%>.gif" align=left> <% Fnm = dir & "\" & id & ".txt" set inF = FSO.openTextFile(Fnm,1,false) While not inF.atEndOfStream%> <%=inF.readLine%><br> <%wend inF.close ' listing du dossier et affichage vignette %> <hr><center>Les autres livres<br><br> <% set fc=FSO.getFolder(dir).files for each f in fc if right(f.name,4)=".txt" then id = replace(f.name,".txt","") %> <A href="livres.asp?id=<%=id%>"> <img src="/livres/<%=id%>.gif" height=120 border=0> </A> <% end if next %> <!-- #include file="_btm.asp"-->
<? $dir = "livres/"; // la query est directement dans la variable $id // si accès sans query >> livre recommandé if($id=="") $id = "274401012x"; // si erreur ou livre supprimé >> livre recommandé if(!file_exists($dir.$id.".txt")) $id = "274401012x"; // affichage include("_top.php"); ?> <img src="<? echo $dir.$id; ?>.gif" align=left> <? $Fnm = $dir.$id.".txt"; $tableau=file($Fnm); while(list($cle,$val) = each($tableau)) { echo $val."<br>"; } // listing du dossier et affichage vignette ?> <hr><center>Les autres livres<br><br> <? $dir0 = opendir($dir); while ($f = readdir($dir0)) { if(strpos($f,".txt")) { $id = str_replace(".txt","",$f); ?> <A href="<? echo $dir."?id=".$id; ?>"> <img src="<? echo $dir.$id; ?>.gif" height=120 border=0> </A> <? } } closedir($dir0); include("_btm.php"); ?>
Sur les autres pages, je mets en évidence un livre tiré au hasard dans le dossier :
<% Set FSO = _ Server.CreateObject("Scripting.FileSystemObject") dir = Server.MapPath("/livres/") set fc = FSO.getFolder(dir).files Randomize alea = Int((fc.count * Rnd) + 1) for each f in fc alea = alea-1 if alea = 0 then exit for loop id = replace(replace(f.name,".txt",""),".gif","") %>
Enfin pour les liens chez le partenaire, la Fnac n'utilise pas l'ISBN, il faut donc une fonction de conversion :
<%function fnac(id) ' ISBN->fnac dim temp(5,2),i i=0 i=i+1 : temp(i,1)="2212090765" : temp(i,2)="893446" i=i+1 : temp(i,1)="2212090471" : temp(i,2)="293064" i=i+1 : temp(i,1)="2212090412" : temp(i,2)="307634" i=i+1 : temp(i,1)="274401012x" : temp(i,2)="1146754" i=i+1 : temp(i,1)="2212091133" : temp(i,2)="863748" for i=1 to ubound(temp) if id=temp(i,1) then fnac=temp(i,2) exit for end if next end function%>