C’est très utile pour un backoffice afin de pouvoir sélectionner une image pour un article, un fichier flash à insérer dans une page etc…

Présentation
Petite liste des features :- Listage des dossiers et sous dossiers
- Limitation à des dossiers spécifiques
- Aperçu des fichiers
- Système de plugin
Le script est divisé en 2 parties : une partie Javascript et une partie PHP, cette dernière permettant de lister les dossier et de faire les aperçu des fichiers. Ce script requiert Mootools 1.1 pour fonctionner (le détail des dépendances est disponible dans le fichier Brooser.js), ainsi que PHP5.
Utilisation
Inclusion dans votre page
Incluez simplement le script dans votre page (en plus de mootools bien sûr) et le css par défaut du browser<link href="css/brooser.css" rel="stylesheet" media="screen" /> <script type="text/javascript" src="js/Brooser.js"></script>
Et initialisez la class :
window.addEvent('domready',function() {
new Brooser('browse',{
currentDir:'./../test',
phpFile:'brooser/php/Brooser.php',
targetData:'path',
onFinish:function(file) {
$('file').value=file;
}
});
}Un rapide coup d’oeil sur ce bout de code :
window.addEvent('domready',function() {Permet de lancer la fonction une fois que toute la page est chargée (si vous utilisez Mootools vous devez connaître).
new Brooser('browse',{Instancie la classe, « browse» étant l’élément qui permettra d’ouvrir le browser (un bouton, un lien, whatever…)
currentDir:'./../test',
On arrive dans les options, currentDir permet d’indiquer le dossier dans lequel s’ouvrira le browser
phpFile:'brooser/php/Brooser.php',
phpFile indique le chemin vers le script côté serveur
targetData:'path',
targetData indique le type d’information que vous voulez récupérer (le chemin du fichier ou simplement son nom, par défaut le chemin complet est retourné)
onFinish:function(file) {
$('file').value=file;
}onFinish permet d’indiquer la fonction à exécuter une fois le fichier choisit (le nom/chemin du fichier est passé en paramètre). Ici je choisi de remplir le champ ayant l’id « file» avec le chemin de mon fichier.
(toutes les options sont documentées dans le fichier Brooser.js)
Important ! : Le chemin vers le fichier php est relatif au fichier qui appel le script, tandis que le chemin vers le dossier à lister est relatif au fichier php.
Configuration
Par mesure de sécurité vous devez autoriser le listage des dossier par le script. Pour cela éditez le fichier access.php qui se trouve dans le dossier php du script.
<?php
$allow = array(
'../path/to/your/directory',
'../path/to/your/second/directory' );
$denied = array(
'../path/to/your/denied/file.txt'
);
?>Je pense que le code est assez explicite, dans le tableau $allow vous lister les dossiers que vous voulez autoriser. Vous pouvez aussi utiliser le tableau $denied afin d’interdire des fichiers/dossier qui se trouveraient dans des dossiers que vous avez autorisés mais que vous ne voudriez pas autoriser pour autant.
Et c’est tout !
Exemple
La page d’exemple complèteA venir
Je ferai bientôt quelques billets à propos de la réalisation de plugins et de la possibilité de faire une autorisation des fichiers/dossiers plus poussée (en l’intégrant à la gestion de droit de votre site par exemple). Et bien sûr j’attend vos suggestionsTéléchargement
Brooser 0.9 (350ko)Et puis qu’il faut rendre à César ce qui est à César, voici tout ce qui est utilisé dans ce script.
En vrac : getID3(), DewPlayer, le player Flv de Neolao, la fonction isBinary() de HesaSys Team et bien sûr les icônes FamFamFam.
Commentaires
par WhyNot le 15 juillet 2007 à 17:28
Il faudra que je test ça à l’occasion…
Au sinon deux liens non-valides
Le lien de retour à partir de la page de demo (un s en trop à blog) et le lien FamFamFam qui n’est pas valide (au passage, merci de l’avoir fait découvrir).
Merci de partager en tout cas
par Country le 15 juillet 2007 à 18:30
Oups, liens corrigés, merci
par Pedro le 16 juillet 2007 à 12:58
Waow, excellent boulot !
Je crois qu’on peux pas faire plus complet.
par WhyNot le 16 juillet 2007 à 22:31
Ce qui est sûr c’est qu’on attend avec impatience la fonction d’upload
par wouaren le 17 juillet 2007 à 09:32
Splendide
par syan le 19 juillet 2007 à 13:50
excellentissimes !
je vais regarder comme intégrer des plugins pour cette application/
Merci beaucoup pour le partage de ces sources.
par rey le 19 juillet 2007 à 17:01
Bonjour,
et merci pour ce super script, cependant j’essai de le faire fonctionner en local, il a du mal à afficher les fichiers, en fait il les affiches pas du tout, je pense que cela soit à cause des chemins relatif, j’ai un dossier IMG sur mon disque comme ceci http://127.0.0.1/IMG/ donc dans le fichier access.php j’ai mis ceci
$allow = array('../IMG');et dans la page j’ai mis ceci
4a4f49ec3a7fa2en fait je travaille en local pour l’essayer, avec xampp qui à php5 et qui est disposé comme ceci sur mon disque E:\xampp\xampp\htdocs\brooser\index2.html qui est la page qui appelle le bouton pour afficher le brooser. Pouvez me dire si je vais dans la bonne direction, car cette application je ne pourrais peut etre pas l’utiliser qui est en php4 dite moi si je me trompe, en vous remerciant par avance.
par Country le 19 juillet 2007 à 19:40
Salut rey,
Alors, si j’ai bien compris ton arborescence, dans ton fichier access.php met :
$allow = array('../../IMG');et dans index2.html :
(le chemin est relatif au fichier php/Brooser.php)
Et ça devrais fonctionner
par Rey le 19 juillet 2007 à 20:45
Re bonsoir,
Je viens de voir votre message et je vous en remercie, j’ai suivi vos indications mais ca bloque, dommage car j’aurais pu faire un backoffice pour mon site, je vais continuer de chercher,par contre si j’enleve un des ../ de la page index2.html tout en laissant ../../IMG dans le fichier access on voit l’image qui tourne sinon le navigateur affiche une erreur de script. il doit y avoir une solution, idem j’ai essayé sur FREE et ca bloque aussi, bonne soirée merci
par Country le 19 juillet 2007 à 21:06
Si tu as firebug, regarde la réponse de la requête ajax, si tu as :
> « » is not a valid directory
c’est que le chemin dans index2.html n’est pas bon.
Si tu as :
> Access to « E:/xampp/xampp/htdocs/IMG» is not allowed
c’est que le chemin dans access.php n’est pas bon (ils doivent théoriquement être identiques).
Fait aussi attention à ne pas avoir :
$denied=array('');mais
(sinon tu interdit tous les fichiers/dossiers)
par Nico le 23 juillet 2007 à 13:17
par Country’s Blog » Blog Archive » Brooser - créer un plugin le 30 juillet 2007 à 21:14
par Country le 2 août 2007 à 00:10
par Super Chinois le 8 août 2007 à 08:37
merci.
par Georg Ringer le 4 septembre 2007 à 10:30
very nice script. Is it possible to browse through directories or is just one directory possible?
georg
par Country le 4 septembre 2007 à 19:31
you can absolutely browse through directories.
par Axel le 14 septembre 2007 à 19:50
je viens de decouvrir ce tres bon script, félicitaions!!!
J’ai cependant un petit soucis avec $denied.
Je ne dois pas m’y prendre comme il faut.
ma config est la suivante :
et pourtant index.php et /templates sont visibles et accesibles.
Une idée ?
PS : vivement l’upload ^^
axel
par Axel le 14 septembre 2007 à 19:54
je n’ai pas trouvé le moyen de lancé le browser automatiquement au chargement de la page. (mes lacunes en js se voient la non ?)
merci
Axel
par Country le 17 septembre 2007 à 14:33
Je regarde ton problème. Apparemment cela viendrai des variables dans le chemin des fichiers interdits (j’avoue ne jamais avoir testé cela).
Je vais chercher comment régler ça.
par Country le 17 septembre 2007 à 14:38
4a4f49ee15f3e1
par Country le 17 septembre 2007 à 15:05
au début de Brooser.php pour qu’il puisse lire la valeur stockée dans la session.
par Axel le 2 octobre 2007 à 12:13
J’ai pu résoudre le soucis du lancement auto, mais pour les acces toujours le meme soucis.
Alors que j’ai
var brooser = new Brooser('browse',{ currentDir:'../../{path}/{repertoire}'et dans acces, je peux remonter jusqu’au niveau /societe/ (mais pas plus haut).
Je comprend toujours pas pourquoi.
Si quelqu’un a une idée, c’est volontier.
par Country le 2 octobre 2007 à 17:22
Ce qui explique que tu puisse remonter jusqu’à /societe/ car il comprend 4a4f49ee7c8262
par Rey le 3 novembre 2007 à 18:25
j’avais déjà eu l’occasion de poster et je me remet à tester cette application, je l’ai testé sous Firefox avec firebug
il me dit que j’ai un souci avec le fichier XHR.js ligne 135
et le fichier Json.js ligne 68
avec le message d’erreur suivante
missing ) in parenthetical
http://127.0.0.1/brooser/mootools/Json.js
Line 68
que j’aille chercher les nouveaux fichier compressé ou pas de mootools j’ai la meme chose.
je ne sais comment résoudre le problème
merci
par Ben le 12 novembre 2007 à 14:22
Il manque une fonction d’upload/delete de type Fancy upload (http://digitarald.de/project/fancyupload/) et il serait parfait!
Mais le boulot est génial!
Faudra pas hésiter à poster la version dans les script Mootols sur le forum!
par Country le 14 novembre 2007 à 21:55
@Ben : Merci. Je vais m’y remettre bientôt, déjà pour le rendre compatible avec Mootools 1.2 et sans doute ajouter la possibilité d’uploader/renommer/etc. des fichiers.
Enfin je verrai, je n’ai pas envi que cela devienne une usine à gaz non plus.
par LEO le 25 décembre 2007 à 12:42
Tout d’abord bravo pour ce petit script qui risque de s’avérer très utile … Cependant, je n’arrive à le faire fonctionner ni en local, ni sur un serveur de type OVH … Cela est très frustrant !
Au moment d’ouvrir le brooser, j’obtiens en effet le même message que Rey :
missing ) in parenthetical
http://127.0.0.1/brooser/mootools/Json.js
Line 68
J’ai beau utiliser la version complète de mootools 1.11 et/ou les fichiers .js séparés que tu appelles pour ta demo : rien n’y fait !
Aurais-tu une petite idée ? Merci par avance !
par Country le 18 janvier 2008 à 20:06
par jackadit le 10 février 2008 à 14:27
j’ai essayé de tester ce script sans succès malheureusement.
firebug me révèle une erreur 500 !
The current action cannot be defined
Pourtant j’ai bien l’apparition de la div cachée mais vide !
Quel est mon erreur ?
Merci d’éclairer ma lanterne
par Country le 10 février 2008 à 18:21
par Jpeg le 30 avril 2008 à 15:27
j’ai un petit soucis voila ce que me dit firebug :
Brooser.php (313ms)mootools.js (line 5215)
Json is not defined
[Break on this error] files = Json.evaluate(files);
merci d’avance.
Jpeg
par Country le 3 mai 2008 à 17:04
J’ai commencé à le convertir pour la 1.2 mais ils font encore de gros changements dessus.
Je pense que je la publierai pour la prochaine Beta.
par tbela99 le 28 novembre 2008 à 17:53
merci!
par thro le 6 janvier 2009 à 14:58
sa m’arangerai beaucoup pour le travail que j’ai à faire.
Merci ^^
par Hugo le 29 janvier 2009 à 11:59
Is there a Mootools 1.2 version for Brooser? Where can it be downloaded from? Merci!
par juch le 13 février 2009 à 18:30
rien à ajouter, tu vas avoir de la pub !
par Hugo le 30 mars 2009 à 05:48
http://code.google.com/p/brooser/downloads/detail?name=brooser-0.9.1.zip
Laisser un commentaire
Flux RSS des commentaires de ce billet