Valider af4c0477 rédigé par marcimat@rezo.net's avatar marcimat@rezo.net
Parcourir les fichiers

Introduction du critère `{!gis}`, négation du critère existant `{gis}`.

Cela permet de récupérer par exemple `<BOUCLE_sans_points(ARTICLES){!gis}>...` les articles sans point.
parent aaa4d0ea
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+58 −42
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -137,11 +137,16 @@ function critere_distancefrom_dist($idb, &$boucles, $crit) {
}

/**
 * Critere {gis distance<XX} pour filtrer une liste de points par rapport à la distance du point de l'env
 * Compile le critère `{gis}` qui permet de compléter la boucle avec les points GIS
 *
 * @param unknown_type $idb
 * @param unknown_type $boucles
 * @param unknown_type $crit
 * Usage
 * - `{gis}` Retourne les objets ayant des points (et ajoute les balises spéciales GIS tel que `#TITRE_GIS`)
 * - `{!gis}` Retourne les objets sans points
 * - `{gis distance<XX}`, sur une boucle `GIS`, filtre une liste de points par rapport à la distance du point de l'env
 *
 * @param string $idb
 * @param array $boucles
 * @param Critere $crit
 */
function critere_gis_dist($idb, &$boucles, $crit) {
	$boucle = &$boucles[$idb];
@@ -179,6 +184,16 @@ function critere_gis_dist($idb, &$boucles, $crit) {
		
		$boucle->select[]= $select;
		$boucle->order[]= $order;
	} else {

		/* Recherche d'objets SANS point */
		if ($crit->not) {
			$boucle->from['gis_liens'] = 'spip_gis_liens';
			$boucle->from_type['gis_liens'] = "LEFT";
			$boucle->join['gis_liens'] = array("'$id_table'","'id_objet'","'$primary'","'gis_liens.objet='.sql_quote('$objet')");
			$boucle->where[] = "'gis_liens.id_gis IS NULL'";

		/* Recherche d'objets AVEC point + ajout des champs GIS */
		} else {
			// ajouter tous les champs du point au select 
			// et les suffixer pour lever toute ambiguite avec des champs homonymes
@@ -222,6 +237,7 @@ function critere_gis_dist($idb, &$boucles, $crit) {
			}
		}
	}
}

/**
 * Balise #DISTANCE issue du critère {gis distance<XX}
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="gis"
	categorie="divers"
	version="4.26.12"
	version="4.27.00"
	schema="2.0.7"
	etat="stable"
	compatibilite="[3.0.0;3.1.*]"