Merge branch 'master' of ssh://forge.april.org:222/siteweb/libreavous

This commit is contained in:
chankalan 2021-11-23 18:11:34 +01:00
commit 8698f68571
3 changed files with 96 additions and 28 deletions

View File

@ -1,6 +1,3 @@
[(#REM) squelette utilisé pour l'URL courte avec le numéro de l'émission (ex: .libreavous.org/85), voir la conf d'Apache du site
récupère l'article à partir du champ surtitre, marche également pour les émissions spéciales (d'où le filtre |strtoupper sur le numéro)
]#SET{numero,#ENV{numero}|strtoupper}
<BOUCLE_accesdirect(ARTICLES){surtitre=#GET{numero}}>
<INCLURE{fond=article}{id_article=#ID_ARTICLE}>
</BOUCLE_accesdirect>
]#CACHE{0}#SET{numero,#ENV{numero}|strtoupper}<BOUCLE_accesdirect(ARTICLES){surtitre=#GET{numero}}>[(#HTTP_HEADER{Location: /[(#URL_ARTICLE)]})]</BOUCLE_accesdirect>

View File

@ -1,30 +1,66 @@
[(#REM) Fred : On fait une boucle sur la liste des articles des rubriques Emissions (rubrique n°1)
et Actualités (rubrique n°8).
On utilise le filtre statut=publie pour traiter les articles mis au statut « Publié en ligne » même
si la date de publication de l'article est dans le futur. Cela concerne l'émission à venir.
]
<BOUCLE_un_article(ARTICLES){id_article}{id_rubrique IN 1,8}{statut=publie}>
<item>
[(#ID_RUBRIQUE|=={1}|oui)<title>[#(#TITRE|attribut_html|texte_backend)]</title>]
[(#ID_RUBRIQUE|=={8}|oui)<title>[(#TITRE|attribut_html|texte_backend)]</title>]
<link>[(#URL_ARTICLE|url_absolue)]</link>
[(#REM) Fred : Si l'article concerne une émission on ajoute le # devant le titre ]
[(#ID_RUBRIQUE|=={1}|oui)<title>[#(#TITRE|attribut_html|texte_backend)]</title>]
[(#REM) Fred : Si l'article concerne une actualité on met juste le titre ]
[(#ID_RUBRIQUE|=={8}|oui)<title>[(#TITRE|attribut_html|texte_backend)]</title>]
[(#REM) Fred : Pour les podcasts importés on utilise pour le champ pubdate le champ DRUPAL_PUBDATE ce qui permet
d'éviter que les podcasts apparaissent comme nouveaux lors de la bascule du flux RSS april.org vers le
flux RSS libreavous.org ]
[(#DRUPAL_PUBDATE|choixsivide{<pubDate>[(#DATE|date_822)]</pubDate>,<pubDate>#DRUPAL_PUBDATE</pubDate>})]
[(#DRUPAL_GUID|non)[(#PODCAST_DUREE|oui)<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>]]
[(#REM) Fred : Pour les podcasts importés on utilise pour le champ guid le champ DRUPAL_GUID ce qui permet
d'éviter que les podcasts apparaissent comme nouveaux lors de la bascule du flux RSS april.org vers le
flux RSS libreavous.org ]
[(#DRUPAL_GUID|oui)<guid isPermaLink="false">#DRUPAL_GUID</guid>]
[(#REM) Fred : Pour les podcasts disponibles après l'import initial le champ DRUPAL_GUID est vide.
On utilise un test sur le champ PODCAST_DUREE, si ce champ est rempli c'est que les fichiers audios
sont disponibles. Dans ce cas, on utilise l'url de l'article comme guid ]
[(#DRUPAL_GUID|non)[(#PODCAST_DUREE|oui)<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>]]
[(#REM) Fred : On utilise un test sur le champ PODCAST_DUREE, si ce champ est rempli c'est que les fichiers audios
sont disponibles et donc on ajoute les champs enclosure et duration ]
[(#PODCAST_DUREE|choixsivide{"",<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#PODCAST_CODE)]/libre-a-vous-[(#PODCAST_CODE)].ogg" length="0" type="audio/ogg"/>
<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#PODCAST_CODE)]/libre-a-vous-[(#PODCAST_CODE)].mp3" length="0" type="audio/mpeg"/>
<itunes:duration>[(#PODCAST_DUREE|libreavous_remove_microseconds)]</itunes:duration>})]
[(#REM) Fred : En fonction de la date et de l'heure on n'affiche pas les mêmes informations.
Si on est avant le début de l'émission, on affiche les champs PODCAST_SOMMAIRE et DESCRIPTION_RSS et on n'affiche pas
un lien link (car l'article n'est pas encore accessible publiquement.
Si on est après l'émission on affiche le lien link qui renvoie vers la page de l'émission.
Si on est après l'émission *et* que le champ PODCAST_DUREE est rempli, cela signifie que les podcasts
sont disponibles. On ajoute alors l'information sur le fait que les podcasts sont disponibles.
Cette partie est présente surtout pour les lecteurs de flux RSS classiques, comme Liferea par exemple,
c'est à dire pas les lecteurs de podcasts. Ainsi, le lecteur de flux RSS mettra à jour l'article de l'émission et la
personne saura que les podcasts sont disponibles et qu'en cliquant sur le lien elle y accédera ]
[(#SET{debut_emission,[(#DATE|annee)-][(#DATE|mois)-][(#DATE|jour|libreavous_aveczerod) ]15:30:00})]
[(#ENV{date}|>{#GET{debut_emission}}|oui)<link>[(#URL_ARTICLE|url_absolue)]</link>]
[(#ENV{date}|<={#GET{debut_emission}}|oui)<description>[(#DESCRIPTION_RSS|propre|texte_backend)] [(#PODCAST_SOMMAIRE|propre|texte_backend)]]
[(#ENV{date}|>{#GET{debut_emission}}|oui)<description>[(#PODCAST_DUREE|oui)<p>Les podcasts de l'émission sont disponibles.</p>][(#DESCRIPTION_RSS|propre|texte_backend)][(#PODCAST_SOMMAIRE|propre|texte_backend)] <p>Pour retrouver toutes les informations concernant cette émission ainsi que les références citées, <a href="[(#URL_ARTICLE|url_absolue)]">rendez-vous sur la page dédiée</a>.</p>]</description>
[(#ENV{date}|>{#GET{debut_emission}}|oui)<description>[(#PODCAST_DUREE|oui)&lt;p&gt;Les podcasts de l'émission sont disponibles.&lt;/p&gt;][(#DESCRIPTION_RSS|propre|texte_backend)][(#PODCAST_SOMMAIRE|propre|texte_backend)]&lt;p&gt;Pour retrouver toutes les informations concernant l'émission, &lt;a href="[(#URL_ARTICLE|url_absolue)]"&gt;rendez-vous sur la page dédiée&lt;/a&gt;.&lt;/p&gt;]</description>
[(#REM)
Le bloc qui suit diffuse aussi le texte integral de l'article,
ce qui permet une syndication plus riche (mais plus "lourde").
Fonction desactivable depuis les reglages du site.
][
(#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>[(#LOGO_ARTICLE{right}|image_reduire{150,150}|texte_backend)
]
[(#SET{debut_emission,[(#DATE|annee)-][(#DATE|mois)-][(#DATE|jour|libreavous_aveczerod) ]15:30:00})]
[(#ENV{date}|>{#GET{debut_emission}}|oui)
[&lt;div class='rss_chapo'&gt;[(#PODCAST_DUREE|oui)&lt;p&gt;Les podcasts de l'émission sont disponibles.&lt;/p&gt;][(#DESCRIPTION_RSS|propre|texte_backend)](#PODCAST_SOMMAIRE|propre|texte_backend)&lt;p&gt;Pour retrouver toutes les informations concernant l'émission, &lt;a href="[(#URL_ARTICLE|url_absolue)]"&gt;rendez-vous sur la page dédiée&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
]
]
[(#REM) Fred : On utilise la fonctionnalité d'affichage du texte intégral de l'article exclusivement pour
les articles de type Actualités, dans la rubrique n°8 donc]
[(#ID_RUBRIQUE|=={8}|oui)
[(#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>[(#LOGO_ARTICLE{right}|image_reduire{150,150}|texte_backend)
]
[&lt;div class='rss_texte'&gt;(#TEXTE|
image_reduire{500,0}|texte_backend)&lt;/div&gt;
@ -34,34 +70,70 @@
][&lt;div class='rss_ps'&gt;(#PS|texte_backend)&lt;/div&gt;]
</content:encoded>
]
]
[(#REM)
Le bloc qui suit diffuse l'adresse des documents associes aux articles ;
ajouter par ex. {extension=mp3} pour limiter a un certain type de document.
] <BOUCLE_documents(DOCUMENTS){id_article}{mode=document}{doublons}>[
]
[(#REM) Fred: A priori cette partie est inutile pour nous mais je l'ai laissé ]
<BOUCLE_documents(DOCUMENTS){id_article}{mode=document}{doublons}>[
<enclosure url="(#URL_DOCUMENT|url_absolue|unique)"[ length="(#TAILLE)"][ type="(#MIME_TYPE)"] />]
</BOUCLE_documents>
</item>
[(#REM) Fred : on met dans une variable la valeur de DATE qui correspond à la date de publication de l'article,
utilisé dans le champ pubdate ci-dessus. On doit sauvegarder cette valeur car ensuite dans la boucle sur les
chapitres ci-dessous #DATE aurait pour valeur la date du jour ]
#SET{date_emission,#DATE}
</BOUCLE_un_article>
[(#REM) Fred : Après l'affichage de l'item concernant l'émission et donc le podcast complet, on passe aux sujets
individuels, qui sont dans des chapitres de l'article de l'émission ]
<BOUCLE_chapitres(CHAPITRES){id_article}>
[(#REM) Fred : on fait un test sur le champ OGG, si ce champ est rempli c'est que le fichier podcast du sujet
est disponible ]
<BOUCLE_test(CONDITION){si #OGG|!={""}}>
<item>
<title>[(#TITRE|attribut_html|texte_backend)]</title>
<link>[(#URL_ARTICLE|url_absolue)]</link>
[(#REM) Fred : Pour les podcasts importés on utilise pour le champ pubdate le champ DRUPAL_PUBDATE ce qui permet
d'éviter que les podcasts apparaissent comme nouveaux lors de la bascule du flux RSS april.org vers le
flux RSS libreavous.org.
Pour les podcasts disponibles après l'import initial on utilise la variable date_emission qui contient la date
de publication de l'article de l'émission]
[(#DRUPAL_PUBDATE|choixsivide{<pubDate>[(#GET{date_emission}|date_822)]</pubDate>,<pubDate>#DRUPAL_PUBDATE</pubDate>})]
[(#REM) Fred : Pour les podcasts importés on utilise pour le champ guid le champ DRUPAL_GUID ce qui permet
d'éviter que les podcasts apparaissent comme nouveaux lors de la bascule du flux RSS april.org vers le
flux RSS libreavous.org.
Pour les podcasts disponibles après l'import initial on utilise le champ URL_CHAPITRE pour le guid]
[(#DRUPAL_GUID|choixsivide{<guid isPermaLink="false">[(#URL_CHAPITRE|url_absolue)]</guid>,<guid isPermaLink="false">#DRUPAL_GUID</guid>})]
<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#CODE_PODCAST)]/libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].ogg" length="0" type="audio/ogg"/>
<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#CODE_PODCAST)]/libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].mp3" length="0" type="audio/mpeg"/>
[(#REM) Fred : dans les chapitres il n'y a pas de champ de durée du podcast, donc on utilise une fonction pour calculer
la durée à partir des champs DEBUT et FIN. La fonction libreavous_duree_podcast étant définie dans libreavous_fonctions.php ]
[(#DEBUT|oui)[(#FIN|oui)<itunes:duration>[(#DEBUT|libreavous_duree_podcast{#FIN})]</itunes:duration>]]
[(#REM) Fred : On met dans le champ description à la fois les références du sujet et aussi le contenu du
champ DESCRIPTION_RSS qui est optionnel. Ce champ permet de mettre un éventuel commentaire concernant le
sujet individuel ]
<description>[(#DESCRIPTION_RSS|propre|texte_backend)] [(#REFERENCES_SUJET|choixsivide{"",Les références : [(#REFERENCES_SUJET|propre|texte_backend)]})]
[(#REM)
Le bloc qui suit diffuse la rubrique et les mots-cles
sous forme de "microformats"
]<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
]
[(#REM) Fred: A priori cette partie est inutile pour nous mais je l'ai laissé ]
<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
[&lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="directory"&gt;(#TITRE|supprimer_tags|texte_backend)&lt;/a&gt;]
</BOUCLE_rubrique_mf><B_mots_mf>
/ <BOUCLE_mots_mf(MOTS){id_article}{", "}>
@ -72,3 +144,4 @@
</item>
</BOUCLE_test>
</BOUCLE_chapitres>

View File

@ -4,8 +4,10 @@
<channel>
<title>Libre à vous ! April et Cause Commune</title>
<link>#URL_SITE_SPIP/</link>
<atom:link href="#URL_SITE_SPIP/rss" rel="self" type="application/rss+xml" />
<link>#URL_SITE_SPIP</link>
[(#REM) Fred: J'ai mis ce lien explicite sinon le validateur https://validator.w3.org/feed/check.cgi
indiquait une erreur "Self reference doesn't match document location" ]
<atom:link href="https://www.libreavous.org/?page=podcasts" rel="self" type="application/rss+xml" />
<description><p>Chaque mardi de 15 h 30 à 17 h 00, l'April, l'association de promotion et de défense du logiciel libre, propose une émission de radio d'explications et d'échanges concernant les dossiers politiques et juridiques que l'association traite et les actions qu'elle mène : <a href="https://april.org/libre-a-vous">Libre à vous !</a>. Une partie de l'émission est également consacrée aux actualités et actions de type sensibilisation. L'émission est diffusée sur radio Cause Commune sur la bande FM en Île-de-France (93.1) et <a href="https://cause-commune.fm">sur le site web de la radio</a>.</p><p>Donner à chacun et chacune, de manière simple et accessible les clefs pour comprendre les enjeux mais aussi proposer des moyens d'action, tel est l'objectif de l'émission.</p></description>
<generator>SPIP - www.spip.net</generator>
<itunes:category text="Technology"/>
@ -21,16 +23,12 @@
<image>
<title>Libre à vous ! April et Cause Commune</title>
<url>https://april.org/files/libre-a-vous/banniere-libre-a-vous-flux-rss-1400x1400.png</url>
<link>#URL_SITE_SPIP/</link>
<link>#URL_SITE_SPIP</link>
</image>
<BOUCLE_10recents(ARTICLES) {lang ?}{branche ?}{id_mot ?}{id_auteur ?} {statut=publie} {par date}{inverse}{unique}>
<BOUCLE_emissions(ARTICLES) {lang ?}{branche ?}{id_mot ?}{id_auteur ?} {statut=publie} {par date}{inverse}{unique}>
<INCLURE{fond=inc-rss-item, id_article} />
</BOUCLE_10recents>
<BOUCLE_tres_recents(ARTICLES){lang ?}{branche ?}{id_mot ?}{id_auteur ?} {statut=publie} {par date}{inverse}{age<3}{unique}>
<INCLURE{fond=inc-rss-item, id_article} />
</BOUCLE_tres_recents>
</BOUCLE_emissions>
</channel>