IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

le ThumbnailPicker ne s'affiche pas [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 5
    Points
    5
    Par défaut le ThumbnailPicker ne s'affiche pas
    Bonjour à tous,

    Je viens vous demander un coup de pouce pour le toolkit dojo. Je suis totalement débutant avec ce toolkit, et je suis bloqué avec le dojox.image.ThumbnailPicker.
    J'ai lu toutes les docs officielles, et j'ai suivi un tutoriel (même plusieurs) qui donnent tous à peu près la même chose. Mon souci est que rien ne s'affiche à l'écran. Je vois dans firebug que le script JSON est appelé, le résultat est bien affiché aussi (toujours dans firebug), mais je n'ai rien à l'écran.
    Voilà mon code complet:

    JAVASCRIPT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <script type="text/javascript" src="../dojo_toolkit/dojo/dojo.js" djConfig="parseOnLoad:true"></script>
     
     <script type="text/javascript">
      dojo.require("dojox.image.ThumbnailPicker");
      dojo.require("dojo.data.ItemFileReadStore");
     
      function initImagePicker() {
       //Define the request, saying that 20 records should be fetched at a time,
       //and to start at record 0
       var request= {
           query: {},
           count:5
          };
     
       //Tell the widget to request the "thumb" parameter, as different
       //stores may use different parameter names
       var itemNameMap = {
            imageThumbAttr: "mini",
            imageLargeAttr: "full",
            thumbHeight: 45,
            thumbWidth: 60,
           };
     
       dijit.byId('photosPicker').setDataStore(imageItemStore, request, itemNameMap);
       dijit.byId('photosPicker').init();
      }
     
      dojo.addOnLoad(initImagePicker);
        </script>
     
    HTML
    <div jsId="imageItemStore" dojoType="dojo.data.ItemFileReadStore" url="../scripts/links.json"></div>
     <div id="photosPicker" dojoType="dojox.image.ThumbnailPicker"></div>
    JSON

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    {
       items:[
          {
     "thumb":"http://127.0.0.1/franskbostad/images/biens/NIC001/mini/exterieur9.jpg",
     "large":"http://127.0.0.1/franskbostad/images/biens/NIC001/big/exterieur9.jpg",
     "title":"",
     "link":""
          },
          {
     "thumb":"http://127.0.0.1/franskbostad/images/biens/NIC001/mini/203.jpg",
     "large":"http://127.0.0.1/franskbostad/images/biens/NIC001/big/203.jpg",
     "title":"",
     "link":""
          },
          {
     "thumb":"http://127.0.0.1/franskbostad/images/biens/NIC001/mini/chambre.jpg",
     "large":"http://127.0.0.1/franskbostad/images/biens/NIC001/big/chambre.jpg",
     "title":"",
     "link":""
          },
          {
     "thumb":"http://127.0.0.1/franskbostad/images/biens/NIC001/mini/chambre2.jpg",
     "large":"http://127.0.0.1/franskbostad/images/biens/NIC001/big/chambre2.jpg",
     "title":"", "link":""
          },
          {
     "thumb":"http://127.0.0.1/franskbostad/images/biens/NIC001/mini/chambre3.jpg",
     "large":"http://127.0.0.1/franskbostad/images/biens/NIC001/big/chambre3.jpg",
     "title":"",
     "link":""
          }
       ]
    }
    Merci d'avance pour votre temps !

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Tel quel c'est difficile à dire. Peux tu faire un zip de tes fichiers et le poster, je testerai l'ensemble.

    ERE

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    oui pas de problème, d'ailleurs j'ai oublié de préciser que j'ai la version 1.4 du dojo toolkit, merci d'avance de prendre du temps pour mon cas !

    j'ai posté ça ici : http://dl.free.fr/jle1BDRME

    et bravo pour la rapidité de réponse !

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Je crois que tu fais quelques petites erreurs:

    Attention car ta structure JSON est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    {
       items:[
          {
     "thumb":"http://127.0.0.1/franskbostad/images/biens/NIC001/mini/exterieur9.jpg",
     "large":"http://127.0.0.1/franskbostad/images/biens/NIC001/big/exterieur9.jpg",
     "title":"",
     "link":""
          },...
    et elle n'est pas en accord avec ton code; de même tu n'as pas précisé de taille pour la zone, ce qui n'est pas bloquant mais génant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <script type="text/javascript" src="../dojo_toolkit/dojo/dojo.js" djConfig="parseOnLoad:true"></script>
        
     <script type="text/javascript">
      dojo.require("dojox.image.ThumbnailPicker");
      dojo.require("dojo.data.ItemFileReadStore");
      
      function initImagePicker() {
       //Define the request, saying that 20 records should be fetched at a time,
       //and to start at record 0
       var request= {
           query: {},
           count:5
          };
       
       //Tell the widget to request the "thumb" parameter, as different
       //stores may use different parameter names
       var itemNameMap = {
            imageThumbAttr: "thumb", //ce sont ici les attributs du store
            imageLargeAttr: "large",  //ce sont ici les attributs du store
            thumbHeight: 45,
            thumbWidth: 60,
           };
      
       dijit.byId('photosPicker').setDataStore(imageItemStore, request, itemNameMap);
       //INUTILE ? dijit.byId('photosPicker').init();
      }
      
      dojo.addOnLoad(initImagePicker);
        </script>
     
    HTML
    <div jsId="imageItemStore" dojoType="dojo.data.ItemFileReadStore" url="../scripts/links.json"></div>
     <div id="photosPicker" dojoType="dojox.image.ThumbnailPicker" 
    size="500"></div>
    ERE

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    merci beaucoup ! maintenant mes images s'affichent, ce qui est déjà mieux merci

    en revanche, peux-tu m'aider à aller un peu plus loin ? Pour le moment les images sont affichées en colonne (1 par ligne), j'aimerais comprendre un peu plus le fonctionnement de ce widget. Par exemple l'attribut size. Lorsque je le mets à 500 comme indiqué dans ton code, je m'attendais à ce que les photos se mettent les unes à côté des autres, mais elles restent en colonne.

    Désolé, c'est surement quelque chose de très simple, mais j'suis vraiment paumé avec ce toolkit, j'ai du mal à comprendre la logique.

  6. #6
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Peut-être est ce plus compliqué qu'il n'y parait mais il existe un attributt isHorizontal qui pourtant par défaut vaut true. Aurait il été modifié ?

    EDIT: tes images "mini" le sont vraiment ? elles ne font pas une taille trop grande ?
    --------

    Je télécharge ton fichier et je te dis plus tard car je suis un peu loin de tout et l'adsl n'est ici qu'un lointain souvenir...

    ERE

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Pour les photos mini oui, j'en suis sur, c'est au moins un domaine que je maitrise, je suis infographiste, elle font 1,5Ko chacune.
    Ensuite pour la propriété, je vais essayer de farfouiller un peu pendant que tu télécharges mon zip. Encore merci beaucoup de m'aider.

  8. #8
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Zut, je n'arrive pas à télécharger (RTC...) . Si tes photos sont bonnes, peux tu juste poster ton code HTML complet. Ayant le json, je vais reconstituer l'ensemble.

    ERE

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    ok pas de souci, j'ai reposté les fichiers test.html et links.json ici:
    http://dl.free.fr/bkfGUiRg2
    http://dl.free.fr/p2rAb5ijs

    merci !

  10. #10
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Enfin réussi à récupérer tes denriers fichiers.
    Le problème n'est pas trop grave

    Ton souci est que tu n'intègres pas la CSS image.css. Ci-joint ton code modifié, mais avec mes paths car j'ai testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
    	<link rel="stylesheet" type="text/css" href="/dojotoolkit/dijit/themes/tundra/tundra.css" />
    	<link rel="stylesheet" type="text/css" href="/dojotoolkit/dojox/image/resources/image.css" />
    	
        <!--
            DOJO PART
        -->
    	<script type="text/javascript" src="/dojotoolkit/dojo/dojo.js" djConfig="parseOnLoad:true"></script>
        
    	<script type="text/javascript">
    		dojo.require("dojox.image.ThumbnailPicker");
    		dojo.require("dojo.data.ItemFileReadStore");
    		
    		function initImagePicker() {
    			//Define the request, saying that 20 records should be fetched at a time,
    			//and to start at record 0
    			var request= {
    							query: {},
    							count:5,
    							//start: 0
    						};
    			
    			//Tell the widget to request the "thumb" parameter, as different
    			//stores may use different parameter names
    			var itemNameMap = {
    								imageThumbAttr: "thumb", //ce sont ici les attributs du store
    						        imageLargeAttr: "large",  //ce sont ici les attributs du store
    								thumbHeight: 45,
    								thumbWidth: 60,
    							};
    		
    			dijit.byId('photosPicker').setDataStore(imageItemStore, request, itemNameMap);
    			
    		}
    		
    		dojo.addOnLoad(initImagePicker);
        </script>
        <!--
            END OF DOJO
    	-->
    </head>
    
    <body>
    	<!--<div jsId="imageItemStore" dojoType="dojo.data.ItemFileReadStore" url="../scripts/getPhotosFromRef.php?ref=NIC001"></div>-->
        <div jsId="imageItemStore" dojoType="dojo.data.ItemFileReadStore" url="links.json"></div>
    	<div id="photosPicker" dojoType="dojox.image.ThumbnailPicker"  useHyperlink="true" 
            hyperlinkTarget="this"  size="600"  ></div>
    </body>
    </html>
    Et attention il y a une notion un peu bizarre sur ce contrôle celle de Hyperlink (je vois que tu l'utilises...) . En aucun cas l'image "large" ne sert à quelque chose, c'est l'url qui est utilisée. Par contre toutes les infos (large, title, url etc...) sont accessible par abonnement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dojo.subscribe(dijit.byId('photosPicker').getClickTopicName(), function(data){
    //accès ici à data.largeUrl, data.title...
    });
    Et pour être complet, l'attribut hyperlinkTarget ne connait que "new"; pour toute autre valeur c'est la fenêtre active qui est utilisée (donc tu peux utiliser aussi bien this que une chaine vide).

    Bon dev,

    ERE

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    wouaw c'est toujours les erreurs les plus bêtes qu'on voit pas !

    merci beaucoup de ton coup de main et des conseils !!

    Très bonne année au passage

    @ bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  2. Le résultat de Print ne s'affiche pas...
    Par Red Bull dans le forum Langage
    Réponses: 9
    Dernier message: 15/06/2006, 18h56
  3. Réponses: 3
    Dernier message: 22/03/2004, 16h49
  4. Les classes ne s'affichent pas
    Par karl3i dans le forum MFC
    Réponses: 8
    Dernier message: 26/01/2004, 14h52
  5. [MFC] Ces fenêtres qui ne s'affichent pas..
    Par Davide dans le forum MFC
    Réponses: 3
    Dernier message: 19/11/2003, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo