Browse Source

Ranger le formulaire de saisies en 3 blocs : Contenu, Affichage et Avancé.

Permettre de ranger des saisies associées au champ #PARAMETRES dans les groupes Affichage et Avancé via une nouvelle option dans le YAML (options/groupe)
pull/6/head
Eric Lupinacci 1 year ago
parent
commit
459533f142
  1. 110
      formulaires/editer_noisette.php
  2. 14
      lang/ncore_fr.php
  3. 2
      paquet.xml

110
formulaires/editer_noisette.php

@ -37,41 +37,83 @@ function formulaires_editer_noisette_saisies_dist($plugin, $id_noisette, $redire
)
);
// Ensuite on insère un fieldset contenant les paramètres de la noisette
// On construit trois groupes de saisies :
// - celui des paramètres de contenu
// - celui des paramètres d'affichage qui contient toujours à minima les classes CSS
// - celui des paramètres avancés qui peut contenir l'encpasulation suivant le mode utilisé (auto ou non)
$saisies_par_groupe = array(
'contenu' => array(),
'affichage' => array(),
'avance' => array(),
);
// Groupe des saisies contenu
// -- Récupérer la description de la noisette
include_spip('inc/ncore_noisette');
$noisette = noisette_lire($plugin, intval($id_noisette));
// -- Récupérer la description des saisies
// -- Récupérer la description des saisies de contenu
include_spip('inc/ncore_type_noisette');
$type_noisette = type_noisette_lire($plugin, $noisette['type_noisette']);
$champs = $type_noisette['parametres'];
// -- Si pas de paramètre pour la noisette on le précise à l'utilisateur.
if (!$champs) {
$champs = array(
// -- On parcours les saisies de paramètres pour identifier si certaines doivent être transférées
// dans un autre groupe que celui de contenu
foreach ($champs as $_cle => $_saisie) {
if (empty($_saisie['options']['groupe'])) {
$saisies_par_groupe['contenu'][] = $_saisie;
} else {
$saisies_par_groupe[$_saisie['options']['groupe']][] = $_saisie;
}
}
// -- Si pas de paramètre de contenu pour la noisette on le précise à l'utilisateur.
if (!$saisies_par_groupe['contenu']) {
$saisies_par_groupe['contenu'] = array(
array(
'saisie' => 'explication',
'options' => array(
'nom' => 'notice_sans_parametre',
'texte' => '<:ncore:saisie_0_parametre_explication:>'
'texte' => '<:ncore:saisie_contenu_0_parametre_explication:>'
)
)
);
}
// -- Ajout des saisies dans un fieldset "Paramètres"
// -- Ajout des saisies de contenu dans un fieldset "Contenu"
$saisies[] = array(
'saisie' => 'fieldset',
'options' => array(
'nom' => 'fieldset_parametrage',
'label' => '<:ncore:saisie_parametrage_legende:>'
'nom' => 'fieldset_contenu',
'label' => '<:ncore:saisie_contenu_legende:>'
),
'saisies' => $champs
'saisies' => $saisies_par_groupe['contenu']
);
// Ensuite, si le mode d'encapsulation automatique a été débrayé, on insère un fieldset contenant
// le mode d'encapsulation propre de la noisette (sauf pour les conteneurs qui n'ont pas de capsule).
include_spip('ncore_fonctions');
// Groupe des saisies affichage
// -- Compléter le groupe des saisies d'affichage par la saisie des css appliqués à la capsule ou au conteneur
// Toujours affiché sauf si le mode d'encapsulation automatique a été débrayé
$saisie_css = $type_noisette['css_saisies'];
if (
include_spip('ncore_fonctions')
and !_NCORE_ENCAPSULATION_AUTO
) {
$saisie_css['options']['afficher_si'] = '(@est_conteneur@ == "oui") || (@encapsulation@ == "oui") || ((@encapsulation@ == "defaut") && (@config:noizetier/encapsulation_noisette@ == "on"))';
}
$saisies_par_groupe['affichage'] = array_merge($saisies_par_groupe['affichage'], $saisie_css);
// -- Ajout des saisies d'affichage dans un fieldset "Affichage" (jamais vide)
$saisies[] = array(
'saisie' => 'fieldset',
'options' => array(
'nom' => 'fieldset_affichage',
'label' => '<:ncore:saisie_affichage_legende:>'
),
'saisies' => $saisies_par_groupe['affichage']
);
// Groupe des saisies avancé
// -- si le mode d'encapsulation automatique a été débrayé, on ajoute une saisie au groupe avancé :
// le mode d'encapsulation propre de la noisette (sauf pour les conteneurs qui n'ont pas de capsule).
if (
!_NCORE_ENCAPSULATION_AUTO
and $noisette['est_conteneur'] !== 'oui'
@ -88,39 +130,27 @@ function formulaires_editer_noisette_saisies_dist($plugin, $id_noisette, $redire
);
// -- Construction de la saisie de la méthode d'encapsulation
$saisies[] = array(
'saisie' => 'fieldset',
$saisies_par_groupe['avance'][] = array(
'saisie' => 'radio',
'options' => array(
'nom' => 'fieldset_encapsulation',
'label' => '<:ncore:saisie_encapsulation_legende:>'
),
'saisies' => array(
array(
'saisie' => 'radio',
'options' => array(
'nom' => 'encapsulation',
'label' => '<:ncore:saisie_encapsulation_label:>',
'datas' => $options_encapsulation,
)
)
'nom' => 'encapsulation',
'label' => '<:ncore:saisie_encapsulation_label:>',
'datas' => $options_encapsulation,
)
);
}
// -- Construction de la saisie des css appliqués à la capsule
// Toujours affiché sauf si le mode d'encapsulation automatique a été débrayé
$saisie_css = array(
'saisie' => 'fieldset',
'options' => array(
'nom' => 'fieldset_css',
'label' => '<:ncore:saisie_css_legende:>',
),
'saisies' => $type_noisette['css_saisies']
);
if (!_NCORE_ENCAPSULATION_AUTO) {
$saisie_css['options']['afficher_si'] = '(@est_conteneur@ == "oui") || (@encapsulation@ == "oui") || ((@encapsulation@ == "defaut") && (@config:noizetier/encapsulation_noisette@ == "on"))';
// -- Ajout des saisies avancées dans un fieldset "Avancé" si il existe au moins une saisie
if ($saisies_par_groupe['avance']) {
$saisies[] = array(
'saisie' => 'fieldset',
'options' => array(
'nom' => 'fieldset_avance',
'label' => '<:ncore:saisie_avance_legende:>'
),
'saisies' => $saisies_par_groupe['avance']
);
}
$saisies[] = $saisie_css;
}
return $saisies;

14
lang/ncore_fr.php

@ -10,19 +10,19 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'erreur_type_noisette_inactif' => 'Le type de noisette @type_noisette@ est inactivé car le ou les plugins suivants sont désactivés : @plugins@.',
// S
'saisie_affichage_legende' => 'Affichage',
'saisie_avance_legende' => 'Avancé',
'saisie_conteneur_balise_label' => 'Balise matérialisant le conteneur',
'saisie_contenu_0_parametre_explication' => 'Cette noisette ne dispose pas de paramètre de contenu.',
'saisie_contenu_legende' => 'Contenu',
'saisie_css_explication' => 'Vous pouvez ajouter des styles complémentaires à la noisette.',
'saisie_css_legende' => 'Paramètres d\'affichage',
'saisie_css_label' => 'Classes CSS',
'saisie_encapsulation_legende' => 'Utilisation d\'une capsule',
'saisie_encapsulation_label' => 'Encapsulation',
'saisie_encapsulation_defaut_option' => 'Utiliser le mode par défaut configuré pour le noiZetier <em>(@defaut@)</em>',
'saisie_encapsulation_non_option' => 'Ne jamais encapsuler la noisette',
'saisie_encapsulation_oui_option' => 'Inclure la noisette dans une capsule',
'saisie_encapsulation_label' => 'Encapsulation',
'saisie_encapsulation_non_info' => 'sans capsule',
'saisie_encapsulation_non_option' => 'Ne jamais encapsuler la noisette',
'saisie_encapsulation_oui_info' => 'avec capsule',
'saisie_0_parametre_explication' => 'Cette noisette ne dispose pas de paramètre de configuration propre.',
'saisie_parametrage_legende' => 'Paramètres de configuration',
'saisie_encapsulation_oui_option' => 'Inclure la noisette dans une capsule',
// P
'preview_conteneur' => 'Balise englobante : @balise@',

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="ncore"
categorie="outil"
version="0.13.0"
version="0.14.0"
etat="stable"
compatibilite="[3.2.0;3.2.*]"
logo="ncore_logo-32.png"

Loading…
Cancel
Save