109 lines
2.6 KiB
PHP
109 lines
2.6 KiB
PHP
|
<?php
|
||
|
|
||
|
class LefPays {
|
||
|
private $pays_id;
|
||
|
private $name = "";
|
||
|
private $code = "";
|
||
|
private $regions = array();
|
||
|
private $total_pays = 0;
|
||
|
private $lieuxnationaux;
|
||
|
private $key_array = array();
|
||
|
|
||
|
|
||
|
public function __construct($json_region) {
|
||
|
$this->pays_id = $json_region["id"];
|
||
|
$this->code = $json_region["code"];
|
||
|
$this->name = $json_region["name"];
|
||
|
}
|
||
|
|
||
|
public function populate($json_regions, $evenementParRegionMap) {
|
||
|
$pays_key = "id_".$this->pays_id;
|
||
|
$this->key_array[] = $pays_key;
|
||
|
if (array_key_exists($pays_key, $evenementParRegionMap)) {
|
||
|
$evenementNationalArray = $evenementParRegionMap[$pays_key];
|
||
|
$total_national = count($evenementNationalArray);
|
||
|
$this->total_pays += $total_national;
|
||
|
$this->lieuxnationaux = new LefLieux($evenementNationalArray);
|
||
|
}
|
||
|
foreach($json_regions as $region) {
|
||
|
if ($region["region_id"] == $this->pays_id) {
|
||
|
$region_key = "id_".$region["id"];
|
||
|
$this->key_array[] = $region_key;
|
||
|
if (array_key_exists($region_key, $evenementParRegionMap)) {
|
||
|
$evenementParRegionArray = $evenementParRegionMap[$region_key];
|
||
|
$total_region = count($evenementParRegionArray);
|
||
|
$lieux = new LefLieux($evenementParRegionArray);
|
||
|
$region["evenements"] = $lieux->toArray();
|
||
|
$this->total_pays += $total_region;
|
||
|
$this->regions[] = $region;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function getTotal() {
|
||
|
return $this->total_pays;
|
||
|
}
|
||
|
|
||
|
public function getKeyArray() {
|
||
|
return $this->key_array;
|
||
|
}
|
||
|
|
||
|
public function toArray() {
|
||
|
$evenementsnationaux;
|
||
|
if ($this->lieuxnationaux) {
|
||
|
$evenementsnationaux = $this->lieuxnationaux->toArray();
|
||
|
} else {
|
||
|
$evenementsnationaux = array();
|
||
|
}
|
||
|
return array("name" => $this->name, "code" => $this->code, "sousregions" => $this->regions, "evenementsnationaux" => $evenementsnationaux);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
class LefLieux {
|
||
|
|
||
|
public $lieux = array();
|
||
|
|
||
|
public function __construct($evenementArray) {
|
||
|
foreach($evenementArray as $evenement) {
|
||
|
$city = $evenement["city"];
|
||
|
if (!$city) {
|
||
|
$city = "";
|
||
|
}
|
||
|
$lieu = null;
|
||
|
if (array_key_exists($city, $this->lieux)) {
|
||
|
$lieu = $this->lieux[$city];
|
||
|
} else {
|
||
|
$lieu = new LefLieu($city);
|
||
|
$this->lieux[$city] = $lieu;
|
||
|
}
|
||
|
$lieu->addEvenement($evenement);
|
||
|
}
|
||
|
ksort($this->lieux);
|
||
|
}
|
||
|
|
||
|
public function toArray() {
|
||
|
$result = array();
|
||
|
foreach($this->lieux as $key => $lieu) {
|
||
|
$result[$lieu->name] = $lieu->evenementArray;
|
||
|
}
|
||
|
return $result;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
class LefLieu {
|
||
|
|
||
|
public $name = "";
|
||
|
public $evenementArray = array();
|
||
|
|
||
|
public function __construct($name) {
|
||
|
$this->name = $name;
|
||
|
}
|
||
|
|
||
|
public function addEvenement($evenement) {
|
||
|
$this->evenementArray[] = $evenement;
|
||
|
}
|
||
|
}
|