Chargement en cours inc/territoires_utils.php +2 −38 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -15,11 +15,11 @@ if (!defined('_EXTRAIRE_MULTI')) { } /** * Extrait, pour un les régions, les pays ou les subdivisions d'un pays, la liste des territoires ayant fait l'objet * Extrait, pour les régions, les pays ou les subdivisions d'un pays, la liste des territoires ayant fait l'objet * d'une modification manuelle (descriptif) et la liste associations vers ses mêmes territoires. * * Les extras ne sont pas sauvegardés car il ne sont ni modifiables ni indexés par un id mais par un code invariant. * Si l'extraction fait suite à un chargement asynchrone, les territoires modifiés sont sauvegardés dans une cache. * Si l'extraction fait suite à un chargement asynchrone, les territoires modifiés sont sauvegardés dans un cache. * * @internal * Chargement en cours Chargement en cours @@ -334,39 +334,3 @@ function extra_compiler(string $mode, array $types_extras, array $source, array return $extras; } /** * Rétablit les liens d'un type d'objet avec les territoires peuplés ou repeuplés. * * @api * * @param string $type_lien Type de liens à restaurer : `liens` ou `logos`. * @param array $sauvegardes Tableau des sauvegardes dans lequel puiser les liens existants * @param array $ids_crees Tableau des nouveaux id des territoires. * @param array $config_lien Tableau de configuration de la table de liens concernée composé des index: * - `table` : nom complet de la table spip * - `id_table` : nom du champ id du territoire * * @return void */ function liens_retablir(string $type_lien, array $sauvegardes, array $ids_crees, array $config_lien) : void { // On contruit la liste des enregistrements correspondant aux liens à rétablir. $liens = []; foreach ($sauvegardes[$type_lien] as $_lien) { // identifier le code iso à partir de l'ancien id $iso = array_search($_lien[$config_lien['id_table']], $sauvegardes['ids']); // en déduire le nouvel id du territoire et le mettre à jour dans le tableau // -- si l'iso n'est pas trouvé dans les nouveaux c'est que le territoire n'existe plus // et qu'il ne faut pas rétablir les liens if (isset($ids_crees[$iso])) { $lien = $_lien; $lien[$config_lien['id_table']] = $ids_crees[$iso]; $liens[] = $lien; } } // Insertion des liens en une seule requête if ($liens) { sql_insertq_multi($config_lien['table'], $liens); } } inc/unite_peuplement.php +38 −2 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -275,14 +275,14 @@ function unite_peuplement_charger(string $type, ?string $pays, ?array $options = 'table' => 'spip_territoires_liens', 'id_table' => 'id_territoire' ]; liens_retablir('liens', $sauvegardes, $ids, $config_lien); unite_peuplement_retablir_liens('liens', $sauvegardes, $ids, $config_lien); // -- les liens avec les logos $config_lien = [ 'table' => 'spip_documents_liens', 'id_table' => 'id_objet' ]; liens_retablir('logos', $sauvegardes, $ids, $config_lien); unite_peuplement_retablir_liens('logos', $sauvegardes, $ids, $config_lien); $timestamp['retablissement'] = microtime(true); // Permettre à d'autres plugins de compléter le peuplement. Chargement en cours Chargement en cours @@ -901,3 +901,39 @@ function unite_peuplement_informer_feeds(string $plugin, string $type, ?string $ return $infos; } } /** * Rétablit les liens d'un type d'objet avec les territoires peuplés ou repeuplés. * * @api * * @param string $type_lien Type de liens à restaurer : `liens`, `logos` ou autre. * @param array $sauvegardes Tableau des sauvegardes dans lequel puiser les liens existants * @param array $ids_crees Tableau des nouveaux id des territoires. * @param array $config_lien Tableau de configuration de la table de liens concernée composé des index: * - `table` : nom complet de la table spip * - `id_table` : nom du champ id du territoire * * @return void */ function unite_peuplement_retablir_liens(string $type_lien, array $sauvegardes, array $ids_crees, array $config_lien) : void { // On contruit la liste des enregistrements correspondant aux liens à rétablir. $liens = []; foreach ($sauvegardes[$type_lien] as $_lien) { // identifier le code iso à partir de l'ancien id $iso = array_search($_lien[$config_lien['id_table']], $sauvegardes['ids']); // en déduire le nouvel id du territoire et le mettre à jour dans le tableau // -- si l'iso n'est pas trouvé dans les nouveaux c'est que le territoire n'existe plus // et qu'il ne faut pas rétablir les liens if (isset($ids_crees[$iso])) { $lien = $_lien; $lien[$config_lien['id_table']] = $ids_crees[$iso]; $liens[] = $lien; } } // Insertion des liens en une seule requête if ($liens) { sql_insertq_multi($config_lien['table'], $liens); } } territoires/territoires.php +26 −22 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -22,6 +22,32 @@ if (!defined('_TERRITOIRE_COMPATIBILITE_ISOCODE')) { define('_TERRITOIRE_COMPATIBILITE_ISOCODE', ['vmin' => '2.0.1']); } // ----------------------------------------------------------------------- // ----------- SERVICES RELATIFS AUX SERVEURS DE PEUPLEMENT -------------- // ----------------------------------------------------------------------- /** * Renvoie, pour le plugin appelant, les bornes de compatibilité avec le serveur fournissant une nature d'informations * donnée sur les territoires. * En fait, la nature d'information est liée au plugin appelant (nomenclatures pour Territoires, contours géographiques * pour le plugin Contours de territoires, etc.). * * @param string $plugin Préfixe du plugin appelant. * * @return array Bornes de compatibilité avec le serveur. */ function territoires_serveur_definir_compatibilite(string $plugin) : array { // On passe la main à un service spécifique du plugin appelant si demandé. if ($definir = territoires_chercher_service($plugin, 'serveur_definir_compatibilite')) { $bornes = $definir(); } else { // Territoires utilise différents index suivant le type de territoires : inscrit dans la configuration $bornes = _TERRITOIRE_COMPATIBILITE_ISOCODE; } return $bornes; } // ----------------------------------------------------------------------- // ------------------- SERVICES RELATIFS AUX FEEDS ----------------------- // ----------------------------------------------------------------------- Chargement en cours Chargement en cours @@ -123,28 +149,6 @@ function territoires_feed_acquerir(string $plugin, array $categories_feed) : arr return $feeds[$index] ?? []; } /** * Renvoie, pour le plugin appelant, les bornes de compatibilité avec le serveur fournissant une nature d'informations * donnée sur les territoires. * En fait, la nature d'information est liée au plugin appelant (nomenclatures pour Territoires, contours géographiques * pour le plugin Contours de territoires, etc.). * * @param string $plugin Préfixe du plugin appelant. * * @return array Bornes de compatibilité avec le serveur. */ function territoires_serveur_definir_compatibilite(string $plugin) : array { // On passe la main à un service spécifique du plugin appelant si demandé. if ($definir = territoires_chercher_service($plugin, 'serveur_definir_compatibilite')) { $bornes = $definir(); } else { // Territoires utilise différents index suivant le type de territoires : inscrit dans la configuration $bornes = _TERRITOIRE_COMPATIBILITE_ISOCODE; } return $bornes; } // ----------------------------------------------------------------------- // ------------ SERVICES RELATIFS AUX UNITES DE PEUPLEMENT --------------- // ----------------------------------------------------------------------- Chargement en cours Chargement en cours
inc/territoires_utils.php +2 −38 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -15,11 +15,11 @@ if (!defined('_EXTRAIRE_MULTI')) { } /** * Extrait, pour un les régions, les pays ou les subdivisions d'un pays, la liste des territoires ayant fait l'objet * Extrait, pour les régions, les pays ou les subdivisions d'un pays, la liste des territoires ayant fait l'objet * d'une modification manuelle (descriptif) et la liste associations vers ses mêmes territoires. * * Les extras ne sont pas sauvegardés car il ne sont ni modifiables ni indexés par un id mais par un code invariant. * Si l'extraction fait suite à un chargement asynchrone, les territoires modifiés sont sauvegardés dans une cache. * Si l'extraction fait suite à un chargement asynchrone, les territoires modifiés sont sauvegardés dans un cache. * * @internal * Chargement en cours Chargement en cours @@ -334,39 +334,3 @@ function extra_compiler(string $mode, array $types_extras, array $source, array return $extras; } /** * Rétablit les liens d'un type d'objet avec les territoires peuplés ou repeuplés. * * @api * * @param string $type_lien Type de liens à restaurer : `liens` ou `logos`. * @param array $sauvegardes Tableau des sauvegardes dans lequel puiser les liens existants * @param array $ids_crees Tableau des nouveaux id des territoires. * @param array $config_lien Tableau de configuration de la table de liens concernée composé des index: * - `table` : nom complet de la table spip * - `id_table` : nom du champ id du territoire * * @return void */ function liens_retablir(string $type_lien, array $sauvegardes, array $ids_crees, array $config_lien) : void { // On contruit la liste des enregistrements correspondant aux liens à rétablir. $liens = []; foreach ($sauvegardes[$type_lien] as $_lien) { // identifier le code iso à partir de l'ancien id $iso = array_search($_lien[$config_lien['id_table']], $sauvegardes['ids']); // en déduire le nouvel id du territoire et le mettre à jour dans le tableau // -- si l'iso n'est pas trouvé dans les nouveaux c'est que le territoire n'existe plus // et qu'il ne faut pas rétablir les liens if (isset($ids_crees[$iso])) { $lien = $_lien; $lien[$config_lien['id_table']] = $ids_crees[$iso]; $liens[] = $lien; } } // Insertion des liens en une seule requête if ($liens) { sql_insertq_multi($config_lien['table'], $liens); } }
inc/unite_peuplement.php +38 −2 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -275,14 +275,14 @@ function unite_peuplement_charger(string $type, ?string $pays, ?array $options = 'table' => 'spip_territoires_liens', 'id_table' => 'id_territoire' ]; liens_retablir('liens', $sauvegardes, $ids, $config_lien); unite_peuplement_retablir_liens('liens', $sauvegardes, $ids, $config_lien); // -- les liens avec les logos $config_lien = [ 'table' => 'spip_documents_liens', 'id_table' => 'id_objet' ]; liens_retablir('logos', $sauvegardes, $ids, $config_lien); unite_peuplement_retablir_liens('logos', $sauvegardes, $ids, $config_lien); $timestamp['retablissement'] = microtime(true); // Permettre à d'autres plugins de compléter le peuplement. Chargement en cours Chargement en cours @@ -901,3 +901,39 @@ function unite_peuplement_informer_feeds(string $plugin, string $type, ?string $ return $infos; } } /** * Rétablit les liens d'un type d'objet avec les territoires peuplés ou repeuplés. * * @api * * @param string $type_lien Type de liens à restaurer : `liens`, `logos` ou autre. * @param array $sauvegardes Tableau des sauvegardes dans lequel puiser les liens existants * @param array $ids_crees Tableau des nouveaux id des territoires. * @param array $config_lien Tableau de configuration de la table de liens concernée composé des index: * - `table` : nom complet de la table spip * - `id_table` : nom du champ id du territoire * * @return void */ function unite_peuplement_retablir_liens(string $type_lien, array $sauvegardes, array $ids_crees, array $config_lien) : void { // On contruit la liste des enregistrements correspondant aux liens à rétablir. $liens = []; foreach ($sauvegardes[$type_lien] as $_lien) { // identifier le code iso à partir de l'ancien id $iso = array_search($_lien[$config_lien['id_table']], $sauvegardes['ids']); // en déduire le nouvel id du territoire et le mettre à jour dans le tableau // -- si l'iso n'est pas trouvé dans les nouveaux c'est que le territoire n'existe plus // et qu'il ne faut pas rétablir les liens if (isset($ids_crees[$iso])) { $lien = $_lien; $lien[$config_lien['id_table']] = $ids_crees[$iso]; $liens[] = $lien; } } // Insertion des liens en une seule requête if ($liens) { sql_insertq_multi($config_lien['table'], $liens); } }
territoires/territoires.php +26 −22 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -22,6 +22,32 @@ if (!defined('_TERRITOIRE_COMPATIBILITE_ISOCODE')) { define('_TERRITOIRE_COMPATIBILITE_ISOCODE', ['vmin' => '2.0.1']); } // ----------------------------------------------------------------------- // ----------- SERVICES RELATIFS AUX SERVEURS DE PEUPLEMENT -------------- // ----------------------------------------------------------------------- /** * Renvoie, pour le plugin appelant, les bornes de compatibilité avec le serveur fournissant une nature d'informations * donnée sur les territoires. * En fait, la nature d'information est liée au plugin appelant (nomenclatures pour Territoires, contours géographiques * pour le plugin Contours de territoires, etc.). * * @param string $plugin Préfixe du plugin appelant. * * @return array Bornes de compatibilité avec le serveur. */ function territoires_serveur_definir_compatibilite(string $plugin) : array { // On passe la main à un service spécifique du plugin appelant si demandé. if ($definir = territoires_chercher_service($plugin, 'serveur_definir_compatibilite')) { $bornes = $definir(); } else { // Territoires utilise différents index suivant le type de territoires : inscrit dans la configuration $bornes = _TERRITOIRE_COMPATIBILITE_ISOCODE; } return $bornes; } // ----------------------------------------------------------------------- // ------------------- SERVICES RELATIFS AUX FEEDS ----------------------- // ----------------------------------------------------------------------- Chargement en cours Chargement en cours @@ -123,28 +149,6 @@ function territoires_feed_acquerir(string $plugin, array $categories_feed) : arr return $feeds[$index] ?? []; } /** * Renvoie, pour le plugin appelant, les bornes de compatibilité avec le serveur fournissant une nature d'informations * donnée sur les territoires. * En fait, la nature d'information est liée au plugin appelant (nomenclatures pour Territoires, contours géographiques * pour le plugin Contours de territoires, etc.). * * @param string $plugin Préfixe du plugin appelant. * * @return array Bornes de compatibilité avec le serveur. */ function territoires_serveur_definir_compatibilite(string $plugin) : array { // On passe la main à un service spécifique du plugin appelant si demandé. if ($definir = territoires_chercher_service($plugin, 'serveur_definir_compatibilite')) { $bornes = $definir(); } else { // Territoires utilise différents index suivant le type de territoires : inscrit dans la configuration $bornes = _TERRITOIRE_COMPATIBILITE_ISOCODE; } return $bornes; } // ----------------------------------------------------------------------- // ------------ SERVICES RELATIFS AUX UNITES DE PEUPLEMENT --------------- // ----------------------------------------------------------------------- Chargement en cours