DirList, script pour lister les repertoires

Eléphant du PHP | 224 Messages

24 oct. 2007, 21:13

Bonjour à tous :)

Et bien voilà, travaillant régulièrement pour des projets internet, j'ai souvent trouvé que les systèmes d'affichage des contenus des répertoires, tels que le proposent les serveurs, de type Apache par exemple, n'étaient pas très souples et ils leur manquaient quelques fonctionnalités que j'aurais bien aimé avoir...

Donc, pour ne pas être trop coincé par ces limitations, j'ai réalisé un "petit" script, que je voulais relativement léger (sans images ou pictos ni JavaScript) et surtout qui tienne dans un seul fichier, qui liste les eléments du répertoire dans lequel il se trouve, j'en ai profité donc pour ajouter quelques fonctionnalités que je trouvais utiles, voici une petite liste :

- Système simple de protection par login et mot de passe, pour éviter l'accès des petits curieux ;)

- Système modèste d'autorisations pour pouvoir limiter l'accès à différents éléments selon leur type (images, dossiers, archives, etc.) pour chaque type d'utilisateur, ainsi que la possibilité d'attribuer des droits d'édition et de suppression des éléments listés ;

- Mini système d'éditon des fichiers de type "Texte", afin de pouvoir faire des petites modifs de dernière minute ;

- Possibilité de supprimer des documents, suivant les autorisations attribuées ;

- Système de tri mono-critère, croissant et décroissant, sur les différentes infos listées (nom, date de modification, type de fichier, etc.) ;

- Méthode automatique de propagation du script dans les dossier qui n'en possède pas, histoire de faciliter la navigation (activation paramétrable) ;

- Génialissime système de... euh... non, ça doit être tout pour l'instant je crois ;)


Voilà, je ne vais pas poster le code ici, un peu trop long quand-même, mais je vous invite d'abord à tester la bête par ici :

- DirList: http://fredomkb.free.fr/testdirlist/

Trois niveau d'accès sont disponibles par défaut :

- Log "admin", pass "admin" : on peut tout voir et tout faire (évitez quand-même de tout effacer, ce serait cool que tout le monde pouisse tester la démo) ;

- Log "user", pass "user" : on peut voir tous les documents et on peut éditer les fichiers de type "Texte", mais on ne peut pas acceder aux dossiers ;

- Log "guest", pass "guest" : on ne peut voir uniquement que les images et les vidéos.


Pour télécharger le script, c'est par ici :

- DirList : http://fredomkb.free.fr/testdirlist/dirlist.zip (6,5 Ko)


Bon, franchement, je ne sais pas si ça peut intéresser certains, en tout cas moi ça me rends bien service, surtout la possibilité d'éditer à la volée certains fichiers pour pouvoir y apporter des petites modifs...

En ce qui concerne les bugs, j'en ai vu un qui peut-être gênant lors de l'édition d'un fichier web, en fait, si le code du fichier édité contient une balise fermante "</textarea>", le script se melange les pinceau et affiche la suite du fichier comme étant le script... bref, ça merdouille et il faudra que je trouve une solution... si vous aves des idées, n'hésitez pas :)

Quant aux choses à faire pour les prochaines versions, peut-être améliorer le système d'édition, trouver un moyen de faire des tris multi-criteres, et d'autres idées qui ne manqueront sûrement pas de me traverser l'esprit... ou le votre d'ailleurs ;)

Comme d'hab, les remarques, corrections et suggestions sont les bienvenues :)

Merci à tous... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 224 Messages

26 oct. 2007, 17:31

Bonjour à tous :)

Voilà, petite évolution de "DirList"...

- Correction du bug avec la balise fermante "</textarea>" ;

- Système d'autorisations amélioré, possibilité de régler de manière un peu plus précise les droits de chaque utilisateur, avec une option qui permet d'indiquer les éléments, par leur nom, que chaque utilisateur peut voir ;

- La propagation automatique du script vérifie désormais la version du script, afin de pouvoir faciliter les mises à jour éventuelles à venir ;

- Le code Html généré est normalement valide "XHTL 1.0" ;

- D'autres petites corrections mineurs dans le code...

Voilô, toujours par ici pour le tester :
http://fredomkb.free.fr/testdirlist/

Et par ici l'archive "zip" du script :
http://fredomkb.free.fr/testdirlist/dirlist.zip

Sinon, je ne m'attendais pas à mobiliser les foules avec ma petite réalisation, mais bon, je me demande comment interpréter l'absence de toute réaction... en tout cas, ce n'est pas très encourageat faut avouer... enfin bon... pas grave tout ça... ;)

Merci... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Mammouth du PHP | 19672 Messages

27 oct. 2007, 10:18

Pour mesurer les réactions, je te suggère de mettre un petit compteur sur la page et un autre sur le téléchargement, ça te donnera au moins une idée de l'intérêt soulevé ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 224 Messages

27 oct. 2007, 15:01

Bonjour Cyrano et merci pour ta réponse :)
Pour mesurer les réactions, je te suggère de mettre un petit compteur sur la page et un autre sur le téléchargement, ça te donnera au moins une idée de l'intérêt soulevé ;)
Hé hé :D ... j'ai hônte, mais j'avoue y avoir pensé :wink:

Non, tu le sais bien, le but n'est pas de mesurer une quelconque "audience" ou "popularité", même si ça peut être parfois flâteur pour l'égo (quoique... en l'occurrence, j'ai comme un doute... ;) ), mais avant tout l'idée est de pouvoir bénéficier un peu de l'expérience et du savoir-faire des excellents développeurs qui s'expriment dans ces colonnes, histoire que le débutant que je suis puisse s'améliorer un peu... c'est tout.

Je sais pertinament qu'il y a beaucoup de choses à optimiser, voire corriger, dans ce script, c'est donc dans cette optique que j'espérait avoir quelques réactions... mais bon, je sais aussi, par expérience, que ce n'est pas forcément par manque total d'intérêt que certains sujets ont peu de réactions, mais plutôt parcequ'ils ne font pas nécessairement partie des préoccupations acutelles des différents participants...

Bref, ne t'inquiète pas, je ne cherche nullement à capter l'attention des foules (pas assez mégalo pou ça ;) ), mais j'aurais juste espéré que certains participants aurait eu en peu de temps pour regarder le script et me faire part de leurs impressions... voire un peu plus dans le meilleur des cas... c'est juste ça...

Enfin... comme je disais, tout ça n'a pas grande importance finalement, c'est déjà génial qu'on puisse partager les uns les autres nos "petites" réalisations... elles pourront peut-être servir un jour à quelqu'un... comme d'autres m'ont bien rendu service à leur tour...

Voilô... merci encore... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 224 Messages

30 oct. 2007, 17:30

Bonjour à tous :)

Juste pour vous annoncer une dernière toute petite mise à jour du script, avec au menu :

- Meilleur tri textuel (il y avait problème avec les majuscules et les minuscules) ;
- Possibilité de cacher (ignorer) certains éléments (pour tout le monde, "admins" y compris, histoire de cacher le script lui-même par exemple) ;
- Mot de passe avec contrôle Md5 ;
- La liste des types d'éléments autorisés à afficher est désormais insensible a la casse ;
- Quelques corrections mineures.

Voilà... c'est tout pour cette fournée (qui a des fortes chances d'être la toute dernière, j'ai cherché un moment pour trouver une solution afin d'éviter le système de propagation du script, en vain hélas, je n'ai pas réussi à faire quelque chose qui fonctionne bien :( )

Donc, toujours la démo par ici :
http://fredomkb.free.fr/testdirlist/

Et le script par là :
http://fredomkb.free.fr/testdirlist/dirlist.zip

Bon, j'arrête là ce projet pour le moment, peut-être qu'un jour je le rependrai, en attendant, n'hésitez pas tout-même à me faire part de vos remarques et/ou suggestions... ;)

Merci à tous... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Petit nouveau ! | 2 Messages

10 nov. 2007, 22:26

Bonjour.
Tout d'abord, bravo et merci pour ce script qui fonctionne très bien. Je voudrais l'utiliser sur mon petit site web, mais je me heurte a 2 problèmes.
Il faut dire que je débute totalement...
Alors voila:
j'ai envoyé une redirection vers index.php afin de proposer des fichiers au téléchargement pour les utilisateur. Le problème est que je n'arrive pas à paramètrer correctement le script pour que les utilisateurs puissent lister les repertoires et sous repertoires. Mon second problème est que je ne sais pas comment paramètrer le script pour que certains fichiers soient cachés.
voila le script tel que je l'ai reglé:

Code : Tout sélectionner

$autoris = array( 'user'=>array('types'=>array('Dossier','Documents'),'actions'=>array('edit','copy')), 'guest'=>array('types'=>array('Image','Video','Audio'), 'items'=>array('fonds')) ); // Liste d'elements qui doivent rester invisibles a tout le monde et en toutes circonstances : $invisibles = array(''.basename(__FILE__));
Malgré l'ajout du droit "copy" pour le compte user, les sous repertoires n'apparaissent pas :(

Et comment dois-je remplir la variable invisible? J'aimerais cacher des fichiers.html, et si possible un dossier.
Connecté en tant qu'admin, je peux tout lister, c'est parfait, mais je ne veux pas que les utilisateurs puissent éditer quoi que ce soit, et encore moins effacer des fichiers.
Je vais poursuivre mes essais/recherches, en attendant qu'une ame charitable veuille bien conseiller le débutant que je suis.
Encore merci pour cet outil, l'interface graphique est très sympa et les fonctionnalités effectivement bien plus complètes que le listing de base d'Apache :D .

M1ck3y.

Eléphant du PHP | 224 Messages

11 nov. 2007, 04:17

Bonjour M1ck3y :)
Bonjour.
Tout d'abord, bravo et merci pour ce script qui fonctionne très bien.
Merci pour ton appréciation :)

En effet, le script fonctionne assez bien, je l'utilise au quotidien, mais il a un très gros défaut, c'est qu'il se propage automatiquement dans toute l'arborescence du site (il se copie lui-même quoi), et ceci n'est pas un comportement très... comment dire, très clean :?

Je travail peu à peu sur une nouvelle version qui, normalement, devrait éviter ce comportement, mais je me heurte encore à quelques difficultés que je dois résoudre, et comme je ne dispose pas de beaucoup de temps en ce moment, le projet n'avance que très lentement... je vous tiendrais au courant dès que j'obtiens quelque chose qui fonctionne bien...
Je voudrais l'utiliser sur mon petit site web, mais je me heurte a 2 problèmes.
Il faut dire que je débute totalement...
Alors voila:
j'ai envoyé une redirection vers index.php afin de proposer des fichiers au téléchargement pour les utilisateur. Le problème est que je n'arrive pas à paramètrer correctement le script pour que les utilisateurs puissent lister les repertoires et sous repertoires. Mon second problème est que je ne sais pas comment paramètrer le script pour que certains fichiers soient cachés.
voila le script tel que je l'ai reglé:

Code : Tout sélectionner

$autoris = array( 'user'=>array('types'=>array('Dossier','Documents'),'actions'=>array('edit','copy')), 'guest'=>array('types'=>array('Image','Video','Audio'), 'items'=>array('fonds')) ); // Liste d'elements qui doivent rester invisibles a tout le monde et en toutes circonstances : $invisibles = array(''.basename(__FILE__));
Malgré l'ajout du droit "copy" pour le compte user, les sous repertoires n'apparaissent pas :(

Et comment dois-je remplir la variable invisible? J'aimerais cacher des fichiers.html, et si possible un dossier.
Connecté en tant qu'admin, je peux tout lister, c'est parfait, mais je ne veux pas que les utilisateurs puissent éditer quoi que ce soit, et encore moins effacer des fichiers.
Bon, ok, voyons tout ça en plusieurs étapes...

Prennons comme exemple le dossier de test, nous avons les éléments suivants (je ne montre ici que les noms, les éléments finissant par un "/" sont donc les dossiers) :

Code : Tout sélectionner

agave.jpg dandelion.jpg dirlist.zip fonds/ galerie.html galerie.php leaf_curl.jpg petals.jpg sample.mov scripts.js styles.css text2md5.php text2md5.php.zip texte.txt textes/ textes.dmg textes.zip
Bon, DirList propose de régler les autorisations des différents utilisateurs selon 3 catégories :

1. Types : désignent les types de fichiers que l'utilisateur peut voir
2. Items : désigent les éléments, par leur nom, que l'utilisateur peut voir
3. Actons : désigent les différentes actions que l'utilisateur peut déclancher

Enfin, une valeur générale "Tout" qui autorise tout, c'est l'option pour les administrateurs quoi...

Donc, admétons que nous souhaitons créer un nouvel utilisateur pour lui attribuer des autorisations particulières, supposons que nous voulons le nommer "Pierre", supposons aussi que son mot de passe est "pierro".

Nous devons donc commencer par créer (ajouter) cet utilisateur à la variable liste "$nomdp" (bien respecter les majuscules/minuscules du nom et du mot de passe avant de générer la somme Md5) :
$nomdp = array(
	'admin'=>'21232f297a57a5a743894a0e4a801fc3',
	'user'=>'ee11cbb19052e40b07aac0ca060c23ee',
	'guest'=>'084e0343a0486ff05530df6c705c8bb4',
	'Pierre'=>'4750a762336de45114801865c088b9a6'
);
Pour générer la somme Md5 du mot de passe, conversion nécessaire pour valider le mot de passe fourni par l'utilisateur, j'utilise un petit script Php, que tu peux télécharger par ici : "text2md5.php.zip", ou l'utiliser directement par ici "text2md5".

Maintenant, supposons que nous souhaitons lui donner quelques autorisations particulières, comme la possibilité de voir uniquement les fichiers de type "texte" et uniquement ceux-là, nous ne voulons pas qu'il puisse à accéder aux sous-dossiers, sauf celui nommé "textes", et nous ne voulons lui donner aucune autorisation de manipulation de ces fichiers...

Donc, nous devons ajouter ces paramètres à la variable liste nommée "$autoris", de la manière suivante :
$autoris = array(
	'user'=>array('types'=>array('Documents'), 'items'=>array('textes'), 'actions'=>array('edit')),
	'guest'=>array('types'=>array('Image','Video','Audio'), 'items'=>array('fonds')),
	'Pierre'=>array('types'=>array('Texte'), 'items'=>array('textes'))
);
Donc, "Pierre" ne peut voir que les fichies de type "Texte" et ne peut accéder qu'au dossier nommé "textes", il n'a aucune autre autorisation, il ne pourra donc pas éditer ou supprimer les documents, du coup la liste d'éléments qu'il verra sera comme ceci :

Code : Tout sélectionner

galerie.html galerie.php scripts.js styles.css text2md5.php texte.txt textes/
Si tu veux être sûr que "Pierre" navigue toujours avec "DirList", il serait peut-être prudent de signaler au script de se propager, si nécessaire, dans les dossier que "Pierre" consultera, pour ce faire, il suffit d'ajouter ce réglage, comme suit :
'Pierre'=>array('types'=>array('Texte'), 'items'=>array('textes'), 'actions'=>array('copy'))
Si nous souhaitons maintenant permettre à "Pierre" de voir en plus les archives de type "zip" et autres formats de comression, il suffit d'ajouter le type à la liste concernée :
'Pierre'=>array('types'=>array('Texte', 'Archive'), 'items'=>array('textes'), 'actions'=>array('copy'))
Dès lors, "Pierre" vera la liste suivante :

Code : Tout sélectionner

dirlist.zip galerie.html galerie.php scripts.js styles.css text2md5.php text2md5.php.zip texte.txt textes/ textes.zip
Voilà, normalement avec ça tu devrais comprendre le principe de configuration des utilisateurs, si jamais certaines de ces explications te paraissent confuses, n'hésites pas à m'en faire part, je tâcherai d'exposer tout ça d'une autre manière...

Concernant les éléments à cacher, on peut en effet les lister, par leur nom, dans la variable liste "$invisibles".

Par exemple, si nous ne voulons pas que "Pierre" puisse accèder aux fichiers de type texte nommés "scripts.js" et "styles.css", dont il a normalement l'autorisation, il suffit d'ajouter ce deux éléments à la variable "$invisibles", comme suit :
$invisibles = array(''.basename(__FILE__), 'scripts.js', 'styles.css');
Il suffit donc de séparer chaque élément à masquer par une virgule à l'intérieru des paranthèses du "array", du coup "Pierre" vera la liste suivante :

Code : Tout sélectionner

dirlist.zip galerie.html galerie.php text2md5.php text2md5.php.zip texte.txt textes/ textes.zip
Mais ATTENTION, ce réglage est global, c'est à dire que tous les utilisateur sont concernés. Autrement dit, ces fichiers seront masqués à tous les utilisateurs, administrateurs y compris... moralité, personne ne pourra les voir en naviguant avec DirList.

Dans la prochaine version du script ceci pourra se configurer de manière un peu plus précise, en attendant, si tu ne souhaites pas que ces documents soient aussi masqués aux adminsitratuers, tu peux les mettre dans un dossier appart tous ces éléments que tu souhaites cacher aux autres utilisateurs (bien-sûr, seulement si celà est possible)...

Voilô, j'espère n'avoir pas oublié des choses à dire, en tout cas n'éhsites pas à me soliciter ici si tu as d'autres questions à propos de l'utilisation de DirList...

Merci, à bientôt...

[edit]
Oui, j'ai oublié de dire quelque chose d'important.

Comme expliqué plus haut, le script se propage en s'auto copiant dans les sous-repertoires, mais ceci uniquement si la version du script principal est plus récente que celle des scripts se trouvant dans les sous-dossiers, autrement dit, le script vérifie si le script présent dans les sous-dossiers est une version plus ancienne que celle qui l'appelle, si c'est le cas, alors le script du sous-dossier est remplacé par la nouvelle version, dans le cas contraire le script ne fait rien.

Donc, dans le script principal, fait toutes les modifications et personnalisations que tu souhaites, puis, avant de le mettre en ligne, modifie la valeur de la variable "$dirlist" qui si trout tout en haut du fichier (ne change surtout pas son emplacement, sous peine de dysfonctionnements).

Change donc la valeur en modifiant les 4 premiers chiffres par une valeur suppérieure, c'est à dire que si ces 4 premiers chiffres indiquent "0112", change-le par "0113", du coup le script saura qu'il doit mettre à jour les scrpts plus anciens que lui.

Enfin, pour que tu vois que ça fonctionne, j'ai configuré le dossier de démo avec notre nouvel utilisateur "Pierre", mot de passe "pierro", tu verras que les réglages dont nous avons parlé sont bien pris en compte...

Tiens-moi au courant Stp :)

[/edit]
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

ViPHP
ViPHP | 4674 Messages

11 nov. 2007, 12:54

Bonjour,

je n'ai fais que lire les sujets en diagonales. Et une chose a attiré mon attention.
J'aime beaucoup le :
$invisibles = array(''.basename(__FILE__), ...);
Vraiment, le

Code : Tout sélectionner

''.basename(__FILE__)
est splendide ;-).

Peut être que :
$invisibles = array(basename(__FILE__), ...);
serait une solution plus élégante nan ? :)

Il me semble que c'est Cyrano qui aurait rappelé les règles quant à la bonne utilisation de la concaténation. Je n'ai pas retrouvé le message, mais cherchez peu, ça pourra vous être utile je pense :).

Je suis ironique bien sûr, il ne faut pas mal le prendre :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 5924 Messages

11 nov. 2007, 13:30

Pour la propagation, tu peux essayer de faire un .htaccess dans le répertoire du script :

Code : Tout sélectionner

rewriteengine On rewriterule ^index.php(.*) index.php$1 [L] rewriterule ^(.*) index.php?path=$1 [L]

Eléphant du PHP | 224 Messages

11 nov. 2007, 15:58

Bonjour HyWaN :)
Bonjour,

je n'ai fais que lire les sujets en diagonales.
Mmm... a paaas bien ça... paaas bien :non: ... ;)

Et une chose a attiré mon attention.
J'aime beaucoup le :
$invisibles = array(''.basename(__FILE__), ...);
Vraiment, le

Code : Tout sélectionner

''.basename(__FILE__)
est splendide ;-).

Peut être que :
$invisibles = array(basename(__FILE__), ...);
serait une solution plus élégante nan ? :)

Je suis ironique bien sûr, il ne faut pas mal le prendre :).
Et bien... enfin !!! :)

J'attends ce type de remarques depuis le début de ce post, car je sais pertinament que, vu mon niveau en Php, mon code est certainement truffé de ce type de petites "bêtises" (et mois petites sûrement aussi)... donc, juste MERCI ! :pouce:

Sinon, à ma décharge, même si ce n'est pas forcément une raison, j'ai fais mes toutes premières armes en programmation (c'est un bien grand mot vu mon niveau 8-| ), avec un langage d'automatisation de tâches de l'environnement Mac, AppleScript, et ce type de petites bidouilles étaient plutôt monnaie courante... donc, disons qu'il s'agit plutôt d'un (mauvais) reflexe que d'une négligeance...

Enfin, concernant le ton de ton message, comment dire... ça ma plutôt bien fait rire :lol: , je trouve ça plutôt amusant de prendre le parti de l'ironie, de la dérision, voire du sarcasme, et pourquoi pas même de la moquérie, ça ne me gêne le moins du monde, tant que tout ceci se fait dans un but constructif et dans un esprit de camaradérie, aucun souci pour moi... au contraire, j'en redemande s'il n'y a que ça pour apprendre des nouvelles choses au contact des développeurs plus expérimentés que moi... donc, n'hésites pas si jamais tu as d'autres remarques de ce type, elles seront les bienvenues ! :)
Il me semble que c'est Cyrano qui aurait rappelé les règles quant à la bonne utilisation de la concaténation. Je n'ai pas retrouvé le message, mais cherchez peu, ça pourra vous être utile je pense :).
Ok, merci pour la suggestion, je vais voir si je trouve ce fameux message, en attendant, si quelqu'un a gardé le lien bien au chaud, je suis évidemment preneur ;)

Encore merci HyWaN... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 224 Messages

11 nov. 2007, 16:03

Bonjour Sékiltoyai et merci pour ta réponse...
Pour la propagation, tu peux essayer de faire un .htaccess dans le répertoire du script :

Code : Tout sélectionner

rewriteengine On rewriterule ^index.php(.*) index.php$1 [L] rewriterule ^(.*) index.php?path=$1 [L]
Bon, là... 8-| ... va falloir m'expliquer un peu tout ça, parece que, en matière de ".htaccess", je suis... comment dire... je suis un parfait ignare |*()

Si tu avais un moment, je voudrais bien connaître le rôle de ce bout de code et, si possible, comprendre un peu sa syntaxe... parce que là... j'y pige nada :(

Merci à toi... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Petit nouveau ! | 2 Messages

11 nov. 2007, 16:08

Bonjour.
Merci pour la rapidité et la clarté de ta réponse. Je viens de reprendre la config du script grace à tes explications, ça y est tout est fonctionnel. J'ai pu cacher certains fichiers et dossiers, et les utilisateurs ont accès aux sous repertoires. J'ai rajouté dans le html de la page un lien vers l'accueil de mon site pour une navigation simplifiée.
C'est vrai que la propagation du script serait un point à améliorer, et l'utilisation d'un .htaccess permettrait d'inclure plus simplement des utilisateurs (pour ceux dont je fais partie qui travaillent déjà sur du https) mais pour l'instant je suis déja super satisfait de ce que ça donne. L'interface graphique est sympa, on peut définir des droits très précisément...
Alors merci encore pour ton travail de qualité et ta réponse ultra rapide. Je reviendrais voir si tu crées une nouvelle version pour la tester. Tu disais que celle-ci serait la dernière... Mais je te sens très investi dans le développement de ton "bébé".
Je n'aurais que deux mots félicitations et merci.

M1ck3y.

ViPHP
ViPHP | 4674 Messages

11 nov. 2007, 16:15

Euh ne dénigre pas AppleScript s'il te plaît :P. Il n'y a pas de bidouilles à faire avec l'AppleScript. Ce langage est tout bonnement génial. C'est d'ailleurs le seul langage de script compilé, je tiens à le souligner. Il m'arrive de temps à autre d'en faire (rarement je l'avoue), mais il n'y a pas de bidouilles à faire.

Voilà, c'était juste pour sauver l'honneur d'Apple tout de même.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 224 Messages

11 nov. 2007, 16:20

Bonjour M1ck3y :)
Bonjour.
Merci pour la rapidité et la clarté de ta réponse. Je viens de reprendre la config du script grace à tes explications, ça y est tout est fonctionnel. J'ai pu cacher certains fichiers et dossiers, et les utilisateurs ont accès aux sous repertoires. J'ai rajouté dans le html de la page un lien vers l'accueil de mon site pour une navigation simplifiée.
C'est vrai que la propagation du script serait un point à améliorer, et l'utilisation d'un .htaccess permettrait d'inclure plus simplement des utilisateurs (pour ceux dont je fais partie qui travaillent déjà sur du https) mais pour l'instant je suis déja super satisfait de ce que ça donne. L'interface graphique est sympa, on peut définir des droits très précisément...
Alors merci encore pour ton travail de qualité et ta réponse ultra rapide. Je reviendrais voir si tu crées une nouvelle version pour la tester. Tu disais que celle-ci serait la dernière... Mais je te sens très investi dans le développement de ton "bébé".
Je n'aurais que deux mots félicitations et merci.
Merci pour ta réponse et pour tes encouragements, ça fait vraiment plaisir de savoir que ce petit script peut rendre service à d'autres que moi :pouce:

Quant à la prochaine version, en effet, je ne pouvais pas continuer son développement avec la même implication (raisons perso), mais je n'ai jamais abandonné l'idée de le faire évoluer pour, notamment, résoudre cette histoire de propagation, qui n'est de toutes façons pas une bonne solution, je le savais dès le départ...

Enfin, juste pour info, j'ai déjà une version hyper-ultra-light chez moi qui a l'air de bien fonctionner sans propagation, mais elle ne comporte pas encore toutes les fonctionnalités de la version distribuée et je voudrais en ajouter d'autres, comme la possibilité d'uploader des fichiers par exemple...

Bref, tout ça est en cours de développement, doucement pour l'instant et pour quelques tempse encore, mais si tout va bien, peut-être que vers la fin du mois, ou début décembre, la nouvelle version sera prête... enfin, j'espère ;)

Merci encore M1ck3y pour ton message... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)

Eléphant du PHP | 224 Messages

11 nov. 2007, 16:38

Re...
Euh ne dénigre pas AppleScript s'il te plaît :P. Il n'y a pas de bidouilles à faire avec l'AppleScript. Ce langage est tout bonnement génial. C'est d'ailleurs le seul langage de script compilé, je tiens à le souligner. Il m'arrive de temps à autre d'en faire (rarement je l'avoue), mais il n'y a pas de bidouilles à faire.

Voilà, c'était juste pour sauver l'honneur d'Apple tout de même.
MOI dénigrer AppleScript... tu rêves ou quoi ? :shock: ;)

Je fesais de l'AS alors que tu devais certainement encore être sur ton tricycle :langue: :lol:

Plus sérieusement... il arrivait parfois que certains "objets" pilotés par AS ne soient pas capable de faire des transtypages automatiquement, il fallait donc le forcer pour avoir des "string", et une des méthodes les plus rapides étaient d'utiliser la concaténation, du genre

Code : Tout sélectionner

set leNombre to 255 + laValeurUtilisateur set name of leObjet to "" & leNombre
Évidemment, il y avait une méthode "officielle" plus "propre", mais souvent un peu plus "chiante" :

Code : Tout sélectionner

set leNombre to 255 + laValeurUtilisateur set name of leObjet to leNombre as string
Donc, c'est cette mauvaise habitude de la concaténation qui apparaît encore aujourd'hui dans mes projets... mais bon, si mes codes Php ne contennaient que ça comme "bêtises", je me considérerai plus que satisfait ;)

Enfin, pour clôre le chapitre AppleScript (les lecteurs vont se demander de quoi on cause là #-o ), saches que même aujourd'hui, et malgré ses nombreuses lacunes, ça reste pour moi un des langages les plus faciles et accéssibles pour les débutants, et puis, entre nous, ça a un côté quasi magique de voir travailler son ordi tout seul ;)

Merci... à+ :)
Fredo d;o)
"Un pas à la fois me suffit..." (Gandhi)