@ -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 ;