From 7886660d5346370b14edb1a43a93099e124e0077 Mon Sep 17 00:00:00 2001 From: Vincent Calame Date: Sun, 3 Jul 2022 02:25:01 +0200 Subject: [PATCH] =?UTF-8?q?Traitement=20particulier=20pour=20les=20=C3=A9v?= =?UTF-8?q?=C3=A8nements=20Internet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lef_fonctions.php | 29 +++++++++++++++++++++++++++++ mes_fonctions.php | 20 ++++++++++++++++++-- modeles/agenda.html | 22 +++++++++++++++++++++- 3 files changed, 68 insertions(+), 3 deletions(-) diff --git a/lef_fonctions.php b/lef_fonctions.php index 0b68ca2..40a12f0 100644 --- a/lef_fonctions.php +++ b/lef_fonctions.php @@ -1,5 +1,30 @@ pays_id = $json_region["id"]; + } + + public function populate( $evenementParRegionMap) { + $pays_key = "id_".$this->pays_id; + if (array_key_exists($pays_key, $evenementParRegionMap)) { + $this->evenementArray = $evenementParRegionMap[$pays_key]; + } + } + + public function toArray() { + + return array("evenements" => $this->evenementArray, "total" => count($this->evenementArray)); + } + + +} + class LefPays { private $pays_id; private $name = ""; @@ -49,6 +74,10 @@ class LefPays { return $this->key_array; } + public function getCode() { + return $this->code; + } + public function toArray() { $evenementsnationaux; $totalevenementsnationaux = 0; diff --git a/mes_fonctions.php b/mes_fonctions.php index a6165b7..1116e39 100644 --- a/mes_fonctions.php +++ b/mes_fonctions.php @@ -152,9 +152,11 @@ function mes_balise_Repartition($tag) { if ($GLOBALS[MES]["repartition"] != false) { return $GLOBALS[MES]["repartition"]; } + //Étape 1 : récupération de la liste des évènements $url_evenements = 'http://www.agendadulibre.org/events.json?future=false&tag='.$tag; $evenementArray = json_decode(file_get_contents($url_evenements), true); $evenementCount = count($evenementArray); + //Étape 2 : balayage des évènements et ventilation par région (champ « region_id ») $evenementParRegionMap = array(); for($i = 0; $i < $evenementCount; $i++) { $evenement = $evenementArray[$i]; @@ -168,13 +170,22 @@ function mes_balise_Repartition($tag) { $evenementParRegionMap["id_".$region_id] = array($evenement); } } + //Étape 3 : récupération de la liste des régions $url_regions = "http://www.agendadulibre.org/regions.json"; $total = 0; $json_regions = json_decode(file_get_contents($url_regions), true); $paysArray = array(); $regionTraiteeMap = array(); + $internet = array("evenements" => array(), "total" => 0); + //Étape 4 : création d'une instance LefPays pour chaque région qui correspond à un pays (présence du champ code), création des sous-régions de ce pays et affectation des évènements liés à ce pays foreach($json_regions as $json_region) { - if (strlen($json_region['code']) > 0) { + $pays_code = $json_region['code']; + if ($pays_code == "internet") { + $pays_internet = new LefInternet($json_region); + $pays_internet->populate($evenementParRegionMap); + $internet = $pays_internet->toArray(); + $total += $internet["total"]; + } else if (strlen($pays_code) > 0) { $pays = new LefPays($json_region); $pays->populate($json_regions, $evenementParRegionMap); foreach($pays->getKeyArray() as $key) { @@ -182,7 +193,11 @@ function mes_balise_Repartition($tag) { } $total_pays = $pays->getTotal(); if ($total_pays > 0) { - $paysArray[] = $pays->toArray(); + if ($pays->getCode() == "internet") { + $internet = $pays->toArray(); + } else { + $paysArray[] = $pays->toArray(); + } $total += $total_pays; } } @@ -198,6 +213,7 @@ function mes_balise_Repartition($tag) { $repartition = array( "total" => $total, "pays" => $paysArray, + "internet" => $internet, "ailleurs" => $ailleursArray ); $GLOBALS[MES]["repartition"] = $repartition; diff --git a/modeles/agenda.html b/modeles/agenda.html index faaf895..718c801 100644 --- a/modeles/agenda.html +++ b/modeles/agenda.html @@ -18,8 +18,9 @@ - + +

#VALEUR{name}

@@ -41,6 +42,25 @@ + +

Internet

+
En ligne (#GET{repartition/internet/total}) + + +[(#SET{evt,#VALEUR})] + + + + + + +
[[(#GET{evt/start_time}|nom_jour)] (#GET{evt/start_time}|affdate_jourcourt)][(#GET{evt/start_time}|heures)][:(#GET{evt/start_time}|minutes)] + [(#GET{evt/title})] +
+
+
+ +

Ailleurs

#SET{ailleurs, #GET{repartition/ailleurs}}