diff --git a/evenements-liste-motcle.html b/evenements-liste-motcle.html
new file mode 100644
index 0000000..3494565
--- /dev/null
+++ b/evenements-liste-motcle.html
@@ -0,0 +1,34 @@
+#CACHE{0}#SET{motcle, #ENV{motcle}|lef_test_tag}
+
+
+
+Liste des évènements #GET{motcle}
+
+
+
+
+[Flux RSS pour #GET{motcle}
]
+
+[(#ENV{motcle}|lef_liste_evenements_tag)]
+
+
+
diff --git a/evenements-rss-motcle.html b/evenements-rss-motcle.html
new file mode 100644
index 0000000..02e4b2d
--- /dev/null
+++ b/evenements-rss-motcle.html
@@ -0,0 +1,31 @@
+#CACHE{0}[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]
+#SET{motcle, #ENV{motcle}|lef_test_tag}
+
+
+ Évènements #GET{motcle}
+ https://www.libre-en-fete.net/spip.php?page=evenements-rss-motcle&motcle=#GET{motcle}
+ Liste des évènements du mot-clé #GET{motcle}
+ fr
+ Libre en fête / Agenda du Libre
+
+#SET{evenement_array, #GET{motcle}|lef_evenement_array_tag}
+
+-
+[(#VALEUR{start_time}|lef_date) ][(#VALEUR{city}) : ][(#VALEUR{title}|texte_backend) ]
+https://www.agendadulibre.org/events/#VALEUR{id}
+https://www.agendadulibre.org/events/#VALEUR{id}
+#VALEUR{time}
+text/html
+fr
+
+<p><strong>Contact :</strong> [(#VALEUR{contact}|texte_backend)]</p>
+[(#VALEUR{description}|texte_backend)]
+
+
+
+
+
+
diff --git a/mes_fonctions.php b/mes_fonctions.php
index 1116e39..47ea012 100644
--- a/mes_fonctions.php
+++ b/mes_fonctions.php
@@ -240,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
*************************************/
function filtre_lef_liste_evenements($annee) {
+ if (strlen($annee) == 0) {
+ return "";
+ }
if (!is_numeric($annee)) {
return "Paramètre année incorrect";
}
- $evenementArray = lef_getEvenementArray($annee);
- $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 .= "";
- $result .= "".$increment." | ";
- $result .= ''.$evenement["id"]." | ";
- $result .= "".date_format($date, 'd/m')." | ";
- $result .= "".$evenement["title"]." | ";
- $result .= "".$evenement["city"]." | ";
- $result .= "".$evenement["time"]." | ";
- $result .= "".$evenement["contact"]." | ";
- $result .= "
";
- }
- return $result;
+ $evenementArray = lef_getEvenementArrayParAnnee($annee);
+ return lef_getEvenementRows($evenementArray);
}
+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) {
if (!is_numeric($annee)) {
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) {
@@ -288,15 +301,22 @@ function filtre_lef_date($time) {
* 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/";
- $tag = "libre-en-fete-".$annee;
$jsonString = file_get_contents("https://www.agendadulibre.org/events.json?future=false&tag=".$tag);
$json = json_decode($jsonString, TRUE);
$evenementCount = count($json);
$currentTime = date(DATE_ATOM);
- $dirPath = $IMG_ROOT."IMG/agendadulibre/".$annee;
+ $dirPath = $IMG_ROOT."IMG/agendadulibre/".$storeDir;
if (!file_exists($dirPath)) {
mkdir($dirPath, 0777, TRUE);
}
@@ -320,6 +340,29 @@ function lef_getEvenementArray($annee) {
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 .= "";
+ $result .= "".$increment." | ";
+ $result .= ''.$evenement["id"]." | ";
+ $result .= "".date_format($date, 'd/m')." | ";
+ $result .= "".$evenement["title"]." | ";
+ $result .= "".$evenement["city"]." | ";
+ $result .= "".$evenement["time"]." | ";
+ $result .= "".$evenement["contact"]." | ";
+ $result .= "
";
+ }
+ return $result;
+}
+
function lef_comparaison($evt1, $evt2) {
$time1 = $evt1["time"];
$time2 = $evt2["time"];