Arborescence explorateur de fichiers avec php et xml

Soyez le premier à donner votre avis sur cette source.

Vue 23 472 fois - Téléchargée 3 056 fois

Description

le script tree.PHP scanne le contenu du répertoire et écrit le fichier tree.XML que consulte le fichier tree.SWF.
Le mininum à paramétrer se trouve dans le fichier tree.PHP... et les commentaires aussi.

Par défaut, le Tree Flash ouvre le dernier noeud enfant. L'action dans le fichier tree.fla est assez documentée.

Source / Exemple :


// Chargement du fichier tree.XML pour afficher l'arbre
var contenu_arbre:XML = new XML(); 
contenu_arbre.ignoreWhite=true;
contenu_arbre.onLoad = function(success:Boolean){
		arbre.dataProvider = contenu_arbre;
		
		// fonction pour ouvrir le dernier noeud (fonctionne si repertoire)
		var aNode:XMLNode = contenu_arbre.lastChild;
		arbre.setIsOpen(aNode,true,false,true);
		var bNode:XMLNode = aNode.lastChild;
	    arbre.setIsOpen(bNode,true,true,true);
}
contenu_arbre.load("tree.xml");

// fonction qui récupère la valeur src du noeud sélectionné
var navig_arbre:Object = new Object();
navig_arbre.change = function(evt:Object) {
	var branche_arbre:XMLNode = evt.target.selectedItem;
	if (branche_arbre.attributes.src != undefined) {
		// ouvre le document dans une nouvelle fenêtre
		getURL(branche_arbre.attributes.src,"_blank");
	}
};
arbre.addEventListener("change", navig_arbre);

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Bonjour, je veux savoir si c'est possible de changer les dimensions de l'application fash, je voudrait réduire la hauter !

Merci d'avance ;)
Messages postés
7
Date d'inscription
mardi 20 avril 2010
Statut
Membre
Dernière intervention
21 mai 2010

Salut les gens!

Voilà juste une version modifiée de tree.php qui vous permettra d'afficher tree.xml sous une forme visible ;)

<?php
function ScanDirXML($sBaseDir, $sDirectory, $sOpenDirectory, $tab)
{
$i=0;

if (is_dir($sDirectory) && is_readable($sDirectory))
{
$aDirContent = glob($sDirectory . "*");
sort($aDirContent);

foreach($aDirContent as $sDirItem)
{
$j = 0;

while ($j < $tab)
{
echo "\t";
$j++;
}

if(is_dir($sDirItem))
{
$sDirItemTitle = array_pop(explode("/", $sDirItem));

$sDirItemUrl = urlencode(substr(dirname($sDirItem), strlen($sBaseDir)));
echo "<directory label='$sDirItemTitle'>\n";
$sDir_test = 'ok';
$tab +=1;
ScanDirXML($sBaseDir, $sDirItem . "/", $sOpenDirectory, $tab);
$tab -=1;
}
else
{
$sDirItemPath = dirname($sDirItem);
$sExt = array_pop(explode(".", $sDirItem));
$sDirItemTitle = basename($sDirItem, "." . $sExt);
echo "<file label='$sDirItemTitle' data='$i' src='$sDirItem'/>\n";
$sDir_test = ''; // on met un ensemble vide solus un peu facile mais bon ...
}

if($sDir_test == 'ok')
{
$j = 0;

while ($j < $tab)
{
echo "\t";
$j++;
}

echo "</directory>\n";
unset($sDir_test);
}
}
}
}

$sBaseDir = "./repertoire";
$i = 0;

ob_start();

echo "<?xml version='1.0' encoding='UTF-8' ?>\n";
$tab = 0;
ScanDirXML($sBaseDir, $sBaseDir, $sBaseDir . "/", $tab);

$content = ob_get_contents();
$code_html = $content;
$fichier_html = "tree.xml";
$genere_html=fopen($fichier_html,"w+");
fputs($genere_html,$code_html);
fclose($genere_html);
?>

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="450" height="350" id="tree" align="middle">

</object>
Messages postés
7
Date d'inscription
vendredi 19 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2009

j'ai trouvé! c'était bien les lignes ç rajouter en commentaire! super script ;)
Messages postés
7
Date d'inscription
vendredi 19 septembre 2008
Statut
Membre
Dernière intervention
29 octobre 2009

Super le script! je cherchais ça depuis plusieurs jours!

Juste un ptit soucis pour le scan de mes dossiers, le fichier XML généré ne reprend pas les fichiers contenu dedans et si j'analyse mon fichier XML, il ne contient que la balise <node label=''></node>. Serait-ce dû à un problème de longueur de mes fichiers? il s'agit de fichiers pdf et word.

Je précise que j'ai bien mis en commentaire les lignes nécessaires dans le fichier "tree.php" comme indiqué.
Messages postés
3
Date d'inscription
jeudi 4 août 2005
Statut
Membre
Dernière intervention
28 mai 2009

Bonjour, le problème que tu vas rencontrer c'est que tu vas effectuer un renommage des fichiers en scanant avec le PHP (utf8_encode ou addslashes...) et le XML que tu vas générer ne contiendra que des liens morts (les noms générés ne sont pas les vrais noms des fichiers).
Et pour info, le script flash ne lit que des valeurs UTF8 ou valeurs communes avec un codage ISO-8859-1(flash oblige).
Je travaille dessus et je reviens d'ici peu.
Afficher les 24 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.