5 * Distribue sous licence GPL
9 if (!defined('_ECRIRE_INC_VERSION')) return;
11 include_spip('mediabox_pipelines');
13 function box_lister_skins(){
14 $skins = array('none'=>array('nom'=>_T('mediabox:label_aucun_style')));
17 $liste_fichiers = array();
19 foreach (creer_chemin() as $d) {
22 $liste = preg_files($f,"colorbox[.]css$",$maxfiles-count($liste_fichiers),$recurs);
23 foreach($liste as $chemin){
24 $nom = substr(dirname($chemin),strlen($f));
25 // ne prendre que les fichiers pas deja trouves
26 // car find_in_path prend le premier qu'il trouve,
27 // les autres sont donc masques
28 if (!isset($liste_fichiers[$nom]))
29 $liste_fichiers[$nom] = $chemin;
33 foreach($liste_fichiers as $short=>$fullpath){
34 $skins[$short] = array('nom'=>basename($short));
35 if (file_exists($f = dirname($fullpath)."/vignette.jpg"))
36 $skins[$short]['img'] = $f;
41 function box_choisir_skin($skins,$selected,$name='skin'){
43 if (!is_array($skins) OR !count($skins))
45 foreach($skins as $k=>$skin){
46 $id = "${name}_".preg_replace(",[^a-z0-9_],i", "_", $k);
47 $sel = ($selected=="$k" ?
" checked='checked'":'');
48 $balise_img = chercher_filtre('balise_img');
49 $label = isset($skin['img'])?
50 '<a href="'.$skin['img'].'" class="mediabox" rel="habillage">'.$balise_img($skin['img'],$skin['nom'])."</a>"
53 $out .= "<div class='choix'>";
54 $out .= "<input type='radio' name='$name' id='$id' value='$k'$sel />";
55 $out .= "<label for='$id'>$label</label>";
62 function formulaires_configurer_mediabox_charger_dist(){
63 $valeurs = mediabox_config(true);
64 $valeurs['_skins'] = box_lister_skins();
69 function formulaires_configurer_mediabox_traiter_dist(){
70 $config = mediabox_config(true);
72 include_spip('inc/meta');
73 if (_request('reinit')){
74 foreach ($config as $k=>$v){
77 effacer_meta('mediabox');
80 // cas particulier de la checkbox :
81 if (!_request('active'))
82 set_request('active','non');
83 foreach ($config as $k=>$v){
84 if (!is_null(_request($k)))
85 $config[$k] = _request($k);
87 ecrire_meta('mediabox',serialize($config));
90 return array('message_ok'=>_T('config_info_enregistree'),'editable'=>true);