1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/spip_ynh.git synced 2024-09-03 20:25:59 +02:00
spip_ynh/sources/plugins-dist/mediabox/formulaires/configurer_mediabox.php
2015-04-28 17:10:23 +02:00

93 lines
2.5 KiB
PHP

<?php
/*
* Plugin xxx
* (c) 2009 xxx
* Distribue sous licence GPL
*
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
include_spip('mediabox_pipelines');
function box_lister_skins(){
$skins = array('none'=>array('nom'=>_T('mediabox:label_aucun_style')));
$maxfiles = 1000;
$liste_fichiers = array();
$recurs = array();
foreach (creer_chemin() as $d) {
$f = $d."colorbox/";
if (@is_dir($f)){
$liste = preg_files($f,"colorbox[.]css$",$maxfiles-count($liste_fichiers),$recurs);
foreach($liste as $chemin){
$nom = substr(dirname($chemin),strlen($f));
// ne prendre que les fichiers pas deja trouves
// car find_in_path prend le premier qu'il trouve,
// les autres sont donc masques
if (!isset($liste_fichiers[$nom]))
$liste_fichiers[$nom] = $chemin;
}
}
}
foreach($liste_fichiers as $short=>$fullpath){
$skins[$short] = array('nom'=>basename($short));
if (file_exists($f = dirname($fullpath)."/vignette.jpg"))
$skins[$short]['img'] = $f;
}
return $skins;
}
function box_choisir_skin($skins,$selected,$name='skin'){
$out = "";
if (!is_array($skins) OR !count($skins))
return $out;
foreach($skins as $k=>$skin){
$id = "${name}_".preg_replace(",[^a-z0-9_],i", "_", $k);
$sel = ($selected=="$k" ?" checked='checked'":'');
$balise_img = chercher_filtre('balise_img');
$label = isset($skin['img'])?
'<a href="'.$skin['img'].'" class="mediabox" rel="habillage">'.$balise_img($skin['img'],$skin['nom'])."</a>"
:$skin['nom'];
$out .= "<div class='choix'>";
$out .= "<input type='radio' name='$name' id='$id' value='$k'$sel />";
$out .= "<label for='$id'>$label</label>";
$out .= "</div>\n";
}
return $out;
}
function formulaires_configurer_mediabox_charger_dist(){
$valeurs = mediabox_config(true);
$valeurs['_skins'] = box_lister_skins();
return $valeurs;
}
function formulaires_configurer_mediabox_traiter_dist(){
$config = mediabox_config(true);
include_spip('inc/meta');
if (_request('reinit')){
foreach ($config as $k=>$v){
set_request($k);
}
effacer_meta('mediabox');
}
else {
// cas particulier de la checkbox :
if (!_request('active'))
set_request('active','non');
foreach ($config as $k=>$v){
if (!is_null(_request($k)))
$config[$k] = _request($k);
}
ecrire_meta('mediabox',serialize($config));
}
return array('message_ok'=>_T('config_info_enregistree'),'editable'=>true);
}
?>