Compare commits
5 Commits
a2af5661d1
...
3e348ad491
Author | SHA1 | Date | |
---|---|---|---|
3e348ad491 | |||
8aeb72d4b4 | |||
114fa1eebd | |||
e5a0fc76a2 | |||
7886660d53 |
61
css/main.css
61
css/main.css
@ -266,6 +266,61 @@ table {
|
|||||||
color: #203636;
|
color: #203636;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------- */
|
||||||
|
/* .sommaire-
|
||||||
|
/* ----------------------------- */
|
||||||
|
|
||||||
|
.sommaire-Details {
|
||||||
|
background-color: #eef4e5e8;
|
||||||
|
margin: 3.5rem auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sommaire-Summary:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sommaire-Summary {
|
||||||
|
padding: 1rem;
|
||||||
|
font-family: 'metropolismedium';
|
||||||
|
color: #203636;
|
||||||
|
font-size: 1.7rem;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sommaire-Summary::-webkit-details-marker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sommaire-Summary::after {
|
||||||
|
content: " ⏵";
|
||||||
|
/*content: " ⯈";
|
||||||
|
content: " ▶";*/
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sommaire-Details[open] .sommaire-Summary::after {
|
||||||
|
content: " ⏷";
|
||||||
|
/*content: " ⯆";
|
||||||
|
content: " ▼";*/
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sommaire-Liste {
|
||||||
|
column-count: 3;
|
||||||
|
padding-bottom: 2rem;
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sommaire-Liste li {
|
||||||
|
list-style: none;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
padding-top: 3px;
|
||||||
|
border-bottom-width: thin;
|
||||||
|
border-bottom-style: solid;
|
||||||
|
border-bottom-color: #cbddafe8;
|
||||||
|
break-inside: avoid;
|
||||||
|
line-height: 1.8;
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------- */
|
/* ----------------------------- */
|
||||||
/* .footer-
|
/* .footer-
|
||||||
@ -484,7 +539,11 @@ table {
|
|||||||
|
|
||||||
.header-Nav {
|
.header-Nav {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sommaire-Liste {
|
||||||
|
column-count: 1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
34
evenements-liste-motcle.html
Normal file
34
evenements-liste-motcle.html
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#CACHE{0}#SET{motcle, #ENV{motcle}|lef_test_tag}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Liste des évènements #GET{motcle}</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
td {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
table, td{
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #999;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
td, tr {
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #999;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
[<p><a href="spip.php?page=evenements-rss-motcle&motcle=(#GET{motcle})">Flux RSS pour #GET{motcle}</a></p>]
|
||||||
|
<table>
|
||||||
|
[(#ENV{motcle}|lef_liste_evenements_tag)]
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
31
evenements-rss-motcle.html
Normal file
31
evenements-rss-motcle.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#CACHE{0}[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml version="1.0"[ encoding="(#CHARSET)"]?>
|
||||||
|
#SET{motcle, #ENV{motcle}|lef_test_tag}
|
||||||
|
<rss version="2.0" [(#REM) rss 2.0.9)]
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:content="http://purl.org/rss/1.0/modules/content/"
|
||||||
|
>
|
||||||
|
<channel xml:lang="fr">
|
||||||
|
<title>Évènements #GET{motcle}</title>
|
||||||
|
<link>https://www.libre-en-fete.net/spip.php?page=evenements-rss-motcle&motcle=#GET{motcle}</link>
|
||||||
|
<description>Liste des évènements du mot-clé #GET{motcle}</description>
|
||||||
|
<language>fr</language>
|
||||||
|
<generator>Libre en fête / Agenda du Libre</generator>
|
||||||
|
|
||||||
|
#SET{evenement_array, #GET{motcle}|lef_evenement_array_tag}
|
||||||
|
<BOUCLE_evenements(DATA){source table, #GET{evenement_array}}>
|
||||||
|
<item>
|
||||||
|
<title>[(#VALEUR{start_time}|lef_date) ][(#VALEUR{city}) : ][(#VALEUR{title}|texte_backend) ]</title>
|
||||||
|
<link>https://www.agendadulibre.org/events/#VALEUR{id}</link>
|
||||||
|
<guid isPermaLink="true">https://www.agendadulibre.org/events/#VALEUR{id}</guid>
|
||||||
|
<dc:date>#VALEUR{time}</dc:date>
|
||||||
|
<dc:format>text/html</dc:format>
|
||||||
|
<dc:language>fr</dc:language>
|
||||||
|
<description>
|
||||||
|
<p><strong>Contact :</strong> [(#VALEUR{contact}|texte_backend)]</p>
|
||||||
|
[(#VALEUR{description}|texte_backend)]</description>
|
||||||
|
</item>
|
||||||
|
</BOUCLE_evenements>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
|
||||||
|
</rss>
|
@ -1,5 +1,30 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
class LefInternet {
|
||||||
|
|
||||||
|
private $internet_id;
|
||||||
|
private $code = "internet";
|
||||||
|
private $evenementArray = array();
|
||||||
|
|
||||||
|
public function __construct($json_region) {
|
||||||
|
$this->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 {
|
class LefPays {
|
||||||
private $pays_id;
|
private $pays_id;
|
||||||
private $name = "";
|
private $name = "";
|
||||||
@ -34,6 +59,7 @@ class LefPays {
|
|||||||
$total_region = count($evenementParRegionArray);
|
$total_region = count($evenementParRegionArray);
|
||||||
$lieux = new LefLieux($evenementParRegionArray);
|
$lieux = new LefLieux($evenementParRegionArray);
|
||||||
$region["evenements"] = $lieux->toArray();
|
$region["evenements"] = $lieux->toArray();
|
||||||
|
$region["total"] = $total_region;
|
||||||
$this->total_pays += $total_region;
|
$this->total_pays += $total_region;
|
||||||
$this->regions[] = $region;
|
$this->regions[] = $region;
|
||||||
}
|
}
|
||||||
@ -49,6 +75,10 @@ class LefPays {
|
|||||||
return $this->key_array;
|
return $this->key_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getCode() {
|
||||||
|
return $this->code;
|
||||||
|
}
|
||||||
|
|
||||||
public function toArray() {
|
public function toArray() {
|
||||||
$evenementsnationaux;
|
$evenementsnationaux;
|
||||||
$totalevenementsnationaux = 0;
|
$totalevenementsnationaux = 0;
|
||||||
|
@ -152,9 +152,11 @@ function mes_balise_Repartition($tag) {
|
|||||||
if ($GLOBALS[MES]["repartition"] != false) {
|
if ($GLOBALS[MES]["repartition"] != false) {
|
||||||
return $GLOBALS[MES]["repartition"];
|
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;
|
$url_evenements = 'http://www.agendadulibre.org/events.json?future=false&tag='.$tag;
|
||||||
$evenementArray = json_decode(file_get_contents($url_evenements), true);
|
$evenementArray = json_decode(file_get_contents($url_evenements), true);
|
||||||
$evenementCount = count($evenementArray);
|
$evenementCount = count($evenementArray);
|
||||||
|
//Étape 2 : balayage des évènements et ventilation par région (champ « region_id »)
|
||||||
$evenementParRegionMap = array();
|
$evenementParRegionMap = array();
|
||||||
for($i = 0; $i < $evenementCount; $i++) {
|
for($i = 0; $i < $evenementCount; $i++) {
|
||||||
$evenement = $evenementArray[$i];
|
$evenement = $evenementArray[$i];
|
||||||
@ -168,13 +170,22 @@ function mes_balise_Repartition($tag) {
|
|||||||
$evenementParRegionMap["id_".$region_id] = array($evenement);
|
$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";
|
$url_regions = "http://www.agendadulibre.org/regions.json";
|
||||||
$total = 0;
|
$total = 0;
|
||||||
$json_regions = json_decode(file_get_contents($url_regions), true);
|
$json_regions = json_decode(file_get_contents($url_regions), true);
|
||||||
$paysArray = array();
|
$paysArray = array();
|
||||||
$regionTraiteeMap = 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) {
|
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 = new LefPays($json_region);
|
||||||
$pays->populate($json_regions, $evenementParRegionMap);
|
$pays->populate($json_regions, $evenementParRegionMap);
|
||||||
foreach($pays->getKeyArray() as $key) {
|
foreach($pays->getKeyArray() as $key) {
|
||||||
@ -182,7 +193,11 @@ function mes_balise_Repartition($tag) {
|
|||||||
}
|
}
|
||||||
$total_pays = $pays->getTotal();
|
$total_pays = $pays->getTotal();
|
||||||
if ($total_pays > 0) {
|
if ($total_pays > 0) {
|
||||||
$paysArray[] = $pays->toArray();
|
if ($pays->getCode() == "internet") {
|
||||||
|
$internet = $pays->toArray();
|
||||||
|
} else {
|
||||||
|
$paysArray[] = $pays->toArray();
|
||||||
|
}
|
||||||
$total += $total_pays;
|
$total += $total_pays;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -198,6 +213,7 @@ function mes_balise_Repartition($tag) {
|
|||||||
$repartition = array(
|
$repartition = array(
|
||||||
"total" => $total,
|
"total" => $total,
|
||||||
"pays" => $paysArray,
|
"pays" => $paysArray,
|
||||||
|
"internet" => $internet,
|
||||||
"ailleurs" => $ailleursArray
|
"ailleurs" => $ailleursArray
|
||||||
);
|
);
|
||||||
$GLOBALS[MES]["repartition"] = $repartition;
|
$GLOBALS[MES]["repartition"] = $repartition;
|
||||||
@ -224,42 +240,55 @@ function filtre_lef_test_num($annee) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/************************************
|
||||||
|
* Vérifie que le paramètre est un mot-clé correct
|
||||||
|
*************************************/
|
||||||
|
|
||||||
|
function filtre_lef_test_tag($tag) {
|
||||||
|
if (preg_match('/^[-a-z0-9]+$/', $tag)) {
|
||||||
|
return $tag;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/************************************
|
/************************************
|
||||||
* Spécial filtre liste des évènements
|
* Spécial filtre liste des évènements
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
function filtre_lef_liste_evenements($annee) {
|
function filtre_lef_liste_evenements($annee) {
|
||||||
|
if (strlen($annee) == 0) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
if (!is_numeric($annee)) {
|
if (!is_numeric($annee)) {
|
||||||
return "Paramètre année incorrect";
|
return "Paramètre année incorrect";
|
||||||
}
|
}
|
||||||
$evenementArray = lef_getEvenementArray($annee);
|
$evenementArray = lef_getEvenementArrayParAnnee($annee);
|
||||||
$evenementCount = count( $evenementArray);
|
return lef_getEvenementRows($evenementArray);
|
||||||
if ($evenementCount == 0) {
|
|
||||||
return "Aucun évènement";
|
|
||||||
}
|
|
||||||
$result = "";
|
|
||||||
for($i = 0; $i < $evenementCount; $i++) {
|
|
||||||
$evenement = $evenementArray[$i];
|
|
||||||
$increment = ($evenementCount - $i);
|
|
||||||
$date = date_create($evenement["start_time"]);
|
|
||||||
$result .= "<tr>";
|
|
||||||
$result .= "<td>".$increment."</td>";
|
|
||||||
$result .= '<td><a href="http://www.agendadulibre.org/events/'.$evenement["id"].'">'.$evenement["id"]."</a></td>";
|
|
||||||
$result .= "<td>".date_format($date, 'd/m')."</td>";
|
|
||||||
$result .= "<td>".$evenement["title"]."</td>";
|
|
||||||
$result .= "<td>".$evenement["city"]."</td>";
|
|
||||||
$result .= "<td>".$evenement["time"]."</td>";
|
|
||||||
$result .= "<td>".$evenement["contact"]."</td>";
|
|
||||||
$result .= "</tr>";
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function filtre_lef_liste_evenements_tag($tag) {
|
||||||
|
if (strlen($tag) == 0) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (!preg_match('/^[-a-z0-9]+$/', $tag)) {
|
||||||
|
return "Paramètre tag incorrect";
|
||||||
|
} else {
|
||||||
|
$evenementArray = lef_getEvenementArrayParTag($tag);
|
||||||
|
return lef_getEvenementRows($evenementArray);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function filtre_lef_evenement_array($annee) {
|
function filtre_lef_evenement_array($annee) {
|
||||||
if (!is_numeric($annee)) {
|
if (!is_numeric($annee)) {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
return lef_getEvenementArray($annee);
|
return lef_getEvenementArrayParAnnee($annee);
|
||||||
|
}
|
||||||
|
|
||||||
|
function filtre_lef_evenement_array_tag($tag) {
|
||||||
|
return lef_getEvenementArrayParTag($tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
function filtre_lef_date($time) {
|
function filtre_lef_date($time) {
|
||||||
@ -272,15 +301,22 @@ function filtre_lef_date($time) {
|
|||||||
* Le chemin du répertoire IMG est codé en dur !
|
* Le chemin du répertoire IMG est codé en dur !
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
function lef_getEvenementArray($annee) {
|
function lef_getEvenementArrayParAnnee($annee) {
|
||||||
|
return lef_getEvenementArray("libre-en-fete-".$annee, $annee);
|
||||||
|
}
|
||||||
|
|
||||||
|
function lef_getEvenementArrayParTag($tag) {
|
||||||
|
return lef_getEvenementArray($tag, "tags/".$tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
function lef_getEvenementArray($tag, $storeDir) {
|
||||||
$IMG_ROOT = "/var/lib/spip/sites/www.libre-en-fete.net/";
|
$IMG_ROOT = "/var/lib/spip/sites/www.libre-en-fete.net/";
|
||||||
$tag = "libre-en-fete-".$annee;
|
|
||||||
$jsonString = file_get_contents("https://www.agendadulibre.org/events.json?future=false&tag=".$tag);
|
$jsonString = file_get_contents("https://www.agendadulibre.org/events.json?future=false&tag=".$tag);
|
||||||
$json = json_decode($jsonString, TRUE);
|
$json = json_decode($jsonString, TRUE);
|
||||||
$evenementCount = count($json);
|
$evenementCount = count($json);
|
||||||
|
|
||||||
$currentTime = date(DATE_ATOM);
|
$currentTime = date(DATE_ATOM);
|
||||||
$dirPath = $IMG_ROOT."IMG/agendadulibre/".$annee;
|
$dirPath = $IMG_ROOT."IMG/agendadulibre/".$storeDir;
|
||||||
if (!file_exists($dirPath)) {
|
if (!file_exists($dirPath)) {
|
||||||
mkdir($dirPath, 0777, TRUE);
|
mkdir($dirPath, 0777, TRUE);
|
||||||
}
|
}
|
||||||
@ -304,6 +340,29 @@ function lef_getEvenementArray($annee) {
|
|||||||
return $evenementArray;
|
return $evenementArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function lef_getEvenementRows($evenementArray) {
|
||||||
|
$evenementCount = count( $evenementArray);
|
||||||
|
if ($evenementCount == 0) {
|
||||||
|
return "Aucun évènement";
|
||||||
|
}
|
||||||
|
$result = "";
|
||||||
|
for($i = 0; $i < $evenementCount; $i++) {
|
||||||
|
$evenement = $evenementArray[$i];
|
||||||
|
$increment = ($evenementCount - $i);
|
||||||
|
$date = date_create($evenement["start_time"]);
|
||||||
|
$result .= "<tr>";
|
||||||
|
$result .= "<td>".$increment."</td>";
|
||||||
|
$result .= '<td><a href="http://www.agendadulibre.org/events/'.$evenement["id"].'">'.$evenement["id"]."</a></td>";
|
||||||
|
$result .= "<td>".date_format($date, 'd/m')."</td>";
|
||||||
|
$result .= "<td>".$evenement["title"]."</td>";
|
||||||
|
$result .= "<td>".$evenement["city"]."</td>";
|
||||||
|
$result .= "<td>".$evenement["time"]."</td>";
|
||||||
|
$result .= "<td>".$evenement["contact"]."</td>";
|
||||||
|
$result .= "</tr>";
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
function lef_comparaison($evt1, $evt2) {
|
function lef_comparaison($evt1, $evt2) {
|
||||||
$time1 = $evt1["time"];
|
$time1 = $evt1["time"];
|
||||||
$time2 = $evt2["time"];
|
$time2 = $evt2["time"];
|
||||||
|
@ -1,4 +1,18 @@
|
|||||||
#SET{repartition, #MES_REPARTITION{#ENV{tag}}}
|
#SET{repartition, #MES_REPARTITION{#ENV{tag}}}
|
||||||
|
<details class="sommaire-Details">
|
||||||
|
<summary class="sommaire-Summary">Sommaire</summary>
|
||||||
|
<ul class="sommaire-Liste">
|
||||||
|
<BOUCLE_sommaire_repartition(DATA){source tableau, #GET{repartition/pays}}>
|
||||||
|
<BOUCLE_sommaire_sousregions(DATA){source tableau, #VALEUR{sousregions}}>
|
||||||
|
<li><a href="#region_[(#VALEUR{region_id})]">[(#VALEUR{name})] (#VALEUR{total})</a></li>
|
||||||
|
</BOUCLE_sommaire_sousregions>
|
||||||
|
</BOUCLE_sommaire_repartition>
|
||||||
|
<BOUCLE_sommaire_internet(CONDITION){si #GET{repartition/internet/total}|>{0}}>
|
||||||
|
<li><a href="#enligne">En ligne (#GET{repartition/internet/total})</a></li>
|
||||||
|
</BOUCLE_sommaire_internet>
|
||||||
|
</ul>
|
||||||
|
</details>
|
||||||
|
|
||||||
<BOUCLE_repartition(DATA){source tableau, #GET{repartition/pays}}>
|
<BOUCLE_repartition(DATA){source tableau, #GET{repartition/pays}}>
|
||||||
<h3 class="spip">#VALEUR{name}</h3>
|
<h3 class="spip">#VALEUR{name}</h3>
|
||||||
<B_evenementsnationaux>
|
<B_evenementsnationaux>
|
||||||
@ -18,11 +32,12 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</BOUCLE_evenementsnationaux_liste>
|
</BOUCLE_evenementsnationaux_liste>
|
||||||
</table>
|
</table>
|
||||||
</details>
|
|
||||||
</BOUCLE_evenementsnationaux>
|
</BOUCLE_evenementsnationaux>
|
||||||
|
</details>
|
||||||
|
</B_evenementsnationaux>
|
||||||
|
|
||||||
<BOUCLE_sousregions(DATA){source tableau, #VALEUR{sousregions}}>
|
<BOUCLE_sousregions(DATA){source tableau, #VALEUR{sousregions}}>
|
||||||
<h4 class="spip">#VALEUR{name}</h4>
|
<h4 class="spip" id="region_[(#VALEUR{region_id})]">#VALEUR{name}</h4>
|
||||||
<BOUCLE_evenements(DATA) {source tableau, #VALEUR{evenements}}>
|
<BOUCLE_evenements(DATA) {source tableau, #VALEUR{evenements}}>
|
||||||
<details class="evenement-Details"><summary class="evenement-Summary">[(#CLE|?{#CLE,'à l’échelle de la région})] <span class="evenement-Total">([(#VALEUR|count)])</span></summary>
|
<details class="evenement-Details"><summary class="evenement-Summary">[(#CLE|?{#CLE,'à l’échelle de la région})] <span class="evenement-Total">([(#VALEUR|count)])</span></summary>
|
||||||
<table class="evenement-Table">
|
<table class="evenement-Table">
|
||||||
@ -41,6 +56,25 @@
|
|||||||
</BOUCLE_evenements>
|
</BOUCLE_evenements>
|
||||||
</BOUCLE_sousregions>
|
</BOUCLE_sousregions>
|
||||||
</BOUCLE_repartition>
|
</BOUCLE_repartition>
|
||||||
|
<B_evenementsinternet>
|
||||||
|
<h3 class="spip">Internet</h3>
|
||||||
|
<details class="evenement-Details"><summary class="evenement-Summary">En ligne <span class="evenement-Total">(#GET{repartition/internet/total})</span></summary>
|
||||||
|
<table class="evenement-Table">
|
||||||
|
<BOUCLE_evenementsinternet(DATA) {source tableau, #GET{repartition/internet/evenements}}{par start_time}>
|
||||||
|
[(#SET{evt,#VALEUR})]
|
||||||
|
<tr>
|
||||||
|
<td class="evenement-Date">[[(#GET{evt/start_time}|nom_jour)] (#GET{evt/start_time}|affdate_jourcourt)]</td>
|
||||||
|
<td class="evenement-Heure">[(#GET{evt/start_time}|heures)][:(#GET{evt/start_time}|minutes)]</td>
|
||||||
|
<td class="evenement-Titre">
|
||||||
|
<a href="https://www.agendadulibre.org/events/[(#GET{evt/id})]">[(#GET{evt/title})]</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</BOUCLE_evenementsinternet>
|
||||||
|
</table>
|
||||||
|
</details>
|
||||||
|
</B_evenementsinternet>
|
||||||
|
|
||||||
|
|
||||||
<B_ailleurs>
|
<B_ailleurs>
|
||||||
<h3 class="spip">Ailleurs</h3>
|
<h3 class="spip">Ailleurs</h3>
|
||||||
#SET{ailleurs, #GET{repartition/ailleurs}}
|
#SET{ailleurs, #GET{repartition/ailleurs}}
|
||||||
|
14
modeles/sommaire.html
Normal file
14
modeles/sommaire.html
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#SET{liste, '*'}
|
||||||
|
[(#CONFIG{sommaire_automatique_numerote}|=={on}|oui)
|
||||||
|
#SET{liste, '#'}
|
||||||
|
]
|
||||||
|
<B_somm>
|
||||||
|
<details class="sommaire-Details" id="#ENV{id_sommaire}">
|
||||||
|
<summary class="sommaire-Summary">Sommaire</summary>
|
||||||
|
<ul class="sommaire-Liste">
|
||||||
|
<BOUCLE_somm(POUR){tableau #ENV{sommaire}}>
|
||||||
|
<li><a href="#VALEUR{href}" id="#VALEUR{id}">#VALEUR{titre}</a></li>
|
||||||
|
</BOUCLE_somm>
|
||||||
|
</ul>
|
||||||
|
</details>
|
||||||
|
</B_somm>
|
@ -3,7 +3,7 @@
|
|||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
<title>[(#NOM_SITE_SPIP|textebrut)] #TITRE</title>
|
<title>[(#NOM_SITE_SPIP|textebrut)] #TITRE</title>
|
||||||
[<meta name="description" content="(#TEXTE{150}|attribut_html)">]
|
[<meta name="description" content="(#INTRODUCTION|attribut_html)">]
|
||||||
[<link rel="canonical" href="(#URL_RUBRIQUE|url_absolue)">]
|
[<link rel="canonical" href="(#URL_RUBRIQUE|url_absolue)">]
|
||||||
<INCLURE{fond=inclure/head}>
|
<INCLURE{fond=inclure/head}>
|
||||||
</head>
|
</head>
|
||||||
|
Loading…
Reference in New Issue
Block a user