Diaporama pour photos et animations flash

Soyez le premier à donner votre avis sur cette source.

Snippet vu 78 236 fois - Téléchargée 26 fois

Contenu du snippet

Ce code permet d'afficher, dans 3 frames:
- un titre pour le diaporama
- un menu soit sous forme d'imagettes, soit sous forme de nom de fichiers
- la photo à visionner.
On peut le mettre soit directement dans le dossier où se trouvent les photos, soit à la racine, auquel cas il scanne tout le site et affiche les sous-répertoires. En cliquant sur les sous-répertoires on a accés aux photos qu'ils contiennent. On peut revenir en arrière.
Il est entiérement paramétrable. On peut choisir le type d'image à afficher.
On peut faire apparaitre le titre et/ou un texte sous la photo.
Voir aussi les commentaires dans le script.
PS: j'ai fait le même permettant d'aficher des animations FLASH à la place des photos.

Source / Exemple :


<%@LANGUAGE="VBSCRIPT"%>
<%response.addheader "cache-control","private"%>
<%response.addheader "pragma","no-cache"%>
<%
response.expires=-1
response.buffer=true
session.lcid=1036
' HAUT DE PAGE COMMUN
%>
<HTML>
<HEAD>
   <TITLE>Album de photos</TITLE>
   
<style type="text/css">
   BODY
   {
	scrollbar-base-color: #B06818;
    	scrollbar-track-color:#D5B783;
   }
</style>
</HEAD><%

' GÉNÉRATION DU FRAMESET
if request("frame")="" then %>

<frameset rows="100,*" frameborder="NO" border="0" framespacing="0"> 
  <frame name="topFrame" src="../04_haut_page_2.asp" scrolling="NO" noresize>
  <frameset cols="137,*" frameborder="NO" border="0" framespacing="0"> 
      <FRAME SRC="<%=request.serverVariables("SCRIPT_NAME")%>?frame=menu" NAME="menu" scrolling="YES">
      <FRAME SRC="<%=request.serverVariables("SCRIPT_NAME")%>?frame=image" NAME="image">
</frameset>
</frameset>
<noframes><body bgcolor="#ffff99">
<P align="center">Votre navigateur ne supporte pas les frames<BR>Utilisez de préférence IE&nbsp;5.5 (ou supérieur)<BR>ou Netscape&nbsp;7.0</P>
</body></noframes>

<% ' FRAME MENU
elseif request("frame")="menu" then %>

   <BODY background="../img/FilmUnit.gif"><center>
      <% Set FSO = Server.CreateObject("Scripting.FileSystemObject") 
      ' LIEN VERS ACCUEIL. Adaptez le chemin selon vos besoins.
      response.write "<A href='../default_2.asp' style='color:#00CCCC' target='_top'>Accueil</A><BR><HR>"
      ' FIN LIEN VERS ACCUEIL 
      ' Dossier en cours
      curdir = request("dir")
      if curdir="" then curdir = "."
      
      'response.write "<b>Dossier "&curdir&"</b><br><br>"&VbCrLf

      if curdir<>"." then
         ' lien vers le dossier parent
         tmp = instrrev(curdir,"/")-1
         response.write "<A href='?frame=menu&dir="&left(curdir,tmp)_
            &"' target=menu><B>Liste</B></A><br><B>"&mid(curdir,3,len(curdir))&"</B><BR>"&VbCrLf
      end if

      dir = Server.MapPath(curdir) 
      set foldPt = FSO.GetFolder(dir)

      ' LISTE DES DOSSIERS COURANTS
      dim fc,f
      set fc = foldPt.SubFolders
      ' on scanne le répertoire
      for each f in fc
         p = f.name
         
         ' lien vers le dossier
         response.write "<A href='?frame=menu&dir="&curdir&"/"&p&"' target=menu><B>"&p&"</B></A><br><br>"&VbCrLf
      next

      ' LISTE DES IMAGES DU DOSSIER COURANT
      set fc = foldPt.Files
      ' on scanne le répertoire

      for each f in fc 
         p = f.name
         
         ' si c'est une extension d'image
         ext = lcase(mid(p, instrrev(p, ".") + 1))
         'ici on choisi l'extension
         if ext="jpg" OR ext="jpeg" then
            ' lien vers l'image
           
            response.write "<br><A href='?frame=image&dir="&curdir&"&image="&p&"' target=image><img src='"&curdir&"/"&p&"' width=80 border=0></A><br>"&VbCrLf
         end if
      next 

      ' MISE A JOUR DE LA FRAME IMAGE
      %><script>
         top.image.location="?frame=image&dir=<%=curdir%>"
      </script>
      
   </center></BODY>

<% ' FRAME IMAGE
elseif request("frame")="image" then %>

   <BODY bgcolor="#ffff99">
<DIV style="text-align:center;">

      <% ' AFFICHAGE DE L'IMAGE
      if request("image")<>"" then %>
      
         <img src="<%=request("dir")&"/"&request("image")%>">
<!--si vous voulez que votre photo soit ajustée à l'écran remplacez la ligne ci dessus par celle-ci et modifiez le pourcentage en fonction de vos besoins
         <img src="<%=request("dir")&"/"&request("image")%>" heigth="90%">
-->
<!--les lignes suivantes permettent d'afficher eventuellemnt le titre sous la photo
         <BR>
         <FONT size="4"><%=mid(request("image"),1,len(request("image"))-4)%></FONT>
-->         
<%
'les lignes suivantes permettent d'afficher un texte sous la photo
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
kom = mid(request("image"),1,len(request("image"))-4)&".txt"
chemin = Server.MapPath(request("dir")&"/"&kom)
If FSO.FileExists(chemin) Then
set inF = FSO.OpenTextFile(chemin,1,false)
%>
<BR>
<B>
<% = inF.readAll %>
</B>
<%
inF.close
end if
else
'si pas de photo à afficher, on affiche un texte
%>
<B>
         
         <FONT size="5"><!--#include file="titre.txt"--></FONT>
</B>
      <% end if %>
</DIV>
   </BODY>

<% end if
' BAS DE PAGE COMMUN
%>
</HTML>

Conclusion :


Si quelqu'un connait le moyen de trier les photos dans le menu par ordre alphabétique, qu'il me le dise! c'est le seul point qui m'ennuie vraiment. Merci.
Ce script n'est pas entièrement de moi. C'est une adaptation à mes besoins d'un script existant. Merci de ne pas hurler...

A voir également

Ajouter un commentaire

Commentaires

trabi11fr
Messages postés
40
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 décembre 2008

"ce que tu appelles l'album c'est bien le répertoire dans lequel tu dépose tes images?" réponse = OUI
"Si toutes les images sont dans le même répertoire, c'est à dire si tu boucle sur l'analyse d'un seul folder, alors tes images sont triés, et tu n'as pas besoin de le faire" réponse = ben NON justement, elles n'apparraisent pas dans le même ordre dans le frame menu.:-(
jfmaze
Messages postés
13
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
16 juin 2006

Bonjour,
ce que tu appelles l'album c'est bien le répertoire dans lequel tu dépose tes images?
Si toutes les images sont dans le même répertoire, c'est à dire si tu boucle sur l'analyse d'un seul folder, alors tes images sont triés, et tu n'as pas besoin de le faire (et c'est ce que j'ai cru voir en exécutant ton programme.

Maintenant, si tu veux présenter des images pouvent être réparties dans plusieurs sous répertoires, alors tu es obligé de stocker le noms des fichiers images dans une table, et de trier la table avant de l'afficher dans la frame menu.
Une commande de style ORDER BY correspond à une commande sql; il faudrait que tes images soient référencées dans une base de données mssql, access ou autres.
Le code que j'ai joint est un exemple de chargement d'une table, tri de la table et exploitation de celle-ci pour affichage de ta frame menu

Salut
trabi11fr
Messages postés
40
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 décembre 2008

Euh.. jfmaze y'a un truc qui m'échappe dans ton code. De plus dans mon cas il s'agit de fichiers JPG. Le but était qu'en rajoutant un nouveau fichier, il s'intégre automatiquement dans l'album sans aucune manip'. Simplement, ce que je n'arrive pas à faire, c'est que bien que les fichiers apparraissent triés dans le dossier, ils sont ensuite afichés de façon tout à fait aléatoire dans le menu del'album. Je cherche une ligne de commande du style ORDER BY ou un truc dans ce genre.
Merci quand même pour ton aide.
jfmaze
Messages postés
13
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
16 juin 2006

Bonjour,
Tu mets tes données dans une table, puis tu tri la table et puis tu liste tes images à partir de la table;
Je te donne quelques lignes que j'utilise pour afficher un classement de football
<%

dim tab(20,7), ltemp(1,7)

sub raztab()
for j = 1 to 20
for k = 1 to 7
tab(j,k)=""
next
next
end sub

sub inverser()
for k = 1 to 7
ltemp(1,k) = tab(i,k)
next
for k = 1 to 7
tab(i,k) = tab(j,k)
next
for k = 1 to 7
tab(j,k) = ltemp(1,k)
next
end sub
'-----------charger la table
tab(i,1)=valClub
tab(i,2)=Points
tab(i,3)=MatchGagne
tab(i,4)=MatchNul
tab(i,5)=MatchPerdu
tab(i,6)=ButPour
tab(i,7)=ButContre
rs.movenext
loop
end if
n = i
rs.close
set rs=nothing
' trier la table
For i = 1 to n
for j = 1 to i
' Le plus grand nombre de points
If tab(i,2) > tab(j,2) Then
inverser()
elseif tab(i,2) = tab(j,2) Then
' en cas d'égalité la plus grande différence de but
if tab(i,6)-tab(i,7) > tab(j,6)-tab(j,7) Then
inverser()
elseif tab(i,6)-tab(i,7) = tab(j,6)-tab(j,7) Then
' en cas d'égalité le plus grande nombre de but pour
if tab(i,6) > tab(j,6) Then
inverser()
end if
end if
end if
next
next
' vider la table
for i=1 to n
%>
<tr>
<td width="5%"><%=i%></td>
<td width="55%"><%=tab(i,1)%></td>
<td width="5%"><%=tab(i,2)%></td>
<td width="5%"><%=tab(i,3)+tab(i,4)+tab(i,5)%></td>
<td width="5%"><%=tab(i,3)%></td>
<td width="5%"><%=tab(i,4)%></td>
<td width="5%"><%=tab(i,5)%></td>
<td width="5%"><%=tab(i,6)%></td>
<td width="5%"><%=tab(i,7)%></td>
<td width="5%"><%=tab(i,6)-tab(i,7)%></td>
</tr>

<% next
raztab() 'pour le casou je fais un autre classement à la CAN Il y a 4 groupe
%>

J'espère que çà pourra te dépanner
trabi11fr
Messages postés
40
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 décembre 2008

Oui, j'utilise des frames car je les trouvent souvent plus faciles à positionner que les DIV. Mais si tu me donnes la solutions avec des DIV, je suis preneur pour l'essayer.
Je n'ai pas mis ASP.NET. Simplement je n'ai pas trouvé la catégorie ASP-tout-court dans la liste des langages proposés lorsque j'ai déposé mon script.
PS/ je cherche toujours le myen de trier les vues miniatures du menu par ordre alphabétique (ou numérique) croissant...
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (trabi11fr)