Traitement des evenements hors region
This commit is contained in:
parent
63dc64d496
commit
9723834532
@ -108,15 +108,19 @@ function mes_balise_Repartition($tag) {
|
|||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
* Travaille en deux étapes :
|
* Travaille en deux étapes :
|
||||||
* - récupère la liste des régions pour construire une arborescence pays par pays
|
* - 1) Récupère les évènements et les classe par région
|
||||||
* - un pays
|
* - 2) Récupère la liste des pays et des régions et les affecte par pays
|
||||||
|
*
|
||||||
* - récupère les évenements et les classes
|
* Renvoie le tableau associatif $repartition avec deux clés :
|
||||||
* Récupération du JSON et traitement pour regrouper par région
|
|
||||||
* Renvoie le tableau associatif repartition avec deux clés :
|
|
||||||
* - total : le nombre total d'évènements
|
* - total : le nombre total d'évènements
|
||||||
* - regions : tableau associatif avec comme clé le nom de la région et comme valeur
|
* - pays : tableau des pays
|
||||||
* le tableau des évènements
|
* - ailleurs : tableau des évènements qui n'ont pas été classé dans un pays
|
||||||
|
*
|
||||||
|
* Un pays est un tableau associatif avec comme clés :
|
||||||
|
* - name : le nom du pays
|
||||||
|
* - code : son code (à noter que dans le JSON envoyé par l'agenda du libre les pays se distinguent des régions par la présence d'un code)
|
||||||
|
* - sousregions : le tableau des sous-régions
|
||||||
|
* - evenementsnationaux : évènements codés au niveau du pays
|
||||||
*************************************/
|
*************************************/
|
||||||
function mes_balise_Repartition2($tag) {
|
function mes_balise_Repartition2($tag) {
|
||||||
if ($GLOBALS[MES]["repartition2"] != false) {
|
if ($GLOBALS[MES]["repartition2"] != false) {
|
||||||
@ -143,6 +147,7 @@ function mes_balise_Repartition2($tag) {
|
|||||||
$json_regions = json_decode(file_get_contents($url_regions), true);
|
$json_regions = json_decode(file_get_contents($url_regions), true);
|
||||||
$regionCount = count($json_regions);
|
$regionCount = count($json_regions);
|
||||||
$paysArray = array();
|
$paysArray = array();
|
||||||
|
$regionTraiteeMap = array();
|
||||||
for($i = 0; $i < $regionCount; $i++) {
|
for($i = 0; $i < $regionCount; $i++) {
|
||||||
$region = $json_regions[$i];
|
$region = $json_regions[$i];
|
||||||
if (strlen($region['code']) > 0) {
|
if (strlen($region['code']) > 0) {
|
||||||
@ -160,18 +165,36 @@ function mes_balise_Repartition2($tag) {
|
|||||||
$total_pays += $total_region;
|
$total_pays += $total_region;
|
||||||
$total += $total_region;
|
$total += $total_region;
|
||||||
$pays["sousregions"][] = $sousregion;
|
$pays["sousregions"][] = $sousregion;
|
||||||
|
$regionTraiteeMap["id_".$region_id] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (array_key_exists("id_".$pays_id, $evenementParRegionMap)) {
|
||||||
|
$evenementNationalArray = $evenementParRegionMap["id_".$pays_id];
|
||||||
|
$total_national = count($evenementNationalArray);
|
||||||
|
$total_pays += $total_national;
|
||||||
|
$total += $total_national;
|
||||||
|
$pays["evenementsnationaux"] = $evenementNationalArray;
|
||||||
|
$regionTraiteeMap["id_".$pays_id] = 1;
|
||||||
}
|
}
|
||||||
if ($total_pays > 0) {
|
if ($total_pays > 0) {
|
||||||
$paysArray[] = $pays;
|
$paysArray[] = $pays;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Vérification que toutes les régions ont été traitées, les évènements non traités sont placés « ailleurs »
|
||||||
|
$ailleursArray = array();
|
||||||
|
foreach ($evenementParRegionMap as $key => $array) {
|
||||||
|
if (!(array_key_exists($key, $regionTraiteeMap))) {
|
||||||
|
$ailleursArray = array_merge($ailleursArray, $array);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Objet final
|
||||||
$repartition = array(
|
$repartition = array(
|
||||||
"total" => $total,
|
"total" => $total,
|
||||||
"pays" => $paysArray
|
"pays" => $paysArray,
|
||||||
|
"ailleurs" => $ailleursArray
|
||||||
);
|
);
|
||||||
$GLOBALS[MES]["repartition2"] = $repartition;
|
$GLOBALS[MES]["repartition2"] = $repartition;
|
||||||
return $repartition;
|
return $repartition;
|
||||||
|
@ -13,4 +13,28 @@
|
|||||||
</BOUCLE_evenements>
|
</BOUCLE_evenements>
|
||||||
</ul>
|
</ul>
|
||||||
</BOUCLE_sousregions>
|
</BOUCLE_sousregions>
|
||||||
|
<B_evenementsnationaux>
|
||||||
|
<h4 class="spip"><em>À l'échelle nationale</em></h4>
|
||||||
|
<ul>
|
||||||
|
<BOUCLE_evenementsnationaux(DATA) {source tableau, #VALEUR{evenementsnationaux}}{par start_time}>
|
||||||
|
[(#SET{evt,#VALEUR})]
|
||||||
|
<li>[[(#GET{evt/start_time}|nom_jour)] (#GET{evt/start_time}|affdate_jourcourt)[ à (#GET{evt/start_time}|heures)][:(#GET{evt/start_time}|minutes)]]
|
||||||
|
<a href="http://www.agendadulibre.org/events/[(#GET{evt/id})]">[(#GET{evt/title})]</a>
|
||||||
|
[((#GET{evt/city}))]
|
||||||
|
</li>
|
||||||
|
</BOUCLE_evenementsnationaux>
|
||||||
|
</ul>
|
||||||
|
</B_evenementsnationaux>
|
||||||
</BOUCLE_repartition>
|
</BOUCLE_repartition>
|
||||||
|
<B_ailleurs>
|
||||||
|
<h3 class="spip">Ailleurs</h3>
|
||||||
|
<ul>
|
||||||
|
<BOUCLE_ailleurs(DATA){source tableau, #GET{repartition/ailleurs}}{par start_time}>
|
||||||
|
[(#SET{evt,#VALEUR})]
|
||||||
|
<li>[[(#GET{evt/start_time}|nom_jour)] (#GET{evt/start_time}|affdate_jourcourt)[ à (#GET{evt/start_time}|heures)][:(#GET{evt/start_time}|minutes)]]
|
||||||
|
<a href="http://www.agendadulibre.org/events/[(#GET{evt/id})]">[(#GET{evt/title})]</a>
|
||||||
|
[((#GET{evt/city}))]
|
||||||
|
</li>
|
||||||
|
</BOUCLE_ailleurs>
|
||||||
|
</ul>
|
||||||
|
</B_ailleurs>
|
||||||
|
Loading…
Reference in New Issue
Block a user