Changeset 112698 in spip-zone


Ignore:
Timestamp:
Dec 9, 2018, 8:39:52 PM (7 months ago)
Author:
eric@…
Message:

Adaptation du noizetier à la dernière version de N-Core (encapsulation).
Tout n'est pas fonctionnel, il manque encore :

  • un problème de détection de l'input radio balise_noisette dans la config du noizetier (bug Saisies ???)
  • la prise en compte du mode d'encapsulation auto pour cacher la config balise_noisette et la suppression des saisies balise et css dans l'edition d'une noisette.

A tester.

Location:
_plugins_/noizetier/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/bloc_compiler.html

    r110218 r112698  
    1313                #SET{conteneur, #ARRAY{type_noisette, #TYPE_NOISETTE, id_noisette, #ID_NOISETTE}}
    1414                <BOUCLE_noisettes_descendants(BOUCLE_noisettes_enfants)></BOUCLE_noisettes_descendants>
    15                 #SET{avec_div, #CHAMP_SQL{balise}|=={defaut}|?{#CONFIG{noizetier/balise_noisette}, #CHAMP_SQL{balise}}}
    16                 [[(#GET{avec_div}|oui)<div class="noisette noisette_#TYPE_NOISETTE[ (#CHAMP_SQL{css})]">]
    17                         (#NOISETTE_COMPILER{#ID_NOISETTE})
    18                 [(#GET{avec_div}|oui)</div>]]
     15                        #NOISETTE_COMPILER{#ID_NOISETTE}
    1916        </BOUCLE_noisettes_enfants>
    2017                [</(#GET{balise})>]
    2118        </B_noisettes_enfants>
    22         #SET{avec_div, #CHAMP_SQL{balise}|=={defaut}|?{#CONFIG{noizetier/balise_noisette}, #CHAMP_SQL{balise}}}
    23         [[(#GET{avec_div}|oui)<div class="noisette noisette_#TYPE_NOISETTE[ (#CHAMP_SQL{css})]">]
    24                 (#NOISETTE_COMPILER{#ID_NOISETTE})
    25         [(#GET{avec_div}|oui)</div>]]
     19                #NOISETTE_COMPILER{#ID_NOISETTE}
    2620</BOUCLE_noisettes>
  • _plugins_/noizetier/trunk/formulaires/configurer_noizetier.html

    r112573 r112698  
    88
    99                <div class="editer-groupe">
    10                         [(#SAISIE{case, balise_noisette,
     10                        [(#SAISIE{radio, balise_noisette,
    1111                                label=<:noizetier:configurer_balise_noisette_label:>,
    12                                 label_case=<:noizetier:label_noizetier_balise:>,
     12                                datas=#ENV{_balise_options},
     13                                defaut=#ENV{balise_noisette},
    1314                                explication=<:noizetier:explication_noizetier_balise:>,
    1415                        })]
  • _plugins_/noizetier/trunk/formulaires/configurer_noizetier.php

    r110333 r112698  
    1111        include_spip('inc/cvt_configurer');
    1212        $valeurs = cvtconf_formulaires_configurer_recense('configurer_noizetier');
     13
     14        // Injecter les options possibles pour le défaut d'encapsulation
     15        $valeurs['_balise_options'] = array(
     16                'div'    => _T('noizetier:option_noizetier_balise_div'),
     17                'auto'   => _T('noizetier:option_noizetier_balise_auto'),
     18                'aucune' => _T('noizetier:option_noizetier_balise_aucune')
     19        );
    1320
    1421        // Injecter les objets exclus
  • _plugins_/noizetier/trunk/formulaires/editer_noisette.php

    r112569 r112698  
    5252                        $valeurs['css'] = $noisette['css'];
    5353                        // Construction de la liste des valeurs possibles pour le choix de la balise
    54                         include_spip('inc/config');
    55                         $config_balise = lire_config('noizetier/balise_noisette')
    56                                 ? _T('noizetier:option_noizetier_balise_oui')
    57                                 : _T('noizetier:option_noizetier_balise_non');
     54                        include_spip('ncore/noizetier');
     55                        $config_balise = _T('noizetier:option_noizetier_balise_' . noizetier_noisette_initialiser_capsule('noizetier'));
    5856                        $valeurs['_balise_options'] = array(
    59                                 'defaut' => _T('noizetier:option_noisette_balise_defaut', array('defaut' => $config_balise)),
    60                                 'on'     => _T('noizetier:option_noisette_balise_oui'),
    61                                 ''       => _T('noizetier:option_noisette_balise_non')
     57                                'defaut' => _T('noizetier:option_noisette_balise_defaut', array('defaut' => lcfirst($config_balise))),
     58                                'div'    => _T('noizetier:option_noisette_balise_oui'),
     59                                'auto'   => _T('noizetier:option_noisette_balise_auto'),
     60                                'aucune' => _T('noizetier:option_noisette_balise_non')
    6261                        );
    6362                        $valeurs['editable'] = true;
  • _plugins_/noizetier/trunk/lang/noizetier_fr.php

    r112574 r112698  
    2727        'compositions_non_installe' => '<b>Plugin compositions :</b> ce plugin n’est pas installé sur votre site. Il n’est pas nécessaire au fonctionnement du noizetier. Cependant, s’il est activé, vous pourrez déclarer des compositions directement dans le noizetier.',
    2828        'configurer_ajax_noisette_label' => 'Inclusion AJAX',
    29         'configurer_balise_noisette_label' => 'Balise englobante',
     29        'configurer_balise_noisette_label' => 'Encapsulation des noisettes',
    3030        'configurer_objets_noisettes_explication' => 'Sur ces types de contenus, il sera permis de personnaliser les noisettes <strong>contenu par contenu</strong>.',
    3131        'configurer_objets_noisettes_label' => 'Autoriser la personnalisation par contenu sur :',
     
    7070        'explication_noisette_css' => 'Vous pouvez ajouter à la balise englobante de la noisette d’éventuelles classes CSS supplémentaires.',
    7171        'explication_noizetier_ajax' => 'Le mode par défaut d’inclusion AJAX peut être modifié unitairement pour chaque noisette (fichier YAML).',
    72         'explication_noizetier_balise' => 'Le mode par défaut d’inclusion dans une balise englobante peut être modifié unitairement pour chaque noisette (paramètrage).',
     72        'explication_noizetier_balise' => 'Choisissez la méthode d’encapsulation des noisettes par défaut. L\'encapsulation peut-être modifié unitairement pour chaque noisette (paramètrage).',
    7373        'explication_noizetier_cfg_constant' => 'Cette valeur est actuellement définie via une constante, elle ne peut pas être changée ici.',
    7474        'explication_noizetier_profondeur_max' => 'Les noisettes peuvent s’imbriquer au moyen des noisettes de type conteneur. Vous pouvez définir un nombre maximal de niveaux d’imbrication.',
     
    105105        'formulaire_icon_explication' => 'Vous pouvez saisir le chemin relatif vers une icône (par exemple : <i>images/objet-liste-contenus.png</i>).',
    106106        'formulaire_identifiant_deja_pris' => 'Cet identifiant est déjà utilisé !',
    107         'formulaire_import_compos' => 'Importer les compositions du noizetier',
     107        'formulaire_import_contenu_configuration' => 'La configuration du plugin',
     108        'formulaire_import_contenu_noisettes' => 'Les noisettes',
     109        'formulaire_import_contenu_pages_explicites' => 'Les blocs exclus des pages explicites',
     110        'formulaire_import_contenu_compositions_virtuelles' => 'Les compositions virtuelles',
     111        'formulaire_import_contenu' => 'Choisissez les éléments à importer',
    108112        'formulaire_import_fusion' => 'Fusionner avec la configuration actuelle',
    109113        'formulaire_import_remplacer' => 'Remplacer la configuration actuelle',
    110         'formulaire_liste_compos_config' => 'Ce fichier de configuration définis les compositions du noizetier suivantes :',
    111         'formulaire_liste_pages_config' => 'Ce fichier de configuration définis des noisettes sur les pages suivantes :',
     114        'formulaire_import_resume' => 'Le fichier à importer a été construit avec le noiZetier en version @version@, schéma de données @schema@.',
     115        'formulaire_liste_compos_config' => 'L\'import contient les compositions virtuelles suivantes : @liste@.',
     116        'formulaire_liste_pages_config' => 'Les pages et compositions explicites ainsi que les objets suivants sont associées à des noisettes : @liste@.',
    112117        'formulaire_modifier_composition' => 'Modifier cette composition',
    113118        'formulaire_modifier_composition_heritages' => 'Compositions héritées',
     
    133138        'icone_introuvable' => 'Icône introuvable !',
    134139        'ieconfig_ne_pas_importer' => 'Ne pas importer',
    135         'ieconfig_noizetier_export_explication' => 'Exportera la configuration des noisettes et les compositions du noiZetier.',
    136         'ieconfig_noizetier_export_option' => 'Inclure dans l’export ?',
     140        'ieconfig_noizetier_export_explication' => 'Exporte la configuration du plugin et les données de production concernant les compositions virtuelles et les noisettes.',
     141        'ieconfig_noizetier_export_option' => 'Inclure les données du noiZetier dans l’export ?',
    137142        'ieconfig_non_installe' => '<b>Plugin Importeur/Exporteur de configurations :</b> ce plugin n’est pas installé sur votre site. Il n’est pas nécessaire au fonctionnement du noizetier. Cependant, s’il est activé, vous pourrez exporter et importer des configurations de noisettes dans le noizetier.',
    138143        'ieconfig_probleme_import_config' => 'Un problème a été rencontré lors de l’importation de la configuration du noiZetier.',
     
    204209        // O
    205210        'operation_annulee' => 'Opération annulée.',
     211        'option_noisette_balise_auto' => 'Encapsuler la noisette dans un HTML spécifique au type de noisette',
    206212        'option_noisette_balise_defaut' => 'Utiliser le mode par défaut configuré pour le noiZetier <em>(@defaut@)</em>',
    207         'option_noisette_balise_non' => 'Ne jamais utiliser de balise englobante',
    208         'option_noisette_balise_oui' => 'Toujours utiliser une balise englobante',
    209         'option_noizetier_balise_non' => 'sans balise',
    210         'option_noizetier_balise_oui' => 'avec balise',
     213        'option_noisette_balise_non' => 'Ne jamais encapsuler la noisette',
     214        'option_noisette_balise_oui' => 'Encapsuler la noisette avec une balise div',
     215        'option_noizetier_balise_aucune' => 'Sans encapsulation',
     216        'option_noizetier_balise_auto' => 'Avec un HTML spécifique',
     217        'option_noizetier_balise_div' => 'Avec une balise div',
    211218        'oui' => 'Oui',
    212219
  • _plugins_/noizetier/trunk/ncore/noizetier.php

    r112598 r112698  
    515515}
    516516
     517/**
     518 * Renvoie la configuration par défaut de l'encapsulation d'une noisette en mode non auto.
     519 * Cette information est utilisée si le mode d'encapsulation est manuel et si le champ `balise` de la noisette
     520 * vaut `defaut`.
     521 *
     522 * @package SPIP\NOIZETIER\NOISETTE\SERVICE
     523 *
     524 * @uses ncore_chercher_service()
     525 *
     526 * @param string $plugin
     527 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
     528 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     529 *
     530 * @return string
     531 *              Capsule par defaut qui peut valoir `div` ou `aucune`.
     532 */
     533function noizetier_noisette_initialiser_capsule($plugin) {
     534
     535        // La capsule par défaut est inscrite dans la configuration du plugin.
     536        include_spip('inc/config');
     537        $defaut_capsule = lire_config("${plugin}/balise_noisette");
     538
     539        return $defaut_capsule;
     540}
     541
    517542
    518543// -----------------------------------------------------------------------
  • _plugins_/noizetier/trunk/noizetier_administrations.php

    r112573 r112698  
    2929        $config_060 = array(
    3030                'objets_noisettes' => array(),
    31                 'balise_noisette' => 'on',
     31                'balise_noisette' => 'div',
    3232                'ajax_noisette' => 'on',
    3333                'profondeur_max' => '',
  • _plugins_/noizetier/trunk/noizetier_ieconfig.php

    r111236 r112698  
    1212 * @return array
    1313 */
    14 function noizetier_ieconfig($flux)
    15 {
     14function noizetier_ieconfig($flux) {
     15
     16        // On détermine l'action demandée qui peut être : afficher le formulaire d'export ou d'import, construire le
     17        // tableau d'export ou exécuter l'importation.
    1618        $action = $flux['args']['action'];
    1719
    18         // Formulaire d'export
    1920        if ($action == 'form_export') {
     21                // Construire le formulaire d'export :
     22                // -- on demande le minimum à savoir si l'utilisateur veut inclure dans son export l'ensemble des données
     23                //    du noiZetier.
    2024                $saisies = array(
    2125                        array(
     
    2832                                'saisies' => array(
    2933                                        array(
    30                                                 'saisie' => 'explication',
    31                                                 'options' => array(
    32                                                         'nom' => 'noizetier_export_explication',
    33                                                         'texte' => '<:noizetier:ieconfig_noizetier_export_explication:>',
    34                                                 ),
    35                                         ),
    36                                         array(
    3734                                                'saisie' => 'oui_non',
    3835                                                'options' => array(
    3936                                                        'nom' => 'noizetier_export_option',
    4037                                                        'label' => '<:noizetier:ieconfig_noizetier_export_option:>',
     38                                                        'explication' => '<:noizetier:ieconfig_noizetier_export_explication:>',
    4139                                                        'defaut' => '',
    4240                                                ),
     
    4644                );
    4745                $flux['data'] = array_merge($flux['data'], $saisies);
    48         }
    49 
    50         // Tableau d'export
    51         if ($action == 'export' && _request('noizetier_export_option') == 'on') {
    52                 include_spip('noizetier_fonctions');
     46
     47        } elseif (($action == 'export') and (_request('noizetier_export_option') == 'on')) {
     48                // Générer le tableau d'export
    5349                $flux['data']['noizetier'] = noizetier_ieconfig_exporter();
    54         }
    55 
    56         // Formulaire d'import
    57         if ($action == 'form_import' && isset($flux['args']['config']['noizetier'])) {
    58                 $texte_explication = '';
    59                 if (isset($flux['args']['config']['noizetier']['noisettes'])) {
    60                         $texte_explication .= _T('noizetier:formulaire_liste_pages_config');
     50
     51        } elseif (($action == 'form_import') and isset($flux['args']['config']['noizetier'])) {
     52                // Construire le formulaire d'import :
     53                // -- On affiche un résumé du contenu du fichier d'import
     54                $import = $flux['args']['config']['noizetier'];
     55                $texte_explication = _T(
     56                        'noizetier:formulaire_import_resume',
     57                        array('version' => $import['version'], 'schema' => $import['schema']));
     58                if ($import['contenu']['noisettes']) {
     59                        include_spip('inc/noizetier_conteneur');
    6160                        $pages = array();
    62                         foreach ($flux['args']['config']['noizetier']['noisettes'] as $noisette) {
    63                                 $pages[] = $noisette['type'].'-'.$noisette['composition'];
     61                        foreach ($import['noisettes'] as $_noisette) {
     62                                $conteneur = noizetier_conteneur_decomposer($_noisette['id_conteneur']);
     63                                $pages[] = !empty($conteneur['page'])
     64                                        ? $conteneur['page']
     65                                        : $conteneur['objet'] . $conteneur['id_objet'];
    6466                        }
    6567                        $pages = array_unique($pages);
    66                         foreach ($pages as $page) {
    67                                 $texte_explication .= '<br />&raquo; '.rtrim($page, '-');
    68                         }
    69                 }
    70                 if (isset($flux['args']['config']['noizetier']['noizetier_compositions'])) {
    71                         $texte_explication .= '<br />'._T('noizetier:formulaire_liste_compos_config');
    72                         foreach ($flux['args']['config']['noizetier']['noizetier_compositions'] as $type => $compositions) {
    73                                 foreach ($compositions as $composition => $compo) {
    74                                         $texte_explication .= '<br />&raquo; '.$type.'-'.$composition;
    75                                 }
    76                         }
    77                 }
    78                 if (isset($flux['args']['config']['noizetier']['noizetier_compositions'])) {
    79                         $saisies = array(
    80                                 array(
    81                                         'saisie' => 'fieldset',
    82                                         'options' => array(
    83                                                 'nom' => 'noizetier_export',
    84                                                 'label' => '<:noizetier:noizetier:>',
    85                                                 'icone' => 'noizetier-24.png',
    86                                         ),
    87                                         'saisies' => array(
    88                                                 array(
    89                                                         'saisie' => 'explication',
    90                                                         'options' => array(
    91                                                                 'nom' => 'noizetier_export_explication',
    92                                                                 'texte' => $texte_explication,
     68                        $texte_explication .= '<br />'
     69                                . _T('noizetier:formulaire_liste_pages_config', array('liste' => implode(', ', $pages)));
     70                }
     71                if ($import['contenu']['compositions_virtuelles']) {
     72                        $compositions = array();
     73                        foreach ($import['compositions_virtuelles'] as $_composition) {
     74                                $compositions[] = $_composition['page'];
     75                        }
     76                        $texte_explication .= '<br />'
     77                                . _T('noizetier:formulaire_liste_compos_config', array('liste' => implode(', ', $compositions)));
     78                }
     79
     80                // -- Construire la saisie permettant de proposer chaque contenu de l'export (configuration, noisettes,
     81                //    pages explicites et compositions virtuelles).
     82                $contenu_data = $contenu_defaut = $contenu_disable = array();
     83                foreach ($import['contenu'] as $_contenu => $_valeur) {
     84                        $contenu_data[$_contenu] = _T("noizetier:formulaire_import_contenu_{$_contenu}");
     85                        if (!$_valeur) {
     86                                $contenu_disable[] = $_contenu;
     87                        } else {
     88                                $contenu_defaut[] = $_contenu;
     89                        }
     90                }
     91                $saisies = array(
     92                        array(
     93                                'saisie' => 'fieldset',
     94                                'options' => array(
     95                                        'nom' => 'noizetier_export',
     96                                        'label' => '<:noizetier:noizetier:>',
     97                                        'icone' => 'noizetier-24.png',
     98                                ),
     99                                'saisies' => array(
     100                                        array(
     101                                                'saisie' => 'explication',
     102                                                'options' => array(
     103                                                        'nom' => 'noizetier_export_explication',
     104                                                        'texte' => $texte_explication,
     105                                                ),
     106                                        ),
     107                                        array(
     108                                                'saisie' => 'checkbox',
     109                                                'options' => array(
     110                                                        'nom' => 'noizetier_import_contenu',
     111                                                        'label' => '<:noizetier:formulaire_import_contenu:>',
     112//                                                      'defaut' => $contenu_defaut,
     113                                                        'datas' => $contenu_data,
     114                                                        'disable' => $contenu_disable
     115                                                ),
     116                                        ),
     117                                        array(
     118                                                'saisie' => 'radio',
     119                                                'options' => array(
     120                                                        'nom' => 'noizetier_type_import',
     121                                                        'label' => '<:noizetier:formulaire_type_import:>',
     122                                                        'explication' => '<:noizetier:formulaire_type_import_explication:>',
     123                                                        'defaut' => 'remplacer',
     124                                                        'datas' => array(
     125                                                                'fusion' => '<:noizetier:formulaire_import_fusion:>',
     126                                                                'remplacer' => '<:noizetier:formulaire_import_remplacer:>',
    93127                                                        ),
    94128                                                ),
    95                                                 array(
    96                                                         'saisie' => 'selection',
    97                                                         'options' => array(
    98                                                                 'nom' => 'noizetier_type_import',
    99                                                                 'label' => '<:noizetier:formulaire_type_import:>',
    100                                                                 'explication' => '<:noizetier:formulaire_type_import_explication:>',
    101                                                                 'defaut' => '',
    102                                                                 'option_intro' => '<:noizetier:ieconfig_ne_pas_importer:>',
    103                                                                 'datas' => array(
    104                                                                         'fusion' => '<:noizetier:formulaire_import_fusion:>',
    105                                                                         'remplacer' => '<:noizetier:formulaire_import_remplacer:>',
    106                                                                 ),
    107                                                         ),
    108                                                 ),
    109                                                 array(
    110                                                         'saisie' => 'selection',
    111                                                         'options' => array(
    112                                                                 'nom' => 'noizetier_import_compos',
    113                                                                 'label' => '<:noizetier:formulaire_import_compos:>',
    114                                                                 'defaut' => 'oui',
    115                                                                 'cacher_option_intro' => 'oui',
    116                                                                 'datas' => array(
    117                                                                         'oui' => '<:noizetier:oui:>',
    118                                                                         'non' => '<:noizetier:non:>',
    119                                                                 ),
    120                                                         ),
    121                                                 ),
    122                                         ),
    123                                 ),
    124                         );
    125                 } else {
    126                         $saisies = array(
    127                                 array(
    128                                         'saisie' => 'fieldset',
    129                                         'options' => array(
    130                                                 'nom' => 'noizetier_export',
    131                                                 'label' => '<:noizetier:noizetier:>',
    132                                                 'icone' => 'noizetier-24.png',
    133                                         ),
    134                                         'saisies' => array(
    135                                                 array(
    136                                                         'saisie' => 'explication',
    137                                                         'options' => array(
    138                                                                 'nom' => 'noizetier_export_explication',
    139                                                                 'texte' => $texte_explication,
    140                                                         ),
    141                                                 ),
    142                                                 array(
    143                                                         'saisie' => 'selection',
    144                                                         'options' => array(
    145                                                                 'nom' => 'noizetier_type_import',
    146                                                                 'label' => '<:noizetier:formulaire_type_import:>',
    147                                                                 'explication' => '<:noizetier:formulaire_type_import_explication:>',
    148                                                                 'defaut' => '',
    149                                                                 'option_intro' => '<:noizetier:ieconfig_ne_pas_importer:>',
    150                                                                 'datas' => array(
    151                                                                         'fusion' => '<:noizetier:formulaire_import_fusion:>',
    152                                                                         'remplacer' => '<:noizetier:formulaire_import_remplacer:>',
    153                                                                 ),
    154                                                         ),
    155                                                 ),
    156                                                 array(
    157                                                         'saisie' => 'hidden',
    158                                                         'options' => array(
    159                                                                 'nom' => 'noizetier_import_compos',
    160                                                                 'defaut' => 'non',
    161                                                         ),
    162                                                 ),
    163                                         ),
    164                                 ),
    165                         );
    166                 }
     129                                        ),
     130                                ),
     131                        ),
     132                );
    167133                $flux['data'] = array_merge($flux['data'], $saisies);
    168134        }
    169135
    170136        // Import de la configuration
    171         if ($action == 'import' && isset($flux['args']['config']['noizetier']) && _request('noizetier_type_import') != '') {
    172                 include_spip('noizetier_fonctions');
    173                 if (!noizetier_ieconfig_importer(_request('noizetier_type_import'), _request('noizetier_import_compos'), $flux['args']['config']['noizetier'])) {
     137        if (($action == 'import')
     138        and isset($flux['args']['config']['noizetier'])
     139        and (_request('noizetier_type_import') != '')) {
     140                if (!noizetier_ieconfig_importer(_request('noizetier_type_import'), _request('noizetier_import_contenu'), $flux['args']['config']['noizetier'])) {
    174141                        $flux['data'] .= _T('noizetier:ieconfig_probleme_import_config').'<br />';
    175142                }
    176143        }
    177144
    178         return($flux);
     145        return $flux;
    179146}
    180147
     
    190157 **/
    191158function noizetier_ieconfig_exporter() {
    192         $data = array();
    193 
    194         // On calcule le tableau des noisettes
    195         // TODO : a modifier pour les objets non ?
    196         $data['noisettes'] = sql_allfetsel(
    197                 'type, composition, bloc, type_noisette, parametres, css',
    198                 'spip_noisettes',
    199                 '1',
    200                 '',
    201                 'type, composition, bloc, rang_noisette'
    202         );
    203 
    204         // On remet au propre les parametres
    205         foreach ($data['noisettes'] as $cle => $noisette) {
    206                 $data['noisettes'][$cle]['parametres'] = unserialize($noisette['parametres']);
    207         }
    208 
    209         // On recupere les compositions du noizetier
    210         // TODO : a supprimer car elles sont dans la table des pages
    211         $noizetier_compositions = unserialize($GLOBALS['meta']['noizetier_compositions']);
    212         if (is_array($noizetier_compositions) and count($noizetier_compositions) > 0) {
    213                 $data['noizetier_compositions'] = $noizetier_compositions;
    214         }
    215 
    216         $data = pipeline('noizetier_config_export', $data);
    217 
    218         return $data;
     159
     160        $export = array();
     161
     162        // Insérer une en-tête qui permet de connaitre la version du noiZetier utilisé lors de l'export
     163        $informer_plugin = chercher_filtre('info_plugin');
     164        $export['version'] = $informer_plugin('noizetier', 'version');
     165        $export['schema'] = $informer_plugin('noizetier', 'schema');
     166        $export['contenu'] = array();
     167
     168        // Exportation de la configuration du plugin rangée dans la meta noizetier.
     169        // Etant donné que l'on utilise ce pipeline pour les données de production du noiZetier, on exporte aussi
     170        // sa configuration via ce pipeline et non via le pipeline ieconfig_metas.
     171        include_spip('inc/config');
     172        $export['configuration'] = lire_config('noizetier', array());
     173        $export['contenu']['configuration'] = $export['configuration'] ? 'on' : '';
     174
     175        // Exportation de la tables spip_noisettes qui contient les noisettes associées aux pages explicites,
     176        // aux compositions virtuelles et à certains objets précis.
     177        // -- on supprime l'id_noisette de chaque noisette car il sera recréé lors de l'import.
     178        include_spip('inc/ncore_noisette');
     179        $export['noisettes'] = noisette_repertorier('noizetier', array(), 'id_noisette');
     180        foreach($export['noisettes'] as $_id => $_noisette) {
     181                unset($export['noisettes'][$_id]['id_noisette']);
     182        }
     183        $export['contenu']['noisettes'] = $export['noisettes'] ? 'on' : '';
     184
     185        // Exportation de la tables spip_noizetier_pages qui contient les pages explicites et compositions virtuelles.
     186        $from ='spip_noizetier_pages';
     187
     188        // -- pour les pages explicites il faut sauvegarder les blocs exclus qui peuvent être modifiés après chargement,
     189        //    les autres champs n'ont pas d'intérêt à être sauvegardés car ils proviennent du fichier XML/YAML.
     190        $select = array('page', 'blocs_exclus');
     191        $where = array('est_virtuelle=' . sql_quote('non'));
     192        $export['pages_explicites'] = sql_allfetsel($select, $from, $where);
     193        $export['contenu']['pages_explicites'] = $export['pages_explicites'] ? 'on' : '';
     194
     195        // -- pour les compositions virtuelles il faut tout sauvegarder (sauf le timestamp 'maj') car elles sont créées
     196        //    de zéro.
     197        $trouver_table = charger_fonction('trouver_table', 'base');
     198        $table = $trouver_table($from);
     199        $select = array_diff(array_keys($table['field']), array('maj'));
     200        $where = array('est_virtuelle=' . sql_quote('oui'));
     201        $export['compositions_virtuelles'] = sql_allfetsel($select, $from, $where);
     202        $export['contenu']['compositions_virtuelles'] = $export['compositions_virtuelles'] ? 'on' : '';
     203
     204        // Appel d'un pipeline propre à l'export du noiZetier pour autoriser la modification par des plugins
     205        // de la structure d'export
     206        $export = pipeline('noizetier_config_export', $export);
     207
     208        return $export;
    219209}
    220210
     
    223213 *
    224214 * @param string  $type_import
    225  * @param string  $import_compos
     215 * @param string  $import_contenu
    226216 * @param array $config
    227217 *
    228218 * @return bool
    229219 */
    230 function noizetier_ieconfig_importer($type_import, $import_compos, $config) {
     220function noizetier_ieconfig_importer($type_import, $import_contenu, $config) {
    231221        if ($type_import != 'remplacer') {
    232222                $type_import = 'fusion';
    233223        }
    234         if ($import_compos != 'oui') {
    235                 $import_compos = 'non';
     224        if ($import_contenu != 'oui') {
     225                $import_contenu = 'non';
    236226        }
    237227
     
    272262        // On s'occupe des compositions du noizetier
    273263        // TODO : à modifier car les compositions sont dans la table des pages
    274         if ($import_compos == 'oui') {
     264        if ($import_contenu == 'oui') {
    275265                include_spip('inc/meta');
    276266                $compos_importees = $config['noizetier_compositions'];
  • _plugins_/noizetier/trunk/paquet.xml

    r112611 r112698  
    22        prefix="noizetier"
    33        categorie="maintenance"
    4         version="3.0.30"
     4        version="3.0.31"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.2.*]"
     
    4040        <pipeline nom="insert_head" action="insert_head_css" inclure="noizetier_pipelines.php" />
    4141
    42         <necessite nom="ncore" compatibilite="[0.4.7;[" />
     42        <necessite nom="ncore" compatibilite="[0.5.0;[" />
    4343        <necessite nom="saisies" compatibilite="[2.2.3;[" />
    4444        <necessite nom="verifier" compatibilite="[1.0.5;[" />
Note: See TracChangeset for help on using the changeset viewer.