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 :

Hierarchie tree Dojo ne fonctionnant pas [Dojo]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut Hierarchie tree Dojo ne fonctionnant pas
    Bonjour ,
    J 'ai un projet qui utilise Dojo mais je suis novice sur ce framework.
    Je vous explique mon problème , je récupère l 'arborescence de mon système de fichier et j 'essaie de l 'afficher avec un DijitTree.Donc tout fonctionne bien sauf que quand j 'ouvre l ' arborescence il n 'ouvre que le dossier racine , si je clique sur un dossier à l 'intérieur de l 'arbre il n 'arrive pas à l 'ouvrir .
    J 'utilise Json_encode pour encoder ma chaine sous format Json .
    Ci dessous un exemple de mon Json encodé:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var data = {"total":3,"items":[{"name":"nouveau fichier","parentDir":".","path":".\/nouveau fichier","directory":false,"size":28,"modified":1262011640},{"name":"Plug-in Tutorial ","parentDir":".","path":".\/Plug-in Tutorial ","directory":true,"size":4096,"modified":1260395078,"children":["Read Me.txt","security.zip","Model Statistics","security-instance.zip","edu.cmu.sei.osate.examples.security-instance","edu.cmu.sei.osate.examples.security","Plug-in Tutorial 2006-09-11.pdf","FlowLatencyAnalysisSwitch2.java"]},{"name":"ralin","parentDir":".","path":".\/ralin","directory":false,"size":10364,"modified":1262089596}]}
    Ci dessous le code que j 'utilise pour afficher l 'arbre
    Code html : 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
     
    <body class="tundra ">
            <ul dojoType="dijit.Menu" id="tree_menu" style="display: none;">
                <li dojoType="dijit.MenuItem" onClick="alert('Hello world');">
                    Upload
     
                </li>
                <li dojoType="dijit.MenuItem">
                    Download
     
                   </script>
                </li>
            </ul>
     
            <div dojoType="dojo.data.ItemFileReadStore" data="liste" jsId="DojoFile">
            </div>
             <div dojoType="dijit.tree.ForestStoreModel" jsId="fileModele"
            store="DojoFile" query="{}" rootId="testArbre"
            rootLabel="ListeFich" childrenAttrs="children" labelAttr="name">
            </div>
     
          <div id="arbre" dojoType="dijit.Tree" model="fileModele" openOnClick="true" showRoot="true" >
        	 <script type="dojo/connect">
                    var menu = dijit.byId("tree_menu");
                    // when we right-click anywhere on the tree, make sure we open the menu
                    menu.bindDomNode(this.domNode);
     
                    dojo.connect(menu, "_openMyself", this, function(e) {
                        // get a hold of, and log out, the tree node that was the source of this open event
                        var tn = dijit.getEnclosingWidget(e.target);
                        console.debug(tn);
     
                        // now inspect the data store item that backs the tree node:
                        console.debug(tn.item);
     
                        // contrived condition: if this tree node doesn't have any children, disable all of the menu items
                        menu.getChildren().forEach(function(i) {
                            i.attr('disabled', !tn.item.children);
                        });
     
     
                    });
                </script>
          </div>

    C 'est sur le children qui ne marche pas car il n 'arrive pas afficher ce qu 'il y a dans children.
    Pourrez -vous m 'aider s'il vous plaît car j 'ai essayé divers méthodes mais ça ne marche pas.
    Merci

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

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

    Ce que tu veux faire existe déjà dans Dojo: il s'agit du dojox.data.FileStore. Pourquoi le refaire ?

    ERE

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut Hierarchie tree ne fonctionnant pas
    Bonjour ,

    Effectivement il existe mais quand j 'essaie de manipuler l 'arbre par exemple
    ajout de menu sur chaque fichier pour que je puisse l 'uploader par exemple.
    L' arbre ne veut pas de rajout de fonction.Il s 'affiche bien mais je ne peux pas faire de traitement.

    Est ce que vous pourrez m 'aider s'il vous plaît ?
    Merci pour votre aide.

    Cordialement

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    SAlut,
    Citation Envoyé par amiral Voir le message
    Bonjour ,

    Effectivement il existe mais quand j 'essaie de manipuler l 'arbre par exemple
    ajout de menu sur chaque fichier pour que je puisse l 'uploader par exemple.
    L' arbre ne veut pas de rajout de fonction.Il s 'affiche bien mais je ne peux pas faire de traitement.

    Est ce que vous pourrez m 'aider s'il vous plaît ?
    Merci pour votre aide.

    Cordialement
    Etant donné la complexité du code à venir, on peut t'aider mais le plus sage sera de fournir des fichiers tests complets afin qu'on puisse reproduire tes soucis.

    ERE

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut hierarchie tree ne fonctionnant pas
    Bonjour ,

    Je vous joint mes fichiers de test .Le fichier de test listeMenu.
    Les deux sont les fichiers qui récupère la liste des fichiers.
    C 'est le même code qui est dans le premier post.
    Je vous remercie pour votre aide.

    Cordialement
    amiral

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

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

    Déjà, ton fichier listeMenu.php commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html>
     
       <?php require_once("filestore_dojotree.php");?>
    ce qui n'est pas très bon puisque filestore_dojotree.php sera appelé par le store et non inclus par tes soins.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <div dojoType="dojox.data.FileStore" url="filestore_dojotree.php"
     
        pathAsQueryParam="true" jsId="dojoFiles">
     
        </div>
    ERE

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut hierarchie tree ne fonctionnant pas
    Bonjour ,
    Comment puis je faire alors parce que c'est à partir de filestore_dojotree qui construit l 'arborescence et je ne trouve pas les moyens de faire autrement.

    Je vous remercie pour votre aide.
    Cordialement

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Amiral,

    Je ne comprends pas, as tu déjà testé l'exemple fourni par dojo ? Il est fonctionnel et tu peux t'appuyer dessus !


    ERE

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut hierarchie tree ne fonctionnant pas
    Bonjour ,

    Je me suis appuyé sur l 'exemple donc après avoir fini d 'afficher.J 'ai rajouté une fonction connect qui permet de rajouter un menu sur chaque item et c 'est cette fonction qui ne fonctionne pas car il ne veut pas réagir quand je clique dessus.Donc je ne vois pas ou est mon erreur et comment résolvé ce problème depuis 10 jours.
    Est ce que vous avez une piste pour que je résolve ce problème.
    Je vous remercie.

    Cordialement
    amiral

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

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

    Ci-dessous l'exemple original de dojo modifié basiquement (copier-coller de code de menu dans le Tree). Quand tu cliques droit sur un fichier, le menu apparait.
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <!--
    	Demo application showing LazyLoading File store.
    -->
    <html>
    <head>
    	<title>Demo:  dojox.data.FileStore</title>
    	<style type="text/css">
    		@import "../../../dijit/themes/tundra/tundra.css";
    		@import "../../../dojo/resources/dojo.css";
    		@import "../../../dijit/tests/css/dijitTests.css";
     
    		.fileView {
    			margin: 5px;
    			width: 100%;
     
    		}
    		.fileView .fileViewTitle{
    			color: white;
    			background-color: black;
    			font-size: larger;
    			font-weight: bold;
     
    		}
     
    		.fileView .fileViewTable {
    			border-width: 2px;
    			border-style: solid;
    			width: 100%;
    		}
     
    		.fileView .fileViewTable tr td {
    			border-width: 1px;
    			border-style: solid;
    			border-color: lightgray;
    			width: 50%;
    			vertical-align: top;
    		}
     
    		.fileView .fileName {
    			background-color: lightgray;
    		}
     
    	</style>
     
    	<!--
    		The following script tag instantiates the dojo library and sets some basic properties.  In this case, the application
    		is told that debug mode is off, and to parse all dojoType widgets when it has fully loaded.
    	-->
    	<script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug: false, parseOnLoad: true, useCommentedJson: true"></script>
    	<script type="text/javascript" src="../../../dijit/dijit.js"></script>
    	<script>
    		dojo.require("dijit.Tree");
    		dojo.require("dijit.tree.ForestStoreModel");
    		dojo.require("dojox.data.FileStore");
    		dojo.require("dojox.data.demos.widgets.FileView");
     
    		dojo.require("dijit.Menu");
    	</script>
    </head>
     
    <body class="tundra">
    	<h1>
    		Demo:  Lazy Loading File Browsing Store
    	</h1>
    	<p>The tree below uses the dojox.data.FileStore and a PHP implementation for the serverside to browse the dojo tree hierarchy in a lazy-load fashion.</p>
    	<p><i><b>This demo must be run from a web-server with PHP support enabled.  Without PHP support, this demo cannot function.</b></i></p>
    	<hr>
    	<i>Clicking on a file in the tree will display the details about that file.</i>
    	<div dojoType="dojox.data.FileStore" url="stores/filestore_dojotree.php" jsId="fileStore" pathAsQueryParam="true"></div>
    	<div dojoType="dijit.tree.ForestStoreModel" jsId="fileModel" 
    		store="fileStore" query="{}"
    		rootId="DojoFiles" rootLabel="Dojo Files" childrenAttrs="children"></div>
     
    	<ul dojoType="dijit.Menu" id="tree_menu" style="display: none;">
    		<li dojoType="dijit.MenuItem" onClick="alert('Hello world');">Enabled Item</li>
    		<li dojoType="dijit.MenuItem" disabled="true">Disabled Item</li>
    		<li dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCut"
    			onClick="alert('not actually cutting anything, just a test!')">Cut</li>
    		<li dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconCopy"
    			onClick="alert('not actually copying anything, just a test!')">Copy</li>
    		<li dojoType="dijit.MenuItem" iconClass="dijitEditorIcon dijitEditorIconPaste"
    			onClick="alert('not actually pasting anything, just a test!')">Paste</li>
    		<li dojoType="dijit.PopupMenuItem">
    			<span>Enabled Submenu</span>
    			<ul dojoType="dijit.Menu" id="submenu2">
    				<li dojoType="dijit.MenuItem" onClick="alert('Submenu 1!')">Submenu Item One</li>
    				<li dojoType="dijit.MenuItem" onClick="alert('Submenu 2!')">Submenu Item Two</li>
    				<li dojoType="dijit.PopupMenuItem">
    					<span>Deeper Submenu</span>
    					<ul dojoType="dijit.Menu" id="submenu4">
    						<li dojoType="dijit.MenuItem" onClick="alert('Sub-submenu 1!')">Sub-sub-menu Item One</li>
    						<li dojoType="dijit.MenuItem" onClick="alert('Sub-submenu 2!')">Sub-sub-menu Item Two</li>
    					</ul>
    				</li>
    			</ul>
    		</li>
    		<li dojoType="dijit.PopupMenuItem" disabled="true">
    			<span>Disabled Submenu</span>
    			<ul dojoType="dijit.Menu" id="submenu3" style="display: none;">
    				<li dojoType="dijit.MenuItem" onClick="alert('Submenu 1!')">Submenu Item One</li>
    				<li dojoType="dijit.MenuItem" onClick="alert('Submenu 2!')">Submenu Item Two</li>
    			</ul>
    		</li>
    	</ul>
     
    	<table style="width: 100%;">
    		<tbody>
    			<tr style="width: 100%;">
    				<td style="width: 50%;  vertical-align: top;">
    					<span id="tree" dojoType="dijit.Tree" model="fileModel" >
     
    		<script type="dojo/connect">
    			var menu = dijit.byId("tree_menu");
    			// when we right-click anywhere on the tree, make sure we open the menu
    			menu.bindDomNode(this.domNode);
     
    		</script>
    						<script type="dojo/method" event="onClick" args="item">
    							if (fileStore.isItem(item)){
    								var attachPt = dojo.byId("fileInfo");
    								if (attachPt) {
    									while(attachPt.firstChild) {
    										attachPt.removeChild(attachPt.firstChild);
    									}
    									var newArgs = {};
    									newArgs.name = fileStore.getValue(item, "name");
    									newArgs.path = fileStore.getValue(item, "path");
    									newArgs.size = fileStore.getValue(item, "size");
    									newArgs.directory = fileStore.getValue(item, "directory");
    									newArgs.parentDir = fileStore.getValue(item, "parentDir");
    									var children = fileStore.getValues(item, "children");
    									if (children && children.length > 0) {
    										newArgs.children = [];
    										var i;
    										for (i = 0; i < children.length; i++) {
    											//Note here that even though the store is lazy-loading, the unloaded items for children still
    											//have the 'name' attribute, since it is used as part of the info to load the full item.  Generally
    											//you should not access properties of an item that has not been fully inflated yet.  It just works
    											//well in this case for this store.
    											newArgs.children.push(fileStore.getValue(children[i], "name"));
    										}
    									}                                
    									var fInfo = new dojox.data.demos.widgets.FileView(newArgs);
    									attachPt.appendChild(fInfo.domNode);
    									fInfo.startup();
    								}
    							}
    						</script>
    					</span>
    				</td>
    				<td id="fileInfo" STYLE="width: 50%; vertical-align: top;">
    				</td>
    			</tr>
     
    		</tbody>    
    	</table>
    	<hr>
    </body>
    </html>
    ERE

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut hierarchie tree ne fonctionnant pas
    Bonjour ,

    Je vous remercie pour l 'aide que vous m 'avez fourni.

    Cordialement
    amiral

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Tu as réussi à faire fonctionner l'ensemble ?
    Dis moi car si non je te passe le code complet un peu modifié avec un menu qui signifie quelque chose !

    ERE

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut hierarchie tree ne fonctionnant pas
    Bonjour ,

    J 'ai pas trop réussi car j 'arrive pas à savoir quel est l 'élément sélectionné et à récupérer
    les informations car mon but est de faire un upload et de remplacer le fichier selectionné dans l ' arbre par celui qui est uploadé donc si vous avez un code oui je veux bien

    merci pour votre aide.
    Cordialement
    Amiral

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut Amiral,

    Si tu prends l'exemple fourni par Dojo tu verras que su un clic dans l'arbre ils affiches toutes les informations concernant ce fichier (nom, taille, ...). Cela devrait le faire.

    ERE

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut hierarchie tree ne fonctionnant pas
    Bonjour ,
    Comme vous m 'avez dit que vous avez un code qui fait un petit peu quelque chose.
    Est ce que vous pouvez me le donner s 'il vous plaît comme je rame un petit peu pour que je vois un petit peu comment démarrer.

    merci.
    Cordialement

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    dojox\data\demos\demo_FileStore_dojotree.html

    ERE

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Par défaut hierarchie tree ne fonctionnant pas
    Bonjour ,

    J' avance dans mon projet mais j 'ai un problème quand j 'essaie de faire un traitement.
    J 'ai une fonction qui appelle un script php mais quand j 'utilise un xhrpost et je lui envoie le nom du fichier que je veux .
    Quand je récupère la valeur à partir du $_POST[filename] dans mon script php il n 'arrive
    pas à récupérer la valeur.
    Quand je fait alert .il a bien la valeur mais dès que je le passe en paramètre il ne marche pas.

    Ci-dessous ma fonction


    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
    function testDown(){
     
                     var nomFic = newArgs.name;
                     alert("nom"+nomFic);
     
    			dojo.xhrPost( {
    				url :'download.php',
    				load : callback,
    				error : alerteErreur,
    				content : {
    					filename : nomFic;
    				}
    			});
     
             }


    Je veux faire passer la variable nomFic dans mon script php mais je n 'arrive pas à la faire passer.
    Quand j 'essaie de le récupérer avec $_POST['filename'] il n 'y arrive pas.
    Comment puis je récupérer la variable nomFic dans mon script PHP s 'il vous plaît ?
    merci pour votre aide

    Cordialement

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

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

    Il ne faut pas de ";" après nomFic: ERE

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

Discussions similaires

  1. [Dojo] Tree ne se charge pas sur F5 sous IE7
    Par *.Har(d)t dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 19/05/2009, 00h53
  2. Flex Tree ExpandItem() ne fonctionne pas
    Par mblmat dans le forum Flex
    Réponses: 2
    Dernier message: 09/09/2008, 16h26
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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