mortimer
16 juillet 2005 19:19
|
> Afficher le nom réel (+ extension) d’un fichier dans la boucle documents
c’est le comportement par défaut de la balise #TITRE, si celui ci n’est pas changé, il est égal au nom de fichier.
|
|
DoriaN
17 juillet 2005 13:02
|
Afficher le nom réel (+ extension) d’un fichier dans la boucle documents
probablement que [(#EMBED_DOCUMENT|fichier)] devrait faire l’affaire pour afficher le nom du fichier.
|
|
Alex
17 juillet 2005 16:30
|
> La solution !!
La balise titre n’affiche pas en fait le nom réel du fichier, c’est bien mon problème ! Si le titre n’est pas renseigné dans l’interface privé, la balise #TITRE n’affichera tout simplement rien...
La réponse de Dorian m’a mis sur la piste. Il faut utiliser la balise |filtre, non pas sur #EMBED_DOCUMENT, mais sur #LOGO_DOCUMENT, ce qui subsitue l’adresse au logo. On a alors un nom de fichier du type : IMG/vignettes/monimage.jpg ... pas très joli.
Pour obtenir simplement le nom du fichier, il faut aller modifier le fichier « inc-calcul-outils.php3 » qui se trouve à la racine du site, et remplacer la ligne n°34 :
$r = ereg_replace("^" . _DIR_IMG, "", $on) ;
par :
$r = ereg_replace("^IMG/vignettes/","", $on) ;
en plaçant dans le squelette la balise [(#LOGO_DOCUMENT|fichier)], on affiche ainsi le nom original du fichier avec son extension.
Peut être un peu traficoté, mais c’est la solution la plus simple que je vois...
|
|
DoriaN
17 juillet 2005 16:50
|
> Afficher le nom réel (+ extension) d’un fichier dans la boucle documents
tu ferais mieux de reprendre le filtre |fichier (qui doit être dans ecrire/inc_filtres.php3) et de le modifier pour qu’il fasse ce que tu cherches à faire, créant ainsi un nouveau filtre (dans mes_fonctions.php3), ça t’éviterais de modifier le code de spip.
|
James
17 juillet 2005 17:14
|
> Afficher le nom réel (+ extension) d’un fichier dans la boucle documents
J’ai essayé #FICHIER dans une boucle DOCUMENTS et le résultat me convient bien
|
mortimer
17 juillet 2005 17:22
|
> Afficher le nom réel (+ extension) d’un fichier dans la boucle documents
Alex, c’est loin d’être une bonne idée de modifier le noyau spip juste pour faire ça.
tu devrais plutôt faire un filtre à applique à la balise #FICHIER qui fait ce que tu veux.
|
|
alex
24 juillet 2005 04:43
|
The end II (le retour)
Exact !
Merci pour vos commentaire. J’utilise donc la balise #FICHIER (que je ne connaissais pas), avec le filtre maison suivant (dans mes_fonctions.php3) :
<?<br>
function nomfichier($fichier) { <br>
$Rep = "(gif|jpg|png)";<br>
$Ext = "(.gif|.jpg|.png)";<br>
$fichier = ereg_replace("IMG/$Rep/", "", $fichier) ;<br>
$fichier = ereg_replace("$Ext", "", $fichier) ;<br>
return $fichier;<br>
}<br>
?>
...qui a été très bidouillé sachant que je n’y connais rien en php !!! Mais apparemment ça marche. Si vous voyez des solutions pour épurer ce code.
Il s’utilise donc très simplement à l’intérieur de la boucle document : [(#FICHIER|nomfichier)]
Merci pour votre aide ;)
|
|
Léon
12 novembre 2007 15:46
|
Afficher le nom réel (+ extension) d’un fichier dans la boucle documents
nikel mais sans les ;)
c’est quand meme bizarre que de base, il n’y a pas de filtre qui permette d’avoir le nom du fichier avec ou sans l’extension...
Merci pour la fonction, j’en ai profiter pour rajouter qq extensions
// nom du fichier
function nomfichier($fichier) {
$Rep = "(gif|jpg|png|xls|doc|ppt|pdf|zip|rar)";
$Ext = "(.gif|.jpg|.png|.xls|.doc|.ppt|.pdf|.zip|.rar)";
$fichier = ereg_replace("IMG/$Rep/", "", $fichier) ;
$fichier = ereg_replace("$Ext", "", $fichier) ;
return $fichier;
}
|
|
[rg]
20 novembre 2008 14:26
|
+ simple
Code pour le fichier mes_fonctions.php :
function nom_fichier ($fichier) {
if (eregi('^IMG/[a-z]+/(.*)\.[a-z]+$',$fichier,$r)) {
return $r[1];
} else {
return $fichier;
}
}
Exemple d’utilisation dans une boucle DOCUMENTS :
...
[(#TITRE|supprimer_numero|sinon{[(#FICHIER|nom_fichier)]})]
...
Cordialement
|
denisb
20 novembre 2008 15:41
|
Afficher le nom réel (+ extension) d’un fichier dans la boucle documents
mieux ? :
if (preg_match(',^IMG/([a-z]+/)?(.*)\.[a-z]+$,', $fichier, $r)) {
return $r[2];
}
else {
return $fichier;
}
au cas où $fichier directement dans IMG/
|