Accueil > > > XML DE DESCRIPTION DE DOSSIERS NAUTILUS
XML DE DESCRIPTION DE DOSSIERS NAUTILUS
Information sur la source
Description
cette source d'adresse aux utilisateurs de gnome.
nautilus permet de personaliser l'affichage des dossiers, mettre une image a la place de l'icone par exemple. Pour ceux qui telechargent de la musique libre sur jamendo, vous pouvez constater qu'une fois que vous avez telecharge 100 albums, il devient difficile de changer chaque image de chaque album...
ce script automatise la tache, il va chercher dans le dossier, la premiere image vennue (recursivement), et il la place comme icone.
dans la source, j'ai mis ces deux lignes :
$dir='/media/Yakumo/Musique/musique libre';
$dest='/home/max/.nautilus/metafiles/file :%2F%2F%2Fmedia%2FYakumo%2FMusique%2Fmusique%2520l ibre.xml';
il faut les remplacer par le dossier du dossier qui contient les sous-dossiers a "colorier", et le chemin du fichier de conf qui correspond.
pour lancer, il suffit de taper en ligne de commande :
$php iconize.php
Source
- <?php
- /**
- * @file iconize.php
- * @brief le fichier qui permet d'afficher dans un dossier, une icone par sous dossier, en prennant la premiere image vennue :)
- * @test php iconize.php
- */
- include('top.php');
-
- function first_icon($path){
- $a=opendir($path);
- while ($b=readdir($a)){
- if ($b{0}!='.'){
- if (is_dir($path.$b)){
- if ($c=first_icon($path.$b.'/')) return $c;
- }else if (substr($b, strlen($b)-3)=='jpg'){
- return $path.$b;
- }
- }
- }
- return false;
- }
-
- function encode($str, $a=true){
- $b=array(' ', 'é', ']', '[', ',', 'î');
- $c=array('%20', '%C3%A9', '%5D', '%5B', '%2C', '%C3%A');
- if ($a) {$b[]='/'; $c[]='%2F';}
- return str_replace( $b, $c, $str );
- }
-
- $dir='/media/Yakumo/Musique/musique libre';
- $dest='/home/max/.nautilus/metafiles/file:%2F%2F%2Fmedia%2FYakumo%2FMusique%2Fmusique%2520libre.xml';
- $a=new GnomeDirXml();
- $b=opendir($dir);
- while ($c=readdir($b)){
- if ($c{0}!=='.'){
- $a->appendChild($d=new TemplateXML('file'));
- $d->setAttribute('name', encode($c));
- $d->setAttribute('timestamp', time()+10000);
- $d->setAttribute('custom_icon', encode(substr(first_icon($dir.'/'.$c.'/'), strlen($dir)+2+strlen($c)), false));
- }
- }
- $fd=fopen($dest, 'w');
- fputs($fd, $a->show());
- fclose($fd);
-
- ?>
<?php
/**
* @file iconize.php
* @brief le fichier qui permet d'afficher dans un dossier, une icone par sous dossier, en prennant la premiere image vennue :)
* @test php iconize.php
*/
include('top.php');
function first_icon($path){
$a=opendir($path);
while ($b=readdir($a)){
if ($b{0}!='.'){
if (is_dir($path.$b)){
if ($c=first_icon($path.$b.'/')) return $c;
}else if (substr($b, strlen($b)-3)=='jpg'){
return $path.$b;
}
}
}
return false;
}
function encode($str, $a=true){
$b=array(' ', 'é', ']', '[', ',', 'î');
$c=array('%20', '%C3%A9', '%5D', '%5B', '%2C', '%C3%A');
if ($a) {$b[]='/'; $c[]='%2F';}
return str_replace( $b, $c, $str );
}
$dir='/media/Yakumo/Musique/musique libre';
$dest='/home/max/.nautilus/metafiles/file:%2F%2F%2Fmedia%2FYakumo%2FMusique%2Fmusique%2520libre.xml';
$a=new GnomeDirXml();
$b=opendir($dir);
while ($c=readdir($b)){
if ($c{0}!=='.'){
$a->appendChild($d=new TemplateXML('file'));
$d->setAttribute('name', encode($c));
$d->setAttribute('timestamp', time()+10000);
$d->setAttribute('custom_icon', encode(substr(first_icon($dir.'/'.$c.'/'), strlen($dir)+2+strlen($c)), false));
}
}
$fd=fopen($dest, 'w');
fputs($fd, $a->show());
fclose($fd);
?>
Conclusion
la fonction encode ne fonctionne pas parfaitement bien, mais ca reste utilisable.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
XML ou MySQL ?? [ par Garno ]
Salut,J'aimerais savoir s'il est plus rapide d'utilise le XML ou le MySQL pour conserver la configuration de mon site web. Comme je prévois beaucoup d
[PHP 5][DOM XML] Suppression du noeud courant [ par javajavajava ]
Bonjour, voici comment se présente mon fichier xml<?xml version="1.0" encoding="utf-8" ?> <menu><nbelements>5</nbelements> <
XML insérer un élément tout au dessus [ par Straw ]
Bonjour à tous, je pose cette question dans le cadre de mon mémoire... que je dois rendre dans 12jours Je développe un site flash-x
configuration [ par khaldounaouar ]
ma page (configurer le reseau.php contient (@ip,masque,DNS,et,deux boutons valider,Annuler)je veut faire une connexion entre le bouton valider et le f
configuration réseau [ par walidospikkos ]
salut à tous, j'ai conçu une interface avec php qui m'offre la possibilité de modifier l'IP, l'@ DNS et le masque de ma machine. mon in
Timeout flux XML [ par FhX ]
Bon, petit problème avec les flux XML récupéré via simpleXML en PHP5. Comment on défini un timeout sur ce machin ? Parce que j'ai beau essayer avec le
pb creation repertoire [ par nacer_1954 ]
bonjour; j'ai un proble avec mkdir quand je fais mkdir ("dossiers/affaires/encours/nom_fichier",0700); ça marche normalement mais si je f
administration réseau sous linux via PHP [ par khaldounaouar ]
Salut tout le monde; bref j'ai conçu une page php "outil.php" dans le but d'administrer mon réseau(configuration des hôtes, serveurs...) qui doit fon
configuration réseau via php [ par khaldounaouar ]
salut tous le monde j'ai conçu une page .php que j'envisage configurer mon reseau local à travers je travaille avec php4 et apache le corps de ma p
générer un fichier XML à partir de mySQL [ par Migs ]
Bonjour, je voudrais savoir s'il est possible de créer un fichier XML directement à partir de mySQL par le biais de procédures stockées. Je ne souhait
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
CHAMPS TIMECHAMPS TIME par vargas
Cliquez pour lire la suite par vargas
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|