1 visiteur(s) en ligne
Date actuelle : 29-10-2025, 19:41 PM Bienvenue, Visiteur ! ( Identification S'enregistrer )







 
[php/javascript]aide sur un script
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Auteur Message
Nell95 Hors ligne
Newbie
*

Messages : 8
Inscription : May 2010
Réputation : 0
Message : #1
[php/javascript]aide sur un script
Bonjour à tous,
Je suis actuellement en stage en entreprise et je dois developper une appli web permettant de voir
les dossiers et les sous dossiers des clients et des employé (voir plus bas pour les explications)

et donc je voudrais un coup de main pour améliorer un script php que j'ai voici le script :


<?php function exploration_dossier($dossier_chemin)
{
echo "<ul>";
$dossier = opendir ($dossier_chemin);

while ($fichier_nom = readdir ($dossier)) {
if ($fichier_nom != "." && $fichier_nom != "..")
{
$fichier_chemin = $dossier_chemin.'/'.$fichier_nom;
echo "<li>$fichier_nom</li>";
if(filetype($fichier_chemin) == 'dir')
{
exploration_dossier($fichier_chemin);
}
}
}
closedir ($dossier);
echo "</ul>";
}
?>

//et je l'utilise comme ca :
<?php
exploration_dossier("/home/ftp"); ?> //avec plus declinaison du repertoire du style /home/ftp/*
ou /home/ftp/nom_utilisateur/client

Déjà j'ai un problème pour cette condition :

 if(filetype($fichier_chemin) == 'dir')
{
exploration_dossier($fichier_chemin);
}

en gros si dans un dossier je n'ai pas de fichier il m'affiche un warning que voici :

warning filetype () Lstat failed for dossier_ou_est_contenu_mon_script

de plus un autre souci ergonomique (et oui etant en entreprise faut faire des jolis choses) se pose je m'explique
le programme fait ceci :

<pre>
->dossier1
*fic1
*fic2
*fic3
->dossier2
-->dossier4
-->dossier5
**fich1
**fich2
**fich3
->dossier3
-->dossier6
--->dossier7
***fichier1
***fichier2
->dossier8
</pre>

comprenez que si j'ai 30dossiers comprenant 10 sous dossiers et +50 fichiers l'arborescence dans ma page php
va faire 200kms

donc j'aimerai avoir un script javascript adapté à mon code php (quitte a faire quelque modif) pour pouvoir déroulé et enroulé les dossiers, le problème c'est que javascript ca fait de belle chose mais moi je ne sais pas faire,
donc si y a des personne pour m'aider à faire cette appli :-)
je les remercie d'avance :-)

06-05-2010 16:21 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 818
Inscription : Mar 2006
Réputation : 21
Message : #2
RE: [php/javascript]aide sur un script
Salut et bienvenue à toi !

Si tu souhaites te présenter / faire connaissance avec la communauté n'hésite pas à faire un petit tour dans la section "Présentations" Smile

Citation :warning filetype () Lstat failed for dossier_ou_est_contenu_mon_script
En théorie, on se fiche des warnings.

Ensuite, concrètement ton truc doit permettre seulement de visualiser l'arborescence et/ou les fichiers ou il doit permettre des actions dessus aussi ?

Car s'il doit permettre à terme d'exploiter / agir sur les fichiers, autant utiliser un script de webftp plutôt que de tout recoder.

Sinon si tu n'as besoin que de choses basiques et que tu veux coder toi-même, donc, je te mets en pièce jointe ce que je pense que tu cherches pour le "menu déroulant".
J'avais récupéré ça il y a un moment en me disant que ça servirait sûrement un jour... Smile


Pièce(s) jointe(s)
.zip  menu-deroulant-type-windows-explorer-javascript_files.zip (Taille : 10,5 Ko / Téléchargements : 2)

Un poste sans accent ? La faute au clavier qwerty :/
|| Merci de mettre des titres explicites !!! || La bouille à Troll ? || 
Vous voulez remercier l'équipe du forum ? Participez ! Exprimez-vous ! Revenez et parlez de ce que vous voulez ! Wink Image: actualites-informatiques-pcw.1.gif
06-05-2010 21:32 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Nell95 Hors ligne
Newbie
*

Messages : 8
Inscription : May 2010
Réputation : 0
Message : #3
RE: [php/javascript]aide sur un script
je ne veux pas faire d'action particulière juste que si j'ai bcp de dossiers et de sous dossier cela ne me fasse pas des pages a déroulé! donc je vais regarder ton script merci

Edit :
je viens de regarder ton code surtout la partie java script et en faite tu note en dur le nom des dossiers que tu veux
que se soit affiché or moi je ne connais pas le nom des dossiers à l'avance, je ne connais pas le nombre exact de dossier non plus donc ca va pas...
apres y a une ligne que je ne comprend pas :
onload="FP_preloadImgs(/*url*/'../../../../boutons/button9.gif', /*url*/'../../../../boutons/buttonA.gif')"

donc au chargement tu demandes de chargé /*url*/'../../../../ avc l'image button9 ok
mais ca : /*url*/'../../../../ concretement c'est quoi???
(Ce message a été modifié le : 07-05-2010 08:17 AM par Nell95.)
07-05-2010 08:10 AM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Nell95 Hors ligne
Newbie
*

Messages : 8
Inscription : May 2010
Réputation : 0
Message : #4
RE: [php/javascript]aide sur un script
y a vraiment personne pour m'aider???
07-05-2010 10:05 AM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 818
Inscription : Mar 2006
Réputation : 21
Message : #5
RE: [php/javascript]aide sur un script
Salut Nell95,


Alors, tout d'abord, le code javascript n'est pas de moi.
Je te l'ai passé parce qu'il fait ce que tu cherches à faire. Après je ne peux pas te faire tout le boulot... Wink

Ensuite je ne vois pas ce que tu appelles "en dur" : le fichier que je n'ai passé est un .html, évidemment que rien n'est dynamique !

Pour le fait que tu dises que tu ne connaitras pas les dossiers en avance, je ne vois pas pourquoi, il faut bien évidemment que tu sépares la récupération des données (c'est-à-dire tous les noms des répertoires etc... ) du traitement (mise en forme) et de la sortie (affichage).

Donc je te conseille de récupérer l'arborescence à l'aide de tableaux dynamiques imbriqués. Puis de générer le code HTML / Javascript adapté. Puis de l'afficher.

Après sinon tu peux aussi utiliser le principe des display:none;

Ou par exemple utiliser la librairie jQuery avec la fonction hide() : http://docs.jquery.com/Hide

Tu crées par exemple pour chaque répertoire contenant des sous répertoire tu crées un div "conteneur" du contenu du répertoire, avec un identifiant unique. Tu mets en evènement "onclick" la fonction hide() de jQuery sur le div conteneur. Et ainsi de suite... Smile


Si ce n'est pas très clair dis-moi ce que tu ne comprends pas et j'essaierai de détailler.

Un poste sans accent ? La faute au clavier qwerty :/
|| Merci de mettre des titres explicites !!! || La bouille à Troll ? || 
Vous voulez remercier l'équipe du forum ? Participez ! Exprimez-vous ! Revenez et parlez de ce que vous voulez ! Wink Image: actualites-informatiques-pcw.1.gif
09-05-2010 11:36 AM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Nell95 Hors ligne
Newbie
*

Messages : 8
Inscription : May 2010
Réputation : 0
Message : #6
RE: [php/javascript]aide sur un script
Troll a écrit :Pour le fait que tu dises que tu ne connaitras pas les dossiers en avance, je ne vois pas pourquoi, il faut bien évidemment que tu sépares la récupération des données (c'est-à-dire tous les noms des répertoires etc... ) du traitement (mise en forme) et de la sortie (affichage).

c'est justement la séparation des informations que j'arrive pas à faire...
c'est pour ca que je demande de l'aide...
parce que j'ai un programme php qui récupère les données (nom des répertoires etc) c'est comment l'incorporé dans ce que tu m'as données que j'arrive pas à faire...

quand je dis en dur : bah c'est que le nom est écrit à l'avance (donc en statique) moi j'ai besoin de dynamique

Troll a écrit :Donc je te conseille de récupérer l'arborescence à l'aide de tableaux dynamiques imbriqués. Puis de générer le code HTML / Javascript adapté. Puis de l'afficher.

Je veux bien mais on fait comment???
c'est là qu'est le problème je comprend tout ce que tu me dis, mais c'est la manière de faire que j'arrive pas
la programmation c'est pas mon fort, et les tableaux php j'ai du mal à m'en servir (et c'est pas faute d'avoir lu des trucs dessus...)
mais bon si j'arrive pas à faire tant pis je laisserai comme c'est...
10-05-2010 08:18 AM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 818
Inscription : Mar 2006
Réputation : 21
Message : #7
RE: [php/javascript]aide sur un script
Salut Nell95,

Le problème c'est que si tu génères à la volée (en même temps que tu récupère les données) c'est le gros bazar car faut d'abord que tu saches s'il y a des sous dossiers dans le dossier que tu parcours... Chose que tu ne sauras qu'une fois que tu auras fini le parcourir le dossier...

La structure de stockage des données que je te propose :


$data = array (
dossier_racine => array (
files = array (
fichier1,
fichier2,
fichier3,
...),

folders = array (
sousdossier1 = array( files = array(...), folders = array(...) ),
sousdossier2 = array( files = array(...), folders = array(...) ),
...
)
)
);

Voilà, et pour l'exploiter, en fait tu vas faire les fonctions comme suit :

Une fonction ExploreFolder() qui liste les fichiers d'un répertoire et les mets dans le tableau.
Dans cette fonction, tu vas vérifier à chaque entrée de la liste des objets contenus dans le répertoire si c'est un répertoire, auquel cas tu lance ExploreFolder dessus (utilisation récursive) etc...

Une fonction CreateFolderStructure(); qui renvoit la structure en tableau d'un dossier. Comme ca tu fais un code du genre :


function CreateFolderStructure() { ... }
function ExploreFolder($path) {
$data = CreateFolderStructure();
...
if (is_folder($objet)) {
$data['xxx']['folders'][$objet_name] = ExploreFolder($path);
}
...
}

Et tu n'auras qu'à lancer la fonction ExploreFolder sur le dossier racine pour obtenir toutes les données d'un coup (vu que c'est récursif) :

$arborescence = ExploreFolder('/racine');

Et hop $arborescence aura la structure décrite au début de mon post.

Ensuite tu n'as plus qu'à afficher à coup de for / foreach / while (à ta convenance).
Evidemment il faudra sûrement raffiner un peu. Smile