Changeset 113148 in spip-zone


Ignore:
Timestamp:
Dec 29, 2018, 2:58:03 PM (3 weeks ago)
Author:
eric@…
Message:

Amélioration de l'importation des blocs exclus. On filtre les blocs exclus du fichier d'import avec la liste des blocs par défaut du site.

Location:
_plugins_/noizetier/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/noizetier_ieconfig.php

    r113142 r113148  
    329329        $contenu_import = pipeline('noizetier_config_import', $contenu_import);
    330330
     331        // On récupère la liste des blocs par défaut des pages du site pour filtrer des blocs non autorisés
     332        // provenant éventuellement de l'import. Cette liste sert pour les pages explicites et les compositions virtuelles.
     333        include_spip('inc/noizetier_bloc');
     334        $blocs_defaut = noizetier_bloc_lister_defaut();
     335
    331336        // La configuration
    332337        if ($importation['configuration']) {
     
    349354                foreach ($pages_explicites_base as $_page_explicite) {
    350355                        if (isset($blocs_exclus_import[$_page_explicite['page']])) {
    351                                 // Remplacement des blocs exclus de la page actuelle par ceux du fichier d'import.
    352                                 $modification = array('blocs_exclus' => $blocs_exclus_import[$_page_explicite['page']]);
     356                                // Remplacement des blocs exclus de la page actuelle par ceux du fichier d'import. On filtre
     357                                // les blocs éventuellement non autorisés sur le site.
     358                                $modification = array(
     359                                        'blocs_exclus' => array_intersect($blocs_exclus_import[$_page_explicite['page']], $blocs_defaut)
     360                                );
    353361                                $where = array('page=' . sql_quote($_page_explicite['page']));
    354362                                sql_updateq('spip_noizetier_pages', $modification, $where);
     
    379387                        // on met à jour la composition virtuelle ou on ne fait rien.
    380388                        foreach ($contenu_import['compositions_virtuelles'] as $_composition) {
    381                                 if (in_array($_composition['page'], $compositions_base)) {
     389                                // On filtre les blocs exclus avec la liste des blocs par défaut du site.
     390                                $composition = $_composition;
     391                                $composition['blocs_exclus'] = array_intersect($composition['blocs_exclus'], $blocs_defaut);
     392
     393                                // On détermine l'opération à faire ou pas.
     394                                if (in_array($composition['page'], $compositions_base)) {
    382395                                        if ($importation['compositions_virtuelles'] == 'fusionner') {
    383                                                 $where = 'page=' . sql_quote($_composition['page']);
    384                                                 $modifications = $_composition;
    385                                                 unset($modifications['page']);
    386                                                 sql_updateq('spip_noizetier_pages', $modifications, $where);
     396                                                $where = 'page=' . sql_quote($composition['page']);
     397                                                unset($composition['page']);
     398                                                sql_updateq('spip_noizetier_pages', $composition, $where);
    387399                                        }
    388400                                } else {
    389                                         sql_insertq('spip_noizetier_pages', $_composition);
     401                                        sql_insertq('spip_noizetier_pages', $composition);
    390402                                }
    391403                        }
  • _plugins_/noizetier/trunk/paquet.xml

    r113144 r113148  
    22        prefix="noizetier"
    33        categorie="maintenance"
    4         version="3.0.48"
     4        version="3.0.49"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.