Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de Cms Made Simple. Nous ne faisons de support que sur LA dernière version de CmsMadeSimple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 31/08/2010 09:43:08

AG1111
Membre
Lieu : Kerlouan
Inscription : 23/11/2009
Messages : 173
Site Web

[Resolu] Affichage aléatoire d'images dans le bandeau titre du site

#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.2
#~ Nom de l'hébergeur : localhost
#~ Informations Système :
#~      ----------------------------------------------
#~      Cms Version: 1.8.2
#~      Installed Modules:
#~          * CMSMailer: 2.0
#~          * FileManager: 1.0.2
#~          * MenuManager: 1.6.5
#~          * ModuleManager: 1.4
#~          * News: 2.10.6
#~          * nuSOAP: 1.0.2
#~          * Printing: 1.1.0
#~          * Search: 1.6.5
#~          * ThemeManager: 1.1.1
#~          * TinyMCE: 2.7.2
#~          * Album: 0.9.3
#~          * DownCnt: 1.0.0
#~          * FormBuilder: 0.6.4
#~          * Captcha: 0.4.2
#~          * CGExtensions: 1.19.2
#~          * FrontEndUsers: 1.12
#~          * CustomContent: 1.7.3
#~      Config Information:
#~          * php_memory_limit:
#~          * process_whole_template: false
#~          * output_compression: false
#~          * max_upload_size: 10000000
#~          * default_upload_permission: 664
#~          * url_rewriting: mod_rewrite
#~          * page_extension: .html
#~          * query_var: page
#~          * use_hierarchy: true
#~          * image_manipulation_prog: GD
#~          * auto_alias_content: true
#~          * locale:
#~          * default_encoding: utf-8
#~          * admin_encoding: utf-8
#~          * set_names: true
#~      Php Information:
#~          * phpversion: 5.3.0
#~          * md5_function: On (Vrai)
#~          * gd_version: 2
#~          * tempnam_function: On (Vrai)
#~          * magic_quotes_runtime: Off (Faux)
#~          * E_STRICT: 0
#~          * E_DEPRECATED: 0
#~          * memory_limit: 128M
#~          * max_execution_time: 60
#~          * output_buffering: 1
#~          * safe_mode: Off (Faux)
#~          * file_uploads: On (Vrai)
#~          * post_max_size: 10M
#~          * upload_max_filesize: 10M
#~          * session_save_path: c:/wamp/tmp (0777)
#~          * session_use_cookies: On (Vrai)
#~          * xml_function: On (Vrai)
#~      Server Information:
#~          * Server Api: apache2handler
#~          * Server Db Type: MySQL (mysql)
#~          * Server Db Version: 5.1.36
#~      ----------------------------------------------
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~



Bonjour,

Je souhaiterai, si cela est possible, afficher dans le bandeau correspondant au <header> une image différente d'une page à l'autre. A partir d'un nombre fini d'images de la même taille, 5 à 6 images au maximum, le but est d'afficher une image différente, de façon aléatoire, sur la seconde page affichée par le visiteur et ainsi de suite à chaque changement de page.

Je ne sais pas trop comment faire où insérer du code. J'ai fais quelques essais de code dans la feuille de style mais ce n'est pas concluant.
Si vous avez une idée, je suis preneur.

Merci d'avance

Alain

Dernière modification par AG1111 (15/09/2010 20:42:18)

Hors ligne

 

#2 31/08/2010 10:26:42

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 071
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

très facile et peu être fait en moins de 20 lignes de code dans un UDT

en partant du principe que toutes tes images doivent être contenu dans un répertoire R et préalablement toutes taillées à la bonne taille

le schéma est le suivant en php

//ouvre le répertoire R

//lister les fichiers présents dedans sans entrer dans les sous répertoire
// en prenant soin de ne prendre que les extensions *.jpg *.JPG *.jpeg *.JPEG *.gif *.GIF *.png *.PNG ....


//lire le premier fichiers trouvé et déterminer ses dimensions qui seront mémorisée dans les variable X et Y pour respectivement width et height

//fermer le répertoire R

//Compter combien d'élément dans le tableau résultat on a trouvé dans le répertoire R. Ce nombre est noté N

//Sortir un nombre aléatoire entre 1 et N. Ce nombre est noté A

//déterminer l'image à la position A du tableau de résultat

//faire un echo de la valeur HTML de l'objet image tel que 
// <img src='{URL DE L'IMAGE}' alt='image du header' width='{X}' height='{Y}' />

ensuite tu insères cet UDT dans le gabarit utilisé tel que {nom_de_ma_balise}

rien de complexe et le net pullule d'info dispo sur chaque partie. Là tu as l'algo général. Demain si tu ajoutes 2 images dans le bon répertoire elles seront prises automatiquement en compte smile

Hors ligne

#3 31/08/2010 14:06:12

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 3 810
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

Nommer les 6 images ainsi : image1.jpg, image2.jpg...
Placer dans le gabarit :
{capture assign='num'}{1|rand:6}{/capture}
<img src="uploads/images/image{$num}.jpg" alt="" ... />
Cela donnera <img src="uploads/images/image3.jpg" si c'est le chiffre 3 qui est retourné en random.

Hors ligne

#4 01/09/2010 09:23:15

AG1111
Membre
Lieu : Kerlouan
Inscription : 23/11/2009
Messages : 173
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

Bonjour,

Merci à tous les 2 pour vos réponses rapides. Je vais tester tous cela et jje vous donne des nouvelles.

A bientôt
Alain

Hors ligne

#5 14/09/2010 15:41:16

AG1111
Membre
Lieu : Kerlouan
Inscription : 23/11/2009
Messages : 173
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

Bonjour,

je reviens vers vous car je coince sur un truc et je tourne en rond.
J'ai créé 7 images de même taille, dans un même répertoire, et qui porte un nom de type image1.jpg, image2.jpg ..etc.
j'ai créé un fichier php, pour tester mon code, qui va :
lire le répertoire,
faire la liste des fichiers images et compter le nombre d'image,
récupérer un nombre aléatoire entre 1 le le nombre max d'images trouvées,
et en fin afficher la bonne image.

Voici ce code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Bienvenue sur mon site !</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
   <body>
   <p> Début du test </p>
   <?php
   $num = 0;
   echo '<ul>';
   if ($dossier = opendir ("../randokerlouan/uploads/Logos"))
   echo '<p>apres ouverture</p>';
   {
       while (false !== ($fichier = readdir($dossier)))
       {
          if ($fichier != "." && $fichier != ".." && $fichier != "index.php" && !is_dir($fichier))
         {
             $num++;
             echo '<li><a href="../randokerlouan/uploads/Logos/' . $fichier . '">' . $fichier . '</a></li>';
             $liste[$num]=$fichier;
          }
        }
    $nb = rand(1,$num);
    echo '<p>nombre aleatoire :' . $nb .' bof</p>';
    echo '<p>nombre de fichiers :' . $num .' bof</p>';
    $fichier=$liste[$nb];
    echo '<p>Image à afficher :' . $fichier .' avant affichage</p>';
    echo '<img rsc="../randokerlouan/uploads/Logos/' . $fichier . '" alt="logo dynamique" width='987px' height='190px'/>';
    }
    ?>

    <p> fin </p>
    </body>
</html>

Tout fonctionne sauf l'affichage de l'image.
Pour la ligne "echo '<img rsc="../randokerlouan/uploads/Logos/' . $fichier . '" alt="logo dynamique" width='987px' height='190px'/>';", j'ai un parse error expected "." or";".

En fait je bute sur l'url de l'image je en sais pas la rendre dynamique, j'ai aussi essayé le code de Jean Le Chauve <img src="uploads/images/image{$num}.jpg" alt="" ... /> sans plus de résultat.

Qu'est-ce que je fais mal ?

Merci d'avance pour votre aide

Alain

Hors ligne

#6 14/09/2010 16:43:54

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 3 810
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

echo '<img rsc="../randokerlouan/uploads/Logos/'.$fichier.'" alt="logo dynamique" width="987px"height="190px" />';
Et supprime les espaces autour des points (.) pour la concaténation des variables : ex
echo '<p>Image à afficher :'.$fichier.' avant affichage</p>'; et pas echo '<p>Image à afficher :' . $fichier . ' avant affichage</p>';

j'ai aussi essayé le code de Jean Le Chauve

{capture assign='num'}{1|rand:6}{/capture}
<img src="uploads/Logos/image{$num}.jpg" alt="logo" title="logo" />

Ce code fonctionne parfaitement et n'a pas besoin d'udt, tu le colles simplement à l'endroit où tu désires faire apparaître l'image. Il faut bien entendu que le chemin soit bien configuré. Avec 7 images, tu modifies {1|rand:6} en {1|rand:7}

Et tu peux faire encore plus court :

<img src="uploads/Logos/image{1|rand:7}.jpg" alt="logo" title="logo" />

Dernière modification par Jean le Chauve (14/09/2010 16:49:32)

Hors ligne

#7 15/09/2010 10:21:20

AG1111
Membre
Lieu : Kerlouan
Inscription : 23/11/2009
Messages : 173
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

J'ai modifié mon code comme cela :
}
    $nb = rand(1,$num);
    echo '<p>nombre aleatoire :'.$nb.' bof</p>';
    echo '<p>nombre de fichiers :'.$num.' bof</p>';
    $fichier=$liste[$nb];
    echo '<p>Image à afficher :'.$fichier.' avant affichage</p>';
    echo '<img rsc="../randokerlouan/uploads/Logos/'.$fichier.'" alt="logo dynamique" width="987px" height="190px"/>';
    }

le résultat : je n'ai toujours pas d'affichage de mon image.
il m'affiche ceci :

# image7.jpg

nombre aleatoire :1 bof

nombre de fichiers :7 bof

Image à afficher :image1.jpg avant affichage
logo dynamique

fin


Avec firebug, j'ai bien la ligne html avec le nom du fichier comme il faut mais rien ne s'affiche à part ce qu'il y a dans l'attribut alt de la balise img. Je ne comprends pas pourquoi je n'ai pas d'affichage alors que les liens pointent bien sur les bon fichiers et eux ils s'affichent.  As-tu un explication ?

Merci pour tes réponses

Alain

Hors ligne

#8 15/09/2010 10:40:22

AG1111
Membre
Lieu : Kerlouan
Inscription : 23/11/2009
Messages : 173
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

Bon j'ai re-testé ton code et en effet cela marche du feu de dieu. Donc mon problème est résolu. Malgré tous si tu pouvais éclairer ma lanterne au sujet de l'affichage de mon image dans mon fichier php je t'en serai reconnaissant.



Merci d'avance

Alain

Hors ligne

#9 15/09/2010 11:24:40

bess
Administrateur
Lieu : Rennes
Inscription : 16/12/2008
Messages : 6 071
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

echo '<img rsc="../randokerlouan/uploads/Logos/'.$fichier.'" alt="logo dynamique" width="987px" height="190px"/>';

tongue

Hors ligne

#10 15/09/2010 14:52:57

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 3 810
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

Comme quoi notre cerveau est bien fait : il remet les lettres dans le bon ordre.
Moralité : utiliser un bon éditeur quand on code.

Hors ligne

#11 15/09/2010 20:41:47

AG1111
Membre
Lieu : Kerlouan
Inscription : 23/11/2009
Messages : 173
Site Web

Re : [Resolu] Affichage aléatoire d'images dans le bandeau titre du site

Merci à tous les 2, c'est vrai les lettres dans le bon ordre cela marche beaucoup mieux.

Je modifie mon premier poste et je vous dis à bientôt pour d'autres aventures....

Cordialement

Alain

Hors ligne

Pied de page des forums

  Flux Rss Twitter FaceBook
fermer

CMS Made Simple 2.0 sort sa seconde béta

Seconde news de la semaine du côté des développeurs qui nous proposent  depuis quelques jours la seconde bêta de CMS Made Simple. A tester sur vos environnements de test évidement. [lire la suite]