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 :
|
||||
* - récupère la liste des régions pour construire une arborescence pays par pays
|
||||
* - un pays
|
||||
|
||||
* - récupère les évenements et les classes
|
||||
* Récupération du JSON et traitement pour regrouper par région
|
||||
* Renvoie le tableau associatif repartition avec deux clés :
|
||||
* - 1) Récupère les évènements et les classe par région
|
||||
* - 2) Récupère la liste des pays et des régions et les affecte par pays
|
||||
*
|
||||
* Renvoie le tableau associatif $repartition avec deux clés :
|
||||
* - total : le nombre total d'évènements
|
||||
* - regions : tableau associatif avec comme clé le nom de la région et comme valeur
|
||||
* le tableau des évènements
|
||||
* - pays : tableau des pays
|
||||
* - 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) {
|
||||
if ($GLOBALS[MES]["repartition2"] != false) {
|
||||
@ -143,6 +147,7 @@ function mes_balise_Repartition2($tag) {
|
||||
$json_regions = json_decode(file_get_contents($url_regions), true);
|
||||
$regionCount = count($json_regions);
|
||||
$paysArray = array();
|
||||
$regionTraiteeMap = array();
|
||||
for($i = 0; $i < $regionCount; $i++) {
|
||||
$region = $json_regions[$i];
|
||||
if (strlen($region['code']) > 0) {
|
||||
@ -160,18 +165,36 @@ function mes_balise_Repartition2($tag) {
|
||||
$total_pays += $total_region;
|
||||
$total += $total_region;
|
||||
$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) {
|
||||
$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(
|
||||
"total" => $total,
|
||||
"pays" => $paysArray
|
||||
"pays" => $paysArray,
|
||||
"ailleurs" => $ailleursArray
|
||||
);
|
||||
$GLOBALS[MES]["repartition2"] = $repartition;
|
||||
return $repartition;
|
||||
|
@ -13,4 +13,28 @@
|
||||
</BOUCLE_evenements>
|
||||
</ul>
|
||||
</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>
|
||||
<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