J'ai été confronté à un problème particulier qui m'a amené à réfléchir sur ce diaporama...
J'avais des centaines d'émoticons et je n'arrivais plus à savoir quel était celui-ci ou celui-là...
Alors je me suis lancé dans la fabrication de ce diaporama.
Voyons un peu comment je me suis débrouillé...
Il lit les images du répertoire courant et les stocke en mémoire pour les afficher sous forme d'un tableau d'images cliquables.
Il offre le choix du nombre d'images par ligne et par page et permet, heureusement, de naviguer d'une page à une autre
Il offre une option de réduction de l'image si celle-ci ne tient pas dans la cellule du tableau.
Un clic sur l'image ouvre une popup dans laquelle apparaît l'image à sa taille réelle.
Pour faire tout cela, il a fallu utiliser un composant pour ASP permettant de récupérer les dimensions de l'image.
Variables utilisées
Les noms de variables sont identiques que ce soit en ASP, PHP (avec le dollar en plus) ou dans les champs de formulaire.
Nom
Rôle
n
Numéro de l'image en cours. Stockée dans un champ de formulaire de type hidden.
Reduc
Choix d'adapter la taille de l'image en fonction de la taille de la cellule. Stockée dans la case à cocher.
ecran
Largeur de l'écran. Initialisé à 800, elle contiendra ensuite la dimension en largeur de l'écran.
largeur
Largeur utile de l'écran, calculée à partir de "ecran", puis largeur de la cellule du tableau.
pl, parligne
Nombre d'images par ligne, choix de l'utilisateur dans pl, calculé après contrôle dans parligne.
pp, parpage
Nombre d'images par page, choix de l'utilisateur dans pp, calculé après contrôle dans parpage.
image
Tableau contenant le nom des fichiers d'extension gif, jpg, jpeg ou png.
max
Nombre total d'images chargées dans le tableau.
encours
Numéro de la page en cours.
nbpage
Nombre total de pages.
i, j
Diverses variables de boucle.
Fonctions utilisées
Juste trois petites fonctions...
popup
Ouvre l'image dans une popup. Reçoit en paramètres, le nom de l'image, sa largeur, sa hauteur.
envoi
Soumet le formulaire après avoir stocké le numéro de la page en cours.
reinit
Recalcule la liste déroulante des images par page en fonction du nombre d'images par ligne. S'exécute sur le onChange de la liste déroulante '"Images par ligne".