|
|
|
@ -109,7 +109,7 @@ function territoire_peupler($type, $pays = '', $options = array()) {
|
|
|
|
|
$configuration = $GLOBALS['territoires'][$type];
|
|
|
|
|
$meta = 'territoires_peuplement';
|
|
|
|
|
|
|
|
|
|
// On récupère tous les index fournis la collection et pas uniquement celui des territoires du type.
|
|
|
|
|
// On récupère tous les index fournis par la collection et pas uniquement celui des territoires concernés.
|
|
|
|
|
// Ainsi, les autres index éventuels restent disponibles.
|
|
|
|
|
$collection = territoire_acquerir($type, $pays);
|
|
|
|
|
if (!empty($collection[$configuration['champs']['index']])) {
|
|
|
|
@ -222,14 +222,14 @@ function territoire_peupler($type, $pays = '', $options = array()) {
|
|
|
|
|
'table' => 'spip_territoires_liens',
|
|
|
|
|
'id_table' => 'id_territoire'
|
|
|
|
|
);
|
|
|
|
|
territoire_retablir_lien('liens', $sauvegardes, $config_lien);
|
|
|
|
|
territoire_retablir_lien('liens', $sauvegardes, $ids, $config_lien);
|
|
|
|
|
|
|
|
|
|
// -- les liens avec les logos
|
|
|
|
|
$config_lien = array(
|
|
|
|
|
'table' => 'spip_documents_liens',
|
|
|
|
|
'id_table' => 'id_objet'
|
|
|
|
|
);
|
|
|
|
|
territoire_retablir_lien('logos', $sauvegardes, $config_lien);
|
|
|
|
|
territoire_retablir_lien('logos', $sauvegardes, $ids, $config_lien);
|
|
|
|
|
|
|
|
|
|
// Permettre à d'autres plugins de compléter le peuplement.
|
|
|
|
|
// -- par exemple le plugin Contours rétablit les liens vers les contours GIS (spip_liens_gis),
|
|
|
|
@ -238,7 +238,8 @@ function territoire_peupler($type, $pays = '', $options = array()) {
|
|
|
|
|
'args' => array(
|
|
|
|
|
'type' => $type,
|
|
|
|
|
'pays' => $pays,
|
|
|
|
|
'sauvegardes' => $sauvegardes
|
|
|
|
|
'sauvegardes' => $sauvegardes,
|
|
|
|
|
'ids_crees' => $ids,
|
|
|
|
|
),
|
|
|
|
|
'data' => array()
|
|
|
|
|
);
|
|
|
|
@ -341,7 +342,7 @@ function territoire_depeupler($type, $pays = '') {
|
|
|
|
|
|
|
|
|
|
// Permettre à d'autres plugins de compléter le dépeuplement.
|
|
|
|
|
// -- par exemple le plugin Contours supprime les liens vers les contours GIS (spip_liens_gis),
|
|
|
|
|
// Par contre, les objets GIS sont conservés si ils existent.
|
|
|
|
|
// mais pas les objets GIS.
|
|
|
|
|
$flux = array(
|
|
|
|
|
'args' => array(
|
|
|
|
|
'type' => $type,
|
|
|
|
@ -591,26 +592,27 @@ function territoire_extra_est_peuple($type_extra, $type, $pays = '') {
|
|
|
|
|
* @internal
|
|
|
|
|
*
|
|
|
|
|
* @param string $type_lien Type de liens à restaurer : `liens` ou `logos`.
|
|
|
|
|
* @param array $sauvegardes Tableau des sauvegardes dans lequel puiser les liens existants et les nouveaux id.
|
|
|
|
|
* @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
|
|
|
|
|
* - `table` : nom complet de la table spip
|
|
|
|
|
* - `id_table` : nom du champ id du territoire
|
|
|
|
|
*
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
function territoire_retablir_lien($type_lien, $sauvegardes, $config_lien) {
|
|
|
|
|
function territoire_retablir_lien($type_lien, $sauvegardes, $ids_crees, $config_lien) {
|
|
|
|
|
|
|
|
|
|
// On contruit la liste des enregistrements correspondant aux liens à rétablir.
|
|
|
|
|
$liens = array();
|
|
|
|
|
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 de la territoire et le mettre à jour dans le tableau
|
|
|
|
|
// -- si l'iso n'est pas trouvé dans les nouveaux c'est que la territoire n'existe plus
|
|
|
|
|
// 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[$iso])) {
|
|
|
|
|
if (isset($ids_crees[$iso])) {
|
|
|
|
|
$lien = $_lien;
|
|
|
|
|
$lien[$config_lien['id_table']] = $ids[$iso];
|
|
|
|
|
$lien[$config_lien['id_table']] = $ids_crees[$iso];
|
|
|
|
|
$liens[] = $lien;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|