Browse Source

Refactoring, rationalisation du code de recherche des skins, et renommage des 2 skins lity par defaut pour les faire apparaitre en premier dans la liste

pull/1/head
Cerdic 5 months ago
parent
commit
0d1b1df833
  1. 28
      formulaires/configurer_mediabox.php
  2. 2
      formulaires/inc-configurer_mediabox-colorbox.html
  3. 42
      formulaires/inc-configurer_mediabox-colorbox_fonctions.php
  4. 4
      formulaires/inc-configurer_mediabox-lity.html
  5. 42
      formulaires/inc-configurer_mediabox-lity_fonctions.php
  6. 114
      inc/mediabox.php
  7. 5
      lang/mediabox_fr.php
  8. 0
      lity/skins/_simple-dark/lity.css
  9. 0
      lity/skins/_simple-white/lity.css

28
formulaires/configurer_mediabox.php

@ -11,33 +11,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
include_spip('mediabox_pipelines');
function mediabox_presenter_selection_skins($skins, $selected, $name = 'skin') {
$out = '';
if (!is_array($skins) or !count($skins)) {
return $out;
}
foreach ($skins as $k => $skin) {
$id = preg_replace(',[^a-z0-9_],i', '_', "${name}_{$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 choix-skin'>";
$out .= "<input type='radio' name='$name' id='$id' value='$k'$sel />";
$out .= "<label for='$id'>$label</label>";
$out .= "</div>\n";
}
$out = "<div class='choix clearfix'>$out</div>";
return $out;
}
include_spip('inc/mediabox');
function formulaires_configurer_mediabox_charger_dist() {

2
formulaires/inc-configurer_mediabox-colorbox.html

@ -4,7 +4,7 @@
#SET{name,colorbox/skin}#SET{obli,''}#SET{defaut,black-striped}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
[<div class="editer editer_skin editer_colorbox_skin[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label><:mediabox:label_skin:></label>
(#REM|colorbox_lister_skins|mediabox_presenter_selection_skins{#ENV{colorbox/skin,#GET{defaut}},'colorbox\[skin\]'})
(#VAL{colorbox}|mediabox_lister_skins{''}|mediabox_presenter_selection_skins{#ENV{colorbox/skin,#GET{defaut}},'colorbox\[skin\]'})
</div>]
#SET{name,colorbox/transition}#SET{obli,''}#SET{defaut,elastic}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_colorbox_transition[ (#ENV**{erreurs}|table_valeur{transition}|oui)erreur]">

42
formulaires/inc-configurer_mediabox-colorbox_fonctions.php

@ -1,42 +0,0 @@
<?php
/*
* Plugin xxx
* (c) 2009 xxx
* Distribue sous licence GPL
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function colorbox_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;
}

4
formulaires/inc-configurer_mediabox-lity.html

@ -1,8 +1,8 @@
<div class="editer-groupe">
#SET{name,lity/skin}#SET{obli,''}#SET{defaut,black-striped}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
#SET{name,lity/skin}#SET{obli,''}#SET{defaut,_simple-dark}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
[<div class="editer editer_skin editer_lity_skin[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
<label><:mediabox:label_skin:></label>
(#REM|mediabox_lity_lister_skins|mediabox_presenter_selection_skins{#ENV{lity/skin,#GET{defaut}},'lity\[skin\]'})
(#VAL{lity}|mediabox_lister_skins|mediabox_presenter_selection_skins{#ENV{lity/skin,#GET{defaut}},'lity\[skin\]'})
</div>]
#SET{name,lity/minWidth}#SET{obli,''}#SET{defaut,400px}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<div class="editer editer_lity_minWidth[ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">

42
formulaires/inc-configurer_mediabox-lity_fonctions.php

@ -1,42 +0,0 @@
<?php
/*
* Plugin xxx
* (c) 2009 xxx
* Distribue sous licence GPL
*
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function mediabox_lity_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 . 'lity/skins/';
if (@is_dir($f)) {
$liste = preg_files($f, 'lity[.]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;
}

114
inc/mediabox.php

@ -0,0 +1,114 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Rechercher les fichiers css de skin mediabox disponibles dans un sous repertoire du chemin()
*
* @param $dir
* @param $fichier_cherche
* @return array
*/
function mediabox_lister_skin_files($dir, $fichier_cherche) {
$liste_fichiers = array();
$dir = trim($dir, '/');
$chemin = creer_chemin();
foreach ($chemin as $c) {
$cd = $c . $dir . '/';
if (@is_dir($cd)) {
$subdirs = glob($cd . '*', GLOB_ONLYDIR);
foreach ($subdirs as $sd) {
if (is_file($f = $sd . '/' . $fichier_cherche)) {
$nom = basename($sd);
// 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] = $f;
}
}
}
}
}
return $liste_fichiers;
}
/**
* lister les skins d'une box donnee
*
* @param string $box_name
* @param string $sous_repertoire
* @return array[]
*/
function mediabox_lister_skins($box_name, $sous_repertoire = 'skins') {
$skins = array('none' => array('nom' => _T('mediabox:label_aucun_style')));
$dir = $box_name . '/';
if ($sous_repertoire) {
$dir .= trim($sous_repertoire, '/') . '/';
}
$liste_fichiers = mediabox_lister_skin_files($dir, $box_name . '.css');
foreach ($liste_fichiers as $short => $fullpath) {
$nom = _T($s = 'mediabox:info_box_' . str_replace('-', '_', $box_name . '_nom_skin_' . $short), array(), array('force' => false));
if (!$nom) {
$nom = $short;
}
$skins[$short] = array(
'nom' => $nom
);
if (file_exists($f = dirname($fullpath) . '/vignette.jpg')) {
$skins[$short]['img'] = $f;
}
}
return $skins;
}
/**
* Presenter le choix de skin d'une box parmi uns liste genereee par la fonction mediabox_lister_skins()
* @param $skins
* @param $selected
* @param string $name
* @return string
*/
function mediabox_presenter_selection_skins($skins, $selected, $name = 'skin') {
$out = '';
if (!is_array($skins) or !count($skins)) {
return $out;
}
$rel = "habillage_" . substr(md5($name), 0, 4);
foreach ($skins as $k => $skin) {
$id = preg_replace(',[^a-z0-9_],i', '_', "${name}_{$k}");
$sel = ($selected == "$k" ? " checked='checked'" : '');
$balise_img = chercher_filtre('balise_img');
$label = $skin['nom'];
if (!empty($skin['img'])) {
$label =
'<a href="' . $skin['img'] . '" class="mediabox" rel="'.$rel.'" title="'.attribut_html($label).'">'
. $balise_img($skin['img'], $label)
. '</a>';
}
$out .= "<div class='choix choix-skin'>";
$out .= "<input type='radio' name='$name' id='$id' value='$k'$sel />";
$out .= "<label for='$id'>$label</label>";
$out .= "</div>\n";
}
$out = "<div class='choix clearfix'>$out</div>";
return $out;
}

5
lang/mediabox_fr.php

@ -27,6 +27,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'explication_splash_url' => 'Indiquez l’url du média à afficher automatiquement dans une boîte lors de la première visite sur le site public.',
'explication_traiter_toutes_images' => 'Insérer une boîte sur toutes les images ?',
// I
'info_box_lity_nom_skin__simple_dark' => 'Défaut Noire',
'info_box_lity_nom_skin__simple_white' => 'Défaut Claire',
'info_box_lity_nom_skin_fancybox' => 'Style Fancybox',
// L
'label_active' => 'Activer la Boîte Multimédia dans le site public',
'label_apparence' => 'Apparence',

0
lity/skins/simple-dark/lity.css → lity/skins/_simple-dark/lity.css

0
lity/skins/simple-white/lity.css → lity/skins/_simple-white/lity.css

Loading…
Cancel
Save