Langue
Carte des utilisateurs
🎨 Skin viewer
Anniversaire
Aucun anniversaire à venir
Galeries Photo
Petites Annonces

0 Annonce(s) publiée(s)

Divers
Sports
nature
Cat de test

Consulter

Glossaire
icon_npds_glossaire

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | Autres

Agenda

Mars
2026

L M M J V S D
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Jour avec événement(s)
Jour férié

Index du forum »»  npds_galerie »» [Résolu] - input type file prototype

[Résolu] - input type file prototype#1107

1Contributeur(s)
jpb
1 Modérateur(s)
jpb
jpb jpbicon_post
dans https://labo.infocapagde.com/modules.php?ModPath=npds_galerie&ModStart=gal&op=formimgs

j'ai fini par implémenté les input file customisé de BS
(pour info les input de type file sont les plus dur à customiser du fait de leur complexité (sécurité, info native du navigateur etc) .... et donc pour arriver à ça il faut la css complexe de BS + plus une petite touche de js car tout ne peut pas être implémenté par les css ...

merci de tester sur tous les navigateurs (sur le labo et sous le theme npds_boost)
dites moi ce que vous en pensez car je vais probablement les généraliser à l'ensemble du portail si ça ne présente pas de problème


Note sur le process :

le form doit avoir un attribut lang
lang="'.language_iso(1,'','').'"


l'input utilise la class spécifique bs
class="custom-file-input"


traduction des occurances dans la css
.custom-file-input:lang(fr) ~ .custom-file-label::after {

content: "Choisir ..."
}
.custom-file-input:lang(es) ~ .custom-file-label::after {
content: "Elegir ..."
}
.custom-file-input:lang(de) ~ .custom-file-label::after {
content: "Wählen ..."
}
.custom-file-input:lang(en) ~ .custom-file-label::after {
content: "Browse ..."
}
.custom-file-input:lang(zh) ~ .custom-file-label::after {
content: "选择 ..."
}



et ce bout de js
qui sert a réinitialisé l'input
   <script type="text/!javascript!">

//<![CDATA[
$(".custom-file-input").on("change",function(){
$(this).next(".custom-file-label").addClass("selected").html($(this).val().split(\'\\\\\').pop());
});
window.reset2 = function (e,f) {
e.wrap("<form>").closest("form").get(0).reset();
e.unwrap();
event.preventDefault();
$("#lab"+f).html("'.gal_translate("Sélectionner votre image").'")
};
//]]>
&lt;/script>
L'eau goutte à  goutte finit toujours par percer la pierre...