@ -15,9 +15,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*
* @api
*
* @param string $type Type de territoires à peupler. Prends les valeurs `zone`, `country` ou `subdivision`.
* @param string $pays Code ISO 3166-1 alpha2 du pays dont on veut peupler les subdivisions.
* N'est utilisé que si le type choisi est `subdivision` sinon est une chaine vide.
* @param string $type Type de territoires. Prends les valeurs `zone`, `country`, `subdivision` ou `infra_subdivision`.
* @param string $pays Code ISO 3166-1 alpha2 du pays si le type est `subdivision` ou `infra_subdivision` sinon une chaine vide.
* @param array $options Options de peuplement (défaut à `false`) :
* - `force` : si `true` force le repeuplement même si le sha est identique.
* - `extras`: tableau des types d'extras à peupler soit `code` pour les codes alternatifs
@ -38,7 +37,7 @@ function territoire_peupler($type, $pays, $options = array()) {
// Le peuplement dépend du type :
// - type = zone ou country : on charge l'ensemble des régions du monde ou l'ensemble des pays
// - type = subdivision : il faut préciser le pays (code ISO alpha2) pour lequel on charge toutes les subdivisions
// - type = subdivision ou infra_subdivision : il faut préciser le pays (code ISO alpha2) pour lequel on charge toutes les subdivisions
include_spip('inc/territoires_services');
include_spip('inc/territoires_utils');
if (type_pays_est_valide($type, $pays)) {
@ -77,6 +76,14 @@ function territoire_peupler($type, $pays, $options = array()) {
// -- on vide les territoires avant de les remettre (inutile de gérer les erreurs
// car l'insertion les détectera).
// On gère aussi les infra subdivisions qui doivent être vidées au préalable si on vide
// les subdivisions parents.
if (
($type === 'subdivision')
and territoire_est_peuple('infra_subdivision', $pays)
) {
territoire_depeupler('infra_subdivision', $pays);
}
territoire_depeupler($type, $pays);
// -- on insère chaque territoire comme un objet
@ -230,9 +237,8 @@ function territoire_peupler($type, $pays, $options = array()) {
*
* @api
*
* @param string $type Type de territoires à peupler. Prends les valeurs `zone`, `country` ou `subdivision`.
* @param string $pays Code ISO 3166-1 alpha2 du pays dont on veut peupler les subdivisions.
* N'est utilisé que si le type choisi est `subdivision` sinon est une chaine vide.
* @param string $type Type de territoires. Prends les valeurs `zone`, `country`, `subdivision` ou `infra_subdivision`.
* @param string $pays Code ISO 3166-1 alpha2 du pays si le type est `subdivision` ou `infra_subdivision` sinon une chaine vide.
*
* @return array Liste des code ISO 3166-1 alpha2 des pays chargés sous la forme [code] = nom multi.
*/
@ -249,7 +255,7 @@ function territoire_depeupler($type, $pays = '') {
// Le vidage dépend du type :
// - type = zone ou country : on vide l'ensemble des régions du monde ou l'ensemble des pays
// - type = subdivision : il faut préciser le pays (code ISO alpha2) pour lequel on vide toutes les subdivisions
// - type = subdivision ou infra_subdivision : il faut préciser le pays (code ISO alpha2) pour lequel on vide toutes les subdivisions
include_spip('inc/territoires_services');
include_spip('inc/territoires_utils');
if (type_pays_est_valide($type, $pays)) {
@ -264,7 +270,7 @@ function territoire_depeupler($type, $pays = '') {
$where = array(
'type=' . sql_quote($type),
);
if ($type === 'subdivision' ) {
if (type_est_subdivision($type) ) {
$where[] = 'iso_pays=' . sql_quote($pays);
}
if ($ids = sql_allfetsel('id_territoire', $from, $where)) {
@ -337,8 +343,8 @@ function territoire_depeupler($type, $pays = '') {
*
* @api
*
* @param string $type Type de territoires à acquérie . Prends les valeurs `zone`, `country` ou `subdivision`.
* @param array|string $pays Code ISO 3166-1 alpha2 du pays si le type est une subdivision sinon une chaine vide.
* @param string $type Type de territoires. Prends les valeurs `zone`, `country`, `subdivision` ou `infra_ subdivision`.
* @param array|string $pays Code ISO 3166-1 alpha2 du pays si le type est `subdivision` ou `infra_subdivision` sinon une chaine vide.
*
* @return bool true si le territoire est chargé, false sinon.
*/
@ -350,7 +356,10 @@ function territoire_est_peuple($type, $pays = '') {
// La liste des territoires chargés est en meta.
include_spip('inc/config');
$peuplement = lire_config('territoires_peuplement', array());
if ($type === 'subdivision') {
if (
include_spip('inc/territoires_utils')
and type_est_subdivision($type)
) {
// Chaque pays chargé est un index du tableau
if (isset($peuplement[$type])) {
$est_peuple = array_key_exists($pays, $peuplement[$type]);
@ -368,9 +377,9 @@ function territoire_est_peuple($type, $pays = '') {
*
* @api
*
* @param string $type Type de territoires à acquérir . Prends les valeurs `zone`, `country` ou `subdivision`.
* @param array| string $pays Code ISO 3166-1 alpha2 du pays si le type est une subdivision ou chaine vide sinon .
* @param string $type_extra Type d'extra. Prends les valeurs `code` ou `info`.
* @param string $type Type de territoires. Prends les valeurs `zone`, `country`, `subdivision` ou `infra_ subdivision`.
* @param string $pays Code ISO 3166-1 alpha2 du pays si le type est `subdivision` ou `infra_subdivision` sinon une chaine vide .
* @param string $type_extra Type d'extra. Prends les valeurs `code` ou `info`.
*
* @return bool true si le territoire est chargé, false sinon.
*/
@ -382,7 +391,10 @@ function territoire_extra_est_peuple($type, $pays, $type_extra) {
// La liste des territoires chargés est en meta.
include_spip('inc/config');
$peuplement = lire_config('territoires_peuplement', array());
if ($type === 'subdivision') {
if (
include_spip('inc/territoires_utils')
and type_est_subdivision($type)
) {
// Chaque pays chargé est un index du tableau
if (isset($peuplement[$type][$pays]['ext'])) {
$est_peuple = in_array($type_extra, $peuplement[$type][$pays]['ext']);