675 visiteur(s) en ligne
Date actuelle : 25-11-2024, 19:40 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


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
(Ce message a été modifié le : 11-05-2010 07:32 AM par Troll.)
11-05-2010 07:30 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 : #8
RE: [php/javascript]aide sur un script
Déjà merci pour cette ébauche, mais il y a une chose que je ne comprend pas très bien c'est concernant la structure tu met :


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

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

mais sousdossier1, sousdossier2 tu crées les dossiers mais y a encore le problème du fais que je ne sais pas combien il y aura de sous dossiers à l'avance...

ensuite dans ton 2eme bout de code function CreateFolderStructure() { ... } tu met quoi dans les pointillé? la structure que tu m'a donné au dessus?

et la partie la : if (is_folder($objet)) {
$data['xxx']['folders'][$objet_name] = ExploreFolder($path);

en gros si le fichier est un objet dans le tableau $data je me ??? le fichier et le nom de l'objet en gros : $data['xxx']['folders'][$objet_name] ca correspond à quoi?

et apres je vois pas comment l'intégrer au javascript...
je crois que je vais laisser tomber tant pis...

12-05-2010 08:41 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 : #9
RE: [php/javascript]aide sur un script
Désolé pour l'attente...

Citation :mais sousdossier1, sousdossier2 tu crées les dossiers mais y a encore le problème du fais que je ne sais pas combien il y aura de sous dossiers à l'avance...
Et alors ? En PHP les tableaux n'ont pas de taille statique.

La fonction CreateFolderStructure renvoit un tableau contenant la structure de base :


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

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

Je veux bien t'aider, mais le but c'est pas que j'écrive le script à ta place non plus...
Chaque dossier est un tableau qui contient une partie (clé) qui est un tableau contenant les fichiers de ce dossier et une autre partie (clé) qui est un tableau contenant les sous-dossiers de ce dossier.
Ces sous-dossiers étant eux-même des dossiers, ils auront la même structure que le dossier parent...et donc on réapplique la fonction d'exploration d'un dossier dessus.

Ca s'appelle la récursivité (on encapsule), si tu ne connais pas ça, je ne peux que te conseiller de te documenter sur la notion de récursivité (comme les suite récurrentes un peu).


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
18-07-2010 10:27 AM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse




Discussions apparemment similaires...
Discussion : Auteur Réponses : Affichages : Dernier message
  besoin d'aide pour simplement rediriger un domaine.EU vers domaine.com/pageXX blabla69 1 5 588 02-10-2022 05:16 AM
Dernier message: grandfreddy
  [Résolu] aide sur installation namowebediteur6suite sur Windows 8 poeta6969 17 13 911 04-02-2020 13:16 PM
Dernier message: jameskelvin
  Aide pour formulaire html Greg-au-spa 7 6 513 12-04-2013 19:56 PM
Dernier message: Troll
  Aide sur un script PHP regord 5 7 360 06-07-2012 16:40 PM
Dernier message: Troll
  [Résolu] [PHP] Besoin d'aide sur un script de gestion d'offres Quentin 14 9 358 03-01-2012 08:11 AM
Dernier message: Troll
  de l'aide pour de la programmation bastien2423 14 11 784 08-06-2011 20:39 PM
Dernier message: Informaticien zero
  SVP aide pour trouver URL vidéo en direct katykat75 1 6 454 09-10-2010 11:11 AM
Dernier message: Troll
  [Résolu] Aide algorithmique, Merci. gbueno3 10 7 873 14-01-2009 21:41 PM
Dernier message: AngeFMR
  [php] petit script avec function time() et date() sheitan 8 6 812 01-11-2008 10:53 AM
Dernier message: Troll
  Script Miniature Rammstein_666 21 11 339 16-10-2008 20:22 PM
Dernier message: Troll

Aller à :


Utilisateur(s) parcourant cette discussion : 1 visiteur(s)